{"version":3,"file":"mantic-ui-angular.mjs","sources":["../../../projects/mantic-ui/src/lib/helpers/to-boolean.ts","../../../projects/mantic-ui/src/lib/services/sorted-classes.service.ts","../../../projects/mantic-ui/src/lib/base/destroyable.ts","../../../projects/mantic-ui/src/lib/base/base.component.ts","../../../projects/mantic-ui/src/lib/base/destroyable.component.ts","../../../projects/mantic-ui/src/lib/base/destroyable.directive.ts","../../../projects/mantic-ui/src/lib/directives/active.directive.ts","../../../projects/mantic-ui/src/lib/directives/basic.directive.ts","../../../projects/mantic-ui/src/lib/directives/color.directive.ts","../../../projects/mantic-ui/src/lib/directives/disabled.directive.ts","../../../projects/mantic-ui/src/lib/directives/inverted.directive.ts","../../../projects/mantic-ui/src/lib/directives/loading.directive.ts","../../../projects/mantic-ui/src/lib/base/invertible.component.ts","../../../projects/mantic-ui/src/lib/base/button-base.component.ts","../../../projects/mantic-ui/src/lib/base/base.directive.ts","../../../projects/mantic-ui/src/lib/components/animation/animation.component.ts","../../../projects/mantic-ui/src/lib/components/animation/animation.component.html","../../../projects/mantic-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/mantic-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/mantic-ui/src/lib/models/key.ts","../../../projects/mantic-ui/src/lib/components/toggle-button/toggle-button.component.ts","../../../projects/mantic-ui/src/lib/components/toggle-button/toggle-button.component.html","../../../projects/mantic-ui/src/lib/components/button-group/button-group.component.ts","../../../projects/mantic-ui/src/lib/components/button-group/button-group.component.html","../../../projects/mantic-ui/src/lib/directives/fluid.directive.ts","../../../projects/mantic-ui/src/lib/directives/pointing.directive.ts","../../../projects/mantic-ui/src/lib/components/icon/icon.component.ts","../../../projects/mantic-ui/src/lib/components/icon/icon.component.html","../../../projects/mantic-ui/src/lib/components/label/label.component.ts","../../../projects/mantic-ui/src/lib/components/label/label.component.html","../../../projects/mantic-ui/src/lib/components/button/button.component.ts","../../../projects/mantic-ui/src/lib/components/button/button.component.html","../../../projects/mantic-ui/src/lib/components/button/button-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/card/card.component.ts","../../../projects/mantic-ui/src/lib/components/card/card.component.html","../../../projects/mantic-ui/src/lib/components/card-group/card-group.component.ts","../../../projects/mantic-ui/src/lib/components/card-group/card-group.component.html","../../../projects/mantic-ui/src/lib/helpers/math2.ts","../../../projects/mantic-ui/src/lib/models/field-size.ts","../../../projects/mantic-ui/src/lib/components/cell/cell.component.ts","../../../projects/mantic-ui/src/lib/components/cell/cell.component.html","../../../projects/mantic-ui/src/lib/directives/read-only.directive.ts","../../../projects/mantic-ui/src/lib/components/checkbox/checkbox.component.ts","../../../projects/mantic-ui/src/lib/components/checkbox/checkbox.component.html","../../../projects/mantic-ui/src/lib/components/checkbox/checkbox-defaults.component.ts","../../../projects/mantic-ui/src/lib/directives/button.directive.ts","../../../projects/mantic-ui/src/lib/components/chat-message/chat-message.component.ts","../../../projects/mantic-ui/src/lib/components/chat-message/chat-message.component.html","../../../projects/mantic-ui/src/lib/directives/fallback-for.directive.ts","../../../projects/mantic-ui/src/lib/components/icon-button/icon-button.component.ts","../../../projects/mantic-ui/src/lib/components/icon-button/icon-button.component.html","../../../projects/mantic-ui/src/lib/components/label-dropdown/label-dropdown.component.ts","../../../projects/mantic-ui/src/lib/components/label-dropdown/label-dropdown.component.html","../../../projects/mantic-ui/src/lib/base/labeled-base.component.ts","../../../projects/mantic-ui/src/lib/components/input/input-base.component.ts","../../../projects/mantic-ui/src/lib/components/input/text/input.component.ts","../../../projects/mantic-ui/src/lib/components/input/text/input.component.html","../../../projects/mantic-ui/src/lib/components/chat/chat.component.ts","../../../projects/mantic-ui/src/lib/components/chat/chat.component.html","../../../projects/mantic-ui/src/lib/components/chat/chat-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/circular-progress/circular-progress.component.ts","../../../projects/mantic-ui/src/lib/components/circular-progress/circular-progress.component.html","../../../projects/mantic-ui/src/lib/directives/to-body.directive.ts","../../../projects/mantic-ui/src/lib/components/menu/menu.component.ts","../../../projects/mantic-ui/src/lib/components/menu/menu.component.html","../../../projects/mantic-ui/src/lib/components/context-menu/context-menu.component.ts","../../../projects/mantic-ui/src/lib/components/context-menu/context-menu.component.html","../../../projects/mantic-ui/src/lib/components/menu-item/menu-item.component.ts","../../../projects/mantic-ui/src/lib/components/menu-item/menu-item.component.html","../../../projects/mantic-ui/src/lib/components/context-menu/item/context-menu-item.component.ts","../../../projects/mantic-ui/src/lib/components/context-menu/item/context-menu-item.component.html","../../../projects/mantic-ui/src/lib/components/dimmer/dimmer.component.ts","../../../projects/mantic-ui/src/lib/components/dimmer/dimmer.component.html","../../../projects/mantic-ui/src/lib/components/dimmer/dimmer-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/data-source/data-source-request.ts","../../../projects/mantic-ui/src/lib/components/data-source/data-source.component.ts","../../../projects/mantic-ui/src/lib/components/divider/divider.component.ts","../../../projects/mantic-ui/src/lib/components/divider/divider.component.html","../../../projects/mantic-ui/src/lib/helpers/object-helper.ts","../../../projects/mantic-ui/src/lib/components/dynamic-component/component-parser.ts","../../../projects/mantic-ui/src/lib/components/dynamic-component/dynamic-component.component.ts","../../../projects/mantic-ui/src/lib/components/dynamic-component/provider.ts","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown-selection.service.ts","../../../projects/mantic-ui/src/lib/components/dropdown-item/dropdown-item.component.ts","../../../projects/mantic-ui/src/lib/components/dropdown-item/dropdown-item.component.html","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown-value.ts","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown.component.ts","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown.component.html","../../../projects/mantic-ui/src/lib/components/dropdown/dropdown-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/header/header.component.ts","../../../projects/mantic-ui/src/lib/components/header/header.component.html","../../../projects/mantic-ui/src/lib/components/dropdown-group/dropdown-group.component.ts","../../../projects/mantic-ui/src/lib/components/dropdown-group/dropdown-group.component.html","../../../projects/mantic-ui/src/lib/components/document-title/document-title.component.ts","../../../projects/mantic-ui/src/lib/components/document-title/document-title.component.html","../../../projects/mantic-ui/src/lib/components/document-no-index/document-no-index.component.ts","../../../projects/mantic-ui/src/lib/directives/ignored.directive.ts","../../../projects/mantic-ui/src/lib/directives/inline.directive.ts","../../../projects/mantic-ui/src/lib/components/loader/loader.component.ts","../../../projects/mantic-ui/src/lib/components/loader/loader.component.html","../../../projects/mantic-ui/src/lib/components/message/message.component.ts","../../../projects/mantic-ui/src/lib/components/message/message.component.html","../../../projects/mantic-ui/src/lib/components/error/error.component.ts","../../../projects/mantic-ui/src/lib/components/error/error.component.html","../../../projects/mantic-ui/src/lib/components/flex/fill/fill.component.ts","../../../projects/mantic-ui/src/lib/components/flex/fill/fill.component.html","../../../projects/mantic-ui/src/lib/components/flex/flex.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/flex.component.ts","../../../projects/mantic-ui/src/lib/components/expander/expander-header.component.ts","../../../projects/mantic-ui/src/lib/components/expander/expander.component.ts","../../../projects/mantic-ui/src/lib/components/expander/expander.component.html","../../../projects/mantic-ui/src/lib/components/expander/expander-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/expander-icon/expander-icon.component.ts","../../../projects/mantic-ui/src/lib/components/expander-icon/expander-icon.component.html","../../../projects/mantic-ui/src/lib/components/expander-part/expander-part.component.ts","../../../projects/mantic-ui/src/lib/components/expander-part/expander-part.component.html","../../../projects/mantic-ui/src/lib/components/flag/flag.component.ts","../../../projects/mantic-ui/src/lib/components/flag/flag.component.html","../../../projects/mantic-ui/src/lib/helpers/timespan.ts","../../../projects/mantic-ui/src/lib/helpers/date-helper.ts","../../../projects/mantic-ui/src/lib/components/input/date/date-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/date/date-input.component.html","../../../projects/mantic-ui/src/lib/components/input/numeric/numeric-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/numeric/numeric-input.component.html","../../../projects/mantic-ui/src/lib/services/radio.service.ts","../../../projects/mantic-ui/src/lib/components/radio/radio.component.ts","../../../projects/mantic-ui/src/lib/components/radio/radio.component.html","../../../projects/mantic-ui/src/lib/components/slider/slider.component.ts","../../../projects/mantic-ui/src/lib/components/slider/slider.component.html","../../../projects/mantic-ui/src/lib/components/textarea/textarea.component.ts","../../../projects/mantic-ui/src/lib/components/textarea/textarea.component.html","../../../projects/mantic-ui/src/lib/components/toggle/toggle.component.ts","../../../projects/mantic-ui/src/lib/components/toggle/toggle.component.html","../../../projects/mantic-ui/src/lib/components/field/field-format-errors.pipe.ts","../../../projects/mantic-ui/src/lib/components/field/field.component.ts","../../../projects/mantic-ui/src/lib/components/field/field.component.html","../../../projects/mantic-ui/src/lib/components/field-group/field-group.component.ts","../../../projects/mantic-ui/src/lib/components/field-group/field-group.component.html","../../../projects/mantic-ui/src/lib/components/field/field-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/flex/auto/auto.component.ts","../../../projects/mantic-ui/src/lib/components/flex/auto/auto.component.html","../../../projects/mantic-ui/src/lib/components/flex/auto/auto.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/fill/fill.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/shrink/shrink.component.ts","../../../projects/mantic-ui/src/lib/components/flex/shrink/shrink.component.html","../../../projects/mantic-ui/src/lib/components/flex/shrink/shrink.directive.ts","../../../projects/mantic-ui/src/lib/components/flex/grow/grow.component.ts","../../../projects/mantic-ui/src/lib/components/flex/grow/grow.component.html","../../../projects/mantic-ui/src/lib/components/flex/grow/grow.directive.ts","../../../projects/mantic-ui/src/lib/components/overflow/overflow.directive.ts","../../../projects/mantic-ui/src/lib/components/footer/footer.component.ts","../../../projects/mantic-ui/src/lib/components/footer/footer.component.html","../../../projects/mantic-ui/src/lib/models/template-target.ts","../../../projects/mantic-ui/src/lib/services/layout.service.ts","../../../projects/mantic-ui/src/lib/directives/footer-link-template.directive.ts","../../../projects/mantic-ui/src/lib/components/footer-link/footer-link.component.ts","../../../projects/mantic-ui/src/lib/components/footer-link/footer-link.component.html","../../../projects/mantic-ui/src/lib/components/form/form-validation-notifier.ts","../../../projects/mantic-ui/src/lib/components/form/form.component.ts","../../../projects/mantic-ui/src/lib/components/form/form.component.html","../../../projects/mantic-ui/src/lib/components/form/form-defaults.component.ts","../../../projects/mantic-ui/src/lib/directives/header.directive.ts","../../../projects/mantic-ui/src/lib/components/grid/grid.component.ts","../../../projects/mantic-ui/src/lib/components/grid/grid.component.html","../../../projects/mantic-ui/src/lib/components/info/info.component.ts","../../../projects/mantic-ui/src/lib/components/info/info.component.html","../../../projects/mantic-ui/src/lib/components/warning/warning.component.ts","../../../projects/mantic-ui/src/lib/components/warning/warning.component.html","../../../projects/mantic-ui/src/lib/components/form-renderer/form-renderer.service.ts","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer2.component.ts","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer2.component.html","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer.component.ts","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element-renderer.component.html","../../../projects/mantic-ui/src/lib/components/form-renderer/form-renderer.component.ts","../../../projects/mantic-ui/src/lib/components/form-renderer/form-renderer.component.html","../../../projects/mantic-ui/src/lib/components/form-element-renderer/form-element.decorator.ts","../../../projects/mantic-ui/src/lib/components/form-renderer/provide-form-element.ts","../../../projects/mantic-ui/src/lib/components/header/header-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/image-upload/image-upload.component.ts","../../../projects/mantic-ui/src/lib/components/image-upload/image-upload.component.html","../../../projects/mantic-ui/src/lib/components/input/file/file-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/file/file-input.component.html","../../../projects/mantic-ui/src/lib/components/input/time/time-input.component.ts","../../../projects/mantic-ui/src/lib/components/input/time/time-input.component.html","../../../projects/mantic-ui/src/lib/components/input/input-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/label-dropdown/label-dropdown-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/layout/layout.component.ts","../../../projects/mantic-ui/src/lib/components/layout/layout.component.html","../../../projects/mantic-ui/src/lib/components/layout/layout-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/localize/localize.ts","../../../projects/mantic-ui/src/lib/components/localize/localize.component.ts","../../../projects/mantic-ui/src/lib/components/localize/localize.component.html","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-header.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-code-block.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-separator.ts","../../../projects/mantic-ui/src/lib/helpers/cast.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-code.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-image.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-link.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-italic.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-bold.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-strikethrough.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-text.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-custom-element.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-empty.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-list.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/markdown-parser.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/models/markdown-paragraph.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/markdown-renderer.component.ts","../../../projects/mantic-ui/src/lib/components/markdown-renderer/markdown-renderer.component.html","../../../projects/mantic-ui/src/lib/components/menu-header/menu-header.component.ts","../../../projects/mantic-ui/src/lib/components/menu-header/menu-header.component.html","../../../projects/mantic-ui/src/lib/directives/menu-link-template.directive.ts","../../../projects/mantic-ui/src/lib/components/menu-link/menu-link.component.ts","../../../projects/mantic-ui/src/lib/components/menu-link/menu-link.component.html","../../../projects/mantic-ui/src/lib/components/message/message-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal-footer.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal-header.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal.component.ts","../../../projects/mantic-ui/src/lib/components/modal/modal.component.html","../../../projects/mantic-ui/src/lib/components/modal/modal-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/notification/async-action.ts","../../../projects/mantic-ui/src/lib/components/notification/notification-ref.ts","../../../projects/mantic-ui/src/lib/components/notification/notification.service.ts","../../../projects/mantic-ui/src/lib/components/notification/notification-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/notification/notification-token.ts","../../../projects/mantic-ui/src/lib/components/notification/notification-injector.pipe.ts","../../../projects/mantic-ui/src/lib/components/notification/notification.component.ts","../../../projects/mantic-ui/src/lib/components/notification/notification.component.html","../../../projects/mantic-ui/src/lib/components/or/or.component.ts","../../../projects/mantic-ui/src/lib/components/or/or.component.html","../../../projects/mantic-ui/src/lib/components/row/row.component.ts","../../../projects/mantic-ui/src/lib/components/row/row.component.html","../../../projects/mantic-ui/src/lib/components/segment/segment.component.ts","../../../projects/mantic-ui/src/lib/components/segment/segment.component.html","../../../projects/mantic-ui/src/lib/components/segment/segment-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/segment-group/segment-group.component.ts","../../../projects/mantic-ui/src/lib/components/segment-group/segment-group.component.html","../../../projects/mantic-ui/src/lib/components/sidebar/sidebar.component.ts","../../../projects/mantic-ui/src/lib/components/sidebar/sidebar.component.html","../../../projects/mantic-ui/src/lib/components/submit/submit.component.ts","../../../projects/mantic-ui/src/lib/components/submit/submit.component.html","../../../projects/mantic-ui/src/lib/components/table/table.component.ts","../../../projects/mantic-ui/src/lib/components/table/table.component.html","../../../projects/mantic-ui/src/lib/components/table/table-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/tab/tab.component.ts","../../../projects/mantic-ui/src/lib/components/tab/tab.component.html","../../../projects/mantic-ui/src/lib/components/tab-group/tab-group.component.ts","../../../projects/mantic-ui/src/lib/components/tab-group/tab-group.component.html","../../../projects/mantic-ui/src/lib/components/tab-group/tab-group-defaults.component.ts","../../../projects/mantic-ui/src/lib/services/template.service.ts","../../../projects/mantic-ui/src/lib/components/template/template.component.ts","../../../projects/mantic-ui/src/lib/components/template/template.component.html","../../../projects/mantic-ui/src/lib/components/template-outlet/template-outlet.component.ts","../../../projects/mantic-ui/src/lib/components/template-outlet/template-outlet.component.html","../../../projects/mantic-ui/src/lib/components/text-container/text-container.component.ts","../../../projects/mantic-ui/src/lib/components/text-container/text-container.component.html","../../../projects/mantic-ui/src/lib/components/textarea/textarea-defaults.component.ts","../../../projects/mantic-ui/src/lib/components/title-strategy/mantic-title-strategy.ts","../../../projects/mantic-ui/src/lib/components/title-strategy/mantic-title-strategy.module.ts","../../../projects/mantic-ui/src/lib/components/title-strategy/provider.ts","../../../projects/mantic-ui/src/lib/directives/hide-on-empty-template.directive.ts","../../../projects/mantic-ui/src/lib/directives/hide-on-existing-template.directive.ts","../../../projects/mantic-ui/src/lib/directives/menu-item.directive.ts","../../../projects/mantic-ui/src/lib/directives/readonly.directive.ts","../../../projects/mantic-ui/src/lib/directives/to-template.directive.ts","../../../projects/mantic-ui/src/lib/directives/position-absolute.directive.ts","../../../projects/mantic-ui/src/lib/helpers/external-route.component.ts","../../../projects/mantic-ui/src/lib/helpers/lower-case-url-serializer.ts","../../../projects/mantic-ui/src/lib/helpers/lower-case-url-serializer.module.ts","../../../projects/mantic-ui/src/lib/helpers/mantic.ts","../../../projects/mantic-ui/src/lib/helpers/map-void.ts","../../../projects/mantic-ui/src/lib/helpers/provide-locale.ts","../../../projects/mantic-ui/src/lib/models/form-validation.ts","../../../projects/mantic-ui/src/lib/pipes/allowed-chars.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/array.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/ceil.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/debug.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/debugger.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/floor.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/is-email.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/is-filled.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/log.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/pad-end.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/pad-start.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/round.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/safe.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/title.pipe.ts","../../../projects/mantic-ui/src/lib/mantic-ui.module.ts","../../../projects/mantic-ui/src/lib/pipes/slice.pipe.ts","../../../projects/mantic-ui/src/lib/pipes/to-boolean.pipe.ts","../../../projects/mantic-ui/src/lib/services/base-href.service.ts","../../../projects/mantic-ui/src/lib/services/environment.service.ts","../../../projects/mantic-ui/src/lib/services/favicon.service.ts","../../../projects/mantic-ui/src/lib/services/theme.service.ts","../../../projects/mantic-ui/src/mantic-ui-angular.ts"],"sourcesContent":["import { BooleanLike } from '../models/boolean-like';\r\n\r\nexport const toBoolean = (value: BooleanLike): boolean => {\r\n    return value === '' || value === true || value?.toString().toLowerCase() === 'true';\r\n};\r\n\r\nexport const toBooleanWithUndefined = (value: BooleanLike): boolean | undefined => {\r\n    return value === undefined ? undefined : toBoolean(value);\r\n};\r\n","import { ElementRef, inject, Injectable } from '@angular/core';\r\n\r\ninterface Entry {\r\n    key: string;\r\n    order: number;\r\n    value: string;\r\n    fixed?: boolean;\r\n    ignore?: boolean;\r\n    previous?: string[];\r\n}\r\n\r\n@Injectable()\r\nexport class SortedClassesService {\r\n    private readonly entries = new Map<string, Entry>();\r\n    private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n    /**\r\n     * Registers one or more keys. The keys will only registered if they are not already registered.\r\n     */\r\n    public registerFallback(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            if (this.has(key)) {\r\n                continue;\r\n            }\r\n            this.registerEntry(key);\r\n        }\r\n        return this;\r\n    }\r\n\r\n    /**\r\n     * Registers one or more keys. If they are already registered, the order will be updated.\r\n     */\r\n    public register(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            const existingEntry = this.getEntry(key);\r\n            if (existingEntry) {\r\n                for (let [_, entry] of this.entries) {\r\n                    if (entry.order > existingEntry.order) {\r\n                        entry.order--;\r\n                    }\r\n                }\r\n                existingEntry.order = this.entries.size - 1;\r\n            }\r\n            else {\r\n                this.registerEntry(key);\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public registerFixed(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            this.registerEntry(key, { fixed: true });\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public unregister(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            this.entries.delete(key.toLocaleLowerCase());\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public ignore(...keys: string[]): SortedClassesService {\r\n        for (const key of keys) {\r\n            this.registerEntry(key, { ignore: true });\r\n        }\r\n        return this;\r\n    }\r\n\r\n    private registerEntry(key: string, options?: Partial<Entry>): void {\r\n        if (!key) {\r\n            return;\r\n        }\r\n        if (this.has(key)) {\r\n            console.warn(`'${key}' is already registered on <${this.elementRef.nativeElement.tagName}>.`);\r\n        }\r\n        const entry: Entry = {\r\n            ...options,\r\n            key: key.toLocaleLowerCase(),\r\n            value: options?.fixed ? key : options?.value ?? '',\r\n            order: this.entries.size\r\n        };\r\n        this.entries.set(entry.key, entry);\r\n    }\r\n\r\n    private getEntry(key: string): Entry | undefined {\r\n        key = key.toLocaleLowerCase();\r\n        return this.entries.get(key);\r\n    }\r\n\r\n    public set(key: string, value: unknown, options?: { refresh: boolean }): SortedClassesService {\r\n        let entry = this.getEntry(key);\r\n        if (!entry) {\r\n            console.warn(`Set an unregistered value '${key}' on <${this.elementRef.nativeElement.tagName}> is not recommended. Call register(key) method once, before using set(...) method.`);\r\n            entry = this.register(key).getEntry(key);\r\n        }\r\n        if (!entry) {\r\n            throw new Error('Entry not found #dki3kjk');\r\n        }\r\n        if (entry.fixed) {\r\n            console.error(`Can not change an fixed value '${key} on <${this.elementRef.nativeElement.tagName}>. Use register(key) instead of registerFixed(key)`);\r\n            return this;\r\n        }\r\n        if (value === true) {\r\n            entry.value = key;\r\n        }\r\n        else if (value === false || value === undefined || value === null) {\r\n            entry.value = '';\r\n        }\r\n        else {\r\n            entry.value = value.toString();\r\n        }\r\n        if (options?.refresh !== false) {\r\n            this.updateEntry(entry);\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public get(key: string): unknown {\r\n        return this.getEntry(key)?.value;\r\n    }\r\n\r\n    public has(key: string): boolean {\r\n        return !!this.getEntry(key);\r\n    }\r\n\r\n    public toString(): string {\r\n        return Array.from(this.entries.values())\r\n            .sort(SortedClassesService.sortByOrder)\r\n            .map(entry => entry.value)\r\n            .filter(value => value)\r\n            .join(' ');\r\n    }\r\n\r\n    public update(): void {\r\n        Array.from(this.entries.values())\r\n            .filter(entry => !entry.ignore)\r\n            .sort(SortedClassesService.sortByOrder)\r\n            .forEach(entry => this.updateEntry(entry));\r\n    }\r\n\r\n    private updateEntry(entry: Entry): void {\r\n        const classList = this.elementRef.nativeElement.classList;\r\n        if (entry.previous) {\r\n            classList.remove(...entry.previous);\r\n        }\r\n        const values = entry.value.split(' ').filter(x => !!x);\r\n        classList.add(...values);\r\n        entry.previous = values;\r\n    }\r\n\r\n    private static sortByOrder(left: Entry, right: Entry): number {\r\n        return left.order > right.order ? 1 : left.order < right.order ? -1 : 0;\r\n    }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { MonoTypeOperatorFunction, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport abstract class Destroyable implements OnDestroy {\r\n    private readonly destroySubject = new Subject<void>();\r\n\r\n    /**\r\n     * An observable that emits when the component is destroyed.\r\n     */\r\n    public readonly destroy = this.destroySubject.asObservable();\r\n\r\n    /**\r\n     * Pipe this method to a subject to take values until the component is destroyed.\r\n     * Example: `observable.pipe(this.takeUntilDestroy()).subscribe(...);`\r\n     * Equals to `observable.pipe(takeUntil(this.destroy)).subscribe(...);`.\r\n     */\r\n    public takeUntilDestroy<T>(): MonoTypeOperatorFunction<T> {\r\n        return takeUntil(this.destroy);\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        this.destroySubject.next();\r\n    }\r\n}\r\n","import { Directive, ElementRef, inject, Inject, OnInit, Optional } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\nimport { Destroyable } from './destroyable';\r\n\r\n@Directive({\r\n    providers: BaseComponent.providers\r\n})\r\nexport abstract class BaseComponent extends Destroyable implements OnInit {\r\n    protected static readonly providers = [SortedClassesService];\r\n\r\n    protected readonly classes = inject(SortedClassesService, { self: true });\r\n    private noClassesValue = false;\r\n    private initialized = false;\r\n    protected readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n    protected tag: string;\r\n    protected validateAttributes = true;\r\n\r\n    protected get noClasses(): boolean {\r\n        return this.noClassesValue;\r\n    }\r\n\r\n    protected set noClasses(value: boolean) {\r\n        this.noClassesValue = value;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    protected constructor(\r\n        @Optional() @Inject('none') useUiClass = true\r\n    ) {\r\n        super();\r\n        this.tag = this.elementRef.nativeElement.tagName.toLowerCase();\r\n        if (useUiClass) {\r\n            this.classes.registerFixed('ui');\r\n        }\r\n        this.classes.register('style');\r\n    }\r\n\r\n    public ngOnInit(): void {\r\n        this.initialized = true;\r\n        if (this.classes) {\r\n            this.readPropertiesFromAttributes();\r\n            this.refreshClasses();\r\n        }\r\n    }\r\n\r\n    private readPropertiesFromAttributes(): void {\r\n        if (!this.validateAttributes) {\r\n            return;\r\n        }\r\n        for (let index = 0; index < this.elementRef.nativeElement.attributes.length; index++) {\r\n            const attribute = this.elementRef.nativeElement.attributes[index];\r\n            if (attribute.name.indexOf('_ng') === 0 || attribute.name.indexOf('ng-') === 0 || attribute.name.indexOf('m-') === 0 || attribute.name === 'class' || attribute.name === 'title') {\r\n                continue;\r\n            }\r\n            if (!this.classes.has(attribute.name)) {\r\n                console.warn(`Unknown attribute '${attribute.name}' on <${this.tag}> found.`, this.elementRef.nativeElement);\r\n            }\r\n        }\r\n    }\r\n\r\n    // TODO: Check usage\r\n    protected refreshClasses(): void {\r\n        if (!this.initialized) {\r\n            return;\r\n        }\r\n        this.classes.update();\r\n    }\r\n\r\n    protected toBoolean(value: BooleanLike): boolean {\r\n        return toBoolean(value);\r\n    }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { Destroyable } from './destroyable';\r\n\r\n/**\r\n * @deprecated Use Destroyable instead\r\n */\r\n@Directive()\r\nexport abstract class DestroyableComponent extends Destroyable {\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { Destroyable } from './destroyable';\r\n\r\n/**\r\n * @deprecated Use Destroyable instead\r\n */\r\n@Directive()\r\nexport abstract class DestroyableDirective extends Destroyable {\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-active]',\r\n    })\r\nexport class ActiveDirective {\r\n    public static readonly active = 'active';\r\n    public static readonly default = { directive: ActiveDirective, inputs: [ActiveDirective.active] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isActive = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(ActiveDirective.active);\r\n    }\r\n\r\n    public get active(): boolean {\r\n        return this.isActive;\r\n    }\r\n\r\n    @Input()\r\n    public set active(value: BooleanLike) {\r\n        this.isActive = toBoolean(value);\r\n        this.classes.set(ActiveDirective.active, this.isActive);\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-basic]',\r\n    })\r\nexport class BasicDirective {\r\n    public static readonly basic = 'basic';\r\n    public static readonly default = { directive: BasicDirective, inputs: [BasicDirective.basic] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isBasic = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(BasicDirective.basic);\r\n    }\r\n\r\n    public get basic(): boolean {\r\n        return this.isBasic;\r\n    }\r\n\r\n    @Input()\r\n    public set basic(value: BooleanLike) {\r\n        this.isBasic = toBoolean(value);\r\n        this.classes.set(BasicDirective.basic, this.isBasic);\r\n    }\r\n}\r\n\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { ColorName } from '../models/color';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-color]'\r\n})\r\nexport class ColorDirective {\r\n    public static readonly color = 'color';\r\n    public static readonly default = { directive: ColorDirective, inputs: [ColorDirective.color] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private colorValue: ColorName | undefined;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(ColorDirective.color);\r\n    }\r\n\r\n    public get color(): ColorName | undefined {\r\n        return this.colorValue;\r\n    }\r\n\r\n    @Input()\r\n    public set color(value: ColorName | undefined) {\r\n        this.colorValue = value;\r\n        this.classes.set(ColorDirective.color, value);\r\n    }\r\n\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-disabled]',\r\n    })\r\nexport class DisabledDirective {\r\n    public static readonly disabled = 'disabled';\r\n    public static readonly default = { directive: DisabledDirective, inputs: [DisabledDirective.disabled] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isDisabled = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(DisabledDirective.disabled);\r\n    }\r\n\r\n    public get disabled(): boolean {\r\n        return this.isDisabled;\r\n    }\r\n\r\n    @Input()\r\n    public set disabled(value: BooleanLike) {\r\n        this.isDisabled = toBoolean(value);\r\n        this.classes.set(DisabledDirective.disabled, this.isDisabled);\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-inverted]',\r\n    })\r\nexport class InvertedDirective {\r\n    public static readonly inverted = 'inverted';\r\n    public static readonly default = { directive: InvertedDirective, inputs: [InvertedDirective.inverted] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isInverted: boolean | undefined;\r\n    private isInvertedDefault = false;\r\n\r\n    @Input()\r\n    public get inverted(): boolean {\r\n        return this.isInverted ?? this.isInvertedDefault;\r\n    }\r\n\r\n    public set inverted(value: BooleanLike) {\r\n        this.isInverted = toBoolean(value);\r\n        this.classes.set(InvertedDirective.inverted, this.inverted);\r\n    }\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(InvertedDirective.inverted);\r\n    }\r\n\r\n    public setInvertedDefault(value: boolean): void {\r\n        this.isInvertedDefault = value;\r\n        this.classes.set(InvertedDirective.inverted, this.inverted);\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-loading]',\r\n    })\r\nexport class LoadingDirective {\r\n    public static readonly loading = 'loading';\r\n    public static readonly default = { directive: LoadingDirective, inputs: [LoadingDirective.loading] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isLoading = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(LoadingDirective.loading);\r\n    }\r\n\r\n    public get loading(): boolean {\r\n        return this.isLoading;\r\n    }\r\n\r\n    @Input()\r\n    public set loading(value: BooleanLike) {\r\n        this.isLoading = toBoolean(value);\r\n        this.classes.set(LoadingDirective.loading, this.isLoading);\r\n    }\r\n}\r\n","import { Directive, Inject, Input, Optional } from '@angular/core';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { BaseComponent } from './base.component';\r\n\r\n@Directive()\r\nexport abstract class InvertibleComponent extends BaseComponent {\r\n    protected static override readonly providers = [...BaseComponent.providers];\r\n\r\n    private isInverted = false;\r\n    private isInvertedChanged = false;\r\n\r\n    @Input()\r\n    public get inverted(): boolean {\r\n        return this.isInverted;\r\n    }\r\n\r\n    public set inverted(value: BooleanLike) {\r\n        this.isInvertedChanged = true;\r\n        this.isInverted = this.toBoolean(value);\r\n        this.classes.set('inverted', this.isInverted);\r\n    }\r\n\r\n    protected constructor(\r\n        @Optional() @Inject('none') useUiClass = true\r\n    ) {\r\n        super(useUiClass);\r\n        this.classes.register('inverted');\r\n    }\r\n\r\n    protected refreshInverted(value: boolean): void {\r\n        if (this.isInvertedChanged) {\r\n            return;\r\n        }\r\n        this.inverted = value;\r\n        this.isInvertedChanged = false;\r\n    }\r\n}\r\n","import { Directive, HostBinding, Input } from '@angular/core';\r\nimport { ActiveDirective } from '../directives/active.directive';\r\nimport { BasicDirective } from '../directives/basic.directive';\r\nimport { ColorDirective } from '../directives/color.directive';\r\nimport { DisabledDirective } from '../directives/disabled.directive';\r\nimport { InvertedDirective } from '../directives/inverted.directive';\r\nimport { LoadingDirective } from '../directives/loading.directive';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { InvertibleComponent } from './invertible.component';\r\n\r\n@Directive({\r\n    hostDirectives: [ColorDirective.default, BasicDirective.default, InvertedDirective.default, DisabledDirective.default, LoadingDirective.default, ActiveDirective.default],\r\n    providers: ButtonBaseComponent.providers\r\n})\r\nexport abstract class ButtonBaseComponent extends InvertibleComponent {\r\n    protected static override readonly providers = [...InvertibleComponent.providers];\r\n    private sizeValue = '';\r\n    private isPrimary = false;\r\n    private isSecondary = false;\r\n    private isPositive = false;\r\n    private isNegative = false;\r\n    private isCircular = false;\r\n    private isAttachedLeft = false;\r\n    private isAttachedTop = false;\r\n    private isAttachedRight = false;\r\n    private isAttachedBottom = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.primary')\r\n    public get primary(): boolean {\r\n        return this.isPrimary;\r\n    }\r\n\r\n    public set primary(value: BooleanLike) {\r\n        this.isPrimary = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.secondary')\r\n    public get secondary(): boolean {\r\n        return this.isSecondary;\r\n    }\r\n\r\n    public set secondary(value: BooleanLike) {\r\n        this.isSecondary = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.positive')\r\n    public get positive(): boolean {\r\n        return this.isPositive;\r\n    }\r\n\r\n    public set positive(value: BooleanLike) {\r\n        this.isPositive = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.negative')\r\n    public get negative(): boolean {\r\n        return this.isNegative;\r\n    }\r\n\r\n    public set negative(value: BooleanLike) {\r\n        this.isNegative = this.toBoolean(value);\r\n    }\r\n\r\n    public get size(): string {\r\n        return this.sizeValue;\r\n    }\r\n\r\n    @Input()\r\n    public set size(value: string) {\r\n        this.sizeValue = value;\r\n        this.classes.set('size', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.circular')\r\n    public get circular(): boolean {\r\n        return this.isCircular;\r\n    }\r\n\r\n    public set circular(value: BooleanLike) {\r\n        this.isCircular = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.left')\r\n    public get attachedLeft(): boolean {\r\n        return this.isAttachedLeft;\r\n    }\r\n\r\n    public set attachedLeft(value: BooleanLike) {\r\n        this.isAttachedLeft = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.top')\r\n    public get attachedTop(): boolean {\r\n        return this.isAttachedTop;\r\n    }\r\n\r\n    public set attachedTop(value: BooleanLike) {\r\n        this.isAttachedTop = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.right')\r\n    public get attachedRight(): boolean {\r\n        return this.isAttachedRight;\r\n    }\r\n\r\n    public set attachedRight(value: BooleanLike) {\r\n        this.isAttachedRight = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.bottom')\r\n    public get attachedBottom(): boolean {\r\n        return this.isAttachedBottom;\r\n    }\r\n\r\n    public set attachedBottom(value: BooleanLike) {\r\n        this.isAttachedBottom = this.toBoolean(value);\r\n    }\r\n\r\n    @HostBinding('class.attached')\r\n    protected get attached(): boolean {\r\n        return this.isAttachedTop || this.attachedBottom || this.attachedLeft || this.attachedRight;\r\n    }\r\n\r\n    @HostBinding('class.button')\r\n    protected readonly button = true;\r\n\r\n    protected constructor() {\r\n        super();\r\n        this.elementRef.nativeElement.setAttribute('tabindex', '0');\r\n        this.classes.register('size', 'primary', 'secondary', 'positive', 'negative', 'circular', 'tabindex', 'attachedLeft', 'attachedRight', 'attachedTop', 'attachedBottom');\r\n    }\r\n}\r\n","import { Directive, ElementRef, Inject, inject, OnInit, Optional, TypeProvider } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\nimport { Destroyable } from './destroyable';\r\n\r\n@Directive()\r\nexport abstract class BaseDirective extends Destroyable implements OnInit {\r\n    protected static readonly providers: TypeProvider[] = [SortedClassesService];\r\n\r\n    protected readonly classes = inject(SortedClassesService, { self: true });\r\n    private noClassesValue = false;\r\n    private initialized = false;\r\n    protected readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef, { self: true });\r\n\r\n    protected tag: string;\r\n    protected validateAttributes = true;\r\n\r\n    protected get noClasses(): boolean {\r\n        return this.noClassesValue;\r\n    }\r\n\r\n    protected set noClasses(value: boolean) {\r\n        this.noClassesValue = value;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    protected constructor(\r\n        @Optional() @Inject('none') useUiClass = true\r\n    ) {\r\n        super();\r\n        this.tag = this.elementRef.nativeElement.tagName.toLowerCase();\r\n        if (useUiClass) {\r\n            this.classes.registerFixed('ui');\r\n        }\r\n    }\r\n\r\n    public ngOnInit(): void {\r\n        this.initialized = true;\r\n        this.readPropertiesFromAttributes();\r\n        this.refreshClasses();\r\n    }\r\n\r\n    private readPropertiesFromAttributes(): void {\r\n        if (!this.validateAttributes) {\r\n            return;\r\n        }\r\n        for (let index = 0; index < this.elementRef.nativeElement.attributes.length; index++) {\r\n            const attribute = this.elementRef.nativeElement.attributes[index];\r\n            if (attribute.name.indexOf('_ng') === 0 || attribute.name.indexOf('ng-') === 0 || attribute.name.indexOf('m-') === 0 || attribute.name === 'class' || attribute.name === 'title') {\r\n                continue;\r\n            }\r\n            if (!this.classes.has(attribute.name)) {\r\n                console.warn(`Unknown attribute '${attribute.name}' on <${this.tag}> found.`, this.elementRef.nativeElement);\r\n            }\r\n        }\r\n    }\r\n\r\n    protected refreshClasses(): void {\r\n        if (!this.initialized) {\r\n            return;\r\n        }\r\n        this.classes.update();\r\n    }\r\n\r\n    protected toBoolean(value: BooleanLike): boolean {\r\n        return toBoolean(value);\r\n    }\r\n\r\n}\r\n\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { AnimationDirection } from './animation-direction';\r\n\r\n@Component({\r\n    selector: 'm-animation',\r\n    templateUrl: './animation.component.html',\r\n    styleUrls: ['./animation.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class AnimationComponent extends BaseComponent {\r\n\r\n    @Input()\r\n    @HostBinding('class.hidden')\r\n    public hidden = true;\r\n\r\n    @Input()\r\n    public direction: AnimationDirection;\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.registerFixed('content');\r\n        this.classes.register('hidden', 'direction');\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-breadcrumb',\r\n    templateUrl: './breadcrumb.component.html',\r\n    styleUrls: ['./breadcrumb.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class BreadcrumbComponent extends BaseComponent {\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('breadcrumb');\r\n    }\r\n}\r\n","<!-- TODO: Not yet implemented -->\r\n<!--  <a class=\"section\">Home</a>-->\r\n<!--  <i class=\"right angle icon divider\"></i>-->\r\n<!--  <a class=\"section\">Store</a>-->\r\n<!--  <i class=\"right angle icon divider\"></i>-->\r\n<!--  <div class=\"active section\">T-Shirt</div>-->\r\n","export declare type KeyCode = 'Space' | 'Enter' | 'Escape';\r\n\r\nexport class Key {\r\n    public static readonly space = new Key('Space');\r\n    public static readonly enter = new Key('Enter');\r\n    public static readonly escape = new Key('Escape');\r\n\r\n    public constructor(\r\n        public readonly code: string\r\n    ) {\r\n    }\r\n\r\n    public is(event: KeyboardEvent): boolean {\r\n        return Key.is(event, this);\r\n    }\r\n\r\n    public static is(event: KeyboardEvent, ...keys: (KeyCode | Key)[]): boolean {\r\n        return keys.some(key => event.key === (typeof key === 'string' ? key : key.code));\r\n    }\r\n}\r\n","import { NgIfContext } from '@angular/common';\r\nimport { Component, ContentChild, EventEmitter, HostBinding, HostListener, inject, Input, Output, TemplateRef } from '@angular/core';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { ActiveDirective } from '../../directives/active.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { Key } from '../../models/key';\r\n\r\n@Component({\r\n    selector: 'm-toggle-button',\r\n    templateUrl: './toggle-button.component.html',\r\n    styleUrls: ['./toggle-button.component.scss'],\r\n    imports: [],\r\n    providers: [...ButtonBaseComponent.providers]\r\n})\r\nexport class ToggleButtonComponent extends ButtonBaseComponent {\r\n    private readonly activeDirective = inject(ActiveDirective, { self: true });\r\n\r\n    @ContentChild('active')\r\n    // eslint-disable-next-line no-null/no-null\r\n    public activeTemplate: TemplateRef<NgIfContext<boolean>> | null = null;\r\n\r\n    protected get active(): boolean {\r\n        return this.activeDirective.active;\r\n    }\r\n\r\n    protected set active(value: BooleanLike) {\r\n        this.activeDirective.active = value;\r\n    }\r\n\r\n    public get checked(): boolean {\r\n        return this.active;\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.checked')\r\n    public set checked(value: BooleanLike) {\r\n        this.active = value;\r\n    }\r\n\r\n    @Output()\r\n    public readonly checkedChange = new EventEmitter<boolean>();\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('checked')\r\n            .registerFixed('toggle');\r\n    }\r\n\r\n    @HostListener('click')\r\n    protected toggle(): void {\r\n        if (this.checked) {\r\n            this.uncheck();\r\n        }\r\n        else {\r\n            this.check();\r\n        }\r\n    }\r\n\r\n    @HostListener('keydown', ['$event'])\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (Key.is(event, Key.space, Key.enter)) {\r\n            this.toggle();\r\n            event.preventDefault();\r\n        }\r\n    }\r\n\r\n    public check(): void {\r\n        if (this.checked) {\r\n            return;\r\n        }\r\n        this.checked = true;\r\n        this.checkedChange.emit(this.checked);\r\n    }\r\n\r\n    public uncheck(): void {\r\n        if (!this.checked) {\r\n            return;\r\n        }\r\n        this.checked = false;\r\n        this.checkedChange.emit(this.checked);\r\n    }\r\n}\r\n","@if (!active || !activeTemplate) {\n  <ng-content></ng-content>\n} @else {\n  <ng-template [ngTemplateOutlet]=\"activeTemplate\"></ng-template>\n}\n","import { Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ColorDirective } from '../../directives/color.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ToggleButtonComponent } from '../toggle-button/toggle-button.component';\r\n\r\n@Component({\r\n    selector: 'm-button-group',\r\n    templateUrl: './button-group.component.html',\r\n    styleUrls: ['./button-group.component.scss'],\r\n    hostDirectives: [ColorDirective.default],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class ButtonGroupComponent extends BaseComponent {\r\n    private toggleButtonsChangeSubscription?: Subscription;\r\n    private toggleButtonSubscriptions?: Subscription[];\r\n    private toggleButtonsValue?: QueryList<ToggleButtonComponent>;\r\n    private isAttachedLeft = false;\r\n    private isAttachedTop = false;\r\n    private isAttachedRight = false;\r\n    private isAttachedBottom = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.left')\r\n    public get attachedLeft(): boolean {\r\n        return this.isAttachedLeft;\r\n    }\r\n\r\n    public set attachedLeft(value: BooleanLike) {\r\n        this.isAttachedLeft = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.top')\r\n    public get attachedTop(): boolean {\r\n        return this.isAttachedTop;\r\n    }\r\n\r\n    public set attachedTop(value: BooleanLike) {\r\n        this.isAttachedTop = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.right')\r\n    public get attachedRight(): boolean {\r\n        return this.isAttachedRight;\r\n    }\r\n\r\n    public set attachedRight(value: BooleanLike) {\r\n        this.isAttachedRight = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.bottom')\r\n    public get attachedBottom(): boolean {\r\n        return this.isAttachedBottom;\r\n    }\r\n\r\n    public set attachedBottom(value: BooleanLike) {\r\n        this.isAttachedBottom = this.toBoolean(value);\r\n    }\r\n\r\n    @HostBinding('class.attached')\r\n    protected get attached(): boolean {\r\n        return this.isAttachedTop || this.attachedBottom || this.attachedLeft || this.attachedRight;\r\n    }\r\n\r\n    @ContentChildren(ToggleButtonComponent)\r\n    protected get toggleButtons(): QueryList<ToggleButtonComponent> | undefined {\r\n        return this.toggleButtonsValue;\r\n    }\r\n\r\n    protected set toggleButtons(query: QueryList<ToggleButtonComponent> | undefined) {\r\n        this.toggleButtonsChangeSubscription?.unsubscribe();\r\n        this.toggleButtonsChangeSubscription = query?.changes.subscribe(() => this.subscribeToggleButtons());\r\n        this.toggleButtonsValue = query;\r\n        this.subscribeToggleButtons();\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('buttons');\r\n    }\r\n\r\n    private subscribeToggleButtons(): void {\r\n        this.toggleButtonSubscriptions?.forEach(subscription => subscription.unsubscribe());\r\n        this.toggleButtonSubscriptions = this.toggleButtons?.map(button => button.checkedChange.subscribe(value => value ? this.uncheckOthers(button) : this.keepOneChecked()));\r\n    }\r\n\r\n    private uncheckOthers(button: ToggleButtonComponent): void {\r\n        this.toggleButtons?.filter(x => x !== button).forEach(x => x.uncheck());\r\n    }\r\n\r\n    private keepOneChecked(): void {\r\n        const buttons = Array.from(this.toggleButtons ?? []);\r\n        if (buttons.length > 0 && buttons.every(button => !button.checked)) {\r\n            buttons[0].check();\r\n        }\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-fluid]',\r\n    })\r\nexport class FluidDirective {\r\n    public static readonly fluid = 'fluid';\r\n    public static readonly default = { directive: FluidDirective, inputs: [FluidDirective.fluid] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isFluid = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(FluidDirective.fluid);\r\n    }\r\n\r\n    public get fluid(): boolean {\r\n        return this.isFluid;\r\n    }\r\n\r\n    @Input()\r\n    public set fluid(value: BooleanLike) {\r\n        this.isFluid = toBoolean(value);\r\n        this.classes.set(FluidDirective.fluid, this.isFluid);\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-pointing]',\r\n    })\r\nexport class PointingDirective {\r\n    public static readonly pointing = 'pointing';\r\n    public static readonly default = { directive: PointingDirective, inputs: [PointingDirective.pointing] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isPointing = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(PointingDirective.pointing);\r\n    }\r\n\r\n    public get pointing(): boolean {\r\n        return this.isPointing;\r\n    }\r\n\r\n    @Input()\r\n    public set pointing(value: BooleanLike) {\r\n        this.isPointing = toBoolean(value);\r\n        this.classes.set(PointingDirective.pointing, this.isPointing);\r\n    }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconProp, SizeProp } from '@fortawesome/fontawesome-svg-core';\r\nimport { IconSize } from './icon-size';\r\nimport { IconType } from './icon-type';\r\n\r\n@Component({\r\n    selector: 'm-icon',\r\n    templateUrl: './icon.component.html',\r\n    styleUrls: ['./icon.component.scss'],\r\n    imports: [FontAwesomeModule, NgClass]\r\n})\r\nexport class IconComponent {\r\n    protected mIcon?: string;\r\n    protected mSize?: IconSize;\r\n    protected faIcon?: IconProp;\r\n    protected faSize?: SizeProp;\r\n\r\n    @Input()\r\n    public get icon(): IconType | undefined {\r\n        return this.mIcon ?? this.faIcon;\r\n    }\r\n\r\n    public set icon(value: IconType | undefined) {\r\n        if (typeof value === 'string') {\r\n            this.mIcon = value;\r\n        }\r\n        else {\r\n            this.faIcon = value;\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public get size(): IconSize {\r\n        return this.mSize ?? this.faSize;\r\n    }\r\n\r\n    public set size(value: IconSize) {\r\n        switch (value) {\r\n            case 'mini':\r\n            case 'tiny':\r\n            case 'small':\r\n                this.mSize = value;\r\n                this.faSize = 'xs';\r\n                break;\r\n            case 'large':\r\n            case 'lg':\r\n                this.mSize = 'large';\r\n                this.faSize = 'lg';\r\n                break;\r\n            case 'big':\r\n            case '2x':\r\n                this.mSize = 'big';\r\n                this.faSize = '2x';\r\n                break;\r\n            case 'huge':\r\n            case '4x':\r\n                this.mSize = 'huge';\r\n                this.faSize = '4x';\r\n                break;\r\n            case 'massive':\r\n            case '8x':\r\n                this.mSize = 'massive';\r\n                this.faSize = '8x';\r\n                break;\r\n            case 'xs':\r\n            case 'sm':\r\n            case '1x':\r\n                this.mSize = 'small';\r\n                this.faSize = value;\r\n                break;\r\n            case '3x':\r\n                this.mSize = 'big';\r\n                this.faSize = value;\r\n                break;\r\n            case '5x':\r\n            case '6x':\r\n                this.mSize = 'huge';\r\n                this.faSize = value;\r\n                break;\r\n            case '7x':\r\n            case '9x':\r\n            case '10x':\r\n                this.mSize = 'massive';\r\n                this.faSize = value;\r\n                break;\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public iconClass?: string = 'icon';\r\n}\r\n","@if (mIcon) {\n    <i class=\"{{icon}} {{size}}\" [ngClass]=\"iconClass\"></i>\n}\n@if (faIcon) {\n    <fa-icon [icon]=\"faIcon\" [size]=\"faSize ?? '1x'\" [ngClass]=\"iconClass\" />\n}\n\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BasicDirective } from '../../directives/basic.directive';\r\nimport { ColorDirective } from '../../directives/color.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { LabelOptions } from '../../models/label-options';\r\nimport { LabelPosition } from '../../models/label-position';\r\n\r\nexport declare type LabelPointing =\r\n    'left'\r\n    | 'right'\r\n    | 'top'\r\n    | 'bottom'\r\n    | undefined;\r\n\r\n@Component({\r\n    selector: 'm-label',\r\n    templateUrl: './label.component.html',\r\n    styleUrls: ['./label.component.scss'],\r\n    hostDirectives: [BasicDirective.default, ColorDirective.default],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class LabelComponent extends BaseComponent implements LabelOptions {\r\n    private positionValue: LabelPosition;\r\n    private pointingValue: LabelPointing;\r\n    private isHorizontal = false;\r\n\r\n    @Input()\r\n    public get position(): LabelPosition {\r\n        return this.positionValue;\r\n    }\r\n\r\n    public set position(value: LabelPosition) {\r\n        this.positionValue = value;\r\n        this.classes.set('position', value);\r\n    }\r\n\r\n    @Input()\r\n    public get pointing(): LabelPointing {\r\n        return this.pointingValue;\r\n    }\r\n\r\n    public set pointing(value: LabelPointing) {\r\n        this.pointingValue = value;\r\n        this.classes.set('pointing', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.horizontal')\r\n    public get horizontal(): boolean {\r\n        return this.isHorizontal;\r\n    }\r\n\r\n    public set horizontal(value: BooleanLike) {\r\n        this.isHorizontal = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('pointing', 'position', 'horizontal')\r\n            .registerFixed('label');\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ContentChild, inject, Input } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { BasicDirective } from '../../directives/basic.directive';\r\nimport { ColorDirective } from '../../directives/color.directive';\r\nimport { FluidDirective } from '../../directives/fluid.directive';\r\nimport { PointingDirective } from '../../directives/pointing.directive';\r\nimport { ColorName } from '../../models/color';\r\nimport { LabelPosition } from '../../models/label-position';\r\nimport { AnimationDirection } from '../animation/animation-direction';\r\nimport { AnimationComponent } from '../animation/animation.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\nexport declare type Pointing =\r\n    'left'\r\n    | 'right'\r\n    | 'top'\r\n    | 'bottom'\r\n    | undefined;\r\n\r\n@Component({\r\n    selector: 'm-button',\r\n    templateUrl: './button.component.html',\r\n    styleUrls: ['./button.component.scss'],\r\n    imports: [IconComponent, NgTemplateOutlet, NgClass],\r\n    hostDirectives: [FluidDirective.default, PointingDirective.default],\r\n    providers: [...ButtonBaseComponent.providers]\r\n})\r\nexport class ButtonComponent extends ButtonBaseComponent {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    private readonly basicDirective = inject(BasicDirective, { self: true });\r\n    private readonly colorDirective = inject(ColorDirective, { self: true });\r\n    private animatedField?: AnimationComponent;\r\n    private labelField?: LabelComponent;\r\n    private socialValue?: string;\r\n    private iconPositionValue: LabelPosition;\r\n    private icoValue?: IconType;\r\n\r\n    protected get basic(): boolean {\r\n        return this.basicDirective.basic;\r\n    }\r\n\r\n    protected get color(): ColorName | undefined {\r\n        return this.colorDirective.color;\r\n    }\r\n\r\n    public get animated(): AnimationComponent | undefined {\r\n        return this.animatedField;\r\n    }\r\n\r\n    @ContentChild(AnimationComponent)\r\n    public set animated(value: AnimationComponent | undefined) {\r\n        this.animatedField = value;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    public get animation(): AnimationDirection {\r\n        return this.animated ? this.animated.direction : undefined;\r\n    }\r\n\r\n    @ContentChild(LabelComponent)\r\n    public get label(): LabelComponent | undefined {\r\n        return this.labelField;\r\n    }\r\n\r\n    public set label(value: LabelComponent | undefined) {\r\n        this.labelField = value;\r\n        this.classes.set('labeled', !!value);\r\n    }\r\n\r\n    public get labelPosition(): LabelPosition {\r\n        return this.label ? this.label.position : undefined;\r\n    }\r\n\r\n    @Input()\r\n    public get icon(): IconType | undefined {\r\n        return this.icoValue;\r\n    }\r\n\r\n    public set icon(value: IconType | undefined) {\r\n        this.icoValue = value;\r\n        this.classes.set('icon', !!value);\r\n        this.classes.set('iconLabeled', value ? 'labeled' : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @Input()\r\n    public get iconPosition(): LabelPosition {\r\n        return this.iconPositionValue;\r\n    }\r\n\r\n    public set iconPosition(value: LabelPosition) {\r\n        this.iconPositionValue = value;\r\n        this.classes.set('iconPosition', value);\r\n    }\r\n\r\n    @Input()\r\n    public get social(): string | undefined {\r\n        return this.socialValue;\r\n    }\r\n\r\n    public set social(value: string | undefined) {\r\n        this.socialValue = value;\r\n        this.classes.set('social', value);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('animation', 'animated', 'labelPosition', 'iconPosition', 'label', 'labeled', 'iconLabeled', 'social', 'icon');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        ButtonComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","@if (animated) {\n  <div class=\"visible content\">\n    <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n  </div>\n  <ng-content select=\"m-animation\"></ng-content>\n}\n@if (label) {\n  @if (labelPosition === 'left') {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n  }\n  <div class=\"ui\" [class.basic]=\"basic\" [class.icon]=\"icon\" [ngClass]=\"color\" [class.button]=\"true\">\n    <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n  </div>\n  @if (labelPosition !== 'left') {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n  }\n  <ng-template #labelTemplate>\n    <ng-content select=\"m-label\"></ng-content>\n  </ng-template>\n}\n@if (social) {\n  <m-icon [icon]=\"social.toLowerCase()\" class=\"icon\"></m-icon>\n  {{social}}\n}\n@if (!animated && !label && !social) {\n  <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n}\n<ng-template #content>\n  @if (icon) {\n    <m-icon [icon]=\"icon\" [size]=\"iconSize\"></m-icon>\n  }\n  <ng-content></ng-content>\n</ng-template>\n","import { Component, Input } from '@angular/core';\r\nimport { ButtonComponent } from './button.component';\r\n\r\n@Component({\r\n    selector: 'm-button-defaults',\r\n    template: ''\r\n})\r\nexport class ButtonDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        ButtonComponent.defaults.inverted = value;\r\n        ButtonComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","import { Component, HostBinding } from '@angular/core';\r\n\r\n\r\n@Component({\n    selector: 'm-card',\n    templateUrl: './card.component.html',\n    styleUrls: ['./card.component.scss'],\n    imports: []\n})\r\nexport class CardComponent {\r\n\r\n    @HostBinding('class.ui')\r\n    @HostBinding('class.card')\r\n    protected readonly host = true;\r\n}\r\n","<ng-content></ng-content>\r\n","import { Component, HostBinding } from '@angular/core';\r\n\r\n\r\n@Component({\n    selector: 'm-card-group',\n    imports: [],\n    templateUrl: './card-group.component.html',\n    styleUrls: ['./card-group.component.scss']\n})\r\nexport class CardGroupComponent {\r\n    @HostBinding('class.ui')\r\n    @HostBinding('class.cards')\r\n    protected readonly host = true;\r\n}\r\n","<ng-content></ng-content>\r\n","export class Math2 {\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n    private constructor() {}\r\n\r\n    public static keepInRange(min: number, value: number | undefined, max?: number | undefined): number\r\n    public static keepInRange(min: number | undefined, value: number, max?: number | undefined): number\r\n    public static keepInRange(min: number | undefined, value: number | undefined, max: number): number\r\n    public static keepInRange(min: number | undefined, value: number | undefined, max?: number | undefined): number {\r\n        if (min !== undefined && (value === undefined || value < min)) {\r\n            return min;\r\n        }\r\n        if (max !== undefined && (value === undefined || value > max)) {\r\n            return max;\r\n        }\r\n        return value as number;\r\n    }\r\n\r\n    public static sum(values: (number | undefined)[] | undefined): number {\r\n        let sum = 0;\r\n        values?.forEach(value => sum += value ?? 0);\r\n        return sum;\r\n    }\r\n\r\n    public static round(value: number, decimals: number): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.round(value * factor) / factor;\r\n    }\r\n}\r\n","import { Math2 } from \"../helpers/math2\";\r\n\r\nexport declare type FieldSize = '' | 'one' | 'two' | 'three' | 'four' | 'five' | 'six' | 'seven' | 'eight' | 'nine' | 'ten' | 'eleven' | 'twelve' | 'thirteen' | 'fourteen' | 'fifteen' | 'sixteen';\r\n\r\nexport declare type ParsableFieldSize = FieldSize\r\n    | number | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16\r\n    | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16'\r\n    | undefined;\r\n\r\nexport const fieldSizes: FieldSize[] = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen'];\r\n\r\nexport const parseFieldSize = (size: ParsableFieldSize): FieldSize => {\r\n    if (typeof size === 'number') {\r\n        return fieldSizes[size];\r\n    }\r\n    const parsedSizeNumber = size ? Math2.keepInRange(1, parseInt(size, 10), 16) : undefined;\r\n    return parsedSizeNumber ? fieldSizes[parsedSizeNumber] : (size ?? '') as FieldSize;\r\n};\r\n","import { Component, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\r\n\r\nexport declare type CellFloat =\r\n    'left'\r\n    | 'right';\r\n\r\nexport declare type CellAlign =\r\n    'left'\r\n    | 'right';\r\n\r\n@Component({\r\n    selector: 'm-cell',\r\n    templateUrl: './cell.component.html',\r\n    styleUrls: ['./cell.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class CellComponent extends BaseComponent {\r\n    private sizeValue?: FieldSize;\r\n    private floatValue?: CellFloat;\r\n    private alignValue?: CellAlign;\r\n\r\n    public get size(): FieldSize | undefined {\r\n        return this.sizeValue;\r\n    }\r\n\r\n    @Input()\r\n    public set size(value: ParsableFieldSize | undefined) {\r\n        this.sizeValue = parseFieldSize(value);\r\n        this.classes.set('size', this.sizeValue);\r\n        this.classes.set('wide', !!this.sizeValue);\r\n    }\r\n\r\n    @Input()\r\n    public get float(): CellFloat | undefined {\r\n        return this.floatValue;\r\n    }\r\n\r\n    public set float(value: CellFloat | undefined) {\r\n        this.floatValue = value;\r\n        this.classes.set('float', value ? `${value} floated` : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public get align(): CellAlign | undefined {\r\n        return this.alignValue;\r\n    }\r\n\r\n    public set align(value: CellAlign | undefined) {\r\n        this.alignValue = value;\r\n        this.classes.set('align', value ? `${value} aligned` : undefined);\r\n    }\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('size', 'wide', 'float', 'align')\r\n            .registerFixed('column');\r\n    }\r\n\r\n}\r\n","<ng-content></ng-content>","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-read-only]',\r\n    })\r\nexport class ReadOnlyDirective {\r\n    public static readonly readonly = 'readonly';\r\n    private static readonly readOnly = 'read-only';\r\n    public static readonly default = { directive: ReadOnlyDirective, inputs: [ReadOnlyDirective.readonly] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isReadonly = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(ReadOnlyDirective.readOnly);\r\n    }\r\n\r\n    public get readonly(): boolean {\r\n        return this.isReadonly;\r\n    }\r\n\r\n    @Input()\r\n    public set readonly(value: BooleanLike) {\r\n        this.isReadonly = toBoolean(value);\r\n        this.classes.set(ReadOnlyDirective.readOnly, this.isReadonly);\r\n    }\r\n}\r\n","\r\nimport { Component, EventEmitter, HostBinding, HostListener, inject, Input, Output } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { DisabledDirective } from '../../directives/disabled.directive';\r\nimport { ReadOnlyDirective } from '../../directives/read-only.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { Key } from '../../models/key';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\n@Component({\n    selector: 'm-checkbox',\n    templateUrl: './checkbox.component.html',\n    styleUrls: ['./checkbox.component.scss'],\n    imports: [\n    IconComponent,\n    FormsModule\n],\n    hostDirectives: [DisabledDirective.default, ReadOnlyDirective.default],\n    providers: CheckboxComponent.providers\n})\r\nexport class CheckboxComponent extends InvertibleComponent {\r\n    public static readonly defaults = {\r\n        checkIcon: <IconType>'check',\r\n        checkIconSize: <IconSize>'small',\r\n        indeterminateIcon: <IconType>'minus',\r\n        indeterminateIconSize: <IconSize>'small',\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    protected static override readonly providers = [...InvertibleComponent.providers];\r\n\r\n    private readonly readOnlyDirective = inject(ReadOnlyDirective, { self: true });\r\n    private readonly disabledDirective = inject(DisabledDirective, { self: true });\r\n    private nameValue?: string;\r\n    private labelValue?: string;\r\n    private isChecked: boolean | undefined = false;\r\n    private isIndeterminate = false;\r\n    protected readonly defaults = CheckboxComponent.defaults;\r\n\r\n    public get readonly(): boolean {\r\n        return this.readOnlyDirective.readonly;\r\n    }\r\n\r\n    public set readonly(value: BooleanLike) {\r\n        this.readOnlyDirective.readonly = value;\r\n    }\r\n\r\n    public get disabled(): boolean {\r\n        return this.disabledDirective.disabled;\r\n    }\r\n\r\n    public set disabled(value: BooleanLike) {\r\n        this.disabledDirective.disabled = value;\r\n    }\r\n\r\n    @Input()\r\n    public get value(): boolean | undefined {\r\n        return this.isChecked;\r\n    }\r\n\r\n    public set value(value: BooleanLike) {\r\n        this.isChecked = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get name(): string {\r\n        return this.nameValue ?? '';\r\n    }\r\n\r\n    public set name(value: string | undefined) {\r\n        this.nameValue = value;\r\n    }\r\n\r\n    @Input()\r\n    public get label(): string | undefined {\r\n        return this.labelValue;\r\n    }\r\n\r\n    public set label(value: string | undefined) {\r\n        this.labelValue = value;\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.checked')\r\n    public get checked(): boolean {\r\n        return this.isChecked ?? false;\r\n    }\r\n\r\n    public set checked(value: BooleanLike) {\r\n        this.isChecked = this.toBoolean(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter<boolean | undefined>();\r\n\r\n    @Output()\r\n    public readonly checkedChange = new EventEmitter<boolean>();\r\n\r\n    @Input()\r\n    @HostBinding('class.indeterminate')\r\n    public get indeterminate(): boolean {\r\n        return this.isIndeterminate;\r\n    }\r\n\r\n    public set indeterminate(value: BooleanLike) {\r\n        this.isIndeterminate = this.toBoolean(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly indeterminateChange = this.valueChange;\r\n\r\n    @Input()\r\n    public canUncheck = true;\r\n\r\n    @Input()\r\n    public checkIcon?: IconType;\r\n\r\n    @Input()\r\n    public checkIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public indeterminateIcon?: IconType;\r\n\r\n    @Input()\r\n    public indeterminateIconSize?: IconSize;\r\n\r\n    @HostBinding('class.checkbox')\r\n    public readonly checkbox = true;\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('indeterminate', 'fitted', 'checked', 'value', 'name', 'label', 'readonly');\r\n        CheckboxComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    @HostListener('click', ['$event'])\r\n    protected onClick(event: MouseEvent): void {\r\n        if (event.target instanceof HTMLInputElement || this.readOnlyDirective.readonly || this.disabledDirective.disabled) {\r\n            return;\r\n        }\r\n        this.set(!this.value);\r\n    }\r\n\r\n    @HostListener('keydown', ['$event'])\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (this.readOnlyDirective.readonly || this.disabledDirective.disabled || !Key.space.is(event)) {\r\n            return;\r\n        }\r\n        event.preventDefault();\r\n        this.set(!this.value);\r\n    }\r\n\r\n    protected set(value: boolean): void {\r\n        if (!value && !this.canUncheck) {\r\n            return;\r\n        }\r\n        this.indeterminate = false;\r\n        if (this.value !== value) {\r\n            this.value = value;\r\n            this.onChange();\r\n        }\r\n        this.refreshClasses();\r\n    }\r\n\r\n    protected onChange(): void {\r\n        this.valueChange.emit(this.value);\r\n        this.checkedChange.emit(this.isChecked);\r\n    }\r\n\r\n}\r\n","<input type=\"checkbox\" [name]=\"name\" [ngModel]=\"value\" [indeterminate]=\"indeterminate\" class=\"hidden\">\n<label [attr.for]=\"name\">\n  {{label}}\n  <ng-content></ng-content>\n  @if (checked) {\n    <m-icon [icon]=\"checkIcon ?? defaults.checkIcon\" [size]=\"checkIconSize ?? defaults.checkIconSize\" class=\"icon\"></m-icon>\n  }\n  @if (indeterminate) {\n    <m-icon [icon]=\"indeterminateIcon ?? defaults.indeterminateIcon\" [size]=\"indeterminateIconSize ?? defaults.indeterminateIconSize\" class=\"icon\"></m-icon>\n  }\n</label>\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { CheckboxComponent } from './checkbox.component';\r\n\r\n@Component({\r\n    selector: 'm-checkbox-defaults',\r\n    template: ''\r\n})\r\nexport class CheckboxDefaultsComponent implements OnDestroy {\r\n    private readonly previousDropdownIcon = CheckboxComponent.defaults.checkIcon;\r\n    private readonly previousDropdownIconSize = CheckboxComponent.defaults.checkIconSize;\r\n    private readonly previousDeleteIcon = CheckboxComponent.defaults.indeterminateIcon;\r\n    private readonly previousDeleteIconSize = CheckboxComponent.defaults.indeterminateIconSize;\r\n    private currentCheckIcon?: IconType;\r\n    private currentCheckIconSize?: IconSize;\r\n    private currentIndeterminateIcon?: IconType;\r\n    private currentIndeterminateIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public set checkIcon(value: IconType) {\r\n        this.currentCheckIcon = value;\r\n        CheckboxComponent.defaults.checkIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set checkIconSize(value: IconSize) {\r\n        this.currentCheckIconSize = value;\r\n        CheckboxComponent.defaults.checkIconSize = value;\r\n    }\r\n\r\n    @Input()\r\n    public set indeterminateIcon(value: IconType) {\r\n        this.currentIndeterminateIcon = value;\r\n        CheckboxComponent.defaults.indeterminateIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set indeterminateIconSize(value: IconSize) {\r\n        this.currentIndeterminateIconSize = value;\r\n        CheckboxComponent.defaults.indeterminateIconSize = value;\r\n    }\r\n\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        CheckboxComponent.defaults.inverted = value;\r\n        CheckboxComponent.defaults.invertedChange.next(value);\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentCheckIcon === CheckboxComponent.defaults.checkIcon) {\r\n            CheckboxComponent.defaults.checkIcon = this.previousDropdownIcon;\r\n        }\r\n        if (this.currentCheckIconSize === CheckboxComponent.defaults.checkIconSize) {\r\n            CheckboxComponent.defaults.checkIconSize = this.previousDropdownIconSize;\r\n        }\r\n        if (this.currentIndeterminateIcon === CheckboxComponent.defaults.indeterminateIcon) {\r\n            CheckboxComponent.defaults.indeterminateIcon = this.previousDeleteIcon;\r\n        }\r\n        if (this.currentIndeterminateIconSize === CheckboxComponent.defaults.indeterminateIconSize) {\r\n            CheckboxComponent.defaults.indeterminateIconSize = this.previousDeleteIconSize;\r\n        }\r\n    }\r\n}\r\n","import { Directive, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ButtonBaseComponent } from '../base/button-base.component';\r\nimport { ButtonComponent } from '../components/button/button.component';\r\n\r\n@Directive({\r\n    selector: '[m-button]',\r\n    providers: [...ButtonBaseComponent.providers]\r\n})\r\nexport class ButtonDirective extends ButtonBaseComponent implements OnInit {\r\n    public constructor() {\r\n        super();\r\n        this.validateAttributes = false;\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        ButtonComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { ChatMessage } from '../../models/chat-message';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\nimport { ButtonDirective } from '../../directives/button.directive';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\n    selector: 'm-chat-message',\n    templateUrl: './chat-message.component.html',\n    styleUrls: ['./chat-message.component.scss'],\n    imports: [\n    ButtonComponent,\n    ButtonDirective,\n    RouterLink\n]\n})\r\nexport class ChatMessageComponent {\r\n\r\n    @Input({ required: true })\r\n    public message: ChatMessage | undefined;\r\n\r\n    @HostBinding('class.in')\r\n    public get in(): boolean {\r\n        return this.message?.direction === 'in';\r\n    }\r\n\r\n    @HostBinding('class.out')\r\n    public get out(): boolean {\r\n        return this.message?.direction === 'out';\r\n    }\r\n\r\n    @HostBinding('class.grouped')\r\n    public get grouped(): boolean {\r\n        return this.message?.grouped ?? false;\r\n    }\r\n\r\n    @Output()\r\n    public readonly execute = new EventEmitter<string>();\r\n\r\n    public open(url: string): void {\r\n        window.open(url);\r\n    }\r\n\r\n    public onExecute(action: string): void {\r\n        this.execute.emit(action);\r\n    }\r\n}\r\n","<div class=\"wrapper\">\n  @if (message && !message.grouped) {\n    <div class=\"header\">{{message.sender}}</div>\n  }\n  {{message?.text}}\n  @if (message?.options) {\n    <div class=\"options\">\n      @for (option of message?.options; track option) {\n        @if (option.url) {\n          @if (!option.hideUrl) {\n            @if (option.url.indexOf('http') === 0) {\n              <a m-button [attr.href]=\"option.url\" class=\"option\">{{option.text}}</a>\n            }\n            @if (option.url.indexOf('http') !== 0) {\n              <a m-button [routerLink]=\"[option.url]\" class=\"option\">{{option.text}}</a>\n            }\n          }\n          @if (option.hideUrl) {\n            <a m-button class=\"option\" (click)=\"open(option.url)\">{{option.text}}</a>\n          }\n        }\n        @if (option.action) {\n          <m-button class=\"option\" (click)=\"onExecute(option.action)\">{{option.text}}</m-button>\n        }\n        @if (!option.url && !option.action) {\n          <span class=\"option\">{{option.text}}</span>\n        }\n      }\n    </div>\n  }\n</div>\n","import { Directive, ElementRef, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-fallback-for]',\r\n    })\r\nexport class FallbackForDirective {\r\n\r\n    @Input('m-fallback-for')\r\n    public set fallback(selector: string) {\r\n        const foundElement = this.elementRef.nativeElement.parentElement?.querySelector(selector);\r\n        if (foundElement) {\r\n            this.viewContainer.clear();\r\n        } else {\r\n            this.viewContainer.createEmbeddedView(this.templateRef);\r\n        }\r\n    }\r\n\r\n    public constructor(\r\n        private readonly elementRef: ElementRef<HTMLElement>,\r\n        private readonly templateRef: TemplateRef<unknown>,\r\n        private readonly viewContainer: ViewContainerRef\r\n    ) { }\r\n\r\n}\r\n","\r\nimport { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\n@Component({\n    selector: 'm-icon-button',\n    templateUrl: './icon-button.component.html',\n    styleUrls: ['./icon-button.component.scss'],\n    imports: [\n    IconComponent\n],\n    providers: [...ButtonBaseComponent.providers]\n})\r\nexport class IconButtonComponent extends ButtonBaseComponent implements OnInit {\r\n\r\n    @Input()\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @Input()\r\n    @HostBinding('class.social')\r\n    public social: string | undefined;\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('iconSize', 'social', 'title')\r\n            .registerFixed('icon');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        ButtonComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","@if (icon || social) {\n  <m-icon [icon]=\"icon ?? social\" [size]=\"iconSize\"></m-icon>\n}\n","import { Component, HostListener, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { LabelPosition } from '../../models/label-position';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\n// TODO: Enable animation\r\n// TODO: Enable active state\r\n@Component({\r\n    selector: 'm-label-dropdown',\r\n    templateUrl: './label-dropdown.component.html',\r\n    styleUrls: ['./label-dropdown.component.scss'],\r\n    imports: [\r\n        IconComponent\r\n    ],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class LabelDropdownComponent extends BaseComponent {\r\n    public static readonly defaults = { dropdownIcon: <IconType>'dropdown', dropdownIconSize: <IconSize>undefined };\r\n    protected readonly defaults = LabelDropdownComponent.defaults;\r\n\r\n    public isOpen = false;\r\n\r\n    @Input()\r\n    public position: LabelPosition;\r\n\r\n    @Input()\r\n    public dropdownIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public dropdownIconSize: IconSize;\r\n\r\n    @Input()\r\n    public value: string | undefined;\r\n\r\n    @Input()\r\n    public items: string[] | undefined;\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('dropdown', 'label');\r\n    }\r\n\r\n    private readonly onOutsideClickHandler = () => this.close();\r\n\r\n    @HostListener('click', ['$event'])\r\n    protected onClick(event: MouseEvent): void {\r\n        // TODO: Replace prevent\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        if (this.isOpen) {\r\n            this.close();\r\n        }\r\n        else {\r\n            this.isOpen = true;\r\n            window.addEventListener('click', this.onOutsideClickHandler);\r\n        }\r\n    }\r\n\r\n    private close(): void {\r\n        window.removeEventListener('click', this.onOutsideClickHandler);\r\n        this.isOpen = false;\r\n    }\r\n\r\n    public select(value: string): void {\r\n        this.value = value;\r\n    }\r\n}\r\n","<div class=\"text\">{{value}}</div>\n<m-icon [icon]=\"dropdownIcon ?? defaults.dropdownIcon\" [size]=\"dropdownIconSize ?? defaults.dropdownIconSize\"></m-icon>\n<div class=\"menu\" [class.visible]=\"isOpen\">\n  @for (item of items; track item) {\n    <div class=\"item\" (click)=\"select(item)\">{{item}}</div>\n  }\n</div>\n","import { ContentChild, Directive, HostBinding, Input } from '@angular/core';\r\nimport { ButtonComponent } from '../components/button/button.component';\r\nimport { IconButtonComponent } from '../components/icon-button/icon-button.component';\r\nimport { LabelDropdownComponent } from '../components/label-dropdown/label-dropdown.component';\r\nimport { LabelComponent } from '../components/label/label.component';\r\nimport { LabelOptions } from '../models/label-options';\r\nimport { InvertibleComponent } from './invertible.component';\r\n\r\n@Directive()\r\nexport abstract class LabeledBaseComponent extends InvertibleComponent {\r\n    protected static override readonly providers = [...InvertibleComponent.providers];\r\n\r\n    private labelValue: LabelOptions | undefined;\r\n    private labelDropdownValue: LabelDropdownComponent | undefined;\r\n\r\n    @ContentChild(LabelComponent)\r\n    public get label(): LabelOptions | undefined {\r\n        return this.labelValue;\r\n    }\r\n\r\n    public set label(value: LabelOptions | undefined) {\r\n        this.labelValue = value;\r\n        if (value) {\r\n            this.classes.set('labeled', (value.position ?? '') + ' labeled');\r\n        }\r\n    }\r\n\r\n    @ContentChild(LabelDropdownComponent)\r\n    public get labelDropdown(): LabelDropdownComponent | undefined {\r\n        return this.labelDropdownValue;\r\n    }\r\n\r\n    public set labelDropdown(value: LabelDropdownComponent | undefined) {\r\n        this.labelDropdownValue = value;\r\n        if (value) {\r\n            this.classes.set('labeled', (value.position ?? '') + ' labeled');\r\n        }\r\n    }\r\n\r\n    @ContentChild(IconButtonComponent)\r\n    protected iconButton: IconButtonComponent | undefined;\r\n\r\n    @ContentChild(ButtonComponent)\r\n    protected button: ButtonComponent | undefined;\r\n\r\n    public get isRight(): boolean {\r\n        return !!this.label && this.label.position === 'right' || !!this.labelDropdown && this.labelDropdown.position === 'right';\r\n    }\r\n\r\n    @Input()\r\n    public buttonPosition: 'left' | 'right' = 'right';\r\n\r\n    @HostBinding('class.action')\r\n    public get isAction(): boolean {\r\n        return !!this.button || !!this.iconButton;\r\n    }\r\n\r\n    protected constructor() {\r\n        super();\r\n        this.classes.register('labeled');\r\n        //TODO: Implement actions\r\n        // .registerAction('labelDropdown', (entry) => entry.classes = this.labelDropdown ? ((this.labelDropdown.position || '') + ' labeled').trim() : undefined);\r\n    }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LabeledBaseComponent } from '../../base/labeled-base.component';\r\nimport { FluidDirective } from '../../directives/fluid.directive';\r\nimport { LoadingDirective } from '../../directives/loading.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { InputIconPosition } from './text/input.component';\r\n\r\n@Directive({\r\n    hostDirectives: [LoadingDirective.default, FluidDirective.default],\r\n    providers: InputBaseComponent.providers\r\n})\r\nexport abstract class InputBaseComponent extends LabeledBaseComponent implements OnDestroy {\r\n    protected readonly colorForId = Date.now().toString() + Math.random();\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    protected static override readonly providers = [...LabeledBaseComponent.providers];\r\n\r\n    private iconPositionValue: InputIconPosition | undefined;\r\n    private transparentValue = false;\r\n    private hasErrorValue = false;\r\n    private readonlyValue = false;\r\n    private disabledValue = false;\r\n    private isAutoFocused = false;\r\n\r\n    public inputElement: ElementRef<HTMLInputElement> | undefined;\r\n\r\n    public get iconPosition(): InputIconPosition | undefined {\r\n        return this.iconPositionValue;\r\n    }\r\n\r\n    @Input()\r\n    public set iconPosition(value: InputIconPosition | undefined) {\r\n        this.iconPositionValue = value;\r\n        this.classes.set('iconPosition', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.icon')\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @HostBinding('class.focus')\r\n    public focused = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.disabled')\r\n    public get disabled(): boolean {\r\n        return this.disabledValue;\r\n    }\r\n\r\n    public set disabled(value: BooleanLike) {\r\n        this.disabledValue = this.toBoolean(value);\r\n        this.refreshInput();\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.readonly')\r\n    public get readonly(): boolean {\r\n        return this.readonlyValue;\r\n    }\r\n\r\n    public set readonly(value: BooleanLike) {\r\n        this.readonlyValue = this.toBoolean(value);\r\n        this.refreshInput();\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.error')\r\n    public get hasError(): boolean {\r\n        return this.hasErrorValue;\r\n    }\r\n\r\n    public set hasError(value: BooleanLike) {\r\n        this.hasErrorValue = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.transparent')\r\n    public get transparent(): boolean {\r\n        return this.transparentValue;\r\n    }\r\n\r\n    public set transparent(value: BooleanLike) {\r\n        this.transparentValue = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get autofocus(): boolean {\r\n        return this.isAutoFocused;\r\n    }\r\n\r\n    public set autofocus(value: BooleanLike) {\r\n        this.isAutoFocused = this.toBoolean(value);\r\n        this.refreshFocus();\r\n    }\r\n\r\n    @Input()\r\n    public placeholder: string | undefined;\r\n\r\n    @Input()\r\n    public name: string | undefined;\r\n\r\n    @Input()\r\n    public for: string | undefined;\r\n\r\n    @Output()\r\n    public readonly keyDown = new EventEmitter<KeyboardEvent>();\r\n\r\n    @Output()\r\n    public readonly keyUp = new EventEmitter<KeyboardEvent>();\r\n\r\n    @Output()\r\n    public readonly keyPress = new EventEmitter<Event>();\r\n\r\n    @Output()\r\n    public readonly blur = new EventEmitter<FocusEvent>();\r\n\r\n    @Output()\r\n    public readonly focus = new EventEmitter<FocusEvent>();\r\n\r\n    @Output()\r\n    public readonly focusin = new EventEmitter<FocusEvent>();\r\n\r\n    @Output()\r\n    public readonly focusout = new EventEmitter<FocusEvent>();\r\n\r\n    @HostBinding('class.color')\r\n    protected isColor = false;\r\n\r\n    protected constructor() {\r\n        super();\r\n        InputBaseComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n        this.classes.registerFixed('input');\r\n        this.classes.register('icon', 'focused', 'disabled', 'readonly', 'transparent', 'hasError', 'autofocus', 'placeholder', 'iconPosition');\r\n    }\r\n\r\n    public override ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this.unbindEvents();\r\n    }\r\n\r\n    protected refreshInput(): void {\r\n        if (!this.inputElement) {\r\n            return;\r\n        }\r\n        this.inputElement.nativeElement.disabled = this.disabledValue;\r\n        this.inputElement.nativeElement.readOnly = this.readonlyValue;\r\n    }\r\n\r\n    private readonly keyDownEventHandler = (event: KeyboardEvent) => this.keyDown.next(event);\r\n    private readonly keyUpEventHandler = (event: KeyboardEvent) => this.keyUp.next(event);\r\n    private readonly keyPressEventHandler = (event: Event) => this.keyPress.next(event);\r\n    private readonly blurEventHandler = (event: FocusEvent) => this.blur.next(event);\r\n    private readonly focusEventHandler = (event: FocusEvent) => this.focus.next(event);\r\n    private readonly focusinEventHandler = (event: FocusEvent) => this.focusin.next(event);\r\n    private readonly focusoutEventHandler = (event: FocusEvent) => this.focusout.next(event);\r\n\r\n    protected bindEvents(): void {\r\n        if (!this.inputElement) {\r\n            return;\r\n        }\r\n        // TODO: Improve event binding!\r\n        this.inputElement.nativeElement.addEventListener('keydown', this.keyDownEventHandler);\r\n        this.inputElement.nativeElement.addEventListener('keyup', this.keyUpEventHandler);\r\n        this.inputElement.nativeElement.addEventListener('keyPress', this.keyPressEventHandler);\r\n        this.inputElement.nativeElement.addEventListener('blur', this.blurEventHandler);\r\n        this.inputElement.nativeElement.addEventListener('focus', this.focusEventHandler);\r\n        this.inputElement.nativeElement.addEventListener('focusin', this.focusinEventHandler);\r\n        this.inputElement.nativeElement.addEventListener('focusout', this.focusoutEventHandler);\r\n    }\r\n\r\n    protected unbindEvents(): void {\r\n        if (!this.inputElement) {\r\n            return;\r\n        }\r\n        this.inputElement.nativeElement.removeEventListener('keydown', this.keyDownEventHandler);\r\n        this.inputElement.nativeElement.removeEventListener('keyup', this.keyUpEventHandler);\r\n        this.inputElement.nativeElement.removeEventListener('keyPress', this.keyPressEventHandler);\r\n        this.inputElement.nativeElement.removeEventListener('blur', this.blurEventHandler);\r\n        this.inputElement.nativeElement.removeEventListener('focus', this.focusEventHandler);\r\n        this.inputElement.nativeElement.removeEventListener('focusin', this.focusinEventHandler);\r\n        this.inputElement.nativeElement.removeEventListener('focusout', this.focusoutEventHandler);\r\n    }\r\n\r\n    protected refreshFocus(): void {\r\n        if (this.isAutoFocused && this.inputElement) {\r\n            setTimeout(() => this.setFocus());\r\n        }\r\n    }\r\n\r\n    public setFocus(): void {\r\n        this.inputElement?.nativeElement.focus();\r\n    }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { InputBaseComponent } from '../input-base.component';\r\n\r\nexport declare type InputIconPosition =\r\n    'left'\r\n    | 'right';\r\n\r\nexport declare type InputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'urlweek';\r\n\r\n@Component({\r\n    selector: 'm-input',\r\n    templateUrl: './input.component.html',\r\n    styleUrls: ['./input.component.scss'],\r\n    imports: [IconComponent, FallbackForDirective, FormsModule, NgTemplateOutlet],\r\n    providers: [...InputBaseComponent.providers]\r\n})\r\nexport class InputComponent extends InputBaseComponent {\r\n    private typeValue?: InputType;\r\n\r\n    @Input()\r\n    public value: string | undefined;\r\n\r\n    @Input()\r\n    public get text(): string {\r\n        return this.value ?? this.default;\r\n    }\r\n\r\n    public set text(value: string | undefined) {\r\n        this.value = value;\r\n    }\r\n\r\n    @Input()\r\n    public default = '';\r\n\r\n    @Input()\r\n    public get type(): InputType | undefined {\r\n        return this.typeValue;\r\n    }\r\n\r\n    public set type(value: InputType | undefined) {\r\n        this.typeValue = value;\r\n        this.isColor = value === 'color';\r\n        if (this.isColor) {\r\n            this.label = { position: 'right' };\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public maxlength: string | number | undefined;\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter<string | undefined>();\r\n\r\n    @Output()\r\n    public readonly textChange = new EventEmitter<string>();\r\n\r\n    @ContentChild('input')\r\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.refreshInput();\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    @ViewChild('input')\r\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('maxlength', 'type', 'defaultValue', 'value', 'text');\r\n    }\r\n\r\n    protected onChange(): void {\r\n        this.value ??= this.default;\r\n        this.valueChange.emit(this.value);\r\n        this.textChange.emit(this.text);\r\n    }\r\n}\r\n","@if (!isRight) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition === 'left') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n<ng-content />\n@if (type === 'color') {\n    <input type=\"text\" [(ngModel)]=\"value\" [attr.readOnly]=\"readonly || undefined\" [attr.disabled]=\"disabled || undefined\" (ngModelChange)=\"onChange()\">\n    <label class=\"ui label color-label\" [style.background-color]=\"value\" [for]=\"colorForId\">\n        <input type=\"color\" [id]=\"colorForId\" [(ngModel)]=\"value\" [attr.name]=\"name\" [attr.readOnly]=\"readonly || undefined\" [attr.disabled]=\"disabled || undefined\" (ngModelChange)=\"onChange()\" #colorInput>\n    </label>\n}\n<input *m-fallback-for=\"'input'\" [type]=\"type || 'text'\" [placeholder]=\"placeholder || ''\" [(ngModel)]=\"value\" [attr.name]=\"name\" [attr.maxlength]=\"maxlength\" [attr.readOnly]=\"readonly || undefined\" [attr.disabled]=\"disabled || undefined\" (ngModelChange)=\"onChange()\" #input>\n@if (icon) {\n    <m-icon [icon]=\"icon\" [size]=\"iconSize\" class=\"link icon\" />\n}\n@if (isRight) {\n    <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition === 'right') {\n    <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n\n<ng-template #labelTemplate>\n    <ng-content select=\"m-label\" />\n    <ng-content select=\"m-label-dropdown\" />\n</ng-template>\n\n<ng-template #contentTemplate>\n    <ng-content select=\"m-button\" />\n    <ng-content select=\"m-icon-button\" />\n</ng-template>\n","import { NgIfContext } from '@angular/common';\r\nimport { Component, DoCheck, ElementRef, Input, IterableDiffer, IterableDiffers, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ChatMessage } from '../../models/chat-message';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { ChatMessageComponent } from '../chat-message/chat-message.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { InputComponent } from '../input/text/input.component';\r\n\r\n@Component({\r\n    selector: 'm-chat',\r\n    templateUrl: './chat.component.html',\r\n    styleUrls: ['./chat.component.scss'],\r\n    imports: [\r\n    ChatMessageComponent,\r\n    InputComponent,\r\n    ButtonComponent,\r\n    IconComponent\r\n]\r\n})\r\nexport class ChatComponent implements DoCheck {\r\n    public static readonly defaults = { sendIcon: <IconType>'caret right', sendIconSize: <IconSize>'big' };\r\n    private readonly sendSubject = new Subject<ChatMessage>();\r\n    private readonly messagesDiffer: IterableDiffer<unknown>;\r\n    protected readonly defaults = ChatComponent.defaults;\r\n    private canSendValue = true;\r\n    protected isSendIconVisible = false;\r\n\r\n    @Input()\r\n    public messages: ChatMessage[] = [];\r\n\r\n    public message: string | undefined;\r\n\r\n    @Input()\r\n    public get canSend(): boolean {\r\n        return this.canSendValue;\r\n    }\r\n\r\n    public set canSend(value: BooleanLike) {\r\n        this.canSendValue = toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public sender: string | undefined;\r\n\r\n    @Input()\r\n    // eslint-disable-next-line no-null/no-null\r\n    public sendIconTemplate: TemplateRef<NgIfContext<boolean>> | null = null;\r\n\r\n    @Input()\r\n    public sendIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public sendIconSize: IconSize;\r\n\r\n    @Input()\r\n    public get showSendIcon(): boolean {\r\n        return this.isSendIconVisible;\r\n    }\r\n\r\n    public set showSendIcon(value: BooleanLike) {\r\n        this.isSendIconVisible = toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public placeholder = 'Type a message and send with ENTER';\r\n\r\n    @Output()\r\n    public readonly send = this.sendSubject.asObservable();\r\n\r\n    @ViewChild('chat')\r\n    protected chat: ElementRef<HTMLElement> | undefined;\r\n\r\n    @ViewChild(InputComponent)\r\n    protected input: InputComponent | undefined;\r\n\r\n    public constructor(\r\n        iterableDiffers: IterableDiffers\r\n    ) {\r\n        this.messagesDiffer = iterableDiffers.find([]).create(undefined);\r\n    }\r\n\r\n    public ngDoCheck(): void {\r\n        if (this.messagesDiffer.diff(this.messages)) {\r\n            this.scrollDown();\r\n        }\r\n    }\r\n\r\n    protected sendMessage(): void {\r\n        if (this.message) {\r\n            this.sendSubject.next({ direction: 'out', text: this.message, sender: this.sender ?? 'Unknown', timestamp: Date.now() });\r\n        }\r\n        this.message = undefined;\r\n        this.input?.setFocus();\r\n    }\r\n\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (event.code === 'Enter' || event.code === 'NumpadEnter') {\r\n            this.sendMessage();\r\n        }\r\n    }\r\n\r\n    private scrollDown(): void {\r\n        setTimeout(() => this.chat?.nativeElement.scrollTo(0, 999999));\r\n    }\r\n}\r\n","<div class=\"chat\" #chat>\n  @for (message of messages; track message) {\n    <m-chat-message [message]=\"message\" />\n  }\n  <ng-content />\n</div>\n@if (canSend) {\n  <div class=\"input-wrapper\" [class.visible]=\"canSend\">\n    <m-input autofocus [(value)]=\"message\" [placeholder]=\"placeholder\" (keydown)=\"onKeyDown($event)\">\n      @if (isSendIconVisible) {\n        <m-button class=\"icon\" (click)=\"sendMessage()\">\n          @if (!sendIconTemplate) {\n            <m-icon [icon]=\"sendIcon ?? defaults.sendIcon\" [size]=\"sendIconSize ?? defaults.sendIconSize\"></m-icon>\n          } @else {\n            <ng-template [ngTemplateOutlet]=\"sendIconTemplate\"></ng-template>\n          }\n        </m-button>\n      }\n    </m-input>\n  </div>\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { ChatComponent } from './chat.component';\r\nimport { IconSize } from '../icon/icon-size';\r\n\r\n@Component({\r\n    selector: 'm-chat-defaults',\r\n    template: ''\r\n})\r\nexport class ChatDefaultsComponent implements OnDestroy {\r\n    private readonly previousSendIcon = ChatComponent.defaults.sendIcon;\r\n    private readonly previousSendIconSize = ChatComponent.defaults.sendIconSize;\r\n    private currentSendIcon?: IconType;\r\n    private currentSendIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public set sendIcon(value: IconType) {\r\n        this.currentSendIcon = value;\r\n        ChatComponent.defaults.sendIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set sendIconSize(value: IconSize) {\r\n        this.currentSendIconSize = value;\r\n        ChatComponent.defaults.sendIconSize = value;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentSendIcon === ChatComponent.defaults.sendIcon) {\r\n            ChatComponent.defaults.sendIcon = this.previousSendIcon;\r\n        }\r\n        if (this.currentSendIconSize === ChatComponent.defaults.sendIconSize) {\r\n            ChatComponent.defaults.sendIconSize = this.previousSendIconSize;\r\n        }\r\n    }\r\n}\r\n","import { Component, HostBinding, inject, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ColorDirective } from '../../directives/color.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ColorName } from '../../models/color';\r\n\r\n@Component({\r\n    selector: 'm-circular-progress',\r\n    templateUrl: './circular-progress.component.html',\r\n    styleUrls: ['./circular-progress.component.scss'],\r\n    hostDirectives: [ColorDirective.default],\r\n    imports: [],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class CircularProgressComponent extends BaseComponent {\r\n    private readonly colorDirective = inject(ColorDirective, { self: true });\r\n    private isSuccess = false;\r\n    private isWarning = false;\r\n    private isError = false;\r\n\r\n    @Input({ required: true })\r\n    public value = 0;\r\n\r\n    @Input()\r\n    public min = 0;\r\n\r\n    @Input()\r\n    public max = 100;\r\n\r\n    @Input()\r\n    public size = 160;\r\n\r\n    @Input()\r\n    public strokeWidth = 12;\r\n\r\n    @Input()\r\n    public centerContent = true;\r\n\r\n    @HostBinding('class.ui')\r\n    @HostBinding('class.progress')\r\n    @HostBinding('class.circular')\r\n    protected readonly host = true;\r\n\r\n    @Input()\r\n    @HostBinding('class.success')\r\n    public get success(): boolean {\r\n        return this.isSuccess;\r\n    }\r\n\r\n    public set success(value: BooleanLike) {\r\n        this.isSuccess = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.error')\r\n    public get error(): boolean {\r\n        return this.isError;\r\n    }\r\n\r\n    public set error(value: BooleanLike) {\r\n        this.isError = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.warning')\r\n    public get warning(): boolean {\r\n        return this.isWarning;\r\n    }\r\n\r\n    public set warning(value: BooleanLike) {\r\n        this.isWarning = this.toBoolean(value);\r\n    }\r\n\r\n    @HostBinding('class')\r\n    protected get color(): ColorName | undefined {\r\n        return this.colorDirective.color;\r\n    }\r\n\r\n    protected get radius(): number {\r\n        return this.size / 2 - this.strokeWidth / 2;\r\n    }\r\n\r\n    protected get total(): number {\r\n        return 2 * Math.PI * this.radius;\r\n    }\r\n\r\n    protected get offset(): number {\r\n        const valueOffset = (this.value - this.min) / (this.max - this.min);\r\n        return this.total * (1 - valueOffset);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n    }\r\n\r\n}\r\n","<svg [attr.width]=\"size\" [attr.height]=\"size\" [attr.viewBox]=\"'0 0 ' + size + ' ' + size\" style=\"transform: rotate(-90deg)\">\n    <circle [attr.r]=\"radius\" [attr.cx]=\"size/2\" [attr.cy]=\"size/2\" fill=\"transparent\" stroke=\"#e0e0e0\" [attr.stroke-width]=\"strokeWidth + 'px'\" class=\"track\"></circle>\n    <circle [attr.r]=\"radius\" [attr.cx]=\"size/2\" [attr.cy]=\"size/2\" fill=\"transparent\" stroke=\"#808080\" stroke-linecap=\"round\" [attr.stroke-width]=\"strokeWidth + 'px'\"\n            [attr.stroke-dasharray]=\"total + 'px'\" [attr.stroke-dashoffset]=\"offset + 'px'\" class=\"value\"></circle>\n</svg>\n<div class=\"label\" [style.width.px]=\"size - 2*strokeWidth\" [style.height.px]=\"size - 2*strokeWidth\" [style.margin.px]=\"strokeWidth\">\n    @if (centerContent) {\n        <div class=\"label-centered\">\n            <!--      <ng-container [ngTemplateOutlet]=\"labelTemplate\" />-->\n        </div>\n    } @else {\n        <ng-content />\n    }\n</div>\n","import { AfterViewInit, Directive, EmbeddedViewRef, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-to-body]',\r\n    })\r\nexport class ToBodyDirective implements AfterViewInit, OnDestroy {\r\n    private embeddedViewRef: EmbeddedViewRef<unknown> | undefined;\r\n\r\n    public constructor(\r\n        private readonly template: TemplateRef<unknown>,\r\n        private readonly viewContainerRef: ViewContainerRef\r\n    ) {\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.template);\r\n        this.embeddedViewRef.detectChanges();\r\n        for (const node of this.embeddedViewRef.rootNodes) {\r\n            document.body.appendChild(node);\r\n        }\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        for (const node of this.embeddedViewRef?.rootNodes ?? []) {\r\n            if (document.body.contains(node)) {\r\n                document.body.removeChild(node);\r\n            }\r\n        }\r\n        this.embeddedViewRef?.destroy();\r\n        this.embeddedViewRef = undefined;\r\n    }\r\n}\r\n","import { Component, HostBinding, Input, Optional, SkipSelf } from '@angular/core';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { PointingDirective } from '../../directives/pointing.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\nexport declare type MenuPosition =\r\n    'top'\r\n    | 'left'\r\n    | 'bottom'\r\n    | 'right'\r\n    | undefined;\r\n\r\n@Component({\r\n    selector: 'm-menu',\r\n    templateUrl: './menu.component.html',\r\n    styleUrls: ['./menu.component.scss'],\r\n    hostDirectives: [PointingDirective.default],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class MenuComponent extends InvertibleComponent {\r\n    private isFixed = false;\r\n    private positionValue: MenuPosition;\r\n    private isSecondary = false;\r\n    private attachedValue: MenuPosition;\r\n    private isTabular = false;\r\n    private isText = false;\r\n    private isVertical = false;\r\n\r\n    public readonly element = this.elementRef;\r\n\r\n    public get position(): MenuPosition {\r\n        return this.positionValue;\r\n    }\r\n\r\n    @Input()\r\n    public set position(value: MenuPosition) {\r\n        this.positionValue = value;\r\n        this.classes.set('position', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.fixed')\r\n    public get fixed(): boolean {\r\n        return this.isFixed;\r\n    }\r\n\r\n    public set fixed(value: BooleanLike) {\r\n        this.isFixed = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.secondary')\r\n    public get secondary(): boolean {\r\n        return this.isSecondary;\r\n    }\r\n\r\n    public set secondary(value: BooleanLike) {\r\n        this.isSecondary = this.toBoolean(value);\r\n    }\r\n\r\n    public get attached(): MenuPosition {\r\n        return this.attachedValue;\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.attached')\r\n    public set attached(value: MenuPosition) {\r\n        this.attachedValue = value;\r\n        this.classes.set('attached', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.tabular')\r\n    public get tabular(): boolean {\r\n        return this.isTabular;\r\n    }\r\n\r\n    public set tabular(value: BooleanLike) {\r\n        this.isTabular = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.text')\r\n    public get text(): boolean {\r\n        return this.isText;\r\n    }\r\n\r\n    public set text(value: BooleanLike) {\r\n        this.isText = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.vertical')\r\n    public get vertical(): boolean {\r\n        return this.isVertical;\r\n    }\r\n\r\n    public set vertical(value: BooleanLike) {\r\n        this.isVertical = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor(\r\n        @Optional() @SkipSelf() parentMenu?: MenuComponent\r\n    ) {\r\n        super(!parentMenu);\r\n        this.classes.registerFixed('menu');\r\n        this.classes.register('position', 'fixed', 'secondary', 'tabular', 'text', 'attached', 'vertical');\r\n    }\r\n}\r\n","<!-- <div class=\"ui container\"> -->\r\n<ng-content></ng-content>\r\n<!-- </div> -->","import { AfterViewInit, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';\r\nimport { animationFrameScheduler, fromEvent } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ToBodyDirective } from '../../directives/to-body.directive';\r\nimport { Math2 } from '../../helpers/math2';\r\nimport { Mouse } from '../../helpers/mouse';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { MenuComponent } from '../menu/menu.component';\r\nimport { ContextMenuEvent } from './models/context-menu-event';\r\nimport { ContextMenuMouseEvent } from './models/context-menu-mouse-event';\r\n\r\n@Component({\r\n    selector: 'm-context-menu',\r\n    templateUrl: './context-menu.component.html',\r\n    styleUrls: ['./context-menu.component.scss'],\r\n    imports: [\r\n        MenuComponent,\r\n        ToBodyDirective\r\n    ],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class ContextMenuComponent extends BaseComponent implements AfterViewInit {\r\n    private isOpenOnLeftClick = false;\r\n    private isOpenOnRightClick = true;\r\n    private isVertical = true;\r\n    private isShared = false;\r\n\r\n    public left: number | undefined;\r\n    public top: number | undefined;\r\n\r\n    @HostBinding('class.visible')\r\n    public isVisible = false;\r\n\r\n    @Input()\r\n    public get openOnLeftClick(): boolean {\r\n        return this.isOpenOnLeftClick;\r\n    }\r\n\r\n    public set openOnLeftClick(value: BooleanLike) {\r\n        this.isOpenOnLeftClick = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get openOnRightClick(): boolean {\r\n        return this.isOpenOnRightClick;\r\n    }\r\n\r\n    public set openOnRightClick(value: BooleanLike) {\r\n        this.isOpenOnRightClick = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get vertical(): boolean {\r\n        return this.isVertical;\r\n    }\r\n\r\n    public set vertical(value: BooleanLike) {\r\n        this.isVertical = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get shared(): boolean {\r\n        return this.isShared;\r\n    }\r\n\r\n    public set shared(value: BooleanLike) {\r\n        this.isShared = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public margin = 5;\r\n\r\n    // eslint-disable-next-line @angular-eslint/no-output-rename\r\n    @Output('close')\r\n    public readonly onclose = new EventEmitter<void>();\r\n\r\n    // eslint-disable-next-line @angular-eslint/no-output-rename\r\n    @Output('open')\r\n    public readonly onopen = new EventEmitter<void>();\r\n\r\n    @ViewChild(MenuComponent)\r\n    protected menu: MenuComponent | undefined;\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('openOnLeftClick', 'openOnRightClick', 'vertical', 'margin', 'shared');\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        if (!this.isShared && this.elementRef.nativeElement.parentElement) {\r\n            fromEvent(this.elementRef.nativeElement.parentElement, 'click').pipe(takeUntil(this.destroy)).subscribe(event => this.onParentClick(event as ContextMenuMouseEvent));\r\n            fromEvent(this.elementRef.nativeElement.parentElement, 'contextmenu').pipe(takeUntil(this.destroy)).subscribe(event => this.onParentClick(event as ContextMenuMouseEvent));\r\n        }\r\n        fromEvent(document.documentElement, 'scroll', { capture: true }).pipe(takeUntil(this.destroy)).subscribe(event => this.onOutsideAction(event));\r\n    }\r\n\r\n    private onParentClick(event: ContextMenuMouseEvent): void {\r\n        if (event.button === Mouse.left && !this.isOpenOnLeftClick) {\r\n            return;\r\n        }\r\n        if (event.button === Mouse.right && !this.isOpenOnRightClick) {\r\n            return;\r\n        }\r\n        this.open(event);\r\n    }\r\n\r\n    @HostListener('document:mousedown', ['$event'])\r\n    @HostListener('document:keydown', ['$event'])\r\n    protected onOutsideAction(event: ContextMenuEvent): void {\r\n        if (!this.isVisible) {\r\n            return;\r\n        }\r\n        if (event.contextMenuTarget === this || (event as KeyboardEvent).key === 'F8') {\r\n            return;\r\n        }\r\n        if ((event.target as HTMLElement).closest('m-context-menu-item')) {\r\n            return;\r\n        }\r\n        this.close();\r\n    }\r\n\r\n    private refreshPosition(tries = 3): void {\r\n        if (!this.menu) {\r\n            if (tries > 0) {\r\n                animationFrameScheduler.schedule(() => this.refreshPosition(tries - 1));\r\n            }\r\n            return;\r\n        }\r\n        const menuRect = this.menu.element.nativeElement.getBoundingClientRect();\r\n        const clipRect = document.documentElement.getBoundingClientRect();\r\n        this.left = Math2.keepInRange(clipRect.left + this.margin, this.left, clipRect.right - this.margin - menuRect.width);\r\n        this.top = Math2.keepInRange(clipRect.top + this.margin, this.top, clipRect.bottom - this.margin - menuRect.height);\r\n    }\r\n\r\n    public open(left?: number, top?: number): void\r\n    public open(event: MouseEvent): void\r\n    public open(leftOrEvent?: number | ContextMenuMouseEvent, top?: number): void {\r\n        if (typeof leftOrEvent === 'number' || leftOrEvent === undefined) {\r\n            this.left = leftOrEvent ?? this.left;\r\n            this.top = top ?? this.top;\r\n        }\r\n        else {\r\n            leftOrEvent.preventDefault();\r\n            leftOrEvent.contextMenuTarget = this;\r\n            this.left = leftOrEvent.clientX;\r\n            this.top = leftOrEvent.clientY;\r\n        }\r\n        this.isVisible = true;\r\n        this.refreshPosition();\r\n        this.onopen.emit();\r\n    }\r\n\r\n    public close(): void {\r\n        this.isVisible = false;\r\n        this.onclose.emit();\r\n    }\r\n}\r\n\r\n","@if (isVisible) {\n  <m-menu *m-to-body class=\"content\" [vertical]=\"vertical\" [style.left.px]=\"left\" [style.top.px]=\"top\">\n    <ng-content />\n  </m-menu>\n}\n","import { Component, EventEmitter, HostBinding, inject, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ActiveDirective } from '../../directives/active.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { SortedClassesService } from '../../services/sorted-classes.service';\r\n\r\n@Component({\r\n    selector: 'm-menu-item',\r\n    templateUrl: './menu-item.component.html',\r\n    styleUrls: ['./menu-item.component.scss'],\r\n    providers: [SortedClassesService],\r\n    hostDirectives: [ActiveDirective.default]\r\n})\r\nexport class MenuItemComponent extends BaseComponent {\r\n    protected static override readonly providers = [...BaseComponent.providers];\r\n    protected readonly activeDirective = inject(ActiveDirective, { self: true });\r\n    private isLink = false;\r\n\r\n    // TODO: Remove HostBinding\r\n    @HostBinding('class.active')\r\n    public get active(): boolean {\r\n        return this.activeDirective.active;\r\n    }\r\n\r\n    protected set active(value: BooleanLike) {\r\n        this.activeDirective.active = value;\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.link')\r\n    public get link(): boolean {\r\n        return this.isLink;\r\n    }\r\n\r\n    public set link(value: BooleanLike) {\r\n        this.isLink = this.toBoolean(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly activeChange = new EventEmitter<boolean>();\r\n\r\n    public constructor(\r\n        @Optional() @Inject('none') useUiClass = true\r\n    ) {\r\n        super(useUiClass);\r\n        this.classes.register('link')\r\n            .registerFixed('item');\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component, HostListener, Input, Optional } from '@angular/core';\r\nimport { BooleanLike } from '../../../models/boolean-like';\r\nimport { IconType } from '../../icon/icon-type';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { MenuItemComponent } from '../../menu-item/menu-item.component';\r\nimport { ContextMenuComponent } from '../context-menu.component';\r\n\r\n@Component({\r\n    selector: 'm-context-menu-item',\r\n    templateUrl: './context-menu-item.component.html',\r\n    styleUrls: ['./context-menu-item.component.scss'],\r\n    imports: [\r\n        IconComponent\r\n    ],\r\n    providers: [...MenuItemComponent.providers]\r\n})\r\nexport class ContextMenuItemComponent extends MenuItemComponent {\r\n    private keepOpenValue = false;\r\n\r\n    @Input()\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconColor: string | undefined;\r\n\r\n    @Input()\r\n    public get keepOpen(): boolean {\r\n        return this.keepOpenValue;\r\n    }\r\n\r\n    public set keepOpen(value: BooleanLike) {\r\n        this.keepOpenValue = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor(\r\n        @Optional() private readonly contextMenu: ContextMenuComponent\r\n    ) {\r\n        super();\r\n        this.classes.register('keepOpen', 'icon');\r\n        this.link = true;\r\n    }\r\n\r\n    @HostListener('click')\r\n    protected onClick(): void {\r\n        if (this.keepOpen) {\r\n            return;\r\n        }\r\n        this.contextMenu.close();\r\n    }\r\n}\r\n","<m-icon [icon]=\"icon\" [style.color]=\"iconColor\" />\r\n\r\n<ng-content />\r\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\n// TODO: Enable animation\r\n\r\n@Component({\r\n    selector: 'm-dimmer',\r\n    templateUrl: './dimmer.component.html',\r\n    styleUrls: ['./dimmer.component.scss'],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class DimmerComponent extends InvertibleComponent implements OnInit, OnDestroy {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    private visibleValue = true;\r\n    private isPage = false;\r\n    private isHideOnClick = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.page')\r\n    public get page(): boolean {\r\n        return this.isPage;\r\n    }\r\n\r\n    public set page(value: BooleanLike) {\r\n        this.isPage = this.toBoolean(value);\r\n    }\r\n\r\n    // @Input()\r\n    // public useContent = true;\r\n\r\n    @Input()\r\n    public get hideOnClick(): boolean {\r\n        return this.isHideOnClick;\r\n    }\r\n\r\n    public set hideOnClick(value: BooleanLike) {\r\n        this.isHideOnClick = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.visible')\r\n    @HostBinding('class.active')\r\n    public get visible(): boolean {\r\n        return this.visibleValue;\r\n    }\r\n\r\n    public set visible(value: BooleanLike) {\r\n        if (this.toBoolean(value)) {\r\n            this.show();\r\n        }\r\n        else {\r\n            this.hide();\r\n        }\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('page', 'visible')\r\n            .registerFixed('dimmer');\r\n        DimmerComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        if (this.visible === undefined) {\r\n            this.show();\r\n        }\r\n    }\r\n\r\n    public override ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this.hide();\r\n    }\r\n\r\n    public show(): void {\r\n        this.visibleValue = true;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    public hide(): void {\r\n        this.visibleValue = false;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    @HostListener('click')\r\n    protected onClick(): void {\r\n        if (this.hideOnClick) {\r\n            this.hide();\r\n        }\r\n    }\r\n}\r\n","<!-- <div *ngIf=\"useContent; else contentTemplate\" class=\"content\">\r\n    <ng-container [ngComponentOutlet]=\"contentTemplate\"></ng-container>\r\n</div>\r\n<ng-template #contentTemplate> -->\r\n<ng-content></ng-content>\r\n<!-- </ng-template> -->","import { Component, Input } from '@angular/core';\r\nimport { DimmerComponent } from './dimmer.component';\r\n\r\n@Component({\r\n    selector: 'm-dimmer-defaults',\r\n    template: ''\r\n})\r\nexport class DimmerDefaultsComponent {\r\n\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        DimmerComponent.defaults.inverted = value;\r\n        DimmerComponent.defaults.invertedChange.next(value);\r\n    }\r\n\r\n}\r\n","import { Observable, ReplaySubject } from 'rxjs';\r\n\r\nexport class DataSourceRequest {\r\n    private readonly subject = new ReplaySubject<Record<string, unknown>[]>(1);\r\n    public readonly observable = this.subject.asObservable();\r\n\r\n    public constructor(\r\n        public readonly key: string\r\n    ) {\r\n    }\r\n\r\n    public resolve(data: Record<string, unknown>[] | Observable<Record<string, unknown>[]>): void {\r\n        if (Array.isArray(data)) {\r\n            this.subject.next(data);\r\n        } else {\r\n            data.subscribe({\r\n                next: result => this.subject.next(result),\r\n                error: error => this.subject.error(error)\r\n            });\r\n        }\r\n    }\r\n}\r\n","import { Component, Output } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DataSourceRequest } from './data-source-request';\r\n\r\n@Component({\r\n    selector: 'm-data-source',\r\n    template: ''\r\n})\r\nexport class DataSourceComponent {\r\n    private readonly requestSubject = new Subject<DataSourceRequest>();\r\n\r\n    @Output()\r\n    public readonly request = this.requestSubject.asObservable();\r\n\r\n    public get(key: string): Observable<Record<string, unknown>[]> {\r\n        const request = new DataSourceRequest(key);\r\n        this.requestSubject.next(request);\r\n        return request.observable;\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-divider',\r\n    templateUrl: './divider.component.html',\r\n    styleUrls: ['./divider.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class DividerComponent extends BaseComponent {\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('divider');\r\n    }\r\n}\r\n","<ng-content></ng-content>","export class ObjectHelper {\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n    private constructor() {}\r\n\r\n    public static clone<T>(value: T): T {\r\n        return JSON.parse(JSON.stringify(value)) as T;\r\n    }\r\n\r\n    public static get<T = unknown>(object: Record<string, unknown> | undefined, path: string | string[]): T | undefined {\r\n        const pathArray = typeof path === 'string' ? path.split('.') : path;\r\n        return pathArray.length > 1 ? this.get<T>(object?.[pathArray[0]] as Record<string, unknown> | undefined, pathArray.slice(1)) : object?.[pathArray[0]] as T;\r\n    }\r\n\r\n    /*\r\n     * Checks if the object has all specified keys. This is like a typesafe version of the `in` operator\r\n     */\r\n    public static has<T>(value: unknown, ...keys: (keyof T)[]): value is T {\r\n        // eslint-disable-next-line no-restricted-syntax\r\n        return !!value && typeof value === 'object' && keys.every(key => key in value);\r\n    }\r\n\r\n    /*\r\n     * Checks if the object has any of the specified keys. This is like a typesafe version of the `in` operator\r\n     */\r\n    public static hasSome<T>(value: unknown, ...keys: (keyof T)[]): value is T {\r\n        // eslint-disable-next-line no-restricted-syntax\r\n        return !!value && typeof value === 'object' && keys.some(key => key in value);\r\n    }\r\n}\r\n","import { Type, ViewContainerRef } from '@angular/core';\r\nimport { ObjectHelper } from '../../helpers/object-helper';\r\n\r\ninterface ComponentDef<T> {\r\n    readonly ngContentSelectors?: string[];\r\n    readonly selectors: string[][];\r\n    readonly type: Type<T>;\r\n    hostDirectives: HostDirectiveDef[] | null;\r\n}\r\n\r\ninterface HostDirectiveDef<T = unknown> {\r\n    directive: Type<T>;\r\n    inputs: Record<string, string>;\r\n    outputs: Record<string, string>;\r\n}\r\n\r\nfunction getComponentDef<T>(type: Type<T>): ComponentDef<T> | undefined {\r\n    return (type as any)['ɵ' + 'cmp'] || undefined;\r\n}\r\n\r\nexport class ComponentParser {\r\n    private static readonly registeredComponents: ComponentDef<unknown>[] = [];\r\n\r\n    public static register<T>(component: Type<T>): void {\r\n        const componentDef = getComponentDef<T>(component);\r\n        if (!componentDef) {\r\n            throw new Error(`Can not register component '${component.name}': no definition found`);\r\n        }\r\n        this.registeredComponents.push(componentDef);\r\n    }\r\n\r\n    public static parse(template: string | undefined, viewContainerRef: ViewContainerRef, data?: Record<string, unknown>): Node[] {\r\n        if (!template) {\r\n            viewContainerRef.clear();\r\n            return [];\r\n        }\r\n        data ??= {};\r\n        const nodes: Node[] = [];\r\n        const helperNode = document.createElement('div');\r\n        helperNode.innerHTML = template;\r\n        const nodesToParse = Array.from(helperNode.childNodes);\r\n        const dataNode = nodesToParse.find(node => node.nodeName === 'M-JSON');\r\n        const index = dataNode ? nodesToParse.indexOf(dataNode) : -1;\r\n        if (index >= 0) {\r\n            nodesToParse.splice(index, 1);\r\n        }\r\n        if (dataNode instanceof Element) {\r\n            Object.assign(data, JSON.parse(dataNode.innerHTML || '{}'));\r\n        }\r\n        for (const node of nodesToParse) {\r\n            nodes.push(this.parseNode(node, viewContainerRef, data));\r\n        }\r\n        return nodes;\r\n    }\r\n\r\n    private static parseNode(node: Node, viewContainerRef: ViewContainerRef, data: Record<string, unknown>): Node {\r\n        const definition = this.registeredComponents.find(d => d.selectors.some(sa => sa.some(s => s.toLowerCase() === node.nodeName.toLowerCase())));\r\n        if (!definition) {\r\n            const target: Node = viewContainerRef.element.nativeElement;\r\n            this.appendTo(target, node);\r\n            return node;\r\n        }\r\n\r\n        const nodes: Node[] = [];\r\n        const nodesToParse = Array.from(node.childNodes);\r\n        for (const nodeToParse of nodesToParse) {\r\n            nodes.push(this.parseNode(nodeToParse, viewContainerRef, data));\r\n        }\r\n        const unusedNodes = [...nodes];\r\n        const projectableNodes: Node[][] | undefined = definition.ngContentSelectors?.map(selector => {\r\n            if (selector === '*') {\r\n                return unusedNodes;\r\n            }\r\n            const foundNodes = nodes.filter(node => node.nodeName.toLowerCase() === selector);\r\n            for (const foundNode of foundNodes) {\r\n                const index = unusedNodes.indexOf(foundNode);\r\n                if (index >= 0) {\r\n                    unusedNodes.splice(index, 1);\r\n                }\r\n            }\r\n            return foundNodes;\r\n        });\r\n        const componentRef = viewContainerRef.createComponent(definition.type, {\r\n            projectableNodes\r\n        });\r\n        if (node instanceof Element) {\r\n            for (const attribute of Array.from(node.attributes)) {\r\n                const boundAttribute = /^\\[(?<name>.*)]$/.exec(attribute.name);\r\n                const attributeName = boundAttribute ? boundAttribute.groups?.['name'] ?? '' : attribute.name;\r\n                const attributeValue = boundAttribute ? ObjectHelper.get(data, attribute.value) : attribute.value;\r\n                let inputFound = false;\r\n                if (definition.hostDirectives) {\r\n                    for (const hostDirective of definition.hostDirectives) {\r\n                        if (hostDirective.inputs[attributeName]) {\r\n                            (componentRef.instance as any)[attributeName + 'Directive'][attributeName] = attributeValue;\r\n                            inputFound = true;\r\n                        }\r\n                    }\r\n                }\r\n                if (!inputFound) {\r\n                    (componentRef.instance as any)[attributeName] = attributeValue;\r\n                }\r\n            }\r\n        }\r\n        this.appendTo(componentRef.location.nativeElement, node);\r\n        return componentRef.location.nativeElement;\r\n    }\r\n\r\n    private static appendTo(target: Node, node: Node): void {\r\n        if (target.nextSibling) {\r\n            target.parentNode?.insertBefore(node, target.nextSibling);\r\n        } else {\r\n            target.parentNode?.appendChild(node);\r\n        }\r\n    }\r\n}\r\n","import { Component, inject, Input, ViewContainerRef } from '@angular/core';\r\n\r\nimport { ComponentParser } from './component-parser';\r\n\r\n@Component({\n    selector: 'm-dynamic-component',\n    imports: [],\n    template: '',\n    styleUrls: []\n})\r\nexport class DynamicComponentComponent {\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    private codeValue: string | undefined;\r\n\r\n    @Input({ required: true })\r\n    public get code(): string | undefined {\r\n        return this.codeValue;\r\n    }\r\n\r\n    public set code(value: string | undefined) {\r\n        this.codeValue = value;\r\n        ComponentParser.parse(value, this.viewContainerRef, this.data);\r\n    }\r\n\r\n    @Input()\r\n    public data: Record<string, unknown> | undefined;\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders, Type } from '@angular/core';\r\nimport { ComponentParser } from './component-parser';\r\n\r\nexport function provideDynamicComponent(\r\n    type: Type<unknown>\r\n): EnvironmentProviders {\r\n    ComponentParser.register(type);\r\n    return makeEnvironmentProviders([]);\r\n}\r\n","import { ElementRef, Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n// Use this to solve circular dependency problem\r\n@Injectable()\r\nexport class DropDownSelectionService {\r\n    private readonly selectedSubject = new Subject<unknown>();\r\n    public readonly selected = this.selectedSubject.asObservable();\r\n\r\n    public select(value: unknown): void {\r\n        this.selectedSubject.next(value);\r\n    }\r\n}\r\n","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { DropDownSelectionService } from '../dropdown/dropdown-selection.service';\r\n\r\n@Component({\r\n    selector: 'm-dropdown-item',\r\n    templateUrl: './dropdown-item.component.html',\r\n    styleUrls: ['./dropdown-item.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class DropdownItemComponent extends BaseComponent {\r\n    private isFilteredOut = false;\r\n    private isSelected = false;\r\n\r\n    @Input()\r\n    public value: unknown;\r\n\r\n    @Input()\r\n    @HostBinding('class.filtered')\r\n    public get filteredOut(): boolean {\r\n        return this.isFilteredOut;\r\n    }\r\n\r\n    public set filteredOut(value: BooleanLike) {\r\n        this.isFilteredOut = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.active')\r\n    @HostBinding('class.selected')\r\n    public get selected(): boolean {\r\n        return this.isSelected;\r\n    }\r\n\r\n    public set selected(value: BooleanLike) {\r\n        this.isSelected = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public icon: string | undefined;\r\n\r\n    public readonly element = this.elementRef;\r\n\r\n    public constructor(\r\n        private readonly dropDownSelectionService: DropDownSelectionService\r\n    ) {\r\n        super();\r\n        this.classes.register('filtered', 'selected', 'value')\r\n            .registerFixed('item');\r\n    }\r\n\r\n    @HostListener('click', ['$event'])\r\n    protected click(event: MouseEvent): void {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        this.dropDownSelectionService.select(this.value);\r\n    }\r\n\r\n    public select(value = true): void {\r\n        this.selected = value;\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { IconType } from '../icon/icon-type';\r\nimport { IconSize } from '../icon/icon-size';\r\n\r\nexport class DropdownValue<T = unknown> {\r\n    public filtered?: boolean;\r\n\r\n    public constructor(\r\n        public value: T,\r\n        public text?: string,\r\n        public icon?: IconType,\r\n        public iconSize?: IconSize\r\n    ) {\r\n\r\n    }\r\n}\r\n","\r\nimport { Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, OnInit, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { fromEvent, ReplaySubject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { DisabledDirective } from '../../directives/disabled.directive';\r\nimport { FluidDirective } from '../../directives/fluid.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { DropDownSelectionService } from './dropdown-selection.service';\r\nimport { DropdownValue } from './dropdown-value';\r\n\r\n@Component({\n    selector: 'm-dropdown',\n    templateUrl: './dropdown.component.html',\n    styleUrls: ['./dropdown.component.scss'],\n    imports: [\n    FormsModule,\n    IconComponent,\n    DropdownItemComponent\n],\n    hostDirectives: [FluidDirective.default, DisabledDirective.default],\n    providers: [...InvertibleComponent.providers, DropDownSelectionService]\n})\r\nexport class DropdownComponent extends InvertibleComponent implements OnInit {\r\n    public static readonly defaults = {\r\n        dropdownIcon: <IconType>'dropdown',\r\n        dropdownIconSize: <IconSize>undefined,\r\n        deleteIcon: <IconType>'delete',\r\n        deleteIconSize: <IconSize>undefined,\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    private isMultiple = false;\r\n    private isSearch = false;\r\n    private isSelectFirst = false;\r\n    private isAttachedLeft = false;\r\n    private isAttachedTop = false;\r\n    private isAttachedRight = false;\r\n    private isAttachedBottom = false;\r\n    private isFreeTextAllowed = false;\r\n    private isUserUpward = false;\r\n    private isSystemUpward = false;\r\n    private isDisabled = false;\r\n    private isReadonly = false;\r\n    protected readonly defaults = DropdownComponent.defaults;\r\n\r\n    @ViewChild('htmlElement')\r\n    protected textElement: ElementRef<HTMLDivElement> | undefined;\r\n\r\n    @ViewChild('menuElement')\r\n    protected menuElement: ElementRef<HTMLDivElement> | undefined;\r\n\r\n    @ViewChild('inputElement')\r\n    protected inputElement: ElementRef<HTMLInputElement> | undefined;\r\n\r\n    @ContentChildren(DropdownItemComponent)\r\n    protected set contentItemComponentsQuery(query: QueryList<DropdownItemComponent>) {\r\n        if (query.length > 0) {\r\n            this.refreshItems(query);\r\n        }\r\n        query.changes.subscribe(() => this.refreshItems(query));\r\n    }\r\n\r\n    @ViewChildren(DropdownItemComponent)\r\n    protected set viewItemComponentsQuery(query: QueryList<DropdownItemComponent>) {\r\n        if (query.length > 0) {\r\n            this.refreshItems(query);\r\n        }\r\n        query.changes.subscribe(() => this.refreshItems(query));\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.multiple')\r\n    public get multiple(): boolean {\r\n        return this.isMultiple;\r\n    }\r\n\r\n    public set multiple(value: BooleanLike) {\r\n        this.isMultiple = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get search(): boolean {\r\n        return this.isSearch;\r\n    }\r\n\r\n    public set search(value: BooleanLike) {\r\n        this.isSearch = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.attached-left')\r\n    public get attachedLeft(): boolean {\r\n        return this.isAttachedLeft;\r\n    }\r\n\r\n    public set attachedLeft(value: BooleanLike) {\r\n        this.isAttachedLeft = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.attached-top')\r\n    public get attachedTop(): boolean {\r\n        return this.isAttachedTop;\r\n    }\r\n\r\n    public set attachedTop(value: BooleanLike) {\r\n        this.isAttachedTop = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.attached-right')\r\n    public get attachedRight(): boolean {\r\n        return this.isAttachedRight;\r\n    }\r\n\r\n    public set attachedRight(value: BooleanLike) {\r\n        this.isAttachedRight = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.attached-bottom')\r\n    public get attachedBottom(): boolean {\r\n        return this.isAttachedBottom;\r\n    }\r\n\r\n    public set attachedBottom(value: BooleanLike) {\r\n        this.isAttachedBottom = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public placeholder: string | undefined;\r\n\r\n    public get value(): unknown {\r\n        return this.valueField;\r\n    }\r\n\r\n    @Input()\r\n    public set value(value: unknown) {\r\n        value ??= undefined;\r\n        if (this.valueField === value) {\r\n            return;\r\n        }\r\n        this.valueField = value;\r\n        this.select(value);\r\n    }\r\n\r\n    @Input()\r\n    public filter: string | undefined;\r\n\r\n    @Input()\r\n    public animationDuration = 200;\r\n\r\n    public get items(): DropdownValue[] | undefined {\r\n        return this.itemsField;\r\n    }\r\n\r\n    @Input()\r\n    public set items(value: DropdownValue[] | null | undefined) {\r\n        value ??= undefined;\r\n        if (this.itemsField === value) {\r\n            return;\r\n        }\r\n        this.itemsField = value;\r\n        this.select(this.value);\r\n    }\r\n\r\n    @Input()\r\n    public name?: string;\r\n\r\n    @Input()\r\n    public filterValue = true;\r\n\r\n    @Input()\r\n    public filterText = true;\r\n\r\n    @Input()\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @Input()\r\n    public dropdownIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public dropdownIconSize: IconSize;\r\n\r\n    @Input()\r\n    public deleteIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public deleteIconSize: IconSize;\r\n\r\n    @Input()\r\n    public filterType: 'startsWith' | 'contains' = 'startsWith';\r\n\r\n    @Input()\r\n    public get selectFirst(): boolean {\r\n        return this.isSelectFirst;\r\n    }\r\n\r\n    public set selectFirst(value: BooleanLike) {\r\n        this.isSelectFirst = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get allowFreeText(): boolean {\r\n        return this.isFreeTextAllowed;\r\n    }\r\n\r\n    public set allowFreeText(value: BooleanLike) {\r\n        this.isFreeTextAllowed = this.toBoolean(value);\r\n    }\r\n\r\n    @HostBinding('attr.tabindex')\r\n    public get tabIndex(): number {\r\n        return (this.search ? undefined : 0) as any;\r\n    }\r\n\r\n    @HostBinding('class.search')\r\n    public get searchClass(): boolean {\r\n        return this.isSearch || this.isFreeTextAllowed;\r\n    }\r\n\r\n    @HostBinding('class.active')\r\n    public isActive = false;\r\n\r\n    @Input()\r\n    public get upwards(): boolean {\r\n        return this.isUserUpward;\r\n    }\r\n\r\n    public set upwards(value: BooleanLike) {\r\n        this.isUserUpward = this.toBoolean(value);\r\n    }\r\n\r\n    public set disabled(value: BooleanLike) {\r\n        this.isDisabled = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.disabled')\r\n    public get readonly(): boolean {\r\n        return this.isReadonly;\r\n    }\r\n\r\n    public set readonly(value: BooleanLike) {\r\n        this.isReadonly = this.toBoolean(value);\r\n    }\r\n\r\n    @HostBinding('class.upward')\r\n    public get isUpwardClass(): boolean {\r\n        return this.isUserUpward ?? this.isSystemUpward;\r\n    }\r\n\r\n    public isDefault = true;\r\n    public isMenuVisible = false;\r\n    public isHidden = false;\r\n    public isSlidingIn = false;\r\n    public isSlidingOut = false;\r\n    public isFiltered = false;\r\n    public isLoading = false;\r\n    public selectedIndex: number | undefined;\r\n    public selectedItem: DropdownValue | undefined;\r\n    public selectedItems: DropdownValue[] = [];\r\n\r\n    private isFocused = false;\r\n    private keepOpen = false;\r\n    private itemComponents: DropdownItemComponent[] = [];\r\n    private valueField: unknown;\r\n    private itemsField: DropdownValue[] | undefined;\r\n\r\n    public get hasItems(): boolean {\r\n        return !!this.itemComponents?.length;\r\n    }\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter();\r\n\r\n    public constructor(\r\n        private readonly dropDownSelectionService: DropDownSelectionService,\r\n        private readonly zone: NgZone\r\n    ) {\r\n        super();\r\n        this.classes.register('multiple', 'search', 'active', 'visible', 'upward', 'selectFirst', 'placeholder', 'attachedLeft', 'attachedRight', 'attachedTop', 'attachedBottom', 'filterType', 'allowFreetext')\r\n            .registerFixed('selection', 'dropdown');\r\n        this.dropDownSelectionService.selected.pipe(takeUntil(this.destroy)).subscribe(event => this.select(event));\r\n        DropdownComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.zone.runOutsideAngular(() =>\r\n            fromEvent(window, 'scroll', { capture: true }).pipe(\r\n                filter(event => this.isActive && event.target instanceof HTMLElement && this.elementRef.nativeElement !== event.target && !this.elementRef.nativeElement.contains(event.target)),\r\n                takeUntil(this.destroy)\r\n            ).subscribe(() => this.zone.run(() => this.close())));\r\n    }\r\n\r\n    @HostListener('focusin')\r\n    public focus(): void {\r\n        // Ignore focus/blur of window\r\n        if (this.isFocused) {\r\n            return;\r\n        }\r\n        this.open();\r\n        setTimeout(() => this.isFocused = true, this.animationDuration);\r\n    }\r\n\r\n    @HostListener('focusout')\r\n    public blur(): void {\r\n        // Ignore focus/blur of window\r\n        if (document.activeElement === this.elementRef.nativeElement || this.inputElement && document.activeElement === this.inputElement.nativeElement || this.keepOpen) {\r\n            return;\r\n        }\r\n        this.isFocused = false;\r\n        this.close();\r\n    }\r\n\r\n    @HostListener('click')\r\n    public toggle(): void {\r\n        if (this.isFocused && this.isMenuVisible && !this.search) {\r\n            this.close();\r\n        }\r\n        else {\r\n            this.open();\r\n        }\r\n    }\r\n\r\n    @HostListener('keydown', ['$event'])\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (event.code === 'ArrowUp') {\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n            this.selectIndex(this.selectedIndex === undefined ? 0 : this.selectedIndex - 1);\r\n            this.open();\r\n        }\r\n        else if (event.code === 'ArrowDown') {\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n            this.selectIndex(this.selectedIndex === undefined ? 0 : this.selectedIndex + 1);\r\n            this.open();\r\n        }\r\n        else if (event.code === 'Enter' || event.code === 'Space') {\r\n            if (this.selectedIndex !== undefined && this.selectedIndex >= 0) {\r\n                event.preventDefault();\r\n                event.stopPropagation();\r\n                const component = this.itemComponents[this.selectedIndex];\r\n                this.select(component.value);\r\n                this.close();\r\n            }\r\n            else {\r\n                const filteredComponents = this.itemComponents.filter(component => !component.filteredOut);\r\n                if (filteredComponents.length === 1) {\r\n                    event.preventDefault();\r\n                    event.stopPropagation();\r\n                    this.select(filteredComponents[0].value);\r\n                    this.close();\r\n                }\r\n            }\r\n        }\r\n        else if (event.code === 'Backspace') {\r\n            if (this.multiple && this.selectedItems.length > 0) {\r\n                event.preventDefault();\r\n                event.stopPropagation();\r\n                this.deselect(this.selectedItems[this.selectedItems.length - 1]);\r\n            }\r\n        }\r\n        else if (event.code === 'Escape') {\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n            this.filter = undefined;\r\n            this.onFilter();\r\n            this.close();\r\n        }\r\n        else if (event.code === 'Tab') {\r\n            if (this.selectedIndex !== undefined && this.selectedIndex >= 0) {\r\n                const component = this.itemComponents[this.selectedIndex];\r\n                this.select(component.value);\r\n            }\r\n            else {\r\n                const filteredComponents = this.itemComponents.filter(component => !component.filteredOut);\r\n                if (filteredComponents.length === 1) {\r\n                    this.select(filteredComponents[0].value);\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    protected deleteClick(item: DropdownValue, event: MouseEvent): void {\r\n        event.preventDefault();\r\n        this.deselect(item);\r\n    }\r\n\r\n    public open(): void {\r\n        if (this.isMenuVisible) {\r\n            return;\r\n        }\r\n        if (this.search) {\r\n            this.inputElement?.nativeElement.focus();\r\n        }\r\n        this.isHidden = true;\r\n        this.isLoading = true;\r\n        this.isSystemUpward = false;\r\n        // this.refreshClasses();\r\n        // Wait for rendering complete\r\n        setTimeout(() => {\r\n            const bounds = this.menuElement?.nativeElement.getBoundingClientRect();\r\n            this.isSystemUpward = !!bounds && bounds.bottom >= window.innerHeight;\r\n\r\n            this.isLoading = false;\r\n            this.isHidden = false;\r\n\r\n            // Wait for rendering complete\r\n            setTimeout(() => {\r\n                this.isActive = true;\r\n                this.isMenuVisible = true;\r\n                this.isSlidingIn = true;\r\n                this.isSlidingOut = false;\r\n                // this.refreshClasses();\r\n            });\r\n        });\r\n    }\r\n\r\n    public close(): void {\r\n        this.isSlidingIn = false;\r\n        this.isSlidingOut = true;\r\n        this.isActive = false;\r\n        if (this.isFreeTextAllowed && (this.selectedIndex === -1 || this.selectedIndex === undefined) && this.filter) {\r\n            this.value = this.filter;\r\n            this.valueChange.emit(this.value);\r\n        }\r\n        this.filter = undefined;\r\n        this.onFilter();\r\n        this.keepOpen = false;\r\n        setTimeout(() => {\r\n            this.isMenuVisible = false;\r\n            this.isSlidingOut = false;\r\n            // this.refreshClasses();\r\n        }, this.animationDuration);\r\n        // this.refreshClasses();\r\n    }\r\n\r\n    protected select(value: unknown): void {\r\n        const isChanged = this.valueField !== value;\r\n        if (this.items?.length && !this.itemComponents?.length) {\r\n            return;\r\n        }\r\n        this.isDefault = false;\r\n        if (!this.itemComponents?.length) {\r\n            this.selectedItem = undefined;\r\n            this.selectedItems.length = 0;\r\n            this.value = value;\r\n            this.filter = undefined;\r\n            return;\r\n        }\r\n        let component = this.itemComponents.find(x => x.value === value);\r\n        if (this.isSelectFirst) {\r\n            component ??= this.itemComponents[0];\r\n        }\r\n        if (this.isFreeTextAllowed) {\r\n            this.value = component?.value ?? value;\r\n        }\r\n        else if (this.isSearch && this.filter) {\r\n            this.filter = undefined;\r\n            this.onFilter();\r\n            this.value = component?.value;\r\n        }\r\n        else {\r\n            this.value = component?.value;\r\n        }\r\n        if (isChanged) {\r\n            this.valueChange.emit(this.value);\r\n        }\r\n        this.selectedIndex = component ? this.itemComponents.indexOf(component) : undefined;\r\n        if (this.multiple && component) {\r\n            this.selectedItem = undefined;\r\n            // TODO: Implement\r\n            // this.selectedItems.push(item);\r\n            // item.filtered = true;\r\n        }\r\n        else {\r\n            this.selectedItem = this.items ? this.items.find(item => item.value === value) : { value };\r\n        }\r\n        if (!this.multiple) {\r\n            this.close();\r\n        }\r\n        // HACK: This is a dirty hack, but currently i found no other solution. If you have a solution please create an issue\r\n        setTimeout(() => {\r\n            if (!this.textElement) {\r\n                return;\r\n            }\r\n            this.textElement.nativeElement.innerHTML = component?.element.nativeElement.innerHTML ?? '';\r\n        });\r\n        // HACK-END\r\n    }\r\n\r\n    protected deselect(item: DropdownValue): void {\r\n        const index = this.selectedItems.indexOf(item);\r\n        if (index >= 0) {\r\n            this.selectedItems.splice(index, 1);\r\n        }\r\n        if (this.selectedItems.length === 0) {\r\n            this.isDefault = true;\r\n        }\r\n    }\r\n\r\n    protected selectIndex(index: number): void {\r\n        this.selectedIndex = Math.max(0, Math.min(index, this.itemComponents.length - 1));\r\n        this.itemComponents.forEach((item, itemIndex) => item.select(itemIndex === this.selectedIndex));\r\n    }\r\n\r\n    protected onFilter(): void {\r\n        if (this.itemComponents) {\r\n            this.itemComponents.forEach(item => item.filteredOut = this.isItemFilteredOut(item));\r\n            // this.isFiltered = this.itemComponents.some(item => item.filtered);\r\n        }\r\n        else {\r\n            // this.isFiltered = false;\r\n        }\r\n        const filteredItems = this.itemComponents.filter(item => !item.filteredOut);\r\n        if (filteredItems.length === 1) {\r\n            this.selectedIndex = this.itemComponents.indexOf(filteredItems[0]);\r\n        }\r\n        else if (this.selectedIndex !== undefined && !filteredItems.includes(this.itemComponents[this.selectedIndex])) {\r\n            this.selectedIndex = this.itemComponents.indexOf(filteredItems[0]);\r\n        }\r\n        this.isFiltered = !!this.filter;\r\n        // TODO: Filter content children\r\n    }\r\n\r\n    private isItemFilteredOut(item: DropdownItemComponent): boolean {\r\n        if (!this.filter) {\r\n            return false;\r\n        }\r\n        const caseInsensitiveFilter = this.filter.toLowerCase();\r\n        const filterAction: (value: string | undefined) => boolean = this.filterType === 'contains'\r\n            ? value => !!value && value.toLowerCase().indexOf(caseInsensitiveFilter) === -1\r\n            : value => !!value && value.toLowerCase().indexOf(caseInsensitiveFilter) !== 0;\r\n        const textContainsFilter = !this.filterText || filterAction(item.element.nativeElement.innerText);\r\n        const valueContainsFilter = !this.filterValue || filterAction(item.value && typeof item.value.toString === 'function' ? item.value.toString() : undefined);\r\n        return textContainsFilter && valueContainsFilter;\r\n    }\r\n\r\n    private refreshItems(query: QueryList<DropdownItemComponent>): void {\r\n        this.itemComponents = query.toArray();\r\n        if (this.selectedIndex === undefined || this.itemComponents?.[this.selectedIndex]?.value !== this.value) {\r\n            setTimeout(() => this.select(this.value));\r\n        }\r\n    }\r\n\r\n    protected itemMouseDown(item: DropdownValue): void {\r\n        this.keepOpen = true;\r\n        // this.select(item);\r\n        setTimeout(() => {\r\n            if (this.search) {\r\n                this.inputElement?.nativeElement.focus();\r\n            }\r\n            else {\r\n                this.elementRef.nativeElement.focus();\r\n            }\r\n        });\r\n    }\r\n\r\n    protected itemMouseUp(item: DropdownValue): void {\r\n        this.keepOpen = false;\r\n    }\r\n}\r\n","<input type=\"hidden\">\n@if (icon) {\n  <m-icon [icon]=\"icon\" [size]=\"iconSize\" class=\"icon\"></m-icon>\n}\n@if (!allowFreeText && hasItems) {\n  <m-icon [icon]=\"dropdownIcon ?? defaults.dropdownIcon\" [size]=\"dropdownIconSize ?? defaults.dropdownIconSize\" class=\"dropdown icon\"></m-icon>\n}\n@for (selectedItem of selectedItems; track selectedItem) {\n  <a class=\"ui label transition visible\">\n    @if (selectedItem.icon) {\n      <m-icon [icon]=\"selectedItem.icon\" [size]=\"selectedItem.iconSize\"></m-icon>\n    }\n    {{selectedItem.text === undefined ? selectedItem.value : selectedItem.text}}\n    <m-icon [icon]=\"deleteIcon ?? defaults.deleteIcon\" [size]=\"deleteIconSize ?? defaults.deleteIconSize\" class=\"icon\" (click)=\"deleteClick(selectedItem, $event)\"></m-icon>\n  </a>\n}\n@if (search || allowFreeText) {\n  <input [(ngModel)]=\"filter\" class=\"search\" autocomplete=\"off\" tabindex=\"0\" (input)=\"onFilter()\" (keydown)=\"onKeyDown($event)\" #inputElement>\n}\n<div [class.default]=\"isDefault\" [class.filtered]=\"isFiltered\" class=\"text\">\n  @if (!selectedItem) {\n    {{value || placeholder}}\n  }\n  <span #htmlElement></span>\n</div>\n<div class=\"menu\" #menuElement\n  [class.visible]=\"isMenuVisible\"\n  [style.display]=\"isMenuVisible ? 'block' : ''\"\n  [style.animation-duration.ms]=\"animationDuration\"\n  [class.transition]=\"isSlidingIn || isSlidingOut\"\n  [class.hidden]=\"isHidden\"\n  [class.animating]=\"isSlidingIn || isSlidingOut\"\n  [class.slide]=\"isSlidingIn || isSlidingOut\"\n  [class.down]=\"(isSlidingIn || isSlidingOut) && !isUpwardClass\"\n  [class.up]=\"(isSlidingIn || isSlidingOut) && isUpwardClass\"\n  [class.in]=\"isSlidingIn\"\n  [class.out]=\"isSlidingOut\"\n  [class.loading]=\"isLoading\">\n  @if (items) {\n    @for (item of items; track item; let index = $index) {\n      <m-dropdown-item [value]=\"item.value\" [filteredOut]=\"item.filtered\" [selected]=\"index === selectedIndex\" (mousedown)=\"itemMouseDown(item)\" (mouseup)=\"itemMouseUp(item)\">\n        @if (item.icon) {\n          <m-icon [icon]=\"item.icon\" [size]=\"item.iconSize\"></m-icon>\n        }\n        {{item.text === undefined ? item.value : item.text}}\n      </m-dropdown-item>\n    }\n  } @else {\n    <ng-content></ng-content>\n  }\n</div>\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { DropdownComponent } from './dropdown.component';\r\n\r\n@Component({\r\n    selector: 'm-dropdown-defaults',\r\n    template: ''\r\n})\r\nexport class DropdownDefaultsComponent implements OnDestroy {\r\n    private readonly previousDropdownIcon = DropdownComponent.defaults.dropdownIcon;\r\n    private readonly previousDropdownIconSize = DropdownComponent.defaults.dropdownIconSize;\r\n    private readonly previousDeleteIcon = DropdownComponent.defaults.deleteIcon;\r\n    private readonly previousDeleteIconSize = DropdownComponent.defaults.deleteIconSize;\r\n    private currentDropdownIcon?: IconType;\r\n    private currentDropdownIconSize?: IconSize;\r\n    private currentDeleteIcon?: IconType;\r\n    private currentDeleteIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public set dropdownIcon(value: IconType) {\r\n        this.currentDropdownIcon = value;\r\n        DropdownComponent.defaults.dropdownIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set dropdownIconSize(value: IconSize) {\r\n        this.currentDropdownIconSize = value;\r\n        DropdownComponent.defaults.dropdownIconSize = value;\r\n    }\r\n\r\n    @Input()\r\n    public set deleteIcon(value: IconType) {\r\n        this.currentDeleteIcon = value;\r\n        DropdownComponent.defaults.deleteIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set deleteIconSize(value: IconSize) {\r\n        this.currentDeleteIconSize = value;\r\n        DropdownComponent.defaults.deleteIconSize = value;\r\n    }\r\n\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        DropdownComponent.defaults.inverted = value;\r\n        DropdownComponent.defaults.invertedChange.next(value);\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentDropdownIcon === DropdownComponent.defaults.dropdownIcon) {\r\n            DropdownComponent.defaults.dropdownIcon = this.previousDropdownIcon;\r\n        }\r\n        if (this.currentDropdownIconSize === DropdownComponent.defaults.dropdownIconSize) {\r\n            DropdownComponent.defaults.dropdownIconSize = this.previousDropdownIconSize;\r\n        }\r\n        if (this.currentDeleteIcon === DropdownComponent.defaults.deleteIcon) {\r\n            DropdownComponent.defaults.deleteIcon = this.previousDeleteIcon;\r\n        }\r\n        if (this.currentDeleteIconSize === DropdownComponent.defaults.deleteIconSize) {\r\n            DropdownComponent.defaults.deleteIconSize = this.previousDeleteIconSize;\r\n        }\r\n    }\r\n}\r\n","\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\nexport declare type HeaderSize = 'huge' | 'large' | 'medium' | 'small' | 'tiny';\r\n\r\n@Component({\n    selector: 'm-header',\n    templateUrl: './header.component.html',\n    styleUrls: ['./header.component.scss'],\n    imports: [\n    IconComponent\n],\n    providers: [...BaseComponent.providers]\n})\r\nexport class HeaderComponent extends InvertibleComponent implements OnInit {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    private sizeValue: HeaderSize | undefined;\r\n\r\n    @Input()\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @Input()\r\n    public get size(): HeaderSize | undefined {\r\n        return this.sizeValue;\r\n    }\r\n\r\n    public set size(value: HeaderSize | undefined) {\r\n        this.sizeValue = value;\r\n        this.classes.set('size', value);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('size', 'iconSize')\r\n            .registerFixed('header');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        HeaderComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","@if (icon) {\n  <m-icon [icon]=\"icon\" [size]=\"iconSize\"></m-icon>\n}\n<ng-content></ng-content>\n","import { AfterViewInit, Component, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { HeaderComponent } from '../header/header.component';\r\nimport { DividerComponent } from '../divider/divider.component';\r\n\r\n\r\n@Component({\n    selector: 'm-dropdown-group',\n    templateUrl: './dropdown-group.component.html',\n    styleUrls: ['./dropdown-group.component.scss'],\n    imports: [\n    HeaderComponent,\n    DividerComponent\n]\n})\r\nexport class DropdownGroupComponent implements AfterViewInit {\r\n    @Input()\r\n    public label: string | undefined;\r\n\r\n    @Input()\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @ViewChild('contentTemplate')\r\n    protected contentTemplate: TemplateRef<unknown> | undefined;\r\n\r\n    public constructor(\r\n        private readonly viewContainerRef: ViewContainerRef\r\n    ) {\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        if (this.contentTemplate) {\r\n            this.viewContainerRef.createEmbeddedView(this.contentTemplate);\r\n        } else {\r\n            this.viewContainerRef.clear();\r\n        }\r\n    }\r\n\r\n}\r\n","<ng-template #contentTemplate>\n  @if (icon || label) {\n    <m-header [icon]=\"icon\" [iconSize]=\"iconSize\">{{label}}</m-header>\n  }\n  <m-divider></m-divider>\n  <ng-content></ng-content>\n</ng-template>\n","import { Component, DoCheck, ElementRef, Input, OnDestroy } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n/**\r\n * @deprecated Use Route.title instead\r\n */\r\n@Component({\r\n    selector: 'm-document-title',\r\n    templateUrl: './document-title.component.html',\r\n    styleUrls: ['./document-title.component.scss']\r\n})\r\nexport class DocumentTitleComponent implements DoCheck, OnDestroy {\r\n    public static globalPostfix = '';\r\n    public static globalPrefix = '';\r\n    private previousTitle: string | undefined;\r\n    private value: string | undefined;\r\n    private title: string | undefined;\r\n\r\n    @Input()\r\n    public get postfix(): string {\r\n        return DocumentTitleComponent.globalPostfix;\r\n    }\r\n\r\n    public set postfix(value: string) {\r\n        DocumentTitleComponent.globalPostfix = value;\r\n    }\r\n\r\n    @Input()\r\n    public get prefix(): string {\r\n        return DocumentTitleComponent.globalPrefix;\r\n    }\r\n\r\n    public set prefix(value: string) {\r\n        DocumentTitleComponent.globalPrefix = value;\r\n    }\r\n\r\n    public constructor(\r\n        private readonly element: ElementRef<HTMLElement>,\r\n        private readonly titleService: Title\r\n    ) {\r\n    }\r\n\r\n    public ngDoCheck(): void {\r\n        const newValue = this.prefix + this.element.nativeElement.innerText + this.postfix;\r\n        if (newValue !== this.value) {\r\n            this.value = newValue;\r\n            if (this.previousTitle === undefined) {\r\n                this.previousTitle = this.titleService.getTitle();\r\n            }\r\n            this.title = this.value;\r\n            this.titleService.setTitle(this.title);\r\n        }\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.titleService.getTitle() === this.title) {\r\n            this.titleService.setTitle(this.previousTitle ?? '');\r\n        }\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component, OnDestroy, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-document-no-index',\r\n    template: ''\r\n})\r\nexport class DocumentNoIndexComponent implements OnInit, OnDestroy {\r\n\r\n    public ngOnInit(): void {\r\n        const robotsMetaElement = document.querySelector('meta[name=robots]') as HTMLMetaElement;\r\n        if (robotsMetaElement) {\r\n            robotsMetaElement.content = 'noindex';\r\n        } else {\r\n            const element = document.createElement('meta') as HTMLMetaElement;\r\n            element.name = 'robots';\r\n            element.content = 'noindex';\r\n            document.head.appendChild(element);\r\n        }\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        const robotsMetaElement = document.querySelector('meta[name=robots]') as HTMLMetaElement;\r\n        if (robotsMetaElement) {\r\n            robotsMetaElement.content = 'index';\r\n        }\r\n    }\r\n\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-ignored]',\r\n    })\r\nexport class IgnoredDirective {\r\n    public static readonly ignored = 'ignored';\r\n    public static readonly default = { directive: IgnoredDirective, inputs: [IgnoredDirective.ignored] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isIgnored = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(IgnoredDirective.ignored);\r\n    }\r\n\r\n    public get ignored(): boolean {\r\n        return this.isIgnored;\r\n    }\r\n\r\n    @Input()\r\n    public set ignored(value: BooleanLike) {\r\n        this.isIgnored = toBoolean(value);\r\n        this.classes.set(IgnoredDirective.ignored, this.isIgnored);\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-inline]',\r\n    })\r\nexport class InlineDirective {\r\n    public static readonly inline = 'inline';\r\n    public static readonly default = { directive: InlineDirective, inputs: [InlineDirective.inline] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isInline = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(InlineDirective.inline);\r\n    }\r\n\r\n    public get inline(): boolean {\r\n        return this.isInline;\r\n    }\r\n\r\n    @Input()\r\n    public set inline(value: BooleanLike) {\r\n        this.isInline = toBoolean(value);\r\n        this.classes.set(InlineDirective.inline, this.isInline);\r\n    }\r\n}\r\n","\r\nimport { Component, HostBinding, inject, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { ActiveDirective } from '../../directives/active.directive';\r\nimport { InlineDirective } from '../../directives/inline.directive';\r\nimport { InvertedDirective } from '../../directives/inverted.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\nexport declare type LoaderSize = 'mini' | 'tiny' | 'small' | 'large' | 'big' | 'huge' | 'massive';\r\n\r\n@Component({\n    selector: 'm-loader',\n    templateUrl: './loader.component.html',\n    styleUrls: ['./loader.component.scss'],\n    imports: [],\n    hostDirectives: [InvertedDirective.default, ActiveDirective.default, InlineDirective.default],\n    providers: [...BaseComponent.providers]\n})\r\nexport class LoaderComponent extends BaseComponent {\r\n    private readonly activeDirective = inject(ActiveDirective);\r\n    private textValue: string | undefined;\r\n    private sizeValue: LoaderSize | undefined;\r\n    private isInline = false;\r\n\r\n    @Input()\r\n    public get text(): string | undefined {\r\n        return this.textValue;\r\n    }\r\n\r\n    public set text(value: string | undefined) {\r\n        this.textValue = value;\r\n        this.classes.set('text', value || value === '');\r\n    }\r\n\r\n    @Input()\r\n    public get size(): LoaderSize | undefined {\r\n        return this.sizeValue;\r\n    }\r\n\r\n    public set size(value: LoaderSize | undefined) {\r\n        this.sizeValue = value;\r\n        this.classes.set('size', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.inline')\r\n    public get inline(): boolean {\r\n        return this.isInline;\r\n    }\r\n\r\n    public set inline(value: BooleanLike) {\r\n        this.isInline = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.activeDirective.active = true;\r\n        this.classes.register('text', 'size')\r\n            .registerFixed('loader');\r\n    }\r\n\r\n}\r\n","@if (text) {\n  {{text}}\n}\n<ng-content></ng-content>\n","import { Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { IgnoredDirective } from '../../directives/ignored.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { LoaderComponent } from '../loader/loader.component';\r\n\r\nexport declare type MessageAttached = 'bottom' | 'top' | undefined;\r\n\r\n@Component({\r\n    selector: 'm-message',\r\n    templateUrl: './message.component.html',\r\n    styleUrls: ['./message.component.scss'],\r\n    imports: [\r\n        IconComponent,\r\n        LoaderComponent\r\n    ],\r\n    hostDirectives: [IgnoredDirective.default],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class MessageComponent extends InvertibleComponent implements OnInit {\r\n    public static readonly defaults = {\r\n        closeIcon: <IconType>'close',\r\n        closeIconSize: <IconSize>undefined,\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n\r\n    private isPositive = false;\r\n    private isSuccess = false;\r\n    private isWarning = false;\r\n    private isError = false;\r\n    private isInfo = false;\r\n    private isClosable = false;\r\n    private isCloseVisible = true;\r\n    private isLoading = false;\r\n    private attachedValue: MessageAttached;\r\n    private iconValue: IconType | undefined;\r\n\r\n    protected readonly defaults = MessageComponent.defaults;\r\n\r\n    @Input()\r\n    @HostBinding('class.positive')\r\n    public get positive(): boolean {\r\n        return this.isPositive;\r\n    }\r\n\r\n    public set positive(value: BooleanLike) {\r\n        this.isPositive = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.info')\r\n    public get info(): boolean {\r\n        return this.isInfo;\r\n    }\r\n\r\n    public set info(value: BooleanLike) {\r\n        this.isInfo = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.success')\r\n    public get success(): boolean {\r\n        return this.isSuccess;\r\n    }\r\n\r\n    public set success(value: BooleanLike) {\r\n        this.isSuccess = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.warning')\r\n    public get warning(): boolean {\r\n        return this.isWarning;\r\n    }\r\n\r\n    public set warning(value: BooleanLike) {\r\n        this.isWarning = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.error')\r\n    public get error(): boolean {\r\n        return this.isError;\r\n    }\r\n\r\n    public set error(value: BooleanLike) {\r\n        this.isError = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get closable(): boolean {\r\n        return this.isClosable;\r\n    }\r\n\r\n    public set closable(value: BooleanLike) {\r\n        this.isClosable = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get showClose(): boolean {\r\n        return this.isCloseVisible;\r\n    }\r\n\r\n    public set showClose(value: BooleanLike) {\r\n        this.isCloseVisible = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get loading(): boolean {\r\n        return this.isLoading;\r\n    }\r\n\r\n    public set loading(value: BooleanLike) {\r\n        this.isLoading = this.toBoolean(value);\r\n        this.classes.set('icon', this.isLoading || !!this.iconValue);\r\n    }\r\n\r\n    @Input()\r\n    public get attached(): MessageAttached {\r\n        return this.attachedValue;\r\n    }\r\n\r\n    public set attached(value: MessageAttached) {\r\n        this.attachedValue = value;\r\n        this.classes.set('attached', value ? value + ' attached' : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public header: string | undefined;\r\n\r\n    @Input()\r\n    public get icon(): IconType | undefined {\r\n        return this.iconValue;\r\n    }\r\n\r\n    public set icon(value: IconType | undefined) {\r\n        this.iconValue = value;\r\n        this.classes.set('icon', !!value);\r\n    }\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @Input()\r\n    public closeIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public closeIconSize: IconSize;\r\n\r\n    @Output()\r\n    public readonly close = new EventEmitter<MouseEvent>();\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('positive', 'success', 'warning', 'error', 'attached', 'icon', 'closable')\r\n            .registerFixed('visible', 'message');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        MessageComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    @HostListener('click', ['$event'])\r\n    protected onClick(event: MouseEvent): void {\r\n        const selection = window.getSelection();\r\n        if (selection && this.elementRef.nativeElement.contains(selection?.focusNode) && (selection.anchorNode !== selection.focusNode || selection.anchorOffset !== selection.focusOffset)) {\r\n            return;\r\n        }\r\n        if (this.closable) {\r\n            this.close.next(event);\r\n        }\r\n    }\r\n}\r\n","@if (header) {\n  <div class=\"header\">{{ header }}</div>\n}\n@if (icon && !loading) {\n  <m-icon [icon]=\"icon\" [size]=\"iconSize\" class=\"icon\" />\n}\n@if (loading) {\n  <m-loader inline class=\"icon\" />\n}\n<ng-content />\n@if (closable && showClose) {\n  <m-icon [icon]=\"closeIcon ?? defaults.closeIcon\" [size]=\"closeIconSize ?? defaults.closeIconSize\" class=\"close icon\" (click)=\"close.emit($event)\" />\n}\n","import { Component } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { IgnoredDirective } from '../../directives/ignored.directive';\r\nimport { MessageComponent } from '../message/message.component';\r\n\r\n@Component({\r\n    selector: 'm-error',\r\n    templateUrl: './error.component.html',\r\n    styleUrls: ['./error.component.scss'],\r\n    hostDirectives: [IgnoredDirective.default],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class ErrorComponent extends InvertibleComponent {\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('visible', 'error', 'message');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        MessageComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-fill',\r\n    templateUrl: './fill.component.html',\r\n    styleUrls: ['./fill.component.scss'],\r\n    })\r\nexport class FillComponent {\r\n\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, HostBinding, input, Input } from '@angular/core';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FlexAlignItems, FlexDirection, FlexJustifyContent } from './flex.types';\r\n\r\n@Directive({\r\n    selector: '[m-flex]'\r\n})\r\nexport class FlexDirective {\r\n    public static readonly default = { directive: FlexDirective, inputs: ['direction', 'alignItems', 'justifyContent', 'row', 'column', 'gap', 'wrap', 'wrapReverse'] };\r\n\r\n    @HostBinding('style.display')\r\n    protected display = 'flex';\r\n\r\n    @Input()\r\n    @HostBinding('style.flex-direction')\r\n    public direction: FlexDirection | '' | undefined;\r\n\r\n    @Input()\r\n    public get 'm-flex'(): FlexDirection | '' | undefined {\r\n        return this.direction;\r\n    }\r\n\r\n    public set 'm-flex'(value: FlexDirection | '' | undefined | null) {\r\n        this.direction = value ?? '';\r\n        this.display = value || value === '' ? 'flex' : '';\r\n    }\r\n\r\n    @Input()\r\n    public get column(): boolean {\r\n        return this.direction === 'column';\r\n    }\r\n\r\n    public set column(value: BooleanLike) {\r\n        this.direction = toBoolean(value) ? 'column' : 'row';\r\n    }\r\n\r\n    @Input()\r\n    public get row(): boolean {\r\n        return this.direction === 'row';\r\n    }\r\n\r\n    public set row(value: BooleanLike) {\r\n        this.direction = toBoolean(value) ? 'row' : 'column';\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('style.align-items')\r\n    public alignItems: FlexAlignItems | undefined;\r\n\r\n    @Input()\r\n    @HostBinding('style.justify-content')\r\n    public justifyContent: FlexJustifyContent | undefined;\r\n\r\n    @Input()\r\n    @HostBinding('style.gap')\r\n    public gap: string | undefined;\r\n\r\n    public readonly wrap = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly wrapReverse = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    @HostBinding('style.flex-wrap')\r\n    public get wrapStyle(): string {\r\n        return this.wrap() ? 'wrap' : this.wrapReverse() ? 'wrap-reverse' : '';\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FlexDirective } from './flex.directive';\r\n\r\n@Component({\r\n    selector: 'm-flex',\r\n    template: '<ng-content/>',\r\n    hostDirectives: [FlexDirective.default]\r\n})\r\nexport class FlexComponent {\r\n}\r\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgIfContext } from '@angular/common';\r\n\r\n@Component({\n    selector: 'm-expander-header',\n    template: `\r\n        <ng-template>\r\n            <ng-content></ng-content>\r\n        </ng-template>\r\n    `,\n    imports: []\n})\r\nexport class ExpanderHeaderComponent {\r\n\r\n    @ViewChild(TemplateRef)\r\n    // eslint-disable-next-line no-null/no-null\r\n    public template: TemplateRef<NgIfContext<boolean>> | null = null;\r\n\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ContentChild, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FillComponent } from '../flex/fill/fill.component';\r\nimport { FlexComponent } from '../flex/flex.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { ExpanderHeaderComponent } from './expander-header.component';\r\n\r\n@Component({\r\n    selector: 'm-expander',\r\n    templateUrl: './expander.component.html',\r\n    styleUrls: ['./expander.component.scss'],\r\n    imports: [IconComponent, FlexComponent, FillComponent, NgTemplateOutlet],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class ExpanderComponent extends BaseComponent {\r\n    public static readonly defaults = {\r\n        dropdownIcon: <IconType>'caret right',\r\n        dropdownIconSize: <IconSize>undefined\r\n    };\r\n    private isExpanded = false;\r\n    private isBasic = false;\r\n    protected readonly defaults = ExpanderComponent.defaults;\r\n\r\n    @Input()\r\n    public header: string | undefined;\r\n\r\n    @Input()\r\n    public get expanded(): boolean {\r\n        return this.isExpanded;\r\n    }\r\n\r\n    public set expanded(value: BooleanLike) {\r\n        this.isExpanded = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public dropdownIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public dropdownIconSize: IconSize;\r\n\r\n    @Input()\r\n    public get basic(): boolean {\r\n        return this.isBasic;\r\n    }\r\n\r\n    public set basic(value: BooleanLike) {\r\n        this.isBasic = this.toBoolean(value);\r\n        this.classes.set('styled', !this.isBasic);\r\n    }\r\n\r\n    @Input()\r\n    public iconPosition: 'left' | 'right' = 'left';\r\n\r\n    @ContentChild(ExpanderHeaderComponent)\r\n    protected headerTemplate: ExpanderHeaderComponent | undefined;\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('header', 'expanded', 'dropdownIcon', 'dropdownIconSize', 'styled')\r\n            .registerFixed('fluid', 'accordion');\r\n        this.classes.set('styled', true);\r\n    }\r\n\r\n    public toggle(): void {\r\n        if (this.isExpanded) {\r\n            this.collapse();\r\n        }\r\n        else {\r\n            this.expand();\r\n        }\r\n    }\r\n\r\n    public collapse(): void {\r\n        this.isExpanded = false;\r\n    }\r\n\r\n    public expand(): void {\r\n        this.isExpanded = true;\r\n    }\r\n}\r\n","<m-flex class=\"title\" [direction]=\"iconPosition === 'left' ? 'row' : 'row-reverse'\" [class.active]=\"expanded\" (click)=\"toggle()\">\n  <m-icon [icon]=\"dropdownIcon ?? defaults.dropdownIcon\" [size]=\"dropdownIconSize ?? defaults.dropdownIconSize\" iconClass=\"dropdown icon\" />\n  <m-fill>\n    @if (headerTemplate) {\n      <ng-container [ngTemplateOutlet]=\"headerTemplate.template\" />\n    } @else {\n      {{header}}\n    }\n  </m-fill>\n</m-flex>\n<div class=\"content\" [class.active]=\"expanded\">\n  <ng-content />\n</div>\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { ExpanderComponent } from './expander.component';\r\nimport { IconSize } from '../icon/icon-size';\r\n\r\n@Component({\r\n    selector: 'm-expander-defaults',\r\n    template: '',\r\n    })\r\nexport class ExpanderDefaultsComponent implements OnDestroy {\r\n    private readonly previousDropdownIcon = ExpanderComponent.defaults.dropdownIcon;\r\n    private readonly previousDropdownIconSize = ExpanderComponent.defaults.dropdownIconSize;\r\n    private currentDropdownIcon?: IconType;\r\n    private currentDropdownIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public set dropdownIcon(value: IconType) {\r\n        this.currentDropdownIcon = value;\r\n        ExpanderComponent.defaults.dropdownIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set dropdownIconSize(value: IconSize) {\r\n        this.currentDropdownIconSize = value;\r\n        ExpanderComponent.defaults.dropdownIconSize = value;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentDropdownIcon === ExpanderComponent.defaults.dropdownIcon) {\r\n            ExpanderComponent.defaults.dropdownIcon = this.previousDropdownIcon;\r\n        }\r\n        if (this.currentDropdownIconSize === ExpanderComponent.defaults.dropdownIconSize) {\r\n            ExpanderComponent.defaults.dropdownIconSize = this.previousDropdownIconSize;\r\n        }\r\n    }\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ExpanderComponent } from '../expander/expander.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\n@Component({\n    selector: 'm-expander-icon',\n    templateUrl: './expander-icon.component.html',\n    styleUrls: ['./expander-icon.component.scss'],\n    imports: [\n        IconComponent\n    ],\n    providers: [...BaseComponent.providers]\n})\r\nexport class ExpanderIconComponent extends BaseComponent {\r\n    private isExpanded = false;\r\n    protected readonly defaults = ExpanderComponent.defaults;\r\n\r\n    @Input()\r\n    @HostBinding('class.expanded')\r\n    public get expanded(): boolean {\r\n        return this.isExpanded;\r\n    }\r\n\r\n    public set expanded(value: BooleanLike) {\r\n        this.isExpanded = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public dropdownIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public dropdownIconSize: IconSize;\r\n\r\n    @Output()\r\n    public readonly expandedChange = new EventEmitter<boolean>();\r\n\r\n    public constructor() {\r\n        super();\r\n    }\r\n\r\n    public toggle(): void {\r\n        if (this.isExpanded) {\r\n            this.collapse();\r\n        }\r\n        else {\r\n            this.expand();\r\n        }\r\n    }\r\n\r\n    public collapse(): void {\r\n        this.isExpanded = false;\r\n        this.expandedChange.emit(this.isExpanded);\r\n    }\r\n\r\n    public expand(): void {\r\n        this.isExpanded = true;\r\n        this.expandedChange.emit(this.isExpanded);\r\n    }\r\n}\r\n","<m-icon [icon]=\"dropdownIcon ?? defaults.dropdownIcon\" [size]=\"dropdownIconSize ?? defaults.dropdownIconSize\"></m-icon>\r\n","import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ExpanderIconComponent } from '../expander-icon/expander-icon.component';\r\nimport { FillComponent } from '../flex/fill/fill.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\n\r\n@Component({\r\n    selector: 'm-expander-part',\r\n    templateUrl: './expander-part.component.html',\r\n    styleUrls: ['./expander-part.component.scss'],\r\n    imports: [\r\n        FillComponent,\r\n        ExpanderIconComponent\r\n    ],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class ExpanderPartComponent extends BaseComponent {\r\n    private isExpanded = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.expandable')\r\n    public expandable: boolean | undefined = true;\r\n\r\n    @Input()\r\n    @HostBinding('class.expanded')\r\n    public get expanded(): boolean {\r\n        return this.isExpanded && this.expandable !== false;\r\n    }\r\n\r\n    public set expanded(value: BooleanLike) {\r\n        this.isExpanded = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public dropdownIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public dropdownIconSize: IconSize;\r\n\r\n    @Output()\r\n    public readonly expandedChange = new EventEmitter<boolean>();\r\n\r\n    @ViewChild(ExpanderIconComponent)\r\n    protected icon: ExpanderIconComponent | undefined;\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('expanded', 'expandable');\r\n    }\r\n\r\n    @HostListener('click')\r\n    protected onClick(): void {\r\n        if (this.expandable === false) {\r\n            return;\r\n        }\r\n        this.icon?.toggle();\r\n    }\r\n}\r\n","<m-fill>\n  <ng-content></ng-content>\n</m-fill>\n@if (expandable) {\n  <m-expander-icon [(expanded)]=\"expanded\" [dropdownIcon]=\"dropdownIcon\" [dropdownIconSize]=\"dropdownIconSize\" (expandedChange)=\"expandedChange.emit($event)\"></m-expander-icon>\n}\n","import { Component, Input } from '@angular/core';\r\nimport { IconSize } from '../icon/icon-size';\r\n\r\n@Component({\r\n    selector: 'm-flag',\r\n    templateUrl: './flag.component.html',\r\n    styleUrls: ['./flag.component.scss'],\r\n    })\r\nexport class FlagComponent {\r\n    @Input()\r\n    public flag: string | undefined;\r\n\r\n    @Input()\r\n    public size: IconSize;\r\n}\r\n","<i class=\"{{flag}} {{size}} flag\"></i>\r\n","export class Timespan {\r\n    public static readonly hoursInDay = 24;\r\n\r\n    public static readonly minutesInHour = 60;\r\n    public static readonly minutesInDay = this.minutesInHour * this.hoursInDay;\r\n\r\n    public static readonly secondsInMinute = 60;\r\n    public static readonly secondsInHour = this.secondsInMinute * this.minutesInHour;\r\n    public static readonly secondsInDay = this.secondsInMinute * this.minutesInDay;\r\n\r\n    public static readonly millisecondsInSecond = 1000;\r\n    public static readonly millisecondsInMinute = this.millisecondsInSecond * this.secondsInMinute;\r\n    public static readonly millisecondsInHour = this.millisecondsInSecond * this.secondsInHour;\r\n    public static readonly millisecondsInDay = this.millisecondsInSecond * this.secondsInDay;\r\n}\r\n","import { Timespan } from './timespan';\r\n\r\nexport abstract class DateHelper {\r\n    public static keepInRange(min: Date, value: Date | undefined, max?: Date | undefined): Date\r\n    public static keepInRange(min: Date | undefined, value: Date, max?: Date | undefined): Date\r\n    public static keepInRange(min: Date | undefined, value: Date | undefined, max?: Date): Date\r\n    public static keepInRange(min: Date | undefined, value: Date | undefined, max?: Date | undefined): Date {\r\n        if (min !== undefined && (value === undefined || value < min)) {\r\n            return min;\r\n        }\r\n        if (max !== undefined && (value === undefined || value > max)) {\r\n            return max;\r\n        }\r\n        return value as any;\r\n    }\r\n\r\n    public static sameDay(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        return this.sameMonth(left, right) && left.getDate() === right.getDate();\r\n    }\r\n\r\n    public static sameWeek(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        const leftDayOfYear = Math.floor((left.getTime() - new Date(left.getFullYear(), 0, 0).getTime()) / Timespan.millisecondsInDay);\r\n        const rightDayOfYear = Math.floor((right.getTime() - new Date(right.getFullYear(), 0, 0).getTime()) / Timespan.millisecondsInDay);\r\n        const leftWeekNumber = Math.ceil((leftDayOfYear + 1) / 7);\r\n        const rightWeekNumber = Math.ceil((rightDayOfYear + 1) / 7);\r\n        return leftWeekNumber === rightWeekNumber;\r\n    }\r\n\r\n    public static sameMonth(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        return this.sameYear(left, right) && left.getMonth() === right.getMonth();\r\n    }\r\n\r\n    public static sameYear(left: Date | undefined, right: Date | undefined): boolean {\r\n        if (!left || !right) {\r\n            return false;\r\n        }\r\n        return left.getFullYear() === right.getFullYear();\r\n    }\r\n\r\n    public static today(): Date {\r\n        const today = new Date();\r\n        today.setUTCHours(0, 0, 0, 0);\r\n        return today;\r\n    }\r\n}\r\n","import { DatePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\r\nimport { DateHelper } from '../../../helpers/date-helper';\r\nimport { BooleanLike } from '../../../models/boolean-like';\r\nimport { ColorName } from '../../../models/color';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { LabelComponent } from '../../label/label.component';\r\nimport { InputBaseComponent } from '../input-base.component';\r\n\r\n@Component({\r\n    selector: 'm-date-input',\r\n    templateUrl: './date-input.component.html',\r\n    styleUrls: ['./date-input.component.scss'],\r\n    imports: [IconComponent, FallbackForDirective, FormsModule, LabelComponent, NgTemplateOutlet, DatePipe],\r\n    providers: [...InputBaseComponent.providers]\r\n})\r\nexport class DateInputComponent extends InputBaseComponent implements OnInit {\r\n    private valueField: Date | undefined;\r\n    private showDayValue = false;\r\n\r\n    // eslint-disable-next-line no-null/no-null\r\n    protected internalValue: string | null = null;\r\n\r\n    @Input()\r\n    public get value(): Date | undefined {\r\n        return this.valueField;\r\n    }\r\n\r\n    public set value(value: Date | number | string | undefined) {\r\n        value = value ? new Date(value) : undefined;\r\n        value = isNaN(value?.getDate() as any) ? undefined : value;\r\n        if (value != this.valueField) {\r\n            this.setInternalValue(value);\r\n        }\r\n        this.valueField = value;\r\n    }\r\n\r\n    @Input()\r\n    public get date(): Date {\r\n        return this.value ?? this.default;\r\n    }\r\n\r\n    public set date(value: Date | number | string | undefined) {\r\n        this.value = value;\r\n    }\r\n\r\n    @Input()\r\n    public default = new Date(0);\r\n\r\n    @Input()\r\n    public min: Date | undefined;\r\n\r\n    @Input()\r\n    public max: Date | undefined;\r\n\r\n    @Input()\r\n    public get showDay(): boolean {\r\n        return this.showDayValue;\r\n    }\r\n\r\n    public set showDay(value: BooleanLike) {\r\n        this.showDayValue = this.toBoolean(value);\r\n        this.classes.set('labeled', this.showDayValue);\r\n    }\r\n\r\n    @Input()\r\n    public weekendColor: ColorName | undefined = 'red';\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter<Date | undefined>();\r\n\r\n    @Output()\r\n    public readonly dateChange = new EventEmitter<Date>();\r\n\r\n    @ContentChild('input')\r\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.refreshInput();\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    @ViewChild('input')\r\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('min', 'max', 'default', 'value', 'date', 'showDay', 'weekendColor');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        // Set internal value on blur to ensure a invalid value is overwritten\r\n        this.blur.subscribe(() => this.setInternalValue(this.value));\r\n    }\r\n\r\n    protected onInternalChange(rawValue: string): void {\r\n        let value = rawValue ? new Date(rawValue) : undefined;\r\n        if (value) {\r\n            this.setInternalValue(value);\r\n        }\r\n        value = DateHelper.keepInRange(this.min, value, this.max);\r\n        if (value !== this.value) {\r\n            this.valueField = value;\r\n            this.valueChange.emit(this.value);\r\n            this.dateChange.emit(this.date);\r\n        }\r\n    }\r\n\r\n    private setInternalValue(value: Date | null | undefined): void {\r\n        // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\r\n        // eslint-disable-next-line no-null/no-null\r\n        this.internalValue = value?.toISOString().split('T')[0] ?? null;\r\n    }\r\n}\r\n","@if (!isRight) {\n  <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n}\n@if (buttonPosition === 'left') {\n  <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n}\n<ng-content></ng-content>\n<input *m-fallback-for=\"'input'\" type=\"date\" [placeholder]=\"placeholder || ''\" [ngModel]=\"internalValue\" [min]=\"min || ''\" [max]=\"max || ''\" [attr.name]=\"name\" [attr.for]=\"for\" [attr.readOnly]=\"readonly || undefined\" [attr.disabled]=\"disabled || undefined\" (ngModelChange)=\"onInternalChange($event)\" #input>\n@if (icon) {\n  <m-icon [icon]=\"icon\" [size]=\"iconSize\" class=\"link icon\"></m-icon>\n}\n@if (isRight) {\n  <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n}\n@if (buttonPosition === 'right') {\n  <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n}\n\n<ng-template #labelTemplate>\n  @if (showDay) {\n    <m-label [color]=\"value?.getDay() === 0 || value?.getDay() === 6 ? weekendColor : undefined\">{{value | date: 'E'}}</m-label>\n  }\n  <ng-content select=\"m-label\"></ng-content>\n  <ng-content select=\"m-label-dropdown\"></ng-content>\n</ng-template>\n\n<ng-template #contentTemplate>\n  <ng-content select=\"m-button\"></ng-content>\n  <ng-content select=\"m-icon-button\"></ng-content>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\r\nimport { Math2 } from '../../../helpers/math2';\r\nimport { BooleanLike } from '../../../models/boolean-like';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { InputBaseComponent } from '../input-base.component';\r\n\r\n@Component({\r\n    selector: 'm-numeric-input',\r\n    templateUrl: './numeric-input.component.html',\r\n    styleUrls: ['./numeric-input.component.scss'],\r\n    imports: [IconComponent, FallbackForDirective, FormsModule, NgTemplateOutlet],\r\n    providers: [...InputBaseComponent.providers]\r\n})\r\nexport class NumericInputComponent extends InputBaseComponent implements OnInit {\r\n    private valueField: number | undefined;\r\n    private rangeValue = false;\r\n    // eslint-disable-next-line no-null/no-null\r\n    protected internalValue: number | null = null;\r\n    public type: 'number' | 'range' = 'number';\r\n\r\n    @Input()\r\n    public default = 0;\r\n\r\n    @Input()\r\n    public min: number | undefined;\r\n\r\n    @Input()\r\n    public max: number | undefined;\r\n\r\n    @Input()\r\n    public zeroText: string | undefined;\r\n\r\n    protected get placeholderInternal(): string {\r\n        return this.value === 0 && this.zeroText ? this.zeroText : this.placeholder ?? '';\r\n    }\r\n\r\n    @Input()\r\n    public get value(): number | undefined {\r\n        return this.valueField;\r\n    }\r\n\r\n    public set value(value: number | undefined) {\r\n        if (value != this.valueField) {\r\n            this.setInternalValue(value);\r\n        }\r\n        this.valueField = value;\r\n    }\r\n\r\n    @Input()\r\n    public get number(): number {\r\n        return this.value ?? this.default;\r\n    }\r\n\r\n    public set number(value: number | undefined) {\r\n        this.value = value;\r\n    }\r\n\r\n    @Input()\r\n    public get range(): boolean {\r\n        return this.rangeValue;\r\n    }\r\n\r\n    public set range(value: BooleanLike) {\r\n        this.rangeValue = this.toBoolean(value);\r\n        this.type = this.rangeValue ? 'range' : 'number';\r\n    }\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter<number | undefined>();\r\n\r\n    @Output()\r\n    public readonly numberChange = new EventEmitter<number>();\r\n\r\n    @ContentChild('input')\r\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.refreshInput();\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    @ViewChild('input')\r\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('min', 'max', 'defaultValue', 'value', 'range', 'zeroText', 'number');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        // Set internal value on blur to ensure a invalid value is overwritten\r\n        this.blur.subscribe(() => this.setInternalValue(this.value));\r\n    }\r\n\r\n    protected onInternalChange(rawValue: string | null | undefined): void {\r\n        let value = typeof rawValue === 'string' ? rawValue !== '' ? parseFloat(rawValue) : undefined : rawValue ?? undefined;\r\n        this.setInternalValue(value);\r\n        value = value == undefined || Number.isNaN(value) ? undefined : Math2.keepInRange(this.min, value, this.max);\r\n        if (value !== this.value) {\r\n            this.valueField = value;\r\n            this.valueChange.emit(this.value);\r\n            this.numberChange.emit(this.number);\r\n        }\r\n    }\r\n\r\n    private setInternalValue(value: number | null | undefined): void {\r\n        if (value === 0 && this.zeroText) {\r\n            // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\r\n            // eslint-disable-next-line no-null/no-null\r\n            this.internalValue = null;\r\n            return;\r\n        }\r\n        // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\r\n        // eslint-disable-next-line no-null/no-null\r\n        this.internalValue = value ?? null;\r\n    }\r\n}\r\n","@if (!isRight) {\n  <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition === 'left') {\n  <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n<ng-content />\n<input *m-fallback-for=\"'input'\" [type]=\"type\" [placeholder]=\"placeholderInternal || ''\" [ngModel]=\"internalValue\" [min]=\"min || ''\" [max]=\"max || ''\" [attr.name]=\"name\" [attr.for]=\"for\" [attr.readOnly]=\"readonly || undefined\" [attr.disabled]=\"disabled || undefined\" (ngModelChange)=\"onInternalChange($event)\" #input>\n@if (icon) {\n  <m-icon [icon]=\"icon\" [size]=\"iconSize\" class=\"link icon\" />\n}\n@if (isRight) {\n  <ng-container [ngTemplateOutlet]=\"labelTemplate\" />\n}\n@if (buttonPosition === 'right') {\n  <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n}\n\n<ng-template #labelTemplate>\n  <ng-content select=\"m-label\" />\n  <ng-content select=\"m-label-dropdown\" />\n</ng-template>\n\n<ng-template #contentTemplate>\n  <ng-content select=\"m-button\" />\n  <ng-content select=\"m-icon-button\" />\n</ng-template>\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { RadioCheckEvent } from '../models/radio-check-event';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class RadioService {\r\n    private readonly checkedSubject = new Subject<RadioCheckEvent>();\r\n    public readonly checked = this.checkedSubject.asObservable();\r\n\r\n    public check(group: string, value: unknown): void {\r\n        this.checkedSubject.next({ group, value });\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { RadioService } from '../../services/radio.service';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\n\r\n@Component({\n    selector: 'm-radio',\n    templateUrl: './radio.component.html',\n    styleUrls: ['./radio.component.scss'],\n    imports: [\n        FormsModule\n    ],\n    providers: [...CheckboxComponent.providers]\n})\r\nexport class RadioComponent extends CheckboxComponent {\r\n\r\n    public constructor(\r\n        private readonly radioService: RadioService\r\n    ) {\r\n        super();\r\n        this.classes.registerFixed('radio');\r\n        this.canUncheck = false;\r\n        this.radioService.checked.pipe(\r\n            filter(event => !!event.group && event.group === this.name && event.value !== this),\r\n            takeUntil(this.destroy)\r\n        ).subscribe(() => this.checked = false);\r\n        this.valueChange.pipe(filter(checked => !!checked)).subscribe(() => this.radioService.check(this.name, this));\r\n    }\r\n}\r\n","<input type=\"checkbox\" [name]=\"name\" [ngModel]=\"value\" [indeterminate]=\"indeterminate\" class=\"hidden\">\r\n<label [attr.for]=\"name\">\r\n    {{label}}\r\n    <ng-content></ng-content>\r\n</label>","import { Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { RadioService } from '../../services/radio.service';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\n\r\n@Component({\n    selector: 'm-slider',\n    templateUrl: './slider.component.html',\n    styleUrls: ['./slider.component.scss'],\n    imports: [\n        FormsModule\n    ],\n    providers: [...CheckboxComponent.providers]\n})\r\nexport class SliderComponent extends CheckboxComponent {\r\n    public constructor(\r\n        private readonly radioService: RadioService\r\n    ) {\r\n        super();\r\n        this.classes.registerFixed('slider');\r\n        this.radioService.checked.pipe(\r\n            filter(event => !!event.group && event.group === this.name && event.value !== this),\r\n            takeUntil(this.destroy)\r\n        ).subscribe(() => this.checked = false);\r\n        this.valueChange.pipe(filter(checked => !!checked)).subscribe(() => this.radioService.check(this.name, this));\r\n    }\r\n}\r\n","<input type=\"checkbox\" [name]=\"name\" [ngModel]=\"value\" [indeterminate]=\"indeterminate\" class=\"hidden\">\r\n<label [attr.for]=\"name\">\r\n    {{label}}\r\n    <ng-content></ng-content>\r\n</label>","import { ApplicationRef, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { FallbackForDirective } from '../../directives/fallback-for.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\n@Component({\n    selector: 'm-textarea',\n    templateUrl: './textarea.component.html',\n    styleUrls: ['./textarea.component.scss'],\n    imports: [\n        FormsModule,\n        FallbackForDirective\n    ],\n    providers: [...InvertibleComponent.providers]\n})\r\nexport class TextareaComponent extends InvertibleComponent {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n\r\n    private readonlyValue = false;\r\n    private disabledValue = false;\r\n\r\n    public textareaElement?: ElementRef<HTMLTextAreaElement>;\r\n\r\n    @Input()\r\n    public name?: string;\r\n\r\n    @Input()\r\n    @HostBinding('class.disabled')\r\n    public get disabled(): boolean {\r\n        return this.disabledValue;\r\n    }\r\n\r\n    public set disabled(value: BooleanLike) {\r\n        this.disabledValue = this.toBoolean(value);\r\n        this.refreshTextarea();\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.disabled')\r\n    public get readonly(): boolean {\r\n        return this.readonlyValue;\r\n    }\r\n\r\n    public set readonly(value: BooleanLike) {\r\n        this.readonlyValue = this.toBoolean(value);\r\n        this.refreshTextarea();\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.error')\r\n    public hasError = false;\r\n\r\n    @Input()\r\n    public placeholder: string | undefined;\r\n\r\n    @Input()\r\n    public value: string | undefined;\r\n\r\n    @Input()\r\n    public get text(): string {\r\n        return this.value ?? this.default;\r\n    }\r\n\r\n    public set text(value: string | undefined) {\r\n        this.value = value;\r\n    }\r\n\r\n    @Input()\r\n    public default = '';\r\n\r\n    @Input()\r\n    public inputId: string | undefined;\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter<string | undefined>();\r\n\r\n    @Output()\r\n    public readonly textChange = new EventEmitter<string>();\r\n\r\n    @Output()\r\n    public readonly keyDown = new EventEmitter<KeyboardEvent>();\r\n\r\n    @Output()\r\n    public readonly keyUp = new EventEmitter<KeyboardEvent>();\r\n\r\n    @Output()\r\n    public readonly keyPress = new EventEmitter<Event>();\r\n\r\n    @Output()\r\n    public readonly blur = new EventEmitter<FocusEvent>();\r\n\r\n    @Output()\r\n    public readonly focus = new EventEmitter<FocusEvent>();\r\n\r\n    @Output()\r\n    public readonly focusin = new EventEmitter<FocusEvent>();\r\n\r\n    @Output()\r\n    public readonly focusout = new EventEmitter<FocusEvent>();\r\n\r\n    @ContentChild('textarea')\r\n    protected set contentTextareaElement(textarea: ElementRef<HTMLTextAreaElement>) {\r\n        this.unbindEvents();\r\n        this.textareaElement = textarea;\r\n        this.refreshTextarea();\r\n        this.bindEvents();\r\n    }\r\n\r\n    @ViewChild('textarea')\r\n    protected set viewInputElement(textarea: ElementRef<HTMLTextAreaElement>) {\r\n        this.unbindEvents();\r\n        this.textareaElement = textarea;\r\n        this.bindEvents();\r\n    }\r\n\r\n    public constructor(\r\n        private readonly applicationRef: ApplicationRef\r\n    ) {\r\n        super();\r\n        this.classes.register('disabled', 'readonly', 'hasError', 'fluid', 'value', 'text', 'default', 'placeholder')\r\n            // HACK: Currently I do not know a other way to style a textarea with semantic ui, so I have to use form class here\r\n            .registerFixed('form', 'textarea');\r\n        TextareaComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    protected onChange(): void {\r\n        this.value ??= this.default;\r\n        this.valueChange.emit(this.value);\r\n        this.textChange.emit(this.text);\r\n    }\r\n\r\n    private refreshTextarea(): void {\r\n        if (!this.textareaElement) {\r\n            return;\r\n        }\r\n        this.textareaElement.nativeElement.disabled = this.disabledValue;\r\n        this.textareaElement.nativeElement.readOnly = this.readonlyValue;\r\n    }\r\n\r\n    private readonly keyDownEventHandler = (event: KeyboardEvent) => this.keyDown.next(event);\r\n    private readonly keyUpEventHandler = (event: KeyboardEvent) => this.keyUp.next(event);\r\n    private readonly keyPressEventHandler = (event: Event) => this.keyPress.next(event);\r\n    private readonly blurEventHandler = (event: FocusEvent) => this.blur.next(event);\r\n    private readonly focusEventHandler = (event: FocusEvent) => this.focus.next(event);\r\n    private readonly focusinEventHandler = (event: FocusEvent) => this.focusin.next(event);\r\n    private readonly focusoutEventHandler = (event: FocusEvent) => this.focusout.next(event);\r\n\r\n    protected bindEvents(): void {\r\n        if (!this.textareaElement) {\r\n            return;\r\n        }\r\n        // TODO: Improve event binding!\r\n        this.textareaElement.nativeElement.addEventListener('keydown', this.keyDownEventHandler);\r\n        this.textareaElement.nativeElement.addEventListener('keyup', this.keyUpEventHandler);\r\n        this.textareaElement.nativeElement.addEventListener('keyPress', this.keyPressEventHandler);\r\n        this.textareaElement.nativeElement.addEventListener('blur', this.blurEventHandler);\r\n        this.textareaElement.nativeElement.addEventListener('focus', this.focusEventHandler);\r\n        this.textareaElement.nativeElement.addEventListener('focusin', this.focusinEventHandler);\r\n        this.textareaElement.nativeElement.addEventListener('focusout', this.focusoutEventHandler);\r\n    }\r\n\r\n    protected unbindEvents(): void {\r\n        if (!this.textareaElement) {\r\n            return;\r\n        }\r\n        this.textareaElement.nativeElement.removeEventListener('keydown', this.keyDownEventHandler);\r\n        this.textareaElement.nativeElement.removeEventListener('keyup', this.keyUpEventHandler);\r\n        this.textareaElement.nativeElement.removeEventListener('keyPress', this.keyPressEventHandler);\r\n        this.textareaElement.nativeElement.removeEventListener('blur', this.blurEventHandler);\r\n        this.textareaElement.nativeElement.removeEventListener('focus', this.focusEventHandler);\r\n        this.textareaElement.nativeElement.removeEventListener('focusin', this.focusinEventHandler);\r\n        this.textareaElement.nativeElement.removeEventListener('focusout', this.focusoutEventHandler);\r\n    }\r\n}\r\n","<ng-content></ng-content>\r\n<textarea *m-fallback-for=\"'input'\" [placeholder]=\"placeholder || ''\" [(ngModel)]=\"value\" [readOnly]=\"readonly ? true : undefined\" [disabled]=\"$any(disabled ? true : undefined)\" [attr.id]=\"inputId\" (ngModelChange)=\"onChange()\" #textarea></textarea>\r\n","import { Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { RadioService } from '../../services/radio.service';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\n\r\n@Component({\n    selector: 'm-toggle',\n    templateUrl: './toggle.component.html',\n    styleUrls: ['./toggle.component.scss'],\n    imports: [\n        FormsModule\n    ],\n    providers: [...CheckboxComponent.providers]\n})\r\nexport class ToggleComponent extends CheckboxComponent {\r\n    public constructor(\r\n        private readonly radioService: RadioService\r\n    ) {\r\n        super();\r\n        this.classes.registerFixed('toggle');\r\n        this.radioService.checked.pipe(\r\n            filter(event => !!event.group && event.group === this.name && event.value !== this),\r\n            takeUntil(this.destroy)\r\n        ).subscribe(() => this.checked = false);\r\n        this.valueChange.pipe(filter(checked => !!checked)).subscribe(() => this.radioService.check(this.name, this));\r\n    }\r\n}\r\n","<input type=\"checkbox\" [name]=\"name\" [ngModel]=\"value\" [indeterminate]=\"indeterminate\" class=\"hidden\">\r\n<label [attr.for]=\"name\">\r\n    {{label}}\r\n    <ng-content></ng-content>\r\n</label>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FormError } from '../../models/form-error';\r\n\r\n@Pipe({\r\n    name: 'fieldFormatErrors',\r\n    })\r\nexport class FieldFormatErrorsPipe implements PipeTransform {\r\n\r\n    public transform(errors: FormError[]): string {\r\n        return errors.map(error => error.label + ' ' + error.message).join('\\n');\r\n    }\r\n\r\n}\r\n","\r\nimport { Component, ContentChild, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\r\nimport { FormError } from '../../models/form-error';\r\nimport { FormValidation } from '../../models/form-validation';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\nimport { DropdownComponent } from '../dropdown/dropdown.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { DateInputComponent } from '../input/date/date-input.component';\r\nimport { NumericInputComponent } from '../input/numeric/numeric-input.component';\r\nimport { InputComponent } from '../input/text/input.component';\r\nimport { RadioComponent } from '../radio/radio.component';\r\nimport { SliderComponent } from '../slider/slider.component';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport { ToggleComponent } from '../toggle/toggle.component';\r\nimport { FieldFormatErrorsPipe } from './field-format-errors.pipe';\r\n\r\n@Component({\n    selector: 'm-field',\n    templateUrl: './field.component.html',\n    styleUrls: ['./field.component.scss'],\n    imports: [\n    IconComponent,\n    FieldFormatErrorsPipe\n],\n    providers: [...BaseComponent.providers]\n})\r\nexport class FieldComponent extends BaseComponent {\r\n    public static readonly defaults = {\r\n        hintIcon: <IconType>'info circle',\r\n        hintIconSize: <IconSize>undefined,\r\n        errorIcon: <IconType>'exclamation circle',\r\n        errorIconSize: <IconSize>undefined\r\n    };\r\n    private labelElementValue?: HTMLLabelElement;\r\n    private inputComponentValue?: InputComponent;\r\n    private numericInputComponentValue?: NumericInputComponent;\r\n    private dateInputComponentValue?: DateInputComponent;\r\n    private checkboxComponentValue?: CheckboxComponent;\r\n    private sliderComponentValue?: SliderComponent;\r\n    private toggleComponentValue?: ToggleComponent;\r\n    private radioComponentValue?: RadioComponent;\r\n    private textareaComponentValue?: TextareaComponent;\r\n    private dropDownComponentValue?: DropdownComponent;\r\n    private nameValue?: string;\r\n    private labelValue?: string;\r\n    private sizeValue: FieldSize = '';\r\n    private disabledValue = false;\r\n    private readonlyValue = false;\r\n    private errorValue = false;\r\n    private hideInitialErrorValue = true;\r\n    private isInline = false;\r\n    private isFill = false;\r\n\r\n    protected wasAnytimeValid = false;\r\n    public readonly errors: FormError[] = [];\r\n    protected readonly defaults = FieldComponent.defaults;\r\n    private isInlineValidation = false;\r\n    private hasOwnLabel = false;\r\n    private isForceLabel = false;\r\n    private originalLabel?: string;\r\n\r\n    @ContentChild('labelElement')\r\n    protected get labelElement(): HTMLLabelElement | undefined {\r\n        return this.labelElementValue;\r\n    }\r\n\r\n    protected set labelElement(value: HTMLLabelElement | undefined) {\r\n        this.labelElementValue = value;\r\n        if (this.labelElementValue && this.name) {\r\n            this.labelElementValue.setAttribute('for', this.name);\r\n        }\r\n    }\r\n\r\n    @ContentChild(InputComponent)\r\n    protected get inputComponent(): InputComponent | undefined {\r\n        return this.inputComponentValue;\r\n    }\r\n\r\n    protected set inputComponent(value: InputComponent | undefined) {\r\n        this.inputComponentValue = value;\r\n        if (this.inputComponentValue) {\r\n            this.inputComponentValue.for = this.name;\r\n            this.inputComponentValue.name = this.name;\r\n            this.inputComponentValue.readonly = this.readonly;\r\n            this.inputComponentValue.disabled = this.disabled;\r\n            this.inputComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(NumericInputComponent)\r\n    protected get numericInputComponent(): NumericInputComponent | undefined {\r\n        return this.numericInputComponentValue;\r\n    }\r\n\r\n    protected set numericInputComponent(value: NumericInputComponent | undefined) {\r\n        this.numericInputComponentValue = value;\r\n        if (this.numericInputComponentValue) {\r\n            this.numericInputComponentValue.for = this.name;\r\n            this.numericInputComponentValue.name = this.name;\r\n            this.numericInputComponentValue.readonly = this.readonly;\r\n            this.numericInputComponentValue.disabled = this.disabled;\r\n            this.numericInputComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(DateInputComponent)\r\n    protected get dateInputComponent(): DateInputComponent | undefined {\r\n        return this.dateInputComponentValue;\r\n    }\r\n\r\n    protected set dateInputComponent(value: DateInputComponent | undefined) {\r\n        this.dateInputComponentValue = value;\r\n        if (this.dateInputComponentValue) {\r\n            this.dateInputComponentValue.for = this.name;\r\n            this.dateInputComponentValue.name = this.name;\r\n            this.dateInputComponentValue.readonly = this.readonly;\r\n            this.dateInputComponentValue.disabled = this.disabled;\r\n            this.dateInputComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(CheckboxComponent)\r\n    protected get checkboxComponent(): CheckboxComponent | undefined {\r\n        return this.checkboxComponentValue;\r\n    }\r\n\r\n    protected set checkboxComponent(value: CheckboxComponent | undefined) {\r\n        this.checkboxComponentValue = value;\r\n        if (this.checkboxComponentValue) {\r\n            this.checkboxComponentValue.name = this.name;\r\n            if (!this.ownLabel) {\r\n                this.checkboxComponentValue.label = this.label;\r\n            }\r\n            this.checkboxComponentValue.readonly = this.readonly;\r\n            this.checkboxComponentValue.disabled = this.disabled;\r\n            this.checkboxComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(SliderComponent)\r\n    protected get sliderComponent(): SliderComponent | undefined {\r\n        return this.sliderComponentValue;\r\n    }\r\n\r\n    protected set sliderComponent(value: SliderComponent | undefined) {\r\n        this.sliderComponentValue = value;\r\n        if (this.sliderComponentValue) {\r\n            this.sliderComponentValue.name = this.name;\r\n            if (!this.ownLabel) {\r\n                this.sliderComponentValue.label = this.label;\r\n            }\r\n            this.sliderComponentValue.readonly = this.readonly;\r\n            this.sliderComponentValue.disabled = this.disabled;\r\n            this.sliderComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(ToggleComponent)\r\n    protected get toggleComponent(): ToggleComponent | undefined {\r\n        return this.toggleComponentValue;\r\n    }\r\n\r\n    protected set toggleComponent(value: ToggleComponent | undefined) {\r\n        this.toggleComponentValue = value;\r\n        if (this.toggleComponentValue) {\r\n            this.toggleComponentValue.name = this.name;\r\n            if (!this.ownLabel) {\r\n                this.toggleComponentValue.label = this.label;\r\n            }\r\n            this.toggleComponentValue.readonly = this.readonly;\r\n            this.toggleComponentValue.disabled = this.disabled;\r\n            this.toggleComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(RadioComponent)\r\n    protected get radioComponent(): RadioComponent | undefined {\r\n        return this.radioComponentValue;\r\n    }\r\n\r\n    protected set radioComponent(value: RadioComponent | undefined) {\r\n        this.radioComponentValue = value;\r\n        if (this.radioComponentValue) {\r\n            this.radioComponentValue.name = this.name;\r\n            if (!this.ownLabel) {\r\n                this.radioComponentValue.label = this.label;\r\n            }\r\n            this.radioComponentValue.readonly = this.readonly;\r\n            this.radioComponentValue.disabled = this.disabled;\r\n            this.radioComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(TextareaComponent)\r\n    protected get textareaComponent(): TextareaComponent | undefined {\r\n        return this.textareaComponentValue;\r\n    }\r\n\r\n    protected set textareaComponent(value: TextareaComponent | undefined) {\r\n        this.textareaComponentValue = value;\r\n        if (this.textareaComponentValue) {\r\n            this.textareaComponentValue.name = this.name;\r\n            this.textareaComponentValue.readonly = this.readonly;\r\n            this.textareaComponentValue.disabled = this.disabled;\r\n            this.textareaComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @ContentChild(DropdownComponent)\r\n    protected get dropDownComponent(): DropdownComponent | undefined {\r\n        return this.dropDownComponentValue;\r\n    }\r\n\r\n    protected set dropDownComponent(value: DropdownComponent | undefined) {\r\n        this.dropDownComponentValue = value;\r\n        if (this.dropDownComponentValue) {\r\n            this.dropDownComponentValue.name = this.name;\r\n            this.dropDownComponentValue.readonly = this.readonly;\r\n            this.dropDownComponentValue.disabled = this.disabled;\r\n            this.dropDownComponentValue.valueChange.pipe(takeUntil(this.destroy)).subscribe(() => this.change.next());\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public get name(): string | undefined {\r\n        return this.nameValue;\r\n    }\r\n\r\n    public set name(value: string | undefined) {\r\n        this.nameValue = value;\r\n        if (this.labelElement) {\r\n            this.labelElement.setAttribute('for', value ?? '');\r\n        }\r\n        if (this.inputComponent) {\r\n            this.inputComponent.for = value;\r\n            this.inputComponent.name = value;\r\n        }\r\n        if (this.numericInputComponent) {\r\n            this.numericInputComponent.for = value;\r\n            this.numericInputComponent.name = value;\r\n        }\r\n        if (this.dateInputComponent) {\r\n            this.dateInputComponent.for = value;\r\n            this.dateInputComponent.name = value;\r\n        }\r\n        if (this.checkboxComponent) {\r\n            this.checkboxComponent.name = value;\r\n        }\r\n        if (this.sliderComponent) {\r\n            this.sliderComponent.name = value;\r\n        }\r\n        if (this.toggleComponent) {\r\n            this.toggleComponent.name = value;\r\n        }\r\n        if (this.radioComponent) {\r\n            this.radioComponent.name = value;\r\n        }\r\n        if (this.textareaComponent) {\r\n            this.textareaComponent.name = value;\r\n        }\r\n        if (this.dropDownComponent) {\r\n            this.dropDownComponent.name = value;\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public get label(): string | undefined {\r\n        return this.labelValue;\r\n    }\r\n\r\n    public set label(value: string | undefined) {\r\n        this.labelValue = value;\r\n        if (this.checkboxComponent) {\r\n            if (!this.ownLabel) {\r\n                this.originalLabel = this.checkboxComponent.label;\r\n                this.checkboxComponent.label = value;\r\n            }\r\n            else if (this.originalLabel) {\r\n                this.checkboxComponent.label = this.originalLabel;\r\n            }\r\n        }\r\n        if (this.sliderComponent) {\r\n            if (!this.ownLabel) {\r\n                this.originalLabel = this.sliderComponent.label;\r\n                this.sliderComponent.label = value;\r\n            }\r\n            else if (this.originalLabel) {\r\n                this.sliderComponent.label = this.originalLabel;\r\n            }\r\n        }\r\n        if (this.toggleComponent) {\r\n            if (!this.ownLabel) {\r\n                this.originalLabel = this.toggleComponent.label;\r\n                this.toggleComponent.label = value;\r\n            }\r\n            else if (this.originalLabel) {\r\n                this.toggleComponent.label = this.originalLabel;\r\n            }\r\n        }\r\n        if (this.radioComponent) {\r\n            if (!this.ownLabel) {\r\n                this.originalLabel = this.radioComponent.label;\r\n                this.radioComponent.label = value;\r\n            }\r\n            else if (this.originalLabel) {\r\n                this.radioComponent.label = this.originalLabel;\r\n            }\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public hint: string | undefined;\r\n\r\n    @Input()\r\n    @HostBinding('class.wide')\r\n    public get size(): FieldSize {\r\n        return this.sizeValue;\r\n    }\r\n\r\n    public set size(value: ParsableFieldSize) {\r\n        this.sizeValue = parseFieldSize(value) ?? '';\r\n        this.classes.set('size', this.sizeValue);\r\n    }\r\n\r\n    @Input()\r\n    public get error(): boolean {\r\n        return this.errorValue;\r\n    }\r\n\r\n    public set error(value: BooleanLike) {\r\n        value = this.toBoolean(value);\r\n        if (this.errorValue === value) {\r\n            return;\r\n        }\r\n        this.errorValue = value;\r\n        this.visibleError = value;\r\n        this.errorChange.emit(value);\r\n    }\r\n\r\n    @HostBinding('class.error')\r\n    protected visibleError = false;\r\n\r\n    @Input()\r\n    public set valid(value: boolean | FormValidation) {\r\n        const oldError = this.error;\r\n        const newError = typeof value === 'boolean' ? !value : value && !value.valid;\r\n        this.errors.length = 0;\r\n        if (newError) {\r\n            const message = typeof value === 'boolean' ? '' : value.message ?? '';\r\n            const label = (typeof value === 'boolean' ? this.label : value.label === undefined ? this.label : value.label) ?? '';\r\n            this.errors.push({ message, label });\r\n        }\r\n        if (newError !== oldError) {\r\n            this.error = newError;\r\n            this.refreshClasses();\r\n        }\r\n        if (!this.error) {\r\n            this.wasAnytimeValid = true;\r\n        }\r\n        else if (this.hideInitialError && !this.wasAnytimeValid) {\r\n            this.visibleError = false;\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.disabled')\r\n    public get disabled(): boolean {\r\n        return this.disabledValue;\r\n    }\r\n\r\n    public set disabled(value: BooleanLike) {\r\n        this.disabledValue = this.toBoolean(value);\r\n        if (this.inputComponent) {\r\n            this.inputComponent.disabled = value;\r\n        }\r\n        if (this.numericInputComponent) {\r\n            this.numericInputComponent.disabled = value;\r\n        }\r\n        if (this.dateInputComponent) {\r\n            this.dateInputComponent.disabled = value;\r\n        }\r\n        if (this.checkboxComponent) {\r\n            this.checkboxComponent.disabled = value;\r\n        }\r\n        if (this.toggleComponent) {\r\n            this.toggleComponent.disabled = value;\r\n        }\r\n        if (this.sliderComponent) {\r\n            this.sliderComponent.disabled = value;\r\n        }\r\n        if (this.radioComponent) {\r\n            this.radioComponent.disabled = value;\r\n        }\r\n        if (this.textareaComponent) {\r\n            this.textareaComponent.disabled = value;\r\n        }\r\n        if (this.dropDownComponent) {\r\n            this.dropDownComponent.disabled = value;\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.readonly')\r\n    public get readonly(): boolean {\r\n        return this.readonlyValue;\r\n    }\r\n\r\n    public set readonly(value: BooleanLike) {\r\n        this.readonlyValue = this.toBoolean(value);\r\n        if (this.inputComponent) {\r\n            this.inputComponent.readonly = value;\r\n        }\r\n        if (this.numericInputComponent) {\r\n            this.numericInputComponent.readonly = value;\r\n        }\r\n        if (this.dateInputComponent) {\r\n            this.dateInputComponent.readonly = value;\r\n        }\r\n        if (this.checkboxComponent) {\r\n            this.checkboxComponent.readonly = value;\r\n        }\r\n        if (this.toggleComponent) {\r\n            this.toggleComponent.readonly = value;\r\n        }\r\n        if (this.sliderComponent) {\r\n            this.sliderComponent.readonly = value;\r\n        }\r\n        if (this.radioComponent) {\r\n            this.radioComponent.readonly = value;\r\n        }\r\n        if (this.dropDownComponent) {\r\n            this.dropDownComponent.readonly = value;\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.inline')\r\n    public get inline(): boolean {\r\n        return this.isInline;\r\n    }\r\n\r\n    public set inline(value: BooleanLike) {\r\n        this.isInline = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get hideInitialError(): boolean {\r\n        return this.hideInitialErrorValue;\r\n    }\r\n\r\n    public set hideInitialError(value: boolean) {\r\n        this.hideInitialErrorValue = value;\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.fill')\r\n    public get fill(): boolean {\r\n        return this.isFill;\r\n    }\r\n\r\n    public set fill(value: BooleanLike) {\r\n        this.isFill = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get inlineValidation(): boolean {\r\n        return this.isInlineValidation;\r\n    }\r\n\r\n    public set inlineValidation(value: BooleanLike) {\r\n        this.isInlineValidation = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get ownLabel(): boolean {\r\n        return this.hasOwnLabel;\r\n    }\r\n\r\n    public set ownLabel(value: BooleanLike) {\r\n        this.hasOwnLabel = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get forceLabel(): boolean {\r\n        return this.isForceLabel;\r\n    }\r\n\r\n    public set forceLabel(value: BooleanLike) {\r\n        this.isForceLabel = this.toBoolean(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly errorChange = new EventEmitter<boolean>();\r\n\r\n    @Output()\r\n    public readonly change = new EventEmitter<void>();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.registerFixed('field');\r\n        this.classes.register('size', 'disabled', 'readonly', 'inline', 'label', 'fill', 'name');\r\n    }\r\n\r\n    public forceValidation(): void {\r\n        this.wasAnytimeValid = true;\r\n        this.visibleError = this.error;\r\n    }\r\n}\r\n","@if ((checkboxComponent || sliderComponent || toggleComponent || radioComponent) && !ownLabel && forceLabel) {\n  <label class=\"empty label\">&nbsp;</label>\n} @else if (label || hint) {\n  @if ((label || hint) && (!checkboxComponent && !sliderComponent && !toggleComponent && !radioComponent || ownLabel)) {\n    <label [attr.for]=\"name\" #labelElement>\n      {{ label }}\n      @if (hint) {\n        <m-icon [icon]=\"defaults.hintIcon\" [size]=\"defaults.hintIconSize\" [title]=\"hint\" />\n      }\n      @if (inlineValidation && errors.length) {\n        <m-icon [icon]=\"defaults.errorIcon\" [size]=\"defaults.errorIconSize\" [title]=\"errors | fieldFormatErrors\" />\n      }\n    </label>\n  }\n}\n\n<ng-content />\n","import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output, QueryList } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { InlineDirective } from '../../directives/inline.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FieldComponent } from '../field/field.component';\r\n\r\nexport declare type FieldsType =\r\n    ''\r\n    | 'two'\r\n    | 'three'\r\n    | 'four'\r\n    | 'five'\r\n    | 'six'\r\n    | 'seven'\r\n    | 'eight'\r\n    | 'nine'\r\n    | 'ten'\r\n    | number;\r\n\r\n@Component({\r\n    selector: 'm-field-group',\r\n    templateUrl: './field-group.component.html',\r\n    styleUrls: ['./field-group.component.scss'],\r\n    hostDirectives: [InlineDirective.default],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class FieldGroupComponent extends BaseComponent {\r\n    private readonly fieldClasses: FieldsType[] = ['', '', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];\r\n    private fieldsValue: FieldsType | undefined;\r\n    private fieldsAutoValue: FieldsType | undefined;\r\n    private isGrouped = false;\r\n    private isInlineValidation = false;\r\n    private errorValue = false;\r\n    private changeSubscriptions: Subscription[] = [];\r\n    private fieldComponentsValue?: QueryList<FieldComponent>;\r\n\r\n    @Input()\r\n    public get fields(): FieldsType | undefined {\r\n        return this.fieldsValue || this.fieldsAutoValue;\r\n    }\r\n\r\n    public set fields(value: FieldsType | undefined) {\r\n        // TODO: Parse number as string e.g. '2'\r\n        if (typeof value === 'number') {\r\n            this.fieldsValue = this.fieldClasses[value];\r\n        }\r\n        else {\r\n            this.fieldsValue = value;\r\n        }\r\n    }\r\n\r\n    @ContentChildren(FieldComponent)\r\n    public get fieldComponents(): QueryList<FieldComponent> | undefined {\r\n        return this.fieldComponentsValue;\r\n    }\r\n\r\n    public set fieldComponents(value: QueryList<FieldComponent> | undefined) {\r\n        this.fieldComponentsValue = value;\r\n        this.refreshInlineValidation();\r\n        this.refreshChangeSubscriptions();\r\n        this.refreshIsValid();\r\n        if (this.fieldComponentsValue) {\r\n            this.refreshFields(this.fieldComponentsValue.length);\r\n            this.fieldComponentsValue.changes.subscribe(() => {\r\n                this.refreshFields(this.fieldComponentsValue?.length ?? 0);\r\n                this.refreshInlineValidation();\r\n                this.refreshChangeSubscriptions();\r\n                this.refreshIsValid();\r\n            });\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.grouped')\r\n    public get grouped(): boolean {\r\n        return this.isGrouped;\r\n    }\r\n\r\n    public set grouped(value: BooleanLike) {\r\n        this.isGrouped = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get inlineValidation(): boolean {\r\n        return this.isInlineValidation;\r\n    }\r\n\r\n    public set inlineValidation(value: BooleanLike) {\r\n        this.isInlineValidation = this.toBoolean(value);\r\n        this.refreshInlineValidation();\r\n    }\r\n\r\n    @Input()\r\n    public get error(): boolean {\r\n        return this.errorValue;\r\n    }\r\n\r\n    public set error(value: BooleanLike) {\r\n        value = this.toBoolean(value);\r\n        if (this.errorValue === value) {\r\n            return;\r\n        }\r\n        this.errorValue = value;\r\n        this.errorChange.emit(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly errorChange = new EventEmitter<boolean>();\r\n\r\n    @Output()\r\n    public readonly change = new EventEmitter<void>();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('grouped')\r\n            .registerFixed('fields');\r\n    }\r\n\r\n    private refreshFields(count: number): void {\r\n        this.fieldsAutoValue = this.fieldClasses[count];\r\n    }\r\n\r\n    private refreshInlineValidation(): void {\r\n        this.fieldComponents?.forEach(field => field.inlineValidation = this.inlineValidation);\r\n    }\r\n\r\n    private refreshChangeSubscriptions(): void {\r\n        this.changeSubscriptions.forEach(subscription => subscription.unsubscribe());\r\n        this.fieldComponents?.forEach(field =>\r\n            this.changeSubscriptions.push(\r\n                field.change.pipe(takeUntil(this.destroy)).subscribe(() => this.change.emit()),\r\n                field.errorChange.pipe(takeUntil(this.destroy)).subscribe(() => this.refreshIsValid())\r\n            ));\r\n    }\r\n\r\n    private refreshIsValid(): void {\r\n        this.error = this.fieldComponents?.some(component => component.error);\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { FieldComponent } from './field.component';\r\n\r\n@Component({\r\n    selector: 'm-field-defaults',\r\n    template: '',\r\n    })\r\nexport class FieldDefaultsComponent implements OnDestroy {\r\n    private readonly previousHintIcon = FieldComponent.defaults.hintIcon;\r\n    private readonly previousHintIconSize = FieldComponent.defaults.hintIconSize;\r\n    private readonly previousErrorIcon = FieldComponent.defaults.errorIcon;\r\n    private readonly previousErrorIconSize = FieldComponent.defaults.errorIconSize;\r\n    private currentHintIcon?: IconType;\r\n    private currentHintIconSize?: IconType;\r\n    private currentErrorIcon?: IconType;\r\n    private currentErrorIconSize?: IconType;\r\n\r\n    @Input()\r\n    public set hintIcon(value: IconType) {\r\n        this.currentHintIcon = value;\r\n        FieldComponent.defaults.hintIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set hintIconSize(value: IconSize) {\r\n        this.currentHintIconSize = value;\r\n        FieldComponent.defaults.hintIconSize = value;\r\n    }\r\n\r\n    @Input()\r\n    public set errorIcon(value: IconType) {\r\n        this.currentErrorIcon = value;\r\n        FieldComponent.defaults.errorIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set errorIconSize(value: IconSize) {\r\n        this.currentErrorIconSize = value;\r\n        FieldComponent.defaults.errorIconSize = value;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentHintIcon === FieldComponent.defaults.hintIcon) {\r\n            FieldComponent.defaults.hintIcon = this.previousHintIcon;\r\n        }\r\n        if (this.currentHintIconSize === FieldComponent.defaults.hintIconSize) {\r\n            FieldComponent.defaults.hintIconSize = this.previousHintIconSize;\r\n        }\r\n        if (this.currentErrorIcon === FieldComponent.defaults.errorIcon) {\r\n            FieldComponent.defaults.errorIcon = this.previousErrorIcon;\r\n        }\r\n        if (this.currentErrorIconSize === FieldComponent.defaults.errorIconSize) {\r\n            FieldComponent.defaults.errorIconSize = this.previousErrorIconSize;\r\n        }\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-auto',\r\n    templateUrl: './auto.component.html',\r\n    styleUrls: ['./auto.component.scss'],\r\n    })\r\nexport class AutoComponent {\r\n\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-auto]',\r\n    })\r\nexport class AutoDirective {\r\n\r\n    @HostBinding('style.flex')\r\n    public readonly flex = '0 0 auto';\r\n\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-fill]',\r\n    })\r\nexport class FillDirective {\r\n\r\n    @HostBinding('style.flex')\r\n    public readonly flex = '1';\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-shrink',\r\n    templateUrl: './shrink.component.html',\r\n    styleUrls: ['./shrink.component.scss'],\r\n    })\r\nexport class ShrinkComponent {\r\n\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-shrink]',\r\n    })\r\nexport class ShrinkDirective {\r\n\r\n    @HostBinding('style.flex')\r\n    protected readonly flex = '0 1 auto';\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-grow',\r\n    templateUrl: './grow.component.html',\r\n    styleUrls: ['./grow.component.scss'],\r\n    })\r\nexport class GrowComponent {\r\n\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-grow]',\r\n    })\r\nexport class GrowDirective {\r\n\r\n    @HostBinding('style.flex')\r\n    public readonly flex = '1 0 auto';\r\n\r\n}\r\n","import { computed, Directive, input } from '@angular/core';\nimport { OverflowValue } from './overflow.types';\n\n@Directive({\n    selector: '[m-overflow]',\n    host: {\n        '[style.overflow-x]': 'effectiveOverflowX()',\n        '[style.overflow-y]': 'effectiveOverflowY()',\n    }\n})\nexport class OverflowDirective {\n    public static readonly default = {\n        directive: OverflowDirective,\n        inputs: ['m-overflow', 'm-overflow-x', 'm-overflow-y']\n    };\n\n    public readonly overflow = input<OverflowValue | '' | undefined>(undefined, { alias: 'm-overflow' });\n    public readonly overflowX = input<OverflowValue | undefined>(undefined, { alias: 'm-overflow-x' });\n    public readonly overflowY = input<OverflowValue | undefined>(undefined, { alias: 'm-overflow-y' });\n\n    protected readonly effectiveOverflowX = computed(() => this.overflowX() || this.overflow() || undefined);\n    protected readonly effectiveOverflowY = computed(() => this.overflowY() || this.overflow() || undefined);\n}\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-footer',\r\n    templateUrl: './footer.component.html',\r\n    styleUrls: ['./footer.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class FooterComponent extends BaseComponent {\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('footer ui segment vertical no-border');\r\n    }\r\n\r\n}\r\n","<ng-content></ng-content>","import { TemplateRef } from '@angular/core';\r\n\r\nexport class TemplateTarget {\r\n    public template: TemplateRef<unknown> | undefined;\r\n}\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class LayoutService {\r\n    public readonly menuTemplates: TemplateRef<unknown>[] = [];\r\n    public readonly footerTemplates: TemplateRef<unknown>[] = [];\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\nimport { LayoutService } from '../services/layout.service';\r\n\r\n@Directive({\r\n    selector: '[m-footer-link-template]',\r\n    })\r\nexport class FooterLinkTemplateDirective {\r\n    public constructor(\r\n        private readonly menuService: LayoutService,\r\n        private readonly template: TemplateRef<unknown>\r\n    ) {\r\n        this.menuService.footerTemplates.push(this.template);\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TemplateTarget } from '../../models/template-target';\r\nimport { FooterLinkTemplateDirective } from '../../directives/footer-link-template.directive';\r\n\r\n@Component({\n    selector: 'm-footer-link',\n    templateUrl: './footer-link.component.html',\n    styleUrls: ['./footer-link.component.scss'],\n    imports: [\n        FooterLinkTemplateDirective\n    ]\n})\r\n// TODO: Implement\r\nexport class FooterLinkComponent {\r\n\r\n    public readonly target = new TemplateTarget();\r\n}\r\n","<ng-container *m-footer-link-template>\r\n    <ng-content></ng-content>\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class FormValidationNotifier {\r\n    private isValidValue = true;\r\n    private readonly isValidSubject = new BehaviorSubject<boolean>(this.isValidValue);\r\n    public readonly isValid$ = this.isValidSubject.asObservable();\r\n\r\n    public get isValid(): boolean {\r\n        return this.isValidValue;\r\n    }\r\n\r\n    public set(value: boolean): void {\r\n        this.isValidValue = value;\r\n        this.isValidSubject.next(value);\r\n    }\r\n\r\n}\r\n","\r\nimport { Component, ContentChildren, EventEmitter, HostBinding, inject, Input, OnInit, Output, QueryList } from '@angular/core';\r\nimport { delay, ReplaySubject, Subject, Subscription, throttleTime } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { LoadingDirective } from '../../directives/loading.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FieldGroupComponent } from '../field-group/field-group.component';\r\nimport { FieldComponent } from '../field/field.component';\r\nimport { FillDirective } from '../flex/fill/fill.directive';\r\nimport { FlexDirective } from '../flex/flex.directive';\r\nimport { FlexDirection } from '../flex/flex.types';\r\nimport { FormValidationNotifier } from './form-validation-notifier';\r\n\r\n@Component({\n    selector: 'm-form',\n    templateUrl: './form.component.html',\n    styleUrls: ['./form.component.scss'],\n    imports: [\n    FlexDirective,\n    FillDirective\n],\n    hostDirectives: [LoadingDirective.default],\n    providers: [...InvertibleComponent.providers]\n})\r\nexport class FormComponent extends InvertibleComponent implements OnInit {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    private readonly loadingDirective = inject(LoadingDirective, { self: true });\r\n    private readonly flexDirective = inject(FlexDirective, { self: true, optional: true });\r\n    private readonly formValidationNotifier = inject(FormValidationNotifier, { optional: true });\r\n    private fieldComponentsValue?: QueryList<FieldComponent>;\r\n    private fieldGroupsComponentsValue?: QueryList<FieldGroupComponent>;\r\n    private fieldSubscriptions?: Subscription[];\r\n    private groupSubscriptions?: Subscription[];\r\n    private isValidValue = false;\r\n    private isSuccess = false;\r\n    private isWarning = false;\r\n    private isError = false;\r\n    private isAutoSubmit = false;\r\n    private readonly autoSubmitSubject = new Subject<void>();\r\n    private autoSubmitThrottleValue = 1000;\r\n    private autoSubmitSubscription: Subscription | undefined;\r\n    private isInlineValidation = false;\r\n\r\n    protected get loading(): boolean {\r\n        return this.loadingDirective.loading;\r\n    }\r\n\r\n    protected get flexDirection(): FlexDirection | '' | undefined {\r\n        return this.flexDirective?.direction;\r\n    }\r\n\r\n    @ContentChildren(FieldComponent)\r\n    public get fieldComponents(): QueryList<FieldComponent> | undefined {\r\n        return this.fieldComponentsValue;\r\n    }\r\n\r\n    protected set fieldComponents(value: QueryList<FieldComponent> | undefined) {\r\n        this.releaseFields();\r\n        this.fieldComponentsValue = value;\r\n        this.subscribeFields();\r\n        this.refreshIsValid();\r\n        this.refreshInlineValidation();\r\n        if (this.fieldComponentsValue) {\r\n            this.fieldComponentsValue.changes.subscribe(() => {\r\n                this.releaseFields();\r\n                this.subscribeFields();\r\n                this.refreshInlineValidation();\r\n            });\r\n        }\r\n    }\r\n\r\n    @ContentChildren(FieldGroupComponent)\r\n    public get fieldGroupsComponents(): QueryList<FieldGroupComponent> | undefined {\r\n        return this.fieldGroupsComponentsValue;\r\n    }\r\n\r\n    protected set fieldGroupsComponents(value: QueryList<FieldGroupComponent> | undefined) {\r\n        this.releaseGroups();\r\n        this.fieldGroupsComponentsValue = value;\r\n        this.subscribeGroups();\r\n        this.refreshIsValid();\r\n        this.refreshInlineValidation();\r\n        if (this.fieldGroupsComponentsValue) {\r\n            this.fieldGroupsComponentsValue.changes.subscribe(() => {\r\n                this.releaseGroups();\r\n                this.subscribeGroups();\r\n                this.refreshInlineValidation();\r\n            });\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public action?: string;\r\n\r\n    @Input()\r\n    public autocomplete?: 'on' | 'off';\r\n\r\n    @Input()\r\n    public enctype?: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';\r\n\r\n    @Input()\r\n    public method?: 'get' | 'post';\r\n\r\n    @Input()\r\n    public name?: string;\r\n\r\n    @Input()\r\n    public novalidate = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.success')\r\n    public get success(): boolean {\r\n        return this.isSuccess;\r\n    }\r\n\r\n    public set success(value: BooleanLike) {\r\n        this.isSuccess = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.error')\r\n    public get error(): boolean {\r\n        return this.isError;\r\n    }\r\n\r\n    public set error(value: BooleanLike) {\r\n        this.isError = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.warning')\r\n    public get warning(): boolean {\r\n        return this.isWarning;\r\n    }\r\n\r\n    public set warning(value: BooleanLike) {\r\n        this.isWarning = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public target?: '_blank' | '_self' | '_parent' | '_top';\r\n\r\n    @Input()\r\n    public get isValid(): boolean {\r\n        return this.isValidValue;\r\n    }\r\n\r\n    public set isValid(_: boolean) {\r\n        // Ignore the value from the binding\r\n    }\r\n\r\n    @Input()\r\n    public get autoSubmit(): boolean {\r\n        return this.isAutoSubmit;\r\n    }\r\n\r\n    public set autoSubmit(value: BooleanLike) {\r\n        this.isAutoSubmit = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get autoSubmitThrottle(): number {\r\n        return this.autoSubmitThrottleValue;\r\n    }\r\n\r\n    public set autoSubmitThrottle(value: number) {\r\n        this.autoSubmitThrottleValue = value;\r\n        this.refreshAutoSubmitSubscription();\r\n    }\r\n\r\n    @Input()\r\n    public get inlineValidation(): boolean {\r\n        return this.isInlineValidation;\r\n    }\r\n\r\n    public set inlineValidation(value: BooleanLike) {\r\n        this.isInlineValidation = this.toBoolean(value);\r\n        this.refreshInlineValidation();\r\n    }\r\n\r\n    @Output()\r\n    public readonly submit = new EventEmitter<void>();\r\n\r\n    @Output()\r\n    public readonly isValidChange = new EventEmitter<boolean>();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('success', 'warning', 'error', 'autoSubmit');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        FormComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n        this.refreshAutoSubmitSubscription();\r\n    }\r\n\r\n    private releaseFields(): void {\r\n        if (this.fieldSubscriptions) {\r\n            this.fieldSubscriptions.forEach(subscription => subscription.unsubscribe());\r\n            this.fieldSubscriptions = undefined;\r\n        }\r\n    }\r\n\r\n    private subscribeFields(): void {\r\n        if (this.fieldComponents) {\r\n            this.fieldSubscriptions = [\r\n                ...this.fieldComponents.map(field => field.errorChange.subscribe(() => this.refreshIsValid())),\r\n                ...(this.isAutoSubmit ? this.fieldComponents.map(field => field.change.subscribe(() => this.changed())) : [])\r\n            ];\r\n        }\r\n    }\r\n\r\n    private releaseGroups(): void {\r\n        if (this.groupSubscriptions) {\r\n            this.groupSubscriptions.forEach(subscription => subscription.unsubscribe());\r\n            this.groupSubscriptions = undefined;\r\n        }\r\n    }\r\n\r\n    private subscribeGroups(): void {\r\n        if (this.fieldGroupsComponents) {\r\n            this.groupSubscriptions = [\r\n                ...this.fieldGroupsComponents.map(group => group.errorChange.subscribe(() => this.refreshIsValid())),\r\n                ...(this.isAutoSubmit ? this.fieldGroupsComponents.map(group => group.change.subscribe(() => this.changed())) : [])\r\n            ];\r\n        }\r\n    }\r\n\r\n    public changed(): void {\r\n        this.autoSubmitSubject.next();\r\n    }\r\n\r\n    private refreshAutoSubmitSubscription(): void {\r\n        this.autoSubmitSubscription?.unsubscribe();\r\n        this.autoSubmitSubscription = this.autoSubmitSubject.pipe(\r\n            throttleTime(this.autoSubmitThrottleValue, undefined, { leading: true, trailing: true }),\r\n            // Delay a little bit to let all bindings be executed and the values written to the objects\r\n            delay(1)\r\n        ).subscribe(() => this.validateAndSubmit());\r\n    }\r\n\r\n    private refreshIsValid(): void {\r\n        const hasError = this.fieldComponents?.some(field => field.error) || this.fieldGroupsComponents?.some(group => group.error);\r\n        const isValid = !hasError;\r\n        this.error = hasError;\r\n        if (this.isValidValue !== isValid) {\r\n            this.isValidValue = isValid;\r\n            this.formValidationNotifier?.set(isValid);\r\n            // Delay the notification be fire the change outside the check to ensure a change detection run will be started\r\n            setTimeout(() => this.isValidChange.emit(isValid));\r\n        }\r\n    }\r\n\r\n    public validateAndSubmit(): void {\r\n        if (this.error) {\r\n            this.fieldComponents?.forEach(field => field.forceValidation());\r\n        }\r\n        else {\r\n            this.submit.emit();\r\n        }\r\n    }\r\n\r\n    protected onSubmit(event: SubmitEvent): void {\r\n        event.preventDefault();\r\n        // TODO: Implement\r\n    }\r\n\r\n    private refreshInlineValidation(): void {\r\n        this.fieldComponents?.forEach(field => field.inlineValidation = this.inlineValidation);\r\n        this.fieldGroupsComponents?.forEach(group => group.inlineValidation = this.inlineValidation);\r\n    }\r\n}\r\n","<form class=\"ui form\" [class.loading]=\"loading\" [class.success]=\"success\" [class.error]=\"error\" [class.warning]=\"warning\" [class.inverted]=\"inverted\" [attr.action]=\"action\" [attr.autocomplete]=\"autocomplete\" [attr.enctype]=\"enctype\" [attr.method]=\"method\" [attr.name]=\"name\" [attr.novalidate]=\"novalidate ? 'novalidate' : undefined\" [attr.target]=\"target\" m-fill [m-flex]=\"flexDirection\" (submit)=\"onSubmit($event)\">\n  <ng-content />\n  @if (error) {\n    <div class=\"ui error message\">\n      <ul class=\"list\">\n        @for (field of fieldComponents; track field) {\n          @if (field.error) {\n            @for (error of field.errors; track error) {\n              <li>{{error.label}} {{error.message}}</li>\n            }\n          }\n        }\n        @for (group of fieldGroupsComponents; track group) {\n          @if (group.error) {\n            @for (field of group.fieldComponents; track field) {\n              @for (error of field.errors; track error) {\n                <li>{{error.label}} {{error.message}}</li>\n              }\n            }\n          }\n        }\n      </ul>\n    </div>\n  }\n</form>\n","import { Component, Input } from '@angular/core';\r\nimport { FormComponent } from './form.component';\r\n\r\n@Component({\r\n    selector: 'm-form-defaults',\r\n    template: '',\r\n    })\r\nexport class FormDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        FormComponent.defaults.inverted = value;\r\n        FormComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","import { Directive, HostBinding, inject, Input, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDirective } from '../base/base.directive';\r\nimport { HeaderComponent } from '../components/header/header.component';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { InvertedDirective } from './inverted.directive';\r\n\r\n@Directive({\r\n    selector: '[m-header]',\r\n    hostDirectives: [InvertedDirective.default],\r\n    providers: [...BaseDirective.providers]\r\n})\r\nexport class HeaderDirective extends BaseDirective implements OnInit {\r\n    private readonly invertedDirective = inject(InvertedDirective);\r\n    private isDividing = false;\r\n    private isIcon = false;\r\n\r\n    public get inverted(): boolean {\r\n        return this.invertedDirective.inverted;\r\n    }\r\n\r\n    public set inverted(value: BooleanLike) {\r\n        this.invertedDirective.inverted = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.dividing')\r\n    public get dividing(): boolean {\r\n        return this.isDividing;\r\n    }\r\n\r\n    public set dividing(value: BooleanLike) {\r\n        this.isDividing = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.icon')\r\n    public get icon(): boolean {\r\n        return this.isIcon;\r\n    }\r\n\r\n    public set icon(value: BooleanLike) {\r\n        this.isIcon = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.sub')\r\n    public sub = false;\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('header');\r\n        this.validateAttributes = false;\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        HeaderComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.invertedDirective.setInvertedDefault(value));\r\n    }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\r\n\r\nexport declare type GridWidth = 'equal';\r\n\r\n@Component({\r\n    selector: 'm-grid',\r\n    templateUrl: './grid.component.html',\r\n    styleUrls: ['./grid.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class GridComponent extends BaseComponent {\r\n    private columnsValue?: FieldSize;\r\n    private isVertically = false;\r\n    private isDivided = false;\r\n    private isCelled = false;\r\n    private isInternally = false;\r\n    private widthValue?: GridWidth;\r\n    private noMarginValue = false;\r\n\r\n    @Input()\r\n    public get vertically(): boolean {\r\n        return this.isVertically;\r\n    }\r\n\r\n    public set vertically(value: BooleanLike) {\r\n        this.isVertically = this.toBoolean(value);\r\n        this.classes.set('vertically', this.isVertically);\r\n    }\r\n\r\n    @Input()\r\n    public get divided(): boolean {\r\n        return this.isDivided;\r\n    }\r\n\r\n    public set divided(value: BooleanLike) {\r\n        this.isDivided = this.toBoolean(value);\r\n        this.classes.set('divided', this.isDivided);\r\n    }\r\n\r\n    @Input()\r\n    public get columns(): FieldSize | undefined {\r\n        return this.columnsValue;\r\n    }\r\n\r\n    public set columns(value: ParsableFieldSize | undefined) {\r\n        this.columnsValue = parseFieldSize(value);\r\n        this.classes.set('columns', this.columnsValue ? `${this.columnsValue} column` : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public get internally(): boolean {\r\n        return this.isInternally;\r\n    }\r\n\r\n    public set internally(value: BooleanLike) {\r\n        this.isInternally = this.toBoolean(value);\r\n        this.classes.set('internally', this.isInternally);\r\n    }\r\n\r\n    @Input()\r\n    public get celled(): boolean {\r\n        return this.isCelled;\r\n    }\r\n\r\n    public set celled(value: BooleanLike) {\r\n        this.isCelled = this.toBoolean(value);\r\n        this.classes.set('celled', this.isCelled);\r\n    }\r\n\r\n    @Input()\r\n    public get width(): GridWidth | undefined {\r\n        return this.widthValue;\r\n    }\r\n\r\n    public set width(value: GridWidth | undefined) {\r\n        this.widthValue = value;\r\n        this.classes.set('width', value ? `${value} width` : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public get noMargin(): boolean {\r\n        return this.noMarginValue;\r\n    }\r\n\r\n    public set noMargin(value: BooleanLike) {\r\n        this.noMarginValue = this.toBoolean(value);\r\n        this.classes.set('no-margin', this.noMargin);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('vertically', 'divided', 'columns', 'internally', 'celled', 'width', 'noMargin')\r\n            .registerFixed('grid');\r\n    }\r\n\r\n}\r\n","<ng-content></ng-content>","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { IgnoredDirective } from '../../directives/ignored.directive';\r\nimport { MessageComponent } from '../message/message.component';\r\n\r\n@Component({\r\n    selector: 'm-info',\r\n    templateUrl: './info.component.html',\r\n    styleUrls: ['./info.component.scss'],\r\n    hostDirectives: [IgnoredDirective.default],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class InfoComponent extends InvertibleComponent implements OnInit {\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('visible', 'info', 'message');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        MessageComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","<ng-content></ng-content>","\r\nimport { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { MessageComponent } from '../message/message.component';\r\n\r\n@Component({\n    selector: 'm-warning',\n    templateUrl: './warning.component.html',\n    styleUrls: ['./warning.component.scss'],\n    imports: [\n    IconComponent\n],\n    providers: [...InvertibleComponent.providers]\n})\r\nexport class WarningComponent extends InvertibleComponent {\r\n    protected readonly defaults = MessageComponent.defaults;\r\n\r\n    @Input()\r\n    public showClose = true;\r\n\r\n    @Input()\r\n    @HostBinding('class.closed')\r\n    public closed = false;\r\n\r\n    @HostBinding('class.visible')\r\n    public get visible(): boolean {\r\n        return !this.closed;\r\n    }\r\n\r\n    @Output()\r\n    public readonly close = new EventEmitter<void>();\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('warning', 'message');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        MessageComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    public onClose(): void {\r\n        this.closed = true;\r\n        this.close.emit();\r\n    }\r\n}\r\n","@if (showClose) {\n  <m-icon [icon]=\"defaults.closeIcon\" [size]=\"defaults.closeIconSize\" class=\"close icon\" (click)=\"onClose()\"></m-icon>\n}\n<ng-content></ng-content>\n","import { Injectable, Type } from '@angular/core';\nimport { FormElementBase } from '../form-element-renderer/form-element-base';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class FormRendererService {\n    public static readonly formElements: { [key: string]: Type<FormElementBase> } = {};\n\n    public register(type: Type<FormElementBase>, name: string): void {\n        if (!name) {\n            throw new Error('FormRendererService.register requires a name');\n        }\n        FormRendererService.formElements[name] = type;\n    }\n\n    public get(name: string | undefined): Type<FormElementBase> | undefined {\n        return name ? FormRendererService.formElements[name] : undefined;\n    }\n}\n","\r\nimport { Component, ComponentRef, HostBinding, inject, Input, OnDestroy, Type, ViewContainerRef } from '@angular/core';\r\nimport { FormElements } from '../form-renderer/form-layout';\r\nimport { FormRendererService } from '../form-renderer/form-renderer.service';\r\nimport { FormElementBase } from './form-element-base';\r\n\r\n@Component({\n    selector: 'm-form-renderer2',\n    templateUrl: './form-element-renderer2.component.html',\n    styleUrls: ['./form-element-renderer2.component.scss'],\n    imports: []\n})\r\nexport class FormElementRenderer2Component implements OnDestroy {\r\n    private readonly formRendererService = inject(FormRendererService);\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    private elementType: Type<FormElementBase> | undefined;\r\n    private elementValue: FormElements | undefined;\r\n    private dataValue: unknown;\r\n\r\n    public componentRef: ComponentRef<FormElementBase> | undefined;\r\n\r\n    @HostBinding('class.visible')\r\n    public invalidType: string | undefined;\r\n\r\n    public get element(): FormElements | undefined {\r\n        return this.elementValue;\r\n    }\r\n\r\n    @Input()\r\n    public set element(value: FormElements | undefined) {\r\n        this.elementValue = value;\r\n        this.elementType = this.formRendererService.get(value?.elementType);\r\n        if (!this.elementType) {\r\n            this.invalidType = value?.elementType;\r\n        }\r\n        this.createComponent();\r\n    }\r\n\r\n    public get data(): unknown {\r\n        return this.dataValue;\r\n    }\r\n\r\n    @Input()\r\n    public set data(value: unknown) {\r\n        this.dataValue = value;\r\n        if (this.componentRef?.instance) {\r\n            this.componentRef.instance.data = value;\r\n        }\r\n    }\r\n\r\n    public createComponent(): void {\r\n        this.viewContainerRef.clear();\r\n        if (!this.elementType || !this.element) {\r\n            return;\r\n        }\r\n        this.componentRef = this.viewContainerRef.createComponent(this.elementType);\r\n        this.componentRef.instance.element = this.element;\r\n        this.componentRef.instance.data = this.data;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        this.componentRef?.destroy();\r\n    }\r\n}\r\n","@if (invalidType) {\n  <div>{{invalidType}} is not a known component type</div>\n}\n","import { AsyncPipe } from '@angular/common';\r\nimport { Component, DoCheck, HostBinding, Input, IterableDiffer, IterableDiffers, Output } from '@angular/core';\r\nimport { merge, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { HeaderDirective } from '../../directives/header.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { CellComponent } from '../cell/cell.component';\r\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\r\nimport { DataSourceComponent } from '../data-source/data-source.component';\r\nimport { DividerComponent } from '../divider/divider.component';\r\nimport { DropdownValue } from '../dropdown/dropdown-value';\r\nimport { DropdownComponent } from '../dropdown/dropdown.component';\r\nimport { ErrorComponent } from '../error/error.component';\r\nimport { FieldComponent } from '../field/field.component';\r\nimport { FormAreaElement, FormButtonElement, FormCheckboxElement, FormDataElement, FormDropDownElement, FormElements, FormError, FormFieldGroupElement, FormGridElement, FormHeader, FormInfo, FormInputElement, FormLabelElement, FormMessage, FormWarning } from '../form-renderer/form-layout';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { InfoComponent } from '../info/info.component';\r\nimport { NumericInputComponent } from '../input/numeric/numeric-input.component';\r\nimport { InputComponent } from '../input/text/input.component';\r\nimport { MessageComponent } from '../message/message.component';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport { WarningComponent } from '../warning/warning.component';\r\nimport { FormElementRenderer2Component } from './form-element-renderer2.component';\r\n\r\n@Component({\r\n    selector: 'm-form-element-renderer',\r\n    templateUrl: './form-element-renderer.component.html',\r\n    styleUrls: ['./form-element-renderer.component.scss'],\r\n    imports: [FieldComponent, InputComponent, NumericInputComponent, CheckboxComponent, TextareaComponent, DropdownComponent, ButtonComponent, GridComponent, CellComponent, MessageComponent, WarningComponent, InfoComponent, ErrorComponent, DividerComponent, FormElementRenderer2Component, HeaderDirective, AsyncPipe],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class FormElementRendererComponent extends BaseComponent implements DoCheck {\r\n    private isFields = false;\r\n    private readonly elementsDiffer: IterableDiffer<FormElements>;\r\n    private readonly fieldClasses = ['', '', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];\r\n    private readonly dataCache = new Map<string, Observable<Record<string, unknown>[]>>();\r\n    private readonly dropDownCache = new Map<string, Observable<DropdownValue[]>>();\r\n    private readonly executeSubject = new Subject<string>();\r\n    private elementsValue: FormElements[] = [];\r\n    private dataValue: Record<string, unknown> = {};\r\n\r\n    @Input()\r\n    public get elements(): FormElements[] {\r\n        return this.elementsValue;\r\n    }\r\n\r\n    public set elements(value: FormElements[]) {\r\n        this.elementsValue = value;\r\n        this.applyDefaults();\r\n    }\r\n\r\n    @Output()\r\n    public readonly execute = this.executeSubject.asObservable();\r\n\r\n    public get fields(): boolean {\r\n        return this.isFields;\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.fields')\r\n    public set fields(value: BooleanLike) {\r\n        this.isFields = this.toBoolean(value);\r\n    }\r\n\r\n    protected get anyData(): any {\r\n        return this.data;\r\n    }\r\n\r\n    @Input()\r\n    public get data(): Record<string, unknown> {\r\n        return this.dataValue ?? {};\r\n    }\r\n\r\n    public set data(value: Record<string, unknown>) {\r\n        this.dataValue = value;\r\n        this.applyDefaults();\r\n    }\r\n\r\n    @Input()\r\n    public dataSources: DataSourceComponent[] = [];\r\n\r\n    public constructor(\r\n        iterableDiffers: IterableDiffers\r\n    ) {\r\n        super(false);\r\n        this.classes.register('elements', 'fields');\r\n        this.elementsDiffer = iterableDiffers.find([]).create(undefined);\r\n    }\r\n\r\n    public ngDoCheck(): void {\r\n        if (this.isFields && this.elementsDiffer.diff(this.elements)) {\r\n            this.classes.set('elements', this.fieldClasses[this.elements.length]);\r\n        }\r\n    }\r\n\r\n    protected getData(dataSource: string): Observable<Record<string, unknown>[]> {\r\n        const cachedObservable = this.dataCache.get(dataSource);\r\n        if (cachedObservable) {\r\n            return cachedObservable;\r\n        }\r\n        const subject = new ReplaySubject<Record<string, unknown>[]>(1);\r\n        this.dataCache.set(dataSource, subject.asObservable());\r\n        merge(...this.dataSources.map(x => x.get(dataSource)).filter(x => x)).subscribe({\r\n            next: data => subject.next(data),\r\n            error: error => subject.next(error)\r\n        });\r\n        return subject.asObservable();\r\n    }\r\n\r\n    protected getItems(dropdown: FormDropDownElement): Observable<DropdownValue[]> {\r\n        const cachedObservable = this.dropDownCache.get(dropdown.dataSource);\r\n        if (cachedObservable) {\r\n            return cachedObservable;\r\n        }\r\n        const subject = new ReplaySubject<DropdownValue[]>(1);\r\n        this.dropDownCache.set(dropdown.dataSource, subject.asObservable());\r\n        this.getData(dropdown.dataSource).subscribe({\r\n            next: data => {\r\n                const values = data?.map(entry => new DropdownValue<unknown>(entry[dropdown.valueField], this.format(entry, dropdown.textField, dropdown.textFieldFormatter)));\r\n                subject.next([\r\n                    ...this.upgradeItems(dropdown.prefixItems),\r\n                    ...values,\r\n                    ...this.upgradeItems(dropdown.postfixItems)\r\n                ]);\r\n            },\r\n            error: error => subject.next(error)\r\n        });\r\n        return subject.asObservable();\r\n    }\r\n\r\n    protected onExecute(action: string): void {\r\n        this.executeSubject.next(action);\r\n    }\r\n\r\n    private applyDefaults(): void {\r\n        if (!this.data || !this.elements) {\r\n            return;\r\n        }\r\n        for (const element of this.elements as FormDataElement[]) {\r\n            if (element.field && element.defaultValue) {\r\n                this.data[element.field] ??= element.defaultValue;\r\n            }\r\n        }\r\n    }\r\n\r\n    private format(entry: Record<string, unknown>, field: string | string[], fieldFormatter?: string): string {\r\n        if (typeof field === 'string') {\r\n            return entry[field]?.toString() ?? '';\r\n        }\r\n        if (fieldFormatter) {\r\n            let result = fieldFormatter;\r\n            const matches = fieldFormatter.matchAll(/[^$]*(?<var>\\$+\\d+)/gm);\r\n            for (const match of matches) {\r\n                const variable = match?.groups?.['var'];\r\n                if (variable && !variable.startsWith('$$')) {\r\n                    const index = parseInt(variable.replace(/\\$/g, ''));\r\n                    result = result.replace(variable, entry[field[index]] as string);\r\n                }\r\n            }\r\n            return result;\r\n        }\r\n        return field.map(x => entry[x]).join(' ');\r\n    }\r\n\r\n    private upgradeItems(values: DropdownValue[] | undefined): DropdownValue[] {\r\n        if (!values) {\r\n            return [];\r\n        }\r\n        for (const value of values) {\r\n            value.value ??= undefined;\r\n        }\r\n        return values;\r\n    }\r\n\r\n    protected $input(element: FormElements): FormInputElement {\r\n        if (element.elementType === 'input') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'input'`);\r\n    }\r\n\r\n    protected $checkbox(element: FormElements): FormCheckboxElement {\r\n        if (element.elementType === 'checkbox') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'checkbox'`);\r\n    }\r\n\r\n    protected $area(element: FormElements): FormAreaElement {\r\n        if (element.elementType === 'area') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'area'`);\r\n    }\r\n\r\n    protected $dropdown(element: FormElements): FormDropDownElement {\r\n        if (element.elementType === 'dropdown') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'dropdown'`);\r\n    }\r\n\r\n    protected $button(element: FormElements): FormButtonElement {\r\n        if (element.elementType === 'button') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'button'`);\r\n    }\r\n\r\n    protected $label(element: FormElements): FormLabelElement {\r\n        if (element.elementType === 'label') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'label'`);\r\n    }\r\n\r\n    protected $fields(element: FormElements): FormFieldGroupElement {\r\n        if (element.elementType === 'fields') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'fields'`);\r\n    }\r\n\r\n    protected $grid(element: FormElements): FormGridElement {\r\n        if (element.elementType === 'grid') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'grid'`);\r\n    }\r\n\r\n    protected $message(element: FormElements): FormMessage | FormWarning | FormInfo | FormError {\r\n        if (element.elementType === 'message' || element.elementType === 'warning' || element.elementType === 'info' || element.elementType === 'error') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'message'`);\r\n    }\r\n\r\n    protected $header(element: FormElements): FormHeader {\r\n        if (element.elementType === 'h1' || element.elementType === 'h2' || element.elementType === 'h3' || element.elementType === 'h4' || element.elementType === 'h5' || element.elementType === 'h6') {\r\n            return element;\r\n        }\r\n        throw new Error(`${element.elementType} can not be casted to 'h1-6'`);\r\n    }\r\n}\r\n","@for (element of elements; track element) {\n    @switch (element.elementType) {\n        @case ('input') {\n            @if ($input(element); as input) {\n                <m-field [label]=\"input.label\" [readonly]=\"input.readonly\" [class.fill]=\"element.fill\">\n                    @if (input.type !== 'number' && input.type !== 'range') {\n                        <m-input [type]=\"input.type\" [(value)]=\"anyData[input.field]\"></m-input>\n                    }\n                    @if (input.type === 'number' || input.type === 'range') {\n                        <m-numeric-input [range]=\"input.type === 'range'\" [(value)]=\"anyData[input.field]\" [min]=\"input.min\" [max]=\"input.max\" [zeroText]=\"input.zeroText\"></m-numeric-input>\n                    }\n                </m-field>\n            }\n        }\n        @case ('checkbox') {\n            @if ($checkbox(element); as checkbox) {\n                <m-field [label]=\"checkbox.label\" [readonly]=\"checkbox.readonly\" [class.fill]=\"element.fill\">\n                    <m-checkbox [(value)]=\"anyData[checkbox.field]\"></m-checkbox>\n                </m-field>\n            }\n        }\n        @case ('area') {\n            @if ($area(element); as area) {\n                <m-field [label]=\"area.label\" [readonly]=\"area.readonly\" [class.fill]=\"element.fill\">\n                    <m-textarea [(value)]=\"anyData[area.field]\"></m-textarea>\n                </m-field>\n            }\n        }\n        @case ('dropdown') {\n            @if ($dropdown(element); as dropdown) {\n                <m-field [label]=\"dropdown.label\" [disabled]=\"dropdown.readonly\" [class.fill]=\"element.fill\">\n                    <m-dropdown [(value)]=\"anyData[dropdown.field]\" [items]=\"getItems(dropdown) | async\" [allowFreeText]=\"dropdown.allowFreeText\" search></m-dropdown>\n                </m-field>\n            }\n        }\n        @case ('button') {\n            @if ($button(element); as button) {\n                <m-button [color]=\"button.color\" [class.fill]=\"element.fill\" (click)=\"onExecute(button.action)\">{{ button.label }}</m-button>\n            }\n        }\n        @case ('label') {\n            @if ($label(element); as label) {\n                <label [class.fill]=\"element.fill\">{{ label.label }}</label>\n            }\n        }\n        @case ('fields') {\n            @if ($fields(element); as fields) {\n                <m-form-element-renderer [elements]=\"fields.elements\" [data]=\"data\" [class.fill]=\"element.fill\" fields (execute)=\"onExecute($event)\"></m-form-element-renderer>\n            }\n        }\n        @case ('grid') {\n            @if ($grid(element); as grid) {\n                <m-grid [width]=\"grid.width\" [class.fill]=\"element.fill\">\n                    @for (cell of grid.cells; track cell) {\n                        <m-cell [float]=\"cell.float\" [align]=\"cell.align\" [size]=\"cell.size\">\n                            <m-form-element-renderer [elements]=\"cell.elements\" [data]=\"data\" (execute)=\"onExecute($event)\"></m-form-element-renderer>\n                        </m-cell>\n                    }\n                </m-grid>\n            }\n        }\n        @case ('message') {\n            @if ($message(element); as message) {\n                <m-message [header]=\"message.header\" [class.fill]=\"element.fill\">{{ message.text }}</m-message>\n            }\n        }\n        @case ('warning') {\n            @if ($message(element); as message) {\n                <m-warning [class.fill]=\"element.fill\">{{ message.text }}</m-warning>\n            }\n        }\n        @case ('info') {\n            @if ($message(element); as message) {\n                <m-info [class.fill]=\"element.fill\">{{ message.text }}</m-info>\n            }\n        }\n        @case ('error') {\n            @if ($message(element); as message) {\n                <m-error [class.fill]=\"element.fill\">{{ message.text }}</m-error>\n            }\n        }\n        @case ('divider') {\n            <m-divider [class.fill]=\"element.fill\"></m-divider>\n        }\n        @case ('h1') {\n            @if ($header(element); as header) {\n                <h1 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h1>\n            }\n        }\n        @case ('h2') {\n            @if ($header(element); as header) {\n                <h2 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h2>\n            }\n        }\n        @case ('h3') {\n            @if ($header(element); as header) {\n                <h3 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h3>\n            }\n        }\n        @case ('h4') {\n            @if ($header(element); as header) {\n                <h4 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h4>\n            }\n        }\n        @case ('h5') {\n            @if ($header(element); as header) {\n                <h5 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h5>\n            }\n        }\n        @case ('h6') {\n            @if ($header(element); as header) {\n                <h6 m-header [dividing]=\"header.dividing\" [class.fill]=\"element.fill\">{{ header.text }}</h6>\n            }\n        }\n        @default {\n            <m-form-renderer2 [element]=\"element\" [data]=\"data\"></m-form-renderer2>\n        }\n    }\n}\n@if (!elements.length) {\n    <div>No elements configured</div>\n}\n","import { Component, ContentChildren, Input, Output, QueryList } from '@angular/core';\r\nimport { FormLayout } from './form-layout';\r\nimport { Subject } from 'rxjs';\r\nimport { DataSourceComponent } from '../data-source/data-source.component';\r\n\r\nimport { FormComponent } from '../form/form.component';\r\nimport { FormElementRendererComponent } from '../form-element-renderer/form-element-renderer.component';\r\nimport { FlexDirective } from '../flex/flex.directive';\r\nimport { FillDirective } from '../flex/fill/fill.directive';\r\n\r\n@Component({\n    selector: 'm-form-renderer',\n    templateUrl: './form-renderer.component.html',\n    styleUrls: ['./form-renderer.component.scss'],\n    imports: [\n    FormComponent,\n    FormElementRendererComponent,\n    FlexDirective,\n    FillDirective\n]\n})\r\nexport class FormRendererComponent {\r\n    private readonly dataChangeSubject = new Subject<unknown>();\r\n    private readonly executeSubject = new Subject<string>();\r\n    private layoutValue: FormLayout = { elements: [] };\r\n    private dataValue: Record<string, unknown> = {};\r\n    public dataSources: DataSourceComponent[] = [];\r\n\r\n    @Input()\r\n    public get layout(): FormLayout {\r\n        return this.layoutValue;\r\n    }\r\n\r\n    public set layout(value: FormLayout | undefined) {\r\n        this.layoutValue = value ?? { elements: [] };\r\n    }\r\n\r\n    public get data(): Record<string, unknown> {\r\n        return this.dataValue;\r\n    }\r\n\r\n    @Input()\r\n    public set data(value: Record<string, unknown> | any) {\r\n        this.dataValue = value;\r\n        if (!value) {\r\n            setTimeout(() => {\r\n                this.dataValue = {};\r\n                this.dataChangeSubject.next(this.dataValue);\r\n            });\r\n        }\r\n    }\r\n\r\n    @Output()\r\n    public readonly dataChange = this.dataChangeSubject.asObservable();\r\n\r\n    @Output()\r\n    public readonly execute = this.executeSubject.asObservable();\r\n\r\n    @ContentChildren(DataSourceComponent)\r\n    protected set dataSourceElements(query: QueryList<DataSourceComponent>) {\r\n        this.dataSources = Array.from(query);\r\n        query.changes.subscribe(() => this.dataSources = Array.from(query));\r\n    }\r\n\r\n    protected onExecute(action: string): void {\r\n        this.executeSubject.next(action);\r\n    }\r\n}\r\n","<m-form m-flex=\"column\" m-fill>\r\n    <m-form-element-renderer m-fill [elements]=\"layout.elements\" [data]=\"data\" [dataSources]=\"dataSources\" (execute)=\"onExecute($event)\" />\r\n    <ng-content />\r\n</m-form>\r\n","import { Type } from '@angular/core';\r\nimport { FormRendererService } from '../form-renderer/form-renderer.service';\r\n\r\n/*\r\n    @deprecated Use provideFormElement(...) instead\r\n */\r\nexport function FormElement(name: string): (constructor: Type<unknown>) => void {\r\n    if (!name) {\r\n        throw new Error('FormElement decorator requires a name');\r\n    }\r\n    if (FormRendererService.formElements[name]) {\r\n        throw new Error('FormElement ' + name + ' decorator is already registered');\r\n    }\r\n    return function (constructor: Type<any>) {\r\n        FormRendererService.formElements[name] = constructor;\r\n    };\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders, Type } from '@angular/core';\r\nimport { FormElementBase } from '../form-element-renderer/form-element-base';\r\nimport { FormRendererService } from './form-renderer.service';\r\n\r\nexport function provideFormElement(\r\n    type: Type<FormElementBase>, name: string\r\n): EnvironmentProviders {\r\n    if (!name) {\r\n        throw new Error('provideFormElement requires a name');\r\n    }\r\n    if (FormRendererService.formElements[name]) {\r\n        throw new Error('FormElement ' + name + ' is already registered');\r\n    }\r\n    FormRendererService.formElements[name] = type;\r\n    return makeEnvironmentProviders([]);\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { HeaderComponent } from './header.component';\r\n\r\n@Component({\r\n    selector: 'm-header-defaults',\r\n    template: '',\r\n    })\r\nexport class HeaderDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        HeaderComponent.defaults.inverted = value;\r\n        HeaderComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","\r\nimport { Component, Input, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\n@Component({\n    selector: 'm-image-upload',\n    templateUrl: './image-upload.component.html',\n    styleUrls: ['./image-upload.component.scss'],\n    imports: [],\n    providers: [...ButtonBaseComponent.providers]\n})\r\nexport class ImageUploadComponent extends ButtonBaseComponent {\r\n    private readonly previewImageChangeSubject = new Subject<string>();\r\n    private readonly uploadSubject = new Subject<FileList>();\r\n    public isPreviewVisible = true;\r\n    private isPreviewImageChangeForced = false;\r\n\r\n    @Input()\r\n    public previewImage?: string;\r\n\r\n    @Input()\r\n    public radius?: number;\r\n\r\n    @Input()\r\n    public previewWidth?: number;\r\n\r\n    @Input()\r\n    public previewHeight?: number;\r\n\r\n    @Input()\r\n    public width?: number;\r\n\r\n    @Input()\r\n    public height?: number;\r\n\r\n    @Input()\r\n    public set hidePreview(value: BooleanLike) {\r\n        this.isPreviewVisible = !this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public set forcePreviewImageChange(value: BooleanLike) {\r\n        this.isPreviewImageChangeForced = this.toBoolean(value);\r\n    }\r\n\r\n    @Output()\r\n    public readonly previewImageChange = this.previewImageChangeSubject.asObservable();\r\n\r\n    @Output()\r\n    public readonly upload = this.uploadSubject.asObservable();\r\n\r\n    protected onUpload(fileList: FileList | null): void {\r\n        if (!fileList?.length) {\r\n            return;\r\n        }\r\n        this.uploadSubject.next(fileList);\r\n        const files = Array.from(fileList);\r\n        if (this.isPreviewVisible || this.isPreviewImageChangeForced) {\r\n            this.showPreview(files[0]);\r\n        }\r\n    }\r\n\r\n    private showPreview(file: File): void {\r\n        const reader = new FileReader();\r\n        const image = new Image();\r\n        reader.onload = () => {\r\n            image.src = reader.result?.toString() ?? '';\r\n        };\r\n        image.onload = () => {\r\n            let width = this.width || image.width;\r\n            let height = this.height || image.height;\r\n            const widthRatio = image.width / width;\r\n            const heightRatio = image.height / height;\r\n            const ratio = Math.max(widthRatio, heightRatio);\r\n            if (!this.width) {\r\n                width = image.width / ratio;\r\n            }\r\n            if (!this.height) {\r\n                height = image.height / ratio;\r\n            }\r\n            const imageWidth = image.width / ratio;\r\n            const imageHeight = image.height / ratio;\r\n            const canvas = document.createElement('canvas');\r\n            canvas.width = width;\r\n            canvas.height = height;\r\n            const left = (width - imageWidth) / 2;\r\n            const top = (height - imageHeight) / 2;\r\n            const context = canvas.getContext('2d');\r\n            context?.drawImage(image, left, top, imageWidth, imageHeight);\r\n            this.previewImage = canvas.toDataURL('image/png', 1);\r\n            this.previewImageChangeSubject.next(this.previewImage);\r\n        };\r\n        reader.readAsDataURL(file);\r\n    }\r\n}\r\n","@if (isPreviewVisible) {\n  <div class=\"preview\" [style.width.px]=\"previewWidth || width\" [style.height.px]=\"previewHeight || height\" [style.border-radius.px]=\"radius\">\n    <img [src]=\"previewImage\" alt=\"\">\n  </div>\n}\n<div class=\"content\">\n  <ng-content></ng-content>\n</div>\n<input type=\"file\" accept=\"image/jpeg,image/png,image/gif\" multiple (change)=\"onUpload(file.files)\" #file/>\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ButtonDirective } from '../../../directives/button.directive';\r\n\r\n@Component({\n    selector: 'm-file-input',\n    templateUrl: './file-input.component.html',\n    styleUrls: ['./file-input.component.scss'],\n    imports: [\n        ButtonDirective\n    ]\n})\r\nexport class FileInputComponent {\r\n    public readonly id = `file_input_${Date.now()}_${Math.floor(Math.random() * 1000000)}`;\r\n\r\n    @ViewChild('input')\r\n    public input: ElementRef<HTMLInputElement> | undefined;\r\n\r\n    public get files(): FileList | undefined {\r\n        return this.input?.nativeElement.files ?? undefined;\r\n    }\r\n\r\n    @Input()\r\n    public accept: string | undefined;\r\n\r\n    @Output()\r\n    public readonly change = new EventEmitter<Event>();\r\n\r\n}\r\n","<label [for]=\"id\" m-button>\r\n    <ng-content></ng-content>\r\n</label>\r\n<input [id]=\"id\" type=\"file\" [accept]=\"accept\" (change)=\"change.emit($event)\" #input>\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FallbackForDirective } from '../../../directives/fallback-for.directive';\r\nimport { DateHelper } from '../../../helpers/date-helper';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { InputBaseComponent } from '../input-base.component';\r\n\r\n@Component({\r\n    selector: 'm-time-input',\r\n    templateUrl: './time-input.component.html',\r\n    styleUrls: ['./time-input.component.scss'],\r\n    imports: [FormsModule, IconComponent, FallbackForDirective, NgTemplateOutlet],\r\n    providers: [...InputBaseComponent.providers]\r\n})\r\nexport class TimeInputComponent extends InputBaseComponent implements OnInit {\r\n    private valueField: Date | undefined;\r\n\r\n    // eslint-disable-next-line no-null/no-null\r\n    protected internalValue: string | null = null;\r\n\r\n    @Input()\r\n    public get value(): Date | undefined {\r\n        return this.valueField;\r\n    }\r\n\r\n    public set value(value: Date | number | string | undefined) {\r\n        value = value ? new Date(value) : undefined;\r\n        value = isNaN(value?.getDate() as any) ? undefined : value;\r\n        if (value != this.valueField) {\r\n            this.setInternalValue(value);\r\n        }\r\n        this.valueField = value;\r\n    }\r\n\r\n    @Input()\r\n    public get time(): Date {\r\n        return this.value ?? this.default;\r\n    }\r\n\r\n    public set time(value: Date | number | string | undefined) {\r\n        this.value = value;\r\n    }\r\n\r\n    @Input()\r\n    public default = new Date(0);\r\n\r\n    @Input()\r\n    public min: Date | undefined;\r\n\r\n    @Input()\r\n    public max: Date | undefined;\r\n\r\n    @Output()\r\n    public readonly valueChange = new EventEmitter<Date | undefined>();\r\n\r\n    @Output()\r\n    public readonly timeChange = new EventEmitter<Date>();\r\n\r\n    @ContentChild('input')\r\n    protected set contentInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.refreshInput();\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    @ViewChild('input')\r\n    protected set viewInputElement(input: ElementRef<HTMLInputElement>) {\r\n        this.unbindEvents();\r\n        this.inputElement = input;\r\n        this.bindEvents();\r\n        this.refreshFocus();\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('min', 'max', 'defaultValue', 'value', 'time');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        // Set internal value on blur to ensure a invalid value is overwritten\r\n        this.blur.subscribe(() => this.setInternalValue(this.value));\r\n    }\r\n\r\n    protected onInternalChange(rawValue: string): void {\r\n        const oldValue = this.valueField ? new Date(this.valueField) : this.valueField;\r\n        let value = this.valueField ?? new Date();\r\n        const chunks = rawValue.split(':');\r\n        value.setHours(parseInt(chunks[0]) || 0, parseInt(chunks[1]) || 0, 0, 0);\r\n        value = DateHelper.keepInRange(this.min, value, this.max);\r\n        if (value !== this.valueField || oldValue !== value) {\r\n            this.valueField = value;\r\n            this.valueChange.emit(this.value);\r\n            this.timeChange.emit(this.time);\r\n        }\r\n    }\r\n\r\n    private setInternalValue(value: Date | null | undefined): void {\r\n        // Use null to avoid strange input behaviour with undefined values (e.g. input of negative values requires two minus signs to work)\r\n        // eslint-disable-next-line no-null/no-null\r\n        this.internalValue = value?.toISOString().split('T')[1].replace('Z', '') ?? null;\r\n    }\r\n\r\n}\r\n","@if (!isRight) {\n  <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n}\n@if (buttonPosition === 'left') {\n  <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n}\n<ng-content></ng-content>\n<input *m-fallback-for=\"'input'\" type=\"time\" [placeholder]=\"placeholder || ''\" [ngModel]=\"internalValue\" [min]=\"min || ''\" [max]=\"max || ''\" [attr.name]=\"name\" [attr.for]=\"for\" [attr.readOnly]=\"readonly || undefined\" [attr.disabled]=\"disabled || undefined\" (ngModelChange)=\"onInternalChange($event)\" #input>\n@if (icon) {\n  <m-icon [icon]=\"icon\" [size]=\"iconSize\" class=\"link icon\"></m-icon>\n}\n@if (isRight) {\n  <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n}\n@if (buttonPosition === 'right') {\n  <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n}\n\n<ng-template #labelTemplate>\n  <ng-content select=\"m-label\"></ng-content>\n  <ng-content select=\"m-label-dropdown\"></ng-content>\n</ng-template>\n\n<ng-template #contentTemplate>\n  <ng-content select=\"m-button\"></ng-content>\n  <ng-content select=\"m-icon-button\"></ng-content>\n</ng-template>\n","import { Component, Input } from '@angular/core';\r\nimport { InputBaseComponent } from './input-base.component';\r\n\r\n@Component({\r\n    selector: 'm-input-defaults',\r\n    template: '',\r\n    })\r\nexport class InputDefaultsComponent {\r\n\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        InputBaseComponent.defaults.inverted = value;\r\n        InputBaseComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { LabelDropdownComponent } from './label-dropdown.component';\r\n\r\n@Component({\r\n    selector: 'm-label-dropdown-defaults',\r\n    template: '',\r\n    })\r\nexport class LabelDropdownDefaultsComponent implements OnDestroy {\r\n    private readonly previousDropdownIcon = LabelDropdownComponent.defaults.dropdownIcon;\r\n    private readonly previousDropdownIconSize = LabelDropdownComponent.defaults.dropdownIconSize;\r\n    private currentDropdownIcon?: IconType;\r\n    private currentDropdownIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public set dropdownIcon(value: IconType) {\r\n        this.currentDropdownIcon = value;\r\n        LabelDropdownComponent.defaults.dropdownIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set dropdownIconSize(value: IconSize) {\r\n        this.currentDropdownIconSize = value;\r\n        LabelDropdownComponent.defaults.dropdownIconSize = value;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentDropdownIcon === LabelDropdownComponent.defaults.dropdownIcon) {\r\n            LabelDropdownComponent.defaults.dropdownIcon = this.previousDropdownIcon;\r\n        }\r\n        if (this.currentDropdownIconSize === LabelDropdownComponent.defaults.dropdownIconSize) {\r\n            LabelDropdownComponent.defaults.dropdownIconSize = this.previousDropdownIconSize;\r\n        }\r\n    }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, Input, TemplateRef } from '@angular/core';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { FooterComponent } from '../footer/footer.component';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n    selector: 'm-layout',\r\n    templateUrl: './layout.component.html',\r\n    styleUrls: ['./layout.component.scss'],\r\n    imports: [MenuComponent, MenuItemComponent, IconComponent, FooterComponent, NgTemplateOutlet]\r\n})\r\nexport class LayoutComponent {\r\n    public static readonly defaults = { menuIcon: <IconType>'bars', menuIconSize: <IconSize>undefined };\r\n    protected readonly defaults = LayoutComponent.defaults;\r\n\r\n    @Input()\r\n    public showHamburger = false;\r\n\r\n    @Input()\r\n    public menuIcon: IconType | undefined;\r\n\r\n    @Input()\r\n    public menuIconSize: IconSize;\r\n\r\n    public get menuTemplates(): TemplateRef<unknown>[] {\r\n        return this.layoutService.menuTemplates;\r\n    }\r\n\r\n    public get footerTemplates(): TemplateRef<unknown>[] {\r\n        return this.layoutService.footerTemplates;\r\n    }\r\n\r\n    public constructor(\r\n        private readonly layoutService: LayoutService\r\n    ) {\r\n    }\r\n\r\n}\r\n","<m-menu position=\"top\" fixed>\n  @if (showHamburger) {\n    <m-menu-item>\n      <m-icon [icon]=\"menuIcon ?? defaults.menuIcon\" [size]=\"menuIconSize ?? defaults.menuIconSize\"></m-icon>\n    </m-menu-item>\n  }\n  @for (template of menuTemplates; track template) {\n    <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n  }\n</m-menu>\n<ng-content></ng-content>\n<m-footer>\n  @for (template of footerTemplates; track template) {\n    <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n  }\n</m-footer>\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { LayoutComponent } from './layout.component';\r\n\r\n@Component({\r\n    selector: 'm-layout-defaults',\r\n    template: '',\r\n    })\r\nexport class LayoutDefaultsComponent implements OnDestroy {\r\n    private readonly previousMenuIcon = LayoutComponent.defaults.menuIcon;\r\n    private readonly previousMenuIconSize = LayoutComponent.defaults.menuIconSize;\r\n    private currentMenuIcon?: IconType;\r\n    private currentMenuIconSize?: IconSize;\r\n\r\n    @Input()\r\n    public set menuIcon(value: IconType) {\r\n        this.currentMenuIcon = value;\r\n        LayoutComponent.defaults.menuIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set menuIconSize(value: IconSize) {\r\n        this.currentMenuIconSize = value;\r\n        LayoutComponent.defaults.menuIconSize = value;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentMenuIcon === LayoutComponent.defaults.menuIcon) {\r\n            LayoutComponent.defaults.menuIcon = this.previousMenuIcon;\r\n        }\r\n        if (this.currentMenuIconSize === LayoutComponent.defaults.menuIconSize) {\r\n            LayoutComponent.defaults.menuIconSize = this.previousMenuIconSize;\r\n        }\r\n    }\r\n}\r\n","export const localizeDictionary = new Map<string, string>();\r\n\r\nexport function localize(key: string, fallback?: string): string {\r\n    return localizeDictionary.get(key) ?? fallback ?? key;\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, inject, input, OnInit } from '@angular/core';\r\nimport { localizeDictionary } from './localize';\r\n\r\n@Component({\n    selector: 'm-localize',\n    imports: [],\n    templateUrl: './localize.component.html',\n    styleUrl: './localize.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\r\nexport class LocalizeComponent implements AfterViewInit, OnInit {\r\n    private readonly elementRef = inject(ElementRef);\r\n    public readonly key = input.required<string>();\r\n\r\n    public ngOnInit(): void {\r\n        localizeDictionary.set(this.key(), this.elementRef.nativeElement.textContent);\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        localizeDictionary.set(this.key(), this.elementRef.nativeElement.textContent);\r\n    }\r\n}\r\n","<ng-content />\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownHeader1 extends MarkdownElement {\r\n    type: 'header1';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader1Type = 'header1';\r\nexport const isMarkdownHeader1 = (element: MarkdownElement): element is MarkdownHeader1 => element?.type === markdownHeader1Type;\r\n\r\nexport interface MarkdownHeader2 extends MarkdownElement {\r\n    type: 'header2';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader2Type = 'header2';\r\nexport const isMarkdownHeader2 = (element: MarkdownElement): element is MarkdownHeader2 => element?.type === markdownHeader2Type;\r\n\r\nexport interface MarkdownHeader3 extends MarkdownElement {\r\n    type: 'header3';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader3Type = 'header3';\r\nexport const isMarkdownHeader3 = (element: MarkdownElement): element is MarkdownHeader3 => element?.type === markdownHeader3Type;\r\n\r\nexport interface MarkdownHeader4 extends MarkdownElement {\r\n    type: 'header4';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader4Type = 'header4';\r\nexport const isMarkdownHeader4 = (element: MarkdownElement): element is MarkdownHeader4 => element?.type === markdownHeader4Type;\r\n\r\nexport interface MarkdownHeader5 extends MarkdownElement {\r\n    type: 'header5';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader5Type = 'header5';\r\nexport const isMarkdownHeader5 = (element: MarkdownElement): element is MarkdownHeader5 => element?.type === markdownHeader5Type;\r\n\r\nexport interface MarkdownHeader6 extends MarkdownElement {\r\n    type: 'header6';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownHeader6Type = 'header6';\r\nexport const isMarkdownHeader6 = (element: MarkdownElement): element is MarkdownHeader6 => element?.type === markdownHeader6Type;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownCodeBlock extends MarkdownElement {\r\n    type: 'code-block';\r\n    language: string | undefined;\r\n    code: string | undefined;\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownCodeBlockType = 'code-block';\r\nexport const isMarkdownCodeBlock = (element: MarkdownElement): element is MarkdownCodeBlock => element?.type === markdownCodeBlockType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownSeparator extends MarkdownElement {\r\n    type: 'separator';\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownSeparatorType = 'separator';\r\nexport const isMarkdownSeparator = (element: MarkdownElement): element is MarkdownSeparator => element?.type === markdownSeparatorType;\r\n","export const cast = <T>(value: T): T => value;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownCode extends MarkdownElement {\r\n    type: 'code';\r\n    code: string | undefined;\r\n}\r\n\r\nexport const markdownCodeType = 'code';\r\nexport const isMarkdownCode = (element: MarkdownElement): element is MarkdownCode => element?.type === markdownCodeType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownImage extends MarkdownElement {\r\n    type: 'image';\r\n    alt: string;\r\n    url: string;\r\n}\r\n\r\nexport const markdownImageType = 'image';\r\nexport const isMarkdownImage = (element: MarkdownElement): element is MarkdownImage => element?.type === markdownImageType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownLink extends MarkdownElement {\r\n    type: 'link';\r\n    elements: MarkdownElement[];\r\n    url: string;\r\n}\r\n\r\nexport const markdownLinkType = 'link';\r\nexport const isMarkdownLink = (element: MarkdownElement): element is MarkdownLink => element?.type === markdownLinkType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownItalic extends MarkdownElement {\r\n    type: 'italic';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownItalicType = 'italic';\r\nexport const isMarkdownItalic = (element: MarkdownElement): element is MarkdownItalic => element?.type === markdownItalicType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownBold extends MarkdownElement {\r\n    type: 'bold';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownBoldType = 'bold';\r\nexport const isMarkdownBold = (element: MarkdownElement): element is MarkdownBold => element?.type === markdownBoldType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownStrikethrough extends MarkdownElement {\r\n    type: 'strikethrough';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownStrikethroughType = 'strikethrough';\r\nexport const isMarkdownStrikethrough = (element: MarkdownElement): element is MarkdownStrikethrough => element?.type === markdownStrikethroughType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownText extends MarkdownElement {\r\n    type: 'text';\r\n    text: string;\r\n}\r\n\r\nexport const markdownTextType = 'text';\r\nexport const isMarkdownText = (element: MarkdownElement): element is MarkdownText => element?.type === markdownTextType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownCustomElement extends MarkdownElement {\r\n    type: 'custom-element';\r\n    isBlock: true;\r\n    code: string | undefined;\r\n    data: Record<string, unknown> | undefined;\r\n}\r\n\r\nexport const markdownCustomElementType = 'custom-element';\r\nexport const isMarkdownCustomElement = (element: MarkdownElement): element is MarkdownCustomElement => element?.type === markdownCustomElementType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownEmpty extends MarkdownElement {\r\n    type: 'empty';\r\n}\r\n\r\nexport const markdownEmptyType = 'empty';\r\nexport const isMarkdownElement = (element: MarkdownElement): element is MarkdownEmpty => element?.type === markdownEmptyType;\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownList extends MarkdownElement {\r\n    type: 'list';\r\n    style: 'unordered';\r\n    level: number;\r\n    items: MarkdownListItem[];\r\n}\r\n\r\nexport interface MarkdownListItem extends MarkdownElement {\r\n    type: 'list-item';\r\n    elements: MarkdownElement[];\r\n}\r\n\r\nexport const markdownListType = 'list';\r\nexport const isMarkdownList = (element: MarkdownElement): element is MarkdownList => element?.type === markdownListType;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { MarkdownBlockParser } from './models/markdown-block-parser';\r\nimport { MarkdownInlineParser } from './models/markdown-inline-parser';\r\nimport { MarkdownHeader1, markdownHeader1Type, MarkdownHeader2, markdownHeader2Type, MarkdownHeader3, markdownHeader3Type, MarkdownHeader4, markdownHeader4Type, MarkdownHeader5, markdownHeader5Type, MarkdownHeader6, markdownHeader6Type } from './models/markdown-header';\r\nimport { MarkdownCodeBlock, markdownCodeBlockType } from './models/markdown-code-block';\r\nimport { MarkdownSeparator, markdownSeparatorType } from './models/markdown-separator';\r\nimport { MarkdownElement } from './models/markdown-element';\r\nimport { cast } from '../../helpers/cast';\r\nimport { MarkdownCode, markdownCodeType } from './models/markdown-code';\r\nimport { MarkdownImage, markdownImageType } from './models/markdown-image';\r\nimport { MarkdownLink, markdownLinkType } from './models/markdown-link';\r\nimport { MarkdownItalic, markdownItalicType } from './models/markdown-italic';\r\nimport { MarkdownBold, markdownBoldType } from './models/markdown-bold';\r\nimport { MarkdownStrikethrough, markdownStrikethroughType } from './models/markdown-strikethrough';\r\nimport { MarkdownParagraph } from './models/markdown-paragraph';\r\nimport { MarkdownText, markdownTextType } from './models/markdown-text';\r\nimport { MarkdownCustomElement, markdownCustomElementType } from './models/markdown-custom-element';\r\nimport { MarkdownEmpty, markdownEmptyType } from './models/markdown-empty';\r\nimport { ComponentParser } from '../dynamic-component/component-parser';\r\nimport { isMarkdownList, MarkdownList, MarkdownListItem, markdownListType } from './models/markdown-list';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class MarkdownParser {\r\n    private readonly blockParsers: MarkdownBlockParser[] = [];\r\n    private readonly inlineParsers: MarkdownInlineParser[] = [];\r\n\r\n    public constructor() {\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader1 => ({\r\n                type: markdownHeader1Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{2}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader2 => ({\r\n                type: markdownHeader2Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{3}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader3 => ({\r\n                type: markdownHeader3Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{4}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader4 => ({\r\n                type: markdownHeader4Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{5}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader5 => ({\r\n                type: markdownHeader5Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*#{6}(?<inline>[^#].*)$/,\r\n            factory: (result: RegExpExecArray): MarkdownHeader6 => ({\r\n                type: markdownHeader6Type,\r\n                elements: this.parseInline(result.groups?.['inline']?.trim()),\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*`{3}(?<language>.*?)\\r?\\n(?<code>(.|\\r?\\n)*?)`{3}$/g,\r\n            factory: (result: RegExpExecArray): MarkdownCodeBlock => ({\r\n                type: markdownCodeBlockType,\r\n                language: result.groups?.['language'],\r\n                code: result.groups?.['code'],\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*-{3}$/,\r\n            factory: (): MarkdownSeparator => ({\r\n                type: markdownSeparatorType,\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*(?<code><([^>]+)(.+?)<\\/\\2>)$/g,\r\n            factory: (result: RegExpExecArray, data?: Record<string, unknown>): MarkdownCustomElement => ({\r\n                type: markdownCustomElementType,\r\n                code: result.groups?.['code'],\r\n                data,\r\n                isBlock: true\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^\\s*<m-json(.+?)<\\/m-json>$/g,\r\n            factory: (): MarkdownEmpty => ({\r\n                type: markdownEmptyType\r\n            })\r\n        });\r\n        this.registerBlockParser({\r\n            regex: /^(?<level>\\s*)-\\s*(?<inline>.*)$/,\r\n            factory: (result: RegExpExecArray, _, previous): MarkdownList | undefined => {\r\n                const item: MarkdownListItem = {\r\n                    type: 'list-item',\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                };\r\n                if (isMarkdownList(previous)) {\r\n                    previous.items.push(item);\r\n                    return undefined;\r\n                }\r\n                return {\r\n                    type: markdownListType,\r\n                    level: result.groups?.['level'].length ?? 0,\r\n                    style: 'unordered',\r\n                    items: [item],\r\n                    isBlock: true\r\n                };\r\n            }\r\n        });\r\n\r\n        this.registerInlineParser({\r\n            regex: /`(?<code>[^`].*?)`(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownCode>({\r\n                    type: markdownCodeType,\r\n                    code: result.groups?.['code']\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /!\\[(?<alt>.*)]\\((?<url>.*)\\)(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownImage>({\r\n                    type: markdownImageType,\r\n                    url: result.groups?.['url'] ?? '',\r\n                    alt: result.groups?.['alt'] ?? ''\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /\\[(?<inline>.*)]\\((?<url>.*)\\)(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownLink>({\r\n                    type: markdownLinkType,\r\n                    url: result.groups?.['url'] ?? '',\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /\\*(?<inline>.*?)\\*(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownItalic>({\r\n                    type: markdownItalicType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /_(?<inline>.*?)_(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownItalic>({\r\n                    type: markdownItalicType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /\\*\\*(?<inline>.*?)\\*\\*(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownBold>({\r\n                    type: markdownBoldType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /__(?<inline>.*?)__(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownBold>({\r\n                    type: markdownBoldType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n        this.registerInlineParser({\r\n            regex: /~~(?<inline>.*?)~~(?<post>.*)/,\r\n            factory: (result: RegExpExecArray): MarkdownElement[] => [\r\n                ...this.parseInline(result.input.substring(0, result.index)),\r\n                cast<MarkdownStrikethrough>({\r\n                    type: markdownStrikethroughType,\r\n                    elements: this.parseInline(result.groups?.['inline'])\r\n                }),\r\n                ...this.parseInline(result.groups?.['post'])\r\n            ]\r\n        });\r\n\r\n    }\r\n\r\n    public registerBlockParser(parser: MarkdownBlockParser): void {\r\n        this.blockParsers.push(parser);\r\n    }\r\n\r\n    public registerInlineParser(parser: MarkdownInlineParser): void {\r\n        this.inlineParsers.push(parser);\r\n    }\r\n\r\n    public registerComponent(component: Type<unknown>): void {\r\n        ComponentParser.register(component);\r\n    }\r\n\r\n    public parse(value: string): MarkdownElement[] {\r\n        const data = this.parseData(value);\r\n        if (value.includes('\\n\\n')) {\r\n            const elements: MarkdownElement[] = [];\r\n            const paragraphs = value.split('\\n\\n');\r\n            for (const paragraph of paragraphs) {\r\n                elements.push(cast<MarkdownParagraph>({\r\n                    type: 'paragraph',\r\n                    elements: this.parseBlock(paragraph, data),\r\n                    isBlock: true\r\n                }));\r\n            }\r\n            return elements;\r\n        }\r\n        return this.parseBlock(value, data);\r\n    }\r\n\r\n    private parseData(value: string): Record<string, unknown> {\r\n        const data: Record<string, unknown> = {};\r\n        const regex = /<m-json>(?<json>.*?)<\\/m-json> *\\r?\\n?/gm;\r\n        let match = regex.exec(value);\r\n        while (match) {\r\n            Object.assign(data, JSON.parse(match.groups?.['json'] ?? '{}'));\r\n            match = regex.exec(value);\r\n        }\r\n        return data;\r\n    }\r\n\r\n    private parseBlock(text: string, data: Record<string, unknown>): MarkdownElement[] {\r\n        const lines = text.split('\\n');\r\n        const elements: MarkdownElement[] = [];\r\n        for (let line of lines) {\r\n            line = line?.trimEnd();\r\n            let parsed = false;\r\n            for (const parser of this.blockParsers) {\r\n                const regexResult = parser.regex.exec(line);\r\n                if (regexResult) {\r\n                    const element = parser.factory(regexResult, data, elements[elements.length - 1]);\r\n                    if (element) {\r\n                        elements.push(element);\r\n                    }\r\n                    parsed = true;\r\n                    break;\r\n                }\r\n            }\r\n            if (!parsed) {\r\n                elements.push(...this.parseInline(line));\r\n            }\r\n            elements[elements.length - 1].breakLine = true;\r\n        }\r\n        return elements;\r\n    }\r\n\r\n    private parseInline(text: string | undefined): MarkdownElement[] {\r\n        if (!text) {\r\n            return [{ type: 'empty' }];\r\n        }\r\n        const elements: MarkdownElement[] = [];\r\n        let firstResult: RegExpExecArray | undefined;\r\n        let firstParser: MarkdownInlineParser | undefined;\r\n        for (const parser of this.inlineParsers) {\r\n            const regexResult = parser.regex.exec(text);\r\n            if (regexResult && (!firstResult || regexResult.index <= firstResult.index)) {\r\n                firstResult = regexResult;\r\n                firstParser = parser;\r\n            }\r\n        }\r\n        if (firstResult && firstParser) {\r\n            elements.push(...firstParser.factory(firstResult));\r\n        } else {\r\n            elements.push(cast<MarkdownText>({ type: markdownTextType, text }));\r\n        }\r\n        return elements;\r\n    }\r\n}\r\n","import { MarkdownElement } from './markdown-element';\r\n\r\nexport interface MarkdownParagraph extends MarkdownElement {\r\n    type: 'paragraph';\r\n    elements: MarkdownElement[];\r\n    isBlock: true;\r\n}\r\n\r\nexport const markdownParagraphType = 'paragraph';\r\nexport const isMarkdownParagraph = (element: MarkdownElement): element is MarkdownParagraph => element?.type === markdownParagraphType;\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, Input } from '@angular/core';\r\nimport { DynamicComponentComponent } from '../dynamic-component/dynamic-component.component';\r\nimport { MarkdownParser } from './markdown-parser';\r\nimport { isMarkdownBold, MarkdownBold, markdownBoldType } from './models/markdown-bold';\r\nimport { isMarkdownCode, MarkdownCode, markdownCodeType } from './models/markdown-code';\r\nimport { isMarkdownCodeBlock, MarkdownCodeBlock, markdownCodeBlockType } from './models/markdown-code-block';\r\nimport { isMarkdownCustomElement, MarkdownCustomElement, markdownCustomElementType } from './models/markdown-custom-element';\r\nimport { MarkdownElement } from './models/markdown-element';\r\nimport { markdownEmptyType } from './models/markdown-empty';\r\nimport { isMarkdownHeader1, isMarkdownHeader2, isMarkdownHeader3, isMarkdownHeader4, isMarkdownHeader5, isMarkdownHeader6, MarkdownHeader1, markdownHeader1Type, MarkdownHeader2, markdownHeader2Type, MarkdownHeader3, markdownHeader3Type, MarkdownHeader4, markdownHeader4Type, MarkdownHeader5, markdownHeader5Type, MarkdownHeader6, markdownHeader6Type } from './models/markdown-header';\r\nimport { isMarkdownImage, MarkdownImage, markdownImageType } from './models/markdown-image';\r\nimport { isMarkdownItalic, MarkdownItalic, markdownItalicType } from './models/markdown-italic';\r\nimport { isMarkdownLink, MarkdownLink, markdownLinkType } from './models/markdown-link';\r\nimport { isMarkdownList, MarkdownList, markdownListType } from './models/markdown-list';\r\nimport { isMarkdownParagraph, MarkdownParagraph, markdownParagraphType } from './models/markdown-paragraph';\r\nimport { markdownSeparatorType } from './models/markdown-separator';\r\nimport { isMarkdownStrikethrough, MarkdownStrikethrough, markdownStrikethroughType } from './models/markdown-strikethrough';\r\nimport { isMarkdownText, MarkdownText, markdownTextType } from './models/markdown-text';\r\n\r\n@Component({\r\n    selector: 'm-markdown-renderer',\r\n    imports: [CommonModule, DynamicComponentComponent],\r\n    templateUrl: './markdown-renderer.component.html',\r\n    styleUrls: ['./markdown-renderer.component.scss']\r\n})\r\nexport class MarkdownRendererComponent {\r\n    private readonly parser = inject(MarkdownParser);\r\n    private rawValue = '';\r\n    protected elements: MarkdownElement[] = [];\r\n    protected readonly markdownParagraphType = markdownParagraphType;\r\n    protected readonly markdownHeader1Type = markdownHeader1Type;\r\n    protected readonly markdownHeader2Type = markdownHeader2Type;\r\n    protected readonly markdownHeader3Type = markdownHeader3Type;\r\n    protected readonly markdownHeader4Type = markdownHeader4Type;\r\n    protected readonly markdownHeader5Type = markdownHeader5Type;\r\n    protected readonly markdownHeader6Type = markdownHeader6Type;\r\n    protected readonly markdownCodeBlockType = markdownCodeBlockType;\r\n    protected readonly markdownSeparatorType = markdownSeparatorType;\r\n    protected readonly markdownCustomElementType = markdownCustomElementType;\r\n    protected readonly markdownCodeType = markdownCodeType;\r\n    protected readonly markdownImageType = markdownImageType;\r\n    protected readonly markdownLinkType = markdownLinkType;\r\n    protected readonly markdownItalicType = markdownItalicType;\r\n    protected readonly markdownBoldType = markdownBoldType;\r\n    protected readonly markdownStrikethroughType = markdownStrikethroughType;\r\n    protected readonly markdownTextType = markdownTextType;\r\n    protected readonly markdownEmptyType = markdownEmptyType;\r\n    protected readonly markdownListType = markdownListType;\r\n\r\n    @Input()\r\n    public get value(): string {\r\n        return this.rawValue;\r\n    }\r\n\r\n    public set value(value: string | undefined) {\r\n        this.rawValue = value ?? '';\r\n        this.elements.length = 0;\r\n        if (!value) {\r\n            return;\r\n        }\r\n        this.elements = this.parser.parse(value);\r\n    }\r\n\r\n    protected $elements(elements: []): MarkdownElement[] {\r\n        return elements;\r\n    }\r\n\r\n    protected $paragraph(element: MarkdownElement): MarkdownParagraph | undefined {\r\n        return isMarkdownParagraph(element) ? element : undefined;\r\n    }\r\n\r\n    protected $header1(element: MarkdownElement): MarkdownHeader1 | undefined {\r\n        return isMarkdownHeader1(element) ? element : undefined;\r\n    }\r\n\r\n    protected $header2(element: MarkdownElement): MarkdownHeader2 | undefined {\r\n        return isMarkdownHeader2(element) ? element : undefined;\r\n    }\r\n\r\n    protected $header3(element: MarkdownElement): MarkdownHeader3 | undefined {\r\n        return isMarkdownHeader3(element) ? element : undefined;\r\n    }\r\n\r\n    protected $header4(element: MarkdownElement): MarkdownHeader4 | undefined {\r\n        return isMarkdownHeader4(element) ? element : undefined;\r\n    }\r\n\r\n    protected $header5(element: MarkdownElement): MarkdownHeader5 | undefined {\r\n        return isMarkdownHeader5(element) ? element : undefined;\r\n    }\r\n\r\n    protected $header6(element: MarkdownElement): MarkdownHeader6 | undefined {\r\n        return isMarkdownHeader6(element) ? element : undefined;\r\n    }\r\n\r\n    protected $codeBlock(element: MarkdownElement): MarkdownCodeBlock | undefined {\r\n        return isMarkdownCodeBlock(element) ? element : undefined;\r\n    }\r\n\r\n    protected $customElement(element: MarkdownElement): MarkdownCustomElement | undefined {\r\n        return isMarkdownCustomElement(element) ? element : undefined;\r\n    }\r\n\r\n    protected $code(element: MarkdownElement): MarkdownCode | undefined {\r\n        return isMarkdownCode(element) ? element : undefined;\r\n    }\r\n\r\n    protected $list(element: MarkdownElement): MarkdownList | undefined {\r\n        return isMarkdownList(element) ? element : undefined;\r\n    }\r\n\r\n    protected $image(element: MarkdownElement): MarkdownImage | undefined {\r\n        return isMarkdownImage(element) ? element : undefined;\r\n    }\r\n\r\n    protected $link(element: MarkdownElement): MarkdownLink | undefined {\r\n        return isMarkdownLink(element) ? element : undefined;\r\n    }\r\n\r\n    protected $italic(element: MarkdownElement): MarkdownItalic | undefined {\r\n        return isMarkdownItalic(element) ? element : undefined;\r\n    }\r\n\r\n    protected $bold(element: MarkdownElement): MarkdownBold | undefined {\r\n        return isMarkdownBold(element) ? element : undefined;\r\n    }\r\n\r\n    protected $strikethrough(element: MarkdownElement): MarkdownStrikethrough | undefined {\r\n        return isMarkdownStrikethrough(element) ? element : undefined;\r\n    }\r\n\r\n    protected $text(element: MarkdownElement): MarkdownText | undefined {\r\n        return isMarkdownText(element) ? element : undefined;\r\n    }\r\n}\r\n","<ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': elements }\"></ng-container>\r\n\r\n<ng-template let-elements #elementsTemplate>\r\n    <ng-container *ngFor=\"let element of $elements(elements)\" [ngSwitch]=\"element.type\">\r\n        <ng-container *ngSwitchCase=\"markdownParagraphType\">\r\n            <p *ngIf=\"$paragraph(element) as paragraph\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': paragraph.elements }\"></ng-container>\r\n            </p>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownHeader1Type\">\r\n            <h1 *ngIf=\"$header1(element) as header1\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header1.elements }\"></ng-container>\r\n            </h1>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownHeader2Type\">\r\n            <h2 *ngIf=\"$header2(element) as header2\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header2.elements }\"></ng-container>\r\n            </h2>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownHeader3Type\">\r\n            <h3 *ngIf=\"$header3(element) as header3\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header3.elements }\"></ng-container>\r\n            </h3>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownHeader4Type\">\r\n            <h4 *ngIf=\"$header4(element) as header4\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header4.elements }\"></ng-container>\r\n            </h4>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownHeader5Type\">\r\n            <h5 *ngIf=\"$header5(element) as header5\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header5.elements }\"></ng-container>\r\n            </h5>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownHeader6Type\">\r\n            <h6 *ngIf=\"$header6(element) as header6\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': header6.elements }\"></ng-container>\r\n            </h6>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownCodeBlockType\">\r\n            <pre><code *ngIf=\"$codeBlock(element) as codeBlock\">\r\n                {{codeBlock.code}}\r\n            </code></pre>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownSeparatorType\">\r\n            <hr/>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownCustomElementType\">\r\n            <m-dynamic-component *ngIf=\"$customElement(element) as customElement\" [code]=\"customElement.code\"/>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownCodeType\">\r\n            <code *ngIf=\"$code(element) as code\">\r\n                {{code.code}}\r\n            </code>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownListType\">\r\n            <ng-container *ngIf=\"$list(element) as list\">\r\n                <ul *ngIf=\"list.style === 'unordered'\">\r\n                    <li *ngFor=\"let item of list.items\">\r\n                        <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': item.elements }\"></ng-container>\r\n                    </li>\r\n                </ul>\r\n            </ng-container>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownImageType\">\r\n            <img *ngIf=\"$image(element) as image\" [src]=\"image.url\" [alt]=\"image.alt\"/>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownLinkType\">\r\n            <a *ngIf=\"$link(element) as link\" [href]=\"link.url\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': link.elements }\"></ng-container>\r\n            </a>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownItalicType\">\r\n            <i *ngIf=\"$italic(element) as italic\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': italic.elements }\"></ng-container>\r\n            </i>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownBoldType\">\r\n            <b *ngIf=\"$bold(element) as bold\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': bold.elements }\"></ng-container>\r\n            </b>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownStrikethroughType\">\r\n            <s *ngIf=\"$strikethrough(element) as strikethrough\">\r\n                <ng-container [ngTemplateOutlet]=\"elementsTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': strikethrough.elements }\"></ng-container>\r\n            </s>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownTextType\">\r\n            <span *ngIf=\"$text(element) as text\">{{text.text}}</span>\r\n        </ng-container>\r\n        <ng-container *ngSwitchCase=\"markdownEmptyType\"></ng-container>\r\n        <span *ngSwitchDefault>Unknown element '{{element.type}}'</span>\r\n        <br *ngIf=\"element.breakLine && !element.isBlock\">\r\n    </ng-container>\r\n</ng-template>\r\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\n\r\n@Component({\r\n    selector: 'm-menu-header',\r\n    templateUrl: './menu-header.component.html',\r\n    styleUrls: ['./menu-header.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class MenuHeaderComponent extends BaseComponent {\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('header', 'item');\r\n    }\r\n\r\n}\r\n","<ng-content></ng-content>","import { Directive, TemplateRef } from '@angular/core';\r\nimport { LayoutService } from '../services/layout.service';\r\n\r\n@Directive({\r\n    selector: '[m-menu-link-template]',\r\n    })\r\nexport class MenuLinkTemplateDirective {\r\n    public constructor(\r\n        private readonly menuService: LayoutService,\r\n        private readonly template: TemplateRef<unknown>\r\n    ) {\r\n        this.menuService.menuTemplates.push(this.template);\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TemplateTarget } from '../../models/template-target';\r\nimport { MenuLinkTemplateDirective } from '../../directives/menu-link-template.directive';\r\n\r\n@Component({\n    selector: 'm-menu-link',\n    templateUrl: './menu-link.component.html',\n    styleUrls: ['./menu-link.component.scss'],\n    imports: [\n        MenuLinkTemplateDirective\n    ]\n})\r\nexport class MenuLinkComponent {\r\n\r\n    public readonly target = new TemplateTarget();\r\n\r\n}\r\n","<ng-container *m-menu-link-template>\r\n    <ng-content></ng-content>\r\n</ng-container>\r\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { MessageComponent } from './message.component';\r\n\r\n@Component({\r\n    selector: 'm-message-defaults',\r\n    template: '',\r\n    })\r\nexport class MessageDefaultsComponent implements OnDestroy {\r\n    private readonly previousCloseIcon = MessageComponent.defaults.closeIcon;\r\n    private readonly previousCloseIconSize = MessageComponent.defaults.closeIconSize;\r\n    private currentCloseIcon?: IconType;\r\n    private currentCloseIconSize?: IconType;\r\n\r\n    @Input()\r\n    public set closeIcon(value: IconType) {\r\n        this.currentCloseIcon = value;\r\n        MessageComponent.defaults.closeIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set closeIconSize(value: IconSize) {\r\n        this.currentCloseIconSize = value;\r\n        MessageComponent.defaults.closeIconSize = value;\r\n    }\r\n\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        MessageComponent.defaults.inverted = value;\r\n        MessageComponent.defaults.invertedChange.next(value);\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentCloseIcon === MessageComponent.defaults.closeIcon) {\r\n            MessageComponent.defaults.closeIcon = this.previousCloseIcon;\r\n        }\r\n        if (this.currentCloseIconSize === MessageComponent.defaults.closeIconSize) {\r\n            MessageComponent.defaults.closeIconSize = this.previousCloseIconSize;\r\n        }\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-modal-footer',\r\n    template: '<ng-content />'\r\n})\r\nexport class ModalFooterComponent {\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-modal-header',\r\n    template: '<ng-content/>'\r\n})\r\nexport class ModalHeaderComponent {\r\n\r\n}\r\n","\r\nimport { Component, effect, ElementRef, EventEmitter, HostBinding, inject, input, Input, Output, viewChild } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { BasicDirective } from '../../directives/basic.directive';\r\nimport { FallbackForDirective } from '../../directives/fallback-for.directive';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { DimmerComponent } from '../dimmer/dimmer.component';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { LoaderComponent } from '../loader/loader.component';\r\nimport { ModalFooterComponent } from './modal-footer.component';\r\nimport { ModalHeaderComponent } from './modal-header.component';\r\n\r\nexport type ModalSize =\r\n    'mini'\r\n    | 'tiny'\r\n    | 'small'\r\n    | 'large';\r\n\r\n@Component({\r\n    selector: 'm-modal',\r\n    templateUrl: './modal.component.html',\r\n    styleUrls: ['./modal.component.scss'],\r\n    imports: [DimmerComponent, ModalHeaderComponent, ModalFooterComponent, IconComponent, ButtonComponent, LoaderComponent, FallbackForDirective],\r\n    hostDirectives: [BasicDirective.default],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class ModalComponent extends InvertibleComponent {\r\n    public static readonly defaults = {\r\n        closeIcon: <IconType>'close',\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n\r\n    private isShowClose = false;\r\n    private isShowHeader = true;\r\n    private isShowFooter = true;\r\n    private isHideDimmer = false;\r\n    private isVisible = true;\r\n    private isImageContent = false;\r\n    private isFullscreen = false;\r\n    private isScrolling = true;\r\n    private isNoPadding = false;\r\n    private isLoading = false;\r\n    private readonly resizeObserver = new ResizeObserver(() => this.onResize());\r\n    protected minGrowOnlyContentHeight = 0;\r\n\r\n    private readonly basicDirective = inject(BasicDirective, { self: true });\r\n    protected readonly defaults = ModalComponent.defaults;\r\n\r\n    public readonly growOnly = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n    public readonly contentElementRef = viewChild<ElementRef<HTMLElement>>('content');\r\n\r\n    protected get basic(): boolean {\r\n        return this.basicDirective.basic;\r\n    }\r\n\r\n    @Input()\r\n    public header: string | undefined;\r\n\r\n    @Input()\r\n    public get showClose(): boolean {\r\n        return this.isShowClose;\r\n    }\r\n\r\n    public set showClose(value: BooleanLike) {\r\n        this.isShowClose = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get showHeader(): boolean {\r\n        return this.isShowHeader;\r\n    }\r\n\r\n    public set showHeader(value: BooleanLike) {\r\n        this.isShowHeader = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get hideHeader(): boolean {\r\n        return !this.isShowHeader;\r\n    }\r\n\r\n    public set hideHeader(value: BooleanLike) {\r\n        this.isShowHeader = !this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get showFooter(): boolean {\r\n        return this.isShowFooter;\r\n    }\r\n\r\n    public set showFooter(value: BooleanLike) {\r\n        this.isShowFooter = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get hideFooter(): boolean {\r\n        return !this.isShowFooter;\r\n    }\r\n\r\n    public set hideFooter(value: BooleanLike) {\r\n        this.isShowFooter = !this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.hide-dimmer')\r\n    public get hideDimmer(): boolean {\r\n        return this.isHideDimmer;\r\n    }\r\n\r\n    public set hideDimmer(value: BooleanLike) {\r\n        this.isHideDimmer = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get visible(): boolean {\r\n        return this.isVisible;\r\n    }\r\n\r\n    public set visible(value: BooleanLike) {\r\n        this.isVisible = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get imageContent(): boolean {\r\n        return this.isImageContent;\r\n    }\r\n\r\n    public set imageContent(value: BooleanLike) {\r\n        this.isImageContent = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get fullscreen(): boolean {\r\n        return this.isFullscreen;\r\n    }\r\n\r\n    public set fullscreen(value: BooleanLike) {\r\n        this.isFullscreen = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public size: ModalSize | undefined;\r\n\r\n    @Input()\r\n    public get scrolling(): boolean {\r\n        return this.isScrolling;\r\n    }\r\n\r\n    public set scrolling(value: BooleanLike) {\r\n        this.isScrolling = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get noPadding(): boolean {\r\n        return this.isNoPadding;\r\n    }\r\n\r\n    public set noPadding(value: BooleanLike) {\r\n        this.isNoPadding = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get loading(): boolean {\r\n        return this.isLoading;\r\n    }\r\n\r\n    public set loading(value: BooleanLike) {\r\n        this.isLoading = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public minContentHeight: string | undefined;\r\n\r\n    @Input()\r\n    public maxContentHeight: string | undefined;\r\n\r\n    @Input()\r\n    public closeIcon: IconType | undefined;\r\n\r\n    @Output()\r\n    public readonly close = new EventEmitter<void>();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('visible', 'fullscreen', 'size', 'scrolling', 'imageContent', 'header', 'footer', 'showHeader', 'hideHeader', 'showFooter', 'hideFooter', 'hideDimmer', 'showClose', 'minContentHeight', 'maxContentHeight');\r\n        ModalComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n\r\n        effect(() => {\r\n            const growOnly = this.growOnly();\r\n            const ref = this.contentElementRef();\r\n            if (!ref) {\r\n                return;\r\n            }\r\n            if (growOnly) {\r\n                this.resizeObserver.observe(ref.nativeElement);\r\n                this.onResize();\r\n            }\r\n            else {\r\n                this.minGrowOnlyContentHeight = 0;\r\n                this.resizeObserver.unobserve(ref.nativeElement);\r\n            }\r\n        });\r\n    }\r\n\r\n    protected onClose(): void {\r\n        this.close.emit();\r\n    }\r\n\r\n    protected onDimmerClick(event: MouseEvent): void {\r\n        // Only close modal if dimmer was clicked\r\n        if ((event.target as HTMLElement).closest('.modal')) {\r\n            return;\r\n        }\r\n        if (this.showClose || this.showClose === undefined) {\r\n            this.onClose();\r\n        }\r\n    }\r\n\r\n    private onResize(): void {\r\n        this.minGrowOnlyContentHeight = Math.max(this.minGrowOnlyContentHeight ?? 0, this.contentElementRef()?.nativeElement.clientHeight ?? 0);\r\n    }\r\n}\r\n","<m-dimmer page (mousedown)=\"onDimmerClick($event)\">\n  <div class=\"ui\" [class.basic]=\"basic\" [class.active]=\"visible\" [class.fullscreen]=\"fullscreen\" [class.modal]=\"true\" [class.mini]=\"size === 'mini'\" [class.tiny]=\"size === 'tiny'\" [class.small]=\"size === 'small'\" [class.large]=\"size === 'large'\" [class.inverted]=\"inverted\">\n    @if (showHeader) {\n      <div [class.ui]=\"basic\" [class.icon]=\"basic\" class=\"header\">\n        <ng-content select=\"m-modal-header\" />\n        <m-modal-header *m-fallback-for=\"'m-modal-header'\">\n          {{ header }}\n        </m-modal-header>\n        @if (basic && showClose === true || !basic && (showClose || showClose === undefined)) {\n          @if (closeIcon || defaults.closeIcon) {\n            <m-icon [icon]=\"closeIcon ?? defaults.closeIcon\" class=\"close\" (click)=\"onClose()\" />\n          }\n        }\n      </div>\n    }\n    <div [class.image]=\"imageContent\" [class.scrolling]=\"scrolling\" class=\"content\" [class.no-padding]=\"noPadding\" [style.min-height]=\"minContentHeight\" [style.min-height.px]=\"minGrowOnlyContentHeight\" [style.max-height]=\"maxContentHeight\" #content>\n      <ng-content />\n      @if (loading) {\n        <m-dimmer inverted>\n          <m-loader />\n        </m-dimmer>\n      }\n    </div>\n    @if (showFooter) {\n      <div class=\"actions\">\n        <ng-content select=\"m-modal-footer\" />\n        <m-modal-footer *m-fallback-for=\"'m-modal-footer'\">\n          <m-button primary (click)=\"onClose()\">Close</m-button>\n        </m-modal-footer>\n      </div>\n    }\n  </div>\n</m-dimmer>\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@Component({\r\n    selector: 'm-modal-defaults',\r\n    template: ''\r\n})\r\nexport class ModalDefaultsComponent implements OnDestroy {\r\n    private readonly previousCloseIcon = ModalComponent.defaults.closeIcon;\r\n    private currentCloseIcon?: IconType;\r\n\r\n    @Input()\r\n    public set closeIcon(value: IconType) {\r\n        this.currentCloseIcon = value;\r\n        ModalComponent.defaults.closeIcon = value;\r\n    }\r\n\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        ModalComponent.defaults.inverted = value;\r\n        ModalComponent.defaults.invertedChange.next(value);\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentCloseIcon === ModalComponent.defaults.closeIcon) {\r\n            ModalComponent.defaults.closeIcon = this.previousCloseIcon;\r\n        }\r\n    }\r\n}\r\n","import { InteropObservable, Subject, Subscribable } from 'rxjs';\r\n\r\nexport class AsyncAction implements InteropObservable<void> {\r\n    private readonly subject = new Subject<void>();\r\n\r\n    public readonly event = this.subject.asObservable();\r\n\r\n    /**\r\n     * Alias for done to support rxjs.Observer<void>\r\n     * @deprecated\r\n     */\r\n    public readonly next = this.done;\r\n\r\n    public done(): void {\r\n        this.subject.next();\r\n        this.subject.complete();\r\n    }\r\n\r\n    public error(message?: string): void {\r\n        this.subject.error(message);\r\n    }\r\n\r\n    public [Symbol.observable](): Subscribable<void> {\r\n        return this.subject;\r\n    }\r\n}\r\n","import { Notification } from './notification';\r\nimport { NotificationHandler } from './notification-handler';\r\n\r\nexport class NotificationRef<T = unknown> {\r\n    public constructor(\r\n        public readonly notification: Notification<T>,\r\n        private readonly handler: NotificationHandler\r\n    ) {\r\n    }\r\n\r\n    public close(): void {\r\n        this.handler.remove(this.notification);\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { AsyncAction } from './async-action';\r\nimport { Notification } from './notification';\r\nimport { NotificationHandler } from './notification-handler';\r\nimport { NotificationRef } from './notification-ref';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class NotificationService implements NotificationHandler {\r\n    public static readonly defaults = {\r\n        successIcon: <IconType>'check'\r\n    };\r\n    private readonly addedSubject = new Subject<Notification>();\r\n    private readonly removedSubject = new Subject<Notification>();\r\n    private readonly erroredSubject = new Subject<Notification>();\r\n    private readonly warnedSubject = new Subject<Notification>();\r\n    private readonly succeededSubject = new Subject<Notification>();\r\n    private readonly positivedSubject = new Subject<Notification>();\r\n    private readonly informedSubject = new Subject<Notification>();\r\n    private readonly messages: Record<string, Notification[]> = {\r\n        all: [],\r\n        empty: []\r\n    };\r\n\r\n    public readonly added = this.addedSubject.asObservable();\r\n    public readonly removed = this.removedSubject.asObservable();\r\n    public readonly errored = this.erroredSubject.asObservable();\r\n    public readonly warned = this.warnedSubject.asObservable();\r\n    public readonly succeeded = this.succeededSubject.asObservable();\r\n    public readonly positived = this.positivedSubject.asObservable();\r\n    public readonly informed = this.informedSubject.asObservable();\r\n\r\n    public get(group?: 'all' | 'empty' | string): Notification[] {\r\n        group ||= 'all';\r\n        if (!this.messages[group]) {\r\n            this.messages[group] = [];\r\n        }\r\n        return this.messages[group];\r\n    }\r\n\r\n    public add(notification: Notification): NotificationRef {\r\n        this.messages['all'].push(notification);\r\n        if (notification.group) {\r\n            this.get(notification.group).push(notification);\r\n        }\r\n        else {\r\n            this.messages['empty'].push(notification);\r\n        }\r\n        this.addedSubject.next(notification);\r\n        if (notification?.timeout && notification.timeout > 0) {\r\n            setTimeout(() => this.remove(notification), notification.timeout);\r\n        }\r\n        return new NotificationRef(notification, this);\r\n    }\r\n\r\n    public remove(notification: Notification): void {\r\n        const index = this.messages['all'].indexOf(notification);\r\n        if (index >= 0) {\r\n            this.messages['all'].splice(index, 1);\r\n        }\r\n        if (notification.group) {\r\n            const groupIndex = this.messages[notification.group].indexOf(notification);\r\n            if (groupIndex >= 0) {\r\n                this.messages[notification.group].splice(groupIndex, 1);\r\n            }\r\n        }\r\n        else {\r\n            const groupIndex = this.messages['empty'].indexOf(notification);\r\n            if (groupIndex >= 0) {\r\n                this.messages['empty'].splice(groupIndex, 1);\r\n            }\r\n        }\r\n        this.removedSubject.next(notification);\r\n    }\r\n\r\n    public async(processingText: string, doneText: string, errorText?: string): AsyncAction {\r\n        const action = new AsyncAction();\r\n        const loadingMessage: Notification = { type: 'none', text: processingText, loading: true, group: 'content' };\r\n        this.add(loadingMessage);\r\n        action.event.subscribe({\r\n            next: () => {\r\n                this.remove(loadingMessage);\r\n                this.success(doneText, { icon: NotificationService.defaults.successIcon, group: 'content' });\r\n            },\r\n            error: (error: string, options?: { timeout: 10000 } | Partial<Notification>) => {\r\n                this.remove(loadingMessage);\r\n                this.error(error ?? errorText ?? 'Could not execute action due to an unexpected network issue. Please retry or contact the support team.', options);\r\n            }\r\n        });\r\n        return action;\r\n    }\r\n\r\n    public error(message: { timeout: 0 } | Partial<Notification>): NotificationRef\r\n    public error(text: string, options?: { timeout: 0 } | Partial<Notification>): NotificationRef\r\n    public error(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationRef {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 0, ...options, type: 'error', text };\r\n        const ref = this.add(notification);\r\n        this.erroredSubject.next(notification);\r\n        return ref;\r\n    }\r\n\r\n    public warning(message: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public warning(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public warning(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationRef {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'warning', text };\r\n        const ref = this.add(notification);\r\n        this.warnedSubject.next(notification);\r\n        return ref;\r\n    }\r\n\r\n    public success(message: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public success(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public success(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationRef {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'success', text };\r\n        const ref = this.add(notification);\r\n        this.succeededSubject.next(notification);\r\n        return ref;\r\n    }\r\n\r\n    public positive(message: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public positive(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public positive(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationRef {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'positive', text };\r\n        const ref = this.add(notification);\r\n        this.positivedSubject.next(notification);\r\n        return ref;\r\n    }\r\n\r\n    public info(message: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public info(text: string, options?: { timeout: 2000 } | Partial<Notification>): NotificationRef\r\n    public info(textOrOptions: string | Partial<Notification>, optionsFallback?: Partial<Notification>): NotificationRef {\r\n        const options: Partial<Notification> = typeof textOrOptions === 'object' ? textOrOptions : optionsFallback ?? {};\r\n        const text = typeof textOrOptions === 'string' ? textOrOptions : options.text;\r\n        const notification: Notification = { timeout: 2000, ...options, type: 'info', text };\r\n        const ref = this.add(notification);\r\n        this.positivedSubject.next(notification);\r\n        return ref;\r\n    }\r\n}\r\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { NotificationService } from './notification.service';\r\n\r\n@Component({\r\n    selector: 'm-notification-defaults',\r\n    template: '',\r\n    })\r\nexport class NotificationDefaultsComponent implements OnDestroy {\r\n    private readonly previousSuccessIcon = NotificationService.defaults.successIcon;\r\n    private currentSuccessIcon?: IconType;\r\n\r\n    @Input()\r\n    public set successIcon(value: IconType) {\r\n        this.currentSuccessIcon = value;\r\n        NotificationService.defaults.successIcon = value;\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.currentSuccessIcon === NotificationService.defaults.successIcon) {\r\n            NotificationService.defaults.successIcon = this.previousSuccessIcon;\r\n        }\r\n    }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Notification } from './notification';\r\n\r\nexport const notificationToken = new InjectionToken<Notification>('Notification');\r\n","import { inject, Injector, Pipe, PipeTransform } from '@angular/core';\r\nimport { Notification } from './notification';\r\nimport { notificationToken } from './notification-token';\r\n\r\n@Pipe({\r\n    name: 'notificationInjector'\r\n})\r\nexport class NotificationInjectorPipe implements PipeTransform {\r\n    private readonly injector = inject(Injector);\r\n\r\n    public transform(message: Notification): Injector {\r\n        return Injector.create({\r\n            parent: this.injector,\r\n            providers: [\r\n                { provide: notificationToken, useValue: message }\r\n            ]\r\n        });\r\n    }\r\n\r\n}\r\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { MessageAttached, MessageComponent } from '../message/message.component';\r\nimport { Notification } from './notification';\r\nimport { NotificationInjectorPipe } from './notification-injector.pipe';\r\nimport { NotificationService } from './notification.service';\r\n\r\n@Component({\r\n    selector: 'm-notification',\r\n    templateUrl: './notification.component.html',\r\n    styleUrls: ['./notification.component.scss'],\r\n    imports: [MessageComponent, NotificationInjectorPipe, NgTemplateOutlet, NgComponentOutlet],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class NotificationComponent extends BaseComponent {\r\n    @Input()\r\n    public set fromService(value: string) {\r\n        this.messages = this.notificationService.get(value);\r\n    }\r\n\r\n    @Input()\r\n    public messages: Notification[] = [];\r\n\r\n    @Input()\r\n    public mode: 'overlap' | 'stack' = 'stack';\r\n\r\n    @Input()\r\n    public attached: MessageAttached;\r\n\r\n    public constructor(\r\n        private readonly notificationService: NotificationService\r\n    ) {\r\n        super();\r\n        this.classes.register('fromService', 'mode');\r\n    }\r\n\r\n    public close(message: Notification, event: MouseEvent): void {\r\n        if (event.defaultPrevented) {\r\n            return;\r\n        }\r\n        this.notificationService.remove(message);\r\n    }\r\n\r\n    protected $message(message: unknown): Notification {\r\n        return message as Notification;\r\n    }\r\n}\r\n","@if (messages.length && mode === 'overlap') {\n    <ng-container [ngTemplateOutlet]=\"messageTemplate\" [ngTemplateOutletContext]=\"{ $implicit: messages[0] }\" />\n}\n@if (mode === 'stack') {\n    @for (message of messages; track message) {\n        <ng-container [ngTemplateOutlet]=\"messageTemplate\" [ngTemplateOutletContext]=\"{ $implicit: message }\" />\n    }\n}\n\n<ng-template let-message #messageTemplate>\n    @if ($message(message); as message) {\n        <m-message\n            [error]=\"message.type === 'error'\" [warning]=\"message.type === 'warning'\" [success]=\"message.type === 'success'\" [positive]=\"message.type === 'positive'\" [info]=\"message.type === 'info'\"\n            [header]=\"message.title\" [icon]=\"message.icon\" closable [showClose]=\"message.type === 'error'\" [attached]=\"attached\" [loading]=\"message.loading\" (close)=\"close(message, $event)\">\n            @if (message.component) {\n                <ng-container *ngComponentOutlet=\"message.component; injector: message | notificationInjector\" />\n            } @else {\n                {{ message.text }}\n            }\n        </m-message>\n    }\n</ng-template>\n\n\n","import { Component, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'm-or',\r\n    templateUrl: './or.component.html',\r\n    })\r\nexport class OrComponent {\r\n    @HostBinding('class.or')\r\n    public readonly ui = true;\r\n}\r\n","","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { FieldSize, ParsableFieldSize, parseFieldSize } from '../../models/field-size';\r\n\r\n@Component({\r\n    selector: 'm-row',\r\n    templateUrl: './row.component.html',\r\n    styleUrls: ['./row.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class RowComponent extends BaseComponent {\r\n    private columnsValue: FieldSize | undefined;\r\n    private isStretched = false;\r\n\r\n    @Input()\r\n    public get columns(): FieldSize | undefined {\r\n        return this.columnsValue;\r\n    }\r\n\r\n    public set columns(value: ParsableFieldSize) {\r\n        this.columnsValue = parseFieldSize(value);\r\n        this.classes.set('columns', this.columnsValue);\r\n        this.classes.set('column', !!this.columnsValue);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.stretched')\r\n    public get stretched(): boolean {\r\n        return this.isStretched;\r\n    }\r\n\r\n    public set stretched(value: BooleanLike) {\r\n        this.isStretched = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('columns', 'column', 'stretched')\r\n            .registerFixed('row');\r\n    }\r\n\r\n}\r\n","<ng-content></ng-content>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { BasicDirective } from '../../directives/basic.directive';\r\nimport { ColorDirective } from '../../directives/color.directive';\r\nimport { LoadingDirective } from '../../directives/loading.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\nexport declare type SegmentAttached =\r\n    'top'\r\n    | 'bottom';\r\n\r\n@Component({\r\n    selector: 'm-segment',\r\n    templateUrl: './segment.component.html',\r\n    styleUrls: ['./segment.component.scss'],\r\n    hostDirectives: [BasicDirective.default, ColorDirective.default, LoadingDirective.default],\r\n    providers: SegmentComponent.providers\r\n})\r\nexport class SegmentComponent extends InvertibleComponent implements OnInit {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1),\r\n        raised: false,\r\n        raisedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n    protected static override readonly providers = [...InvertibleComponent.providers];\r\n\r\n    private isVertical = false;\r\n    private isRaised = false;\r\n    private isRaisedChanged = false;\r\n    private isPlaceholder = false;\r\n    private isSecondary = false;\r\n    private isTertiary = false;\r\n    private attachedValue: SegmentAttached | undefined;\r\n    private isNoPadding = false;\r\n    private isNoMargin = false;\r\n\r\n    @Input()\r\n    public get raised(): boolean {\r\n        return this.isRaised;\r\n    }\r\n\r\n    public set raised(value: BooleanLike) {\r\n        this.isRaisedChanged = true;\r\n        this.isRaised = this.toBoolean(value);\r\n        this.classes.set('raised', this.isRaised);\r\n    }\r\n\r\n    @Input()\r\n    public get vertical(): boolean {\r\n        return this.isVertical;\r\n    }\r\n\r\n    public set vertical(value: BooleanLike) {\r\n        this.isVertical = this.toBoolean(value);\r\n        this.classes.set('vertical', this.isVertical);\r\n    }\r\n\r\n    @Input()\r\n    public get placeholder(): boolean {\r\n        return this.isPlaceholder;\r\n    }\r\n\r\n    public set placeholder(value: BooleanLike) {\r\n        this.isPlaceholder = this.toBoolean(value);\r\n        this.classes.set('placeholder', this.isPlaceholder);\r\n    }\r\n\r\n    @Input()\r\n    public get secondary(): boolean {\r\n        return this.isSecondary;\r\n    }\r\n\r\n    public set secondary(value: BooleanLike) {\r\n        this.isSecondary = this.toBoolean(value);\r\n        this.classes.set('secondary', this.isSecondary);\r\n    }\r\n\r\n    @Input()\r\n    public get tertiary(): boolean {\r\n        return this.isTertiary;\r\n    }\r\n\r\n    public set tertiary(value: BooleanLike) {\r\n        this.isTertiary = this.toBoolean(value);\r\n        this.classes.set('tertiary', this.isTertiary);\r\n    }\r\n\r\n    public get attached(): SegmentAttached | undefined {\r\n        return this.attachedValue;\r\n    }\r\n\r\n    @Input()\r\n    public set attached(value: SegmentAttached | undefined) {\r\n        this.attachedValue = value;\r\n        this.classes.set('attachedValue', value);\r\n        this.classes.set('attached', !!value);\r\n    }\r\n\r\n    @Input()\r\n    public get noPadding(): boolean {\r\n        return this.isNoPadding;\r\n    }\r\n\r\n    public set noPadding(value: BooleanLike) {\r\n        this.isNoPadding = this.toBoolean(value);\r\n        this.classes.set('noPadding', this.isNoPadding ? 'no-padding' : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public get noMargin(): boolean {\r\n        return this.isNoMargin;\r\n    }\r\n\r\n    public set noMargin(value: BooleanLike) {\r\n        this.isNoMargin = this.toBoolean(value);\r\n        this.classes.set('noMargin', this.isNoMargin ? 'no-margin' : undefined);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('raised', 'vertical', 'placeholder', 'secondary', 'tertiary', 'attached', 'attachedValue', 'noPadding', 'noMargin')\r\n            .registerFixed('segment');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        SegmentComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n        SegmentComponent.defaults.raisedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshRaised(value));\r\n    }\r\n\r\n    private refreshRaised(value: boolean): void {\r\n        if (this.isRaisedChanged) {\r\n            return;\r\n        }\r\n        this.raised = value;\r\n        this.isRaisedChanged = false;\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component, Input } from '@angular/core';\r\nimport { SegmentComponent } from './segment.component';\r\n\r\n@Component({\r\n    selector: 'm-segment-defaults',\r\n    template: '',\r\n    })\r\nexport class SegmentDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        SegmentComponent.defaults.inverted = value;\r\n        SegmentComponent.defaults.invertedChange.next(value);\r\n    }\r\n\r\n    @Input()\r\n    public set raised(value: boolean) {\r\n        SegmentComponent.defaults.raised = value;\r\n        SegmentComponent.defaults.raisedChange.next(value);\r\n    }\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\n@Component({\r\n    selector: 'm-segment-group',\r\n    templateUrl: './segment-group.component.html',\r\n    styleUrls: ['./segment-group.component.scss'],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class SegmentGroupComponent extends BaseComponent {\r\n    private isHorizontal = false;\r\n\r\n    @Input()\r\n    @HostBinding('class.horizontal')\r\n    public get horizontal(): boolean {\r\n        return this.isHorizontal;\r\n    }\r\n\r\n    public set horizontal(value: BooleanLike) {\r\n        this.isHorizontal = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('horizontal')\r\n            .registerFixed('segments');\r\n    }\r\n\r\n}\r\n","<ng-content></ng-content>","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { FluidDirective } from '../../directives/fluid.directive';\r\nimport { InvertedDirective } from '../../directives/inverted.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\nexport declare type SidebarWidth =\r\n    'thin'\r\n    | 'very thin'\r\n    | 'wide'\r\n    | 'very wide'\r\n    | undefined;\r\n\r\nexport declare type SidebarPosition =\r\n    'left'\r\n    | 'right'\r\n    | 'top'\r\n    | 'bottom';\r\n\r\n@Component({\r\n    selector: 'm-sidebar',\r\n    templateUrl: './sidebar.component.html',\r\n    styleUrls: ['./sidebar.component.scss'],\r\n    hostDirectives: [InvertedDirective.default, FluidDirective.default],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class SidebarComponent extends BaseComponent {\r\n    private widthValue: SidebarWidth;\r\n    private isVisible = false;\r\n    private positionValue: SidebarPosition | undefined;\r\n    private noScrollingValue = false;\r\n\r\n    @Input()\r\n    public get visible(): boolean {\r\n        return this.isVisible;\r\n    }\r\n\r\n    public set visible(value: BooleanLike) {\r\n        this.isVisible = this.toBoolean(value);\r\n        this.classes.set('visible', this.isVisible);\r\n    }\r\n\r\n    @Input()\r\n    public get width(): SidebarWidth {\r\n        return this.widthValue;\r\n    }\r\n\r\n    public set width(value: SidebarWidth) {\r\n        this.widthValue = value;\r\n        this.classes.set('width', value);\r\n    }\r\n\r\n    @Input()\r\n    public get position(): SidebarPosition | undefined {\r\n        return this.positionValue;\r\n    }\r\n\r\n    public set position(value: SidebarPosition | undefined) {\r\n        this.positionValue = value;\r\n        this.classes.set('position', value);\r\n    }\r\n\r\n    @Input()\r\n    @HostBinding('class.no-scrolling')\r\n    public get noScrolling(): boolean {\r\n        return this.noScrollingValue;\r\n    }\r\n\r\n    public set noScrolling(value: BooleanLike) {\r\n        this.noScrollingValue = this.toBoolean(value);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('width', 'position', 'visible', 'noScrolling')\r\n            .registerFixed('sidebar');\r\n        this.position = 'left';\r\n        this.visible = true;\r\n        this.refreshClasses();\r\n    }\r\n\r\n    public show(): void {\r\n        this.visible = true;\r\n    }\r\n\r\n    public hide(): void {\r\n        this.visible = false;\r\n    }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Component, HostListener, Optional } from '@angular/core';\r\nimport { ButtonBaseComponent } from '../../base/button-base.component';\r\nimport { Key } from '../../models/key';\r\nimport { FormComponent } from '../form/form.component';\r\n\r\n@Component({\r\n    selector: 'm-submit',\r\n    templateUrl: './submit.component.html',\r\n    styleUrls: ['./submit.component.scss'],\r\n    imports: [],\r\n    providers: [...ButtonBaseComponent.providers]\r\n})\r\nexport class SubmitComponent extends ButtonBaseComponent {\r\n\r\n    public constructor(\r\n        @Optional() private readonly form: FormComponent\r\n    ) {\r\n        super();\r\n    }\r\n\r\n    @HostListener('click')\r\n    protected onClick(): void {\r\n        this.submit();\r\n    }\r\n\r\n    @HostListener('keydown', ['$event'])\r\n    protected onKeyDown(event: KeyboardEvent): void {\r\n        if (Key.is(event, Key.space, Key.enter)) {\r\n            this.submit();\r\n            event.preventDefault();\r\n        }\r\n    }\r\n\r\n    protected submit(): void {\r\n        if (!this.form) {\r\n            return;\r\n        }\r\n        this.form.validateAndSubmit();\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { BasicDirective } from '../../directives/basic.directive';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\n\r\nexport declare type Align =\r\n    | 'top'\r\n    | 'bottom'\r\n    | 'middle';\r\n\r\n@Component({\r\n    selector: 'm-table',\r\n    templateUrl: './table.component.html',\r\n    styleUrls: ['./table.component.scss'],\r\n    hostDirectives: [BasicDirective.default],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class TableComponent extends InvertibleComponent implements OnInit {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n\r\n    private isCelled = true;\r\n    private isUnstackable = false;\r\n    private isVery = false;\r\n    private alignedValue: Align | undefined;\r\n    private isDefinition = false;\r\n    private isCollapsing = false;\r\n\r\n    @Input()\r\n    public get celled(): boolean {\r\n        return this.isCelled;\r\n    }\r\n\r\n    public set celled(value: BooleanLike) {\r\n        this.isCelled = this.toBoolean(value);\r\n        this.classes.set('celled', this.isCelled);\r\n    }\r\n\r\n    @Input()\r\n    public get notCelled(): boolean {\r\n        return !this.celled;\r\n    }\r\n\r\n    public set notCelled(value: BooleanLike) {\r\n        this.celled = !this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get very(): boolean {\r\n        return this.isVery;\r\n    }\r\n\r\n    public set very(value: BooleanLike) {\r\n        this.isVery = this.toBoolean(value);\r\n        this.classes.set('very', this.isVery);\r\n    }\r\n\r\n    @Input()\r\n    public get unstackable(): boolean {\r\n        return this.isUnstackable;\r\n    }\r\n\r\n    public set unstackable(value: BooleanLike) {\r\n        this.isUnstackable = this.toBoolean(value);\r\n        this.classes.set('unstackable', this.isUnstackable);\r\n    }\r\n\r\n    @Input()\r\n    public get aligned(): Align | undefined {\r\n        return this.alignedValue;\r\n    }\r\n\r\n    public set aligned(value: Align | undefined) {\r\n        this.alignedValue = value;\r\n        this.classes.set('aligned', value ? value + ' aligned' : undefined);\r\n    }\r\n\r\n    @Input()\r\n    public get definition(): boolean {\r\n        return this.isDefinition;\r\n    }\r\n\r\n    public set definition(value: BooleanLike) {\r\n        this.isDefinition = this.toBoolean(value);\r\n        this.classes.set('definition', this.isDefinition);\r\n    }\r\n\r\n    @Input()\r\n    public get collapsing(): boolean {\r\n        return this.isCollapsing;\r\n    }\r\n\r\n    public set collapsing(value: BooleanLike) {\r\n        this.isCollapsing = this.toBoolean(value);\r\n        this.classes.set('collapsing', this.isCollapsing);\r\n    }\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.register('celled', 'notCelled', 'very', BasicDirective.basic, 'unstackable', 'aligned', 'definition', 'collapsing')\r\n            .registerFixed('table');\r\n        this.aligned ??= 'middle';\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        TableComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Component, Input } from '@angular/core';\r\nimport { TableComponent } from './table.component';\r\n\r\n@Component({\r\n    selector: 'm-table-defaults',\r\n    template: '',\r\n    })\r\nexport class TableDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        TableComponent.defaults.inverted = value;\r\n        TableComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","import { NgIfContext, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { SortedClassesService } from '../../services/sorted-classes.service';\r\nimport { IconSize } from '../icon/icon-size';\r\nimport { IconType } from '../icon/icon-type';\r\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\r\n\r\n@Component({\r\n    selector: 'm-tab',\r\n    templateUrl: './tab.component.html',\r\n    styleUrls: ['./tab.component.scss'],\r\n    imports: [\r\n        NgTemplateOutlet\r\n    ],\r\n    providers: [SortedClassesService]\r\n})\r\nexport class TabComponent extends MenuItemComponent {\r\n\r\n    @Input()\r\n    public name: string | undefined;\r\n\r\n    @Input()\r\n    public label: string | undefined;\r\n\r\n    @Input()\r\n    public icon: IconType | undefined;\r\n\r\n    @Input()\r\n    public iconSize: IconSize;\r\n\r\n    @Input()\r\n    // eslint-disable-next-line no-null/no-null\r\n    public template: TemplateRef<NgIfContext<boolean>> | null = null;\r\n\r\n    @Output()\r\n    public readonly activate = new EventEmitter<void>();\r\n\r\n    @Output()\r\n    public readonly deactivate = new EventEmitter<void>();\r\n\r\n    public constructor() {\r\n        super(false);\r\n        this.classes.register('name', 'label', 'icon');\r\n    }\r\n\r\n    public changeState(value: boolean | undefined): void {\r\n        if (value === undefined || value === this.active) {\r\n            return;\r\n        }\r\n        this.active = value;\r\n        this.activeChange.emit(value);\r\n        if (value) {\r\n            this.activate.emit();\r\n        }\r\n        else {\r\n            this.deactivate.emit();\r\n        }\r\n    }\r\n}\r\n","@if (activate) {\r\n    @if (template) {\r\n        <ng-container [ngTemplateOutlet]=\"template\" />\r\n    } @else {\r\n        <ng-content />\r\n    }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { AfterViewInit, Component, ContentChildren, EventEmitter, HostBinding, Input, OnInit, Output, QueryList } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Route, Router, Routes, UrlSegment } from '@angular/router';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { InvertibleComponent } from '../../base/invertible.component';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { MenuComponent, MenuPosition } from '../menu/menu.component';\r\nimport { SegmentComponent } from '../segment/segment.component';\r\nimport { TabComponent } from '../tab/tab.component';\r\n\r\n@Component({\r\n    selector: 'm-tab-group',\r\n    templateUrl: './tab-group.component.html',\r\n    styleUrls: ['./tab-group.component.scss'],\r\n    imports: [SegmentComponent, MenuComponent, IconComponent, NgTemplateOutlet],\r\n    providers: [...InvertibleComponent.providers]\r\n})\r\nexport class TabGroupComponent extends InvertibleComponent implements OnInit, AfterViewInit {\r\n    public static readonly defaults = {\r\n        inverted: false,\r\n        invertedChange: new ReplaySubject<boolean>(1)\r\n    };\r\n\r\n    private selectedIndexField: number | undefined;\r\n    private isSelectByRoute = false;\r\n    private routeParameterName = '';\r\n    private isNoPadding = false;\r\n    private tabsValue: QueryList<TabComponent> | undefined;\r\n    private isScrollable = false;\r\n    private isPointing = false;\r\n    private isSecondary = false;\r\n    private isLoading = false;\r\n    private routes: NamedRoute[] = [];\r\n\r\n    @Input()\r\n    public menu: MenuPosition = 'top';\r\n\r\n    @Output()\r\n    public readonly selectedIndexChange = new EventEmitter<number>();\r\n\r\n    @Input()\r\n    public get pointing(): boolean {\r\n        return this.isPointing;\r\n    }\r\n\r\n    public set pointing(value: BooleanLike) {\r\n        this.isPointing = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get secondary(): boolean {\r\n        return this.isSecondary;\r\n    }\r\n\r\n    public set secondary(value: BooleanLike) {\r\n        this.isSecondary = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get loading(): boolean {\r\n        return this.isLoading;\r\n    }\r\n\r\n    public set loading(value: BooleanLike) {\r\n        this.isLoading = this.toBoolean(value);\r\n    }\r\n\r\n    @HostBinding('class')\r\n    protected get menuPosition(): string {\r\n        return 'menu-' + this.menu;\r\n    }\r\n\r\n    @HostBinding('class.horizontal')\r\n    protected get horizontal(): boolean {\r\n        return this.menu === 'left' || this.menu === 'right';\r\n    }\r\n\r\n    @Input()\r\n    public get selectByRoute(): string {\r\n        return this.routeParameterName;\r\n    }\r\n\r\n    public set selectByRoute(value: string) {\r\n        this.isSelectByRoute = value === '' || !!value;\r\n        this.routeParameterName = value || 'tab';\r\n    }\r\n\r\n    public get selectedIndex(): number | undefined {\r\n        return this.selectedIndexField;\r\n    }\r\n\r\n    @Input()\r\n    public set selectedIndex(value: number | undefined) {\r\n        this.selectedIndexField = value;\r\n        if (this.tabs) {\r\n            this.tabs.forEach((tab, index) => tab.changeState(index === value));\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    public get noPadding(): boolean {\r\n        return this.isNoPadding;\r\n    }\r\n\r\n    public set noPadding(value: BooleanLike) {\r\n        this.isNoPadding = this.toBoolean(value);\r\n    }\r\n\r\n    @Input()\r\n    public get scrollable(): boolean {\r\n        return this.isScrollable;\r\n    }\r\n\r\n    public set scrollable(value: BooleanLike) {\r\n        this.isScrollable = this.toBoolean(value);\r\n    }\r\n\r\n    @ContentChildren(TabComponent)\r\n    protected get tabs(): QueryList<TabComponent> | undefined {\r\n        return this.tabsValue;\r\n    }\r\n\r\n    protected set tabs(value: QueryList<TabComponent> | undefined) {\r\n        this.tabsValue = value;\r\n        value?.changes.pipe(takeUntil(this.destroy)).subscribe(() => this.refreshTab());\r\n    }\r\n\r\n    public constructor(\r\n        private readonly route: ActivatedRoute,\r\n        private readonly router: Router\r\n    ) {\r\n        super(false);\r\n        this.noClasses = true;\r\n        this.classes.register('pointing', 'secondary', 'position', 'selectByRoute', 'routeParameterName', 'noPadding', 'menu', 'loading', 'scrollable');\r\n    }\r\n\r\n    public override ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.routes = this.parseRoutes(this.router.config, []);\r\n        this.router.events.pipe(takeUntil(this.destroy)).subscribe(event => {\r\n            if (event instanceof NavigationEnd) {\r\n                this.refreshTab();\r\n            }\r\n        });\r\n        TabGroupComponent.defaults.invertedChange.pipe(takeUntil(this.destroy)).subscribe(value => this.refreshInverted(value));\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        if (this.tabs && this.tabs.length > 0 && this.tabs.toArray().every(tab => !tab.active)) {\r\n            setTimeout(() => this.tabs?.forEach((tab, index) => tab.changeState(index === (this.selectedIndex || 0))));\r\n        }\r\n        this.refreshTab();\r\n    }\r\n\r\n    private refreshTab(): void {\r\n        if (!this.isSelectByRoute) {\r\n            return;\r\n        }\r\n        let selectedTabName = this.route.snapshot.params[this.routeParameterName];\r\n        const selectedTabIndex = parseInt(selectedTabName, 10);\r\n        let found: TabComponent | undefined;\r\n        if (selectedTabName) {\r\n            selectedTabName = selectedTabName.toLowerCase();\r\n            found = this.tabs?.find((tab, index) => tab.name && tab.name.toLocaleLowerCase() === selectedTabName || !tab.name && this.toName(tab.label) === selectedTabName || selectedTabIndex === index);\r\n\r\n        }\r\n        else {\r\n            found = this.tabs?.find((_, index) => index === selectedTabIndex) || this.tabs?.find((_, index) => index === 0);\r\n        }\r\n        if (found) {\r\n            const found2 = found;\r\n            setTimeout(() => this.activate(found2));\r\n        }\r\n    }\r\n\r\n    protected activate(tab: TabComponent): void {\r\n        for (const activeTab of this.tabs?.filter(t => t.active) ?? []) {\r\n            activeTab.changeState(false);\r\n        }\r\n        tab.changeState(true);\r\n        this.selectedIndex = this.tabs?.toArray().indexOf(tab);\r\n        this.selectedIndexChange.emit(this.selectedIndex);\r\n        if (this.isSelectByRoute) {\r\n            const name = tab.name || this.toName(tab.label);\r\n            const urlSegments = this.getActiveRouteSegments();\r\n            const segment = urlSegments.find(s => s.name === ':' + this.routeParameterName);\r\n            if (segment?.path === name) {\r\n                return;\r\n            }\r\n            if (segment) {\r\n                const replaceUrl = !segment.path;\r\n                segment.path = name;\r\n                void this.router.navigate(urlSegments.map(s => s.path), { replaceUrl });\r\n                return;\r\n            }\r\n            const activePath = urlSegments.map(segment => segment.name).join('/');\r\n            const parameters = [\r\n                ...urlSegments.filter(segment => segment.name.startsWith(':')).map(segment => segment.name.slice(1)),\r\n                this.routeParameterName\r\n            ];\r\n            const possibleRoutes = this.routes.filter(route => route.fullPath.startsWith(activePath) && parameters.every(parameter => route.parameters.includes(parameter)))\r\n                .sort((leftRoute, rightRoute) => leftRoute.parameters < rightRoute.parameters ? -1 : leftRoute.parameters > rightRoute.parameters ? 1 : 0);\r\n\r\n            if (possibleRoutes.length === 0) {\r\n                console.warn(`tab-group selectByRoute is set, but the route does not have a :${this.routeParameterName} parameter like { path: '/${urlSegments.map(s => s.path).join('/')}/:${this.routeParameterName}', component: ... }`);\r\n                return;\r\n            }\r\n            const route = possibleRoutes[0];\r\n            let fullPath = route.fullPath.replace(':' + this.routeParameterName, name);\r\n            for (const parameterName of route.parameters) {\r\n                const segmentValue = urlSegments.find(segment => segment.name === ':' + parameterName)?.path;\r\n                fullPath = fullPath.replace(':' + parameterName, segmentValue ?? '');\r\n            }\r\n            void this.router.navigate(['/' + fullPath], { replaceUrl: true });\r\n        }\r\n    }\r\n\r\n    private toName(value: string | undefined): string {\r\n        return value ? value.toLocaleLowerCase().replace(/[^a-zA-Z0-9]/g, '-').replace(/-+/g, '-') : '';\r\n    }\r\n\r\n    private getActiveRouteSegments(): NamedUrlSegment[] {\r\n        const segments: NamedUrlSegment[] = [];\r\n        let current: ActivatedRoute | null = this.route;\r\n        do {\r\n            if (current?.snapshot?.routeConfig) {\r\n                const names = current.routeConfig?.path?.split('/').reverse();\r\n                for (const segment of current.snapshot.url.slice().reverse()) {\r\n                    segments.unshift(new NamedUrlSegment(names?.shift() ?? '', segment));\r\n                }\r\n            }\r\n            current = current?.parent;\r\n        }\r\n        while (current);\r\n        return segments;\r\n    }\r\n\r\n    private parseRoutes(routes: Routes, path: string[]): NamedRoute[] {\r\n        const namedRoutes: NamedRoute[] = [];\r\n        for (const route of routes) {\r\n            const fullPath = [...path, route.path ?? ''].filter(path => !!path);\r\n            namedRoutes.push({\r\n                fullPath: fullPath.join('/'),\r\n                parameters: fullPath.join('/').split('/').filter(parameter => parameter.startsWith(':')).map(parameter => parameter.slice(1)),\r\n                ...route\r\n            });\r\n            if (route.children) {\r\n                namedRoutes.push(...this.parseRoutes(route.children, fullPath));\r\n            }\r\n        }\r\n        return namedRoutes;\r\n    }\r\n}\r\n\r\nclass NamedUrlSegment extends UrlSegment {\r\n    public constructor(\r\n        public readonly name: string,\r\n        segment: UrlSegment\r\n    ) {\r\n        super(segment.path, segment.parameters);\r\n        Object.assign(this, segment);\r\n    }\r\n}\r\n\r\ninterface NamedRoute extends Route {\r\n    fullPath: string;\r\n    parameters: string[];\r\n}\r\n","@if (menu === 'top' || menu === 'left') {\n  <ng-container [ngTemplateOutlet]=\"menuTemplate\"></ng-container>\n}\n\n<m-segment class=\"active tab\" [basic]=\"secondary\" [noPadding]=\"noPadding\" [loading]=\"loading\" [class.scrollable]=\"scrollable\">\n  <ng-content></ng-content>\n</m-segment>\n\n@if (menu === 'bottom' || menu === 'right') {\n  <ng-container [ngTemplateOutlet]=\"menuTemplate\"></ng-container>\n}\n\n<ng-template #menuTemplate>\n  <m-menu [pointing]=\"pointing\" [secondary]=\"secondary\" [attached]=\"menu\" tabular [vertical]=\"horizontal\" [inverted]=\"inverted\">\n    @for (tab of tabs; track tab) {\n      <a class=\"item\" [class.active]=\"tab.active\" (click)=\"activate(tab)\">\n        @if (tab.icon) {\n          <m-icon [icon]=\"tab.icon\" [size]=\"tab.iconSize\"></m-icon>\n        }\n        {{tab.label}}\n      </a>\n    }\n  </m-menu>\n</ng-template>\n","import { Component, Input } from '@angular/core';\r\nimport { TabGroupComponent } from './tab-group.component';\r\n\r\n@Component({\r\n    selector: 'm-tab-group-defaults',\r\n    template: '',\r\n    })\r\nexport class TabGroupDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        TabGroupComponent.defaults.inverted = value;\r\n        TabGroupComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, distinctUntilChanged, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { Template } from '../models/template';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class TemplateService {\r\n    private readonly subscriptions = new Map<string, Subject<Template | undefined>>();\r\n    private readonly templates = new Map<string, Template[]>();\r\n\r\n    public show(names: string | string[], template: Template): void {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        const subscriptionSubject = new BehaviorSubject<Template | undefined>(template);\r\n        for (const name of names) {\r\n            let list = this.templates.get(name);\r\n            if (!list) {\r\n                list = [];\r\n                this.templates.set(name, list);\r\n            }\r\n            let index = list.indexOf(template);\r\n            if (index >= 0) {\r\n                list.splice(index, 1);\r\n            }\r\n            for (const entry of list.slice()) {\r\n                if (!entry.autoHide) {\r\n                    continue;\r\n                }\r\n                entry.visible.set(false);\r\n                index = list.indexOf(entry);\r\n                if (index >= 0) {\r\n                    list.splice(index, 1);\r\n                }\r\n            }\r\n            list.push(template);\r\n            template.visible.set(true);\r\n            this.notify(name, template, subscriptionSubject);\r\n        }\r\n    }\r\n\r\n    public hide(names: string | string[], template: Template): void {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        for (const name of names) {\r\n            const list = this.templates.get(name);\r\n            if (!list) {\r\n                continue;\r\n            }\r\n            const index = list.indexOf(template);\r\n            if (index >= 0) {\r\n                const template = list.splice(index, 1)[0];\r\n                template.visible.set(false);\r\n            }\r\n            const lastTemplate = list[list.length - 1];\r\n            lastTemplate?.visible.set(true);\r\n            this.notify(name, lastTemplate);\r\n        }\r\n    }\r\n\r\n    public toggle(names: string | string[], template: Template): void {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        for (const name of names) {\r\n            const list = this.templates.get(name);\r\n            const index = list?.indexOf(template);\r\n            if (list && index !== undefined && index >= 0) {\r\n                this.hide(name, template);\r\n            }\r\n            else {\r\n                this.show(name, template);\r\n            }\r\n        }\r\n    }\r\n\r\n    public get(names: string | string[]): Observable<Template | undefined> {\r\n        names = typeof names === 'string' ? [names] : names ?? [];\r\n        const existingSubject = names.map(name => this.subscriptions.get(name)).find(subscription => subscription);\r\n        const subject = existingSubject ?? new ReplaySubject<Template | undefined>(1);\r\n        for (const name of names) {\r\n            this.subscriptions.set(name, subject);\r\n        }\r\n        return subject.pipe(distinctUntilChanged());\r\n    }\r\n\r\n    private notify(name: string, template: Template | undefined, fallbackSubscriptionSubject?: BehaviorSubject<Template | undefined>): void {\r\n        if (this.subscriptions.has(name)) {\r\n            this.subscriptions.get(name)?.next(template);\r\n        }\r\n        else if (fallbackSubscriptionSubject) {\r\n            this.subscriptions.set(name, fallbackSubscriptionSubject);\r\n        }\r\n    }\r\n}\r\n","import { Component, effect, inject, input, model, OnDestroy, TemplateRef, untracked, viewChild } from '@angular/core';\r\nimport { toBoolean } from '../../helpers/to-boolean';\r\nimport { BooleanLike } from '../../models/boolean-like';\r\nimport { Template } from '../../models/template';\r\nimport { TemplateService } from '../../services/template.service';\r\n\r\n@Component({\r\n    selector: 'm-template',\r\n    imports: [],\r\n    templateUrl: './template.component.html',\r\n    styleUrl: './template.component.scss'\r\n})\r\nexport class TemplateComponent implements OnDestroy {\r\n    private readonly templateService = inject(TemplateService);\r\n    private template: Template | undefined;\r\n    protected readonly contentTemplate = viewChild<TemplateRef<unknown>>('contentTemplate');\r\n    public readonly name = input.required<string | string[]>();\r\n    public readonly class = input<string>();\r\n    public readonly visible = model(true);\r\n\r\n    /**\r\n     * When used, it sets the default visibility of the template to false.\r\n     * @example\r\n     * ```html\r\n     * <m-template hidden />\r\n     * ```\r\n     */\r\n    public readonly hidden = input<boolean, '' | undefined>(false, { transform: toBoolean });\r\n\r\n    /* When set to true, it set its visible state to false when another template is shown in the same outlet */\r\n    public readonly autoHide = input<boolean, BooleanLike>(false, { transform: toBoolean });\r\n\r\n    public constructor() {\r\n        effect(() => {\r\n            const ref = this.contentTemplate();\r\n            untracked(() => {\r\n                if (this.template) {\r\n                    this.templateService.hide(this.name(), this.template);\r\n                }\r\n                this.template = ref ? { ref, class: this.class(), visible: this.visible, autoHide: this.autoHide() } : undefined;\r\n                if (this.template && this.visible()) {\r\n                    this.templateService.show(this.name(), this.template);\r\n                }\r\n            });\r\n        });\r\n        effect(() => this.visible.update(value => this.hidden() ? false : value));\r\n        effect(() => {\r\n            const isVisible = this.visible();\r\n            if (!this.template) {\r\n                return;\r\n            }\r\n            if (isVisible) {\r\n                this.templateService.show(this.name(), this.template);\r\n            }\r\n            else {\r\n                this.templateService.hide(this.name(), this.template);\r\n            }\r\n        });\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.template) {\r\n            this.templateService.hide(this.name(), this.template);\r\n        }\r\n    }\r\n\r\n    public show(): void {\r\n        if (this.template) {\r\n            this.templateService.show(this.name(), this.template);\r\n        }\r\n    }\r\n\r\n    public hide(): void {\r\n        if (this.template) {\r\n            this.templateService.hide(this.name(), this.template);\r\n        }\r\n    }\r\n\r\n    public toggle(): void {\r\n        if (this.template) {\r\n            this.templateService.toggle(this.name(), this.template);\r\n        }\r\n    }\r\n}\r\n","<ng-template #contentTemplate>\r\n    <ng-content/>\r\n</ng-template>\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, effect, inject, input, signal } from '@angular/core';\r\nimport { race, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Destroyable } from '../../base/destroyable';\r\nimport { Template } from '../../models/template';\r\nimport { TemplateService } from '../../services/template.service';\r\n\r\n@Component({\r\n    selector: 'm-template-outlet',\r\n    imports: [\r\n        NgTemplateOutlet\r\n    ],\r\n    templateUrl: './template-outlet.component.html',\r\n    styleUrl: './template-outlet.component.scss',\r\n    host: {\r\n        '[class]': 'template()?.class'\r\n    }\r\n})\r\nexport class TemplateOutletComponent extends Destroyable {\r\n    private readonly templateService = inject(TemplateService);\r\n    private readonly nextNameSubject = new Subject<void>();\r\n    protected readonly template = signal<Template | undefined>(undefined);\r\n    public readonly name = input.required<string | string[]>();\r\n\r\n    public constructor() {\r\n        super();\r\n        effect(() => {\r\n            this.nextNameSubject.next();\r\n            this.templateService.get(this.name()).pipe(takeUntil(race(this.destroy, this.nextNameSubject))).subscribe(template => this.template.set(template));\r\n        });\r\n    }\r\n}\r\n","<ng-content />\n@if (template(); as template) {\n    <ng-container [ngTemplateOutlet]=\"template.ref\" />\n}\n","import { Component } from '@angular/core';\r\nimport { BaseComponent } from '../../base/base.component';\r\nimport { FluidDirective } from '../../directives/fluid.directive';\r\n\r\n@Component({\r\n    selector: 'm-text-container',\r\n    templateUrl: './text-container.component.html',\r\n    styleUrls: ['./text-container.component.scss'],\r\n    hostDirectives: [FluidDirective.default],\r\n    providers: [...BaseComponent.providers]\r\n})\r\nexport class TextContainerComponent extends BaseComponent {\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('text', 'container');\r\n    }\r\n}\r\n","<ng-content></ng-content>","import { Component, Input } from '@angular/core';\r\nimport { TextareaComponent } from './textarea.component';\r\n\r\n@Component({\r\n    selector: 'm-textarea-defaults',\r\n    template: '',\r\n    })\r\nexport class TextareaDefaultsComponent {\r\n    @Input()\r\n    public set inverted(value: boolean) {\r\n        TextareaComponent.defaults.inverted = value;\r\n        TextareaComponent.defaults.invertedChange.next(value);\r\n    }\r\n}\r\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { RouterStateSnapshot, TitleStrategy } from '@angular/router';\r\nimport { ManticTitleStrategyCondition } from './mantic-title-strategy-condition';\r\nimport { ManticTitleStrategyConfiguration } from './mantic-title-strategy-configuration';\r\n\r\nexport const manticTitleStrategyConfigurationToken = new InjectionToken<string>('manticTitleStrategyConfiguration');\r\n\r\n@Injectable()\r\nexport class ManticTitleStrategy extends TitleStrategy {\r\n    public constructor(\r\n        @Inject(manticTitleStrategyConfigurationToken) public readonly configuration: ManticTitleStrategyConfiguration = {}\r\n    ) {\r\n        super();\r\n        this.configuration ??= {};\r\n    }\r\n\r\n    public override updateTitle(snapshot: RouterStateSnapshot): void {\r\n        const condition = this.configuration.conditions?.find(condition => this.matches(condition, snapshot.url));\r\n        const title = this.buildTitle(snapshot);\r\n        const prefix = condition?.showPrefixOnFallback || this.configuration.showPrefixOnFallback || title ? condition?.prefix ?? this.configuration.prefix ?? '' : '';\r\n        const postfix = condition?.showPostfixOnFallback || this.configuration.showPostfixOnFallback || title ? condition?.postfix ?? this.configuration.postfix ?? '' : '';\r\n        document.title = prefix + (title ?? condition?.fallback ?? this.configuration.fallback ?? '') + postfix;\r\n    }\r\n\r\n    public addCondition(condition: ManticTitleStrategyCondition): void {\r\n        this.configuration.conditions ??= [];\r\n        this.configuration.conditions.push(condition);\r\n    }\r\n\r\n    private matches(condition: ManticTitleStrategyCondition, url: string): boolean {\r\n        if (typeof condition.condition === 'string') {\r\n            return url?.toLowerCase()?.startsWith(condition.condition);\r\n        }\r\n        return !!condition.condition.exec(url);\r\n    }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { TitleStrategy } from '@angular/router';\r\nimport { ManticTitleStrategy } from './mantic-title-strategy';\r\n\r\nconst titleStrategy = new ManticTitleStrategy();\r\n\r\n@NgModule({\r\n    declarations: [],\r\n    imports: [],\r\n    providers: [\r\n        { provide: TitleStrategy, useValue: titleStrategy },\r\n        { provide: ManticTitleStrategy, useValue: titleStrategy }\r\n    ]\r\n})\r\nexport class ManticTitleStrategyModule {}\r\n","import { ManticTitleStrategyConfiguration } from './mantic-title-strategy-configuration';\r\nimport { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\r\nimport { TitleStrategy } from '@angular/router';\r\nimport { ManticTitleStrategy } from './mantic-title-strategy';\r\n\r\nexport function provideManticTitleStrategy(\r\n    configuration: ManticTitleStrategyConfiguration\r\n): EnvironmentProviders {\r\n    const titleStrategy = new ManticTitleStrategy(configuration);\r\n    return makeEnvironmentProviders([\r\n        { provide: TitleStrategy, useValue: titleStrategy },\r\n        { provide: ManticTitleStrategy, useValue: titleStrategy }\r\n    ]);\r\n}\r\n","import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { race, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Destroyable } from '../base/destroyable';\r\nimport { TemplateService } from '../services/template.service';\r\n\r\n@Directive({\r\n    selector: '[mHideOnEmptyTemplate]',\r\n    })\r\nexport class HideOnEmptyTemplateDirective extends Destroyable {\r\n    private readonly templateService = inject(TemplateService);\r\n    private readonly template = inject(TemplateRef<unknown>);\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    private readonly nextNameSubject = new Subject<void>();\r\n    private hasTemplate = false;\r\n\r\n    public readonly name = input.required<string | string[]>({ alias: 'mHideOnEmptyTemplate' });\r\n\r\n    public constructor() {\r\n        super();\r\n        effect(() => {\r\n            this.nextNameSubject.next();\r\n            this.templateService.get(this.name()).pipe(takeUntil(race(this.destroy, this.nextNameSubject))).subscribe(template => {\r\n                this.hasTemplate = !!template;\r\n                this.refreshView();\r\n            });\r\n        });\r\n    }\r\n\r\n    private refreshView(): void {\r\n        this.viewContainerRef.clear();\r\n        if (this.hasTemplate) {\r\n            this.viewContainerRef.createEmbeddedView(this.template);\r\n        }\r\n    }\r\n}\r\n","import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { race, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Destroyable } from '../base/destroyable';\r\nimport { TemplateService } from '../services/template.service';\r\n\r\n@Directive({\r\n    selector: '[mHideOnExistingTemplate]',\r\n    })\r\nexport class HideOnExistingTemplateDirective extends Destroyable {\r\n    private readonly templateService = inject(TemplateService);\r\n    private readonly template = inject(TemplateRef<unknown>);\r\n    private readonly viewContainerRef = inject(ViewContainerRef);\r\n    private readonly nextNameSubject = new Subject<void>();\r\n    private hasTemplate = false;\r\n\r\n    public readonly name = input.required<string | string[]>({ alias: 'mHideOnExistingTemplate' });\r\n\r\n    public constructor() {\r\n        super();\r\n        effect(() => {\r\n            this.nextNameSubject.next();\r\n            this.templateService.get(this.name()).pipe(takeUntil(race(this.destroy, this.nextNameSubject))).subscribe(template => {\r\n                this.hasTemplate = !!template;\r\n                this.refreshView();\r\n            });\r\n        });\r\n    }\r\n\r\n    private refreshView(): void {\r\n        this.viewContainerRef.clear();\r\n        if (!this.hasTemplate) {\r\n            this.viewContainerRef.createEmbeddedView(this.template);\r\n        }\r\n    }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { BaseDirective } from '../base/base.directive';\r\nimport { ActiveDirective } from './active.directive';\r\n\r\n@Directive({\r\n    selector: '[m-menu-item]',\r\n    hostDirectives: [ActiveDirective.default],\r\n    providers: [...BaseDirective.providers]\r\n})\r\n// TODO: Implement\r\nexport class MenuItemDirective /*extends MenuItemComponent*/ extends BaseDirective {\r\n\r\n    public constructor() {\r\n        super();\r\n        this.classes.registerFixed('item');\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\nimport { SortedClassesService } from '../services/sorted-classes.service';\r\n\r\n@Directive({\r\n    selector: '[-m-readonly]',\r\n    })\r\nexport class ReadonlyDirective {\r\n    public static readonly readonly = 'readonly';\r\n    public static readonly default = { directive: ReadonlyDirective, inputs: [ReadonlyDirective.readonly] };\r\n    private readonly classes = inject(SortedClassesService);\r\n    private isReadonly = false;\r\n\r\n    public constructor() {\r\n        this.classes.registerFallback(ReadonlyDirective.readonly);\r\n    }\r\n\r\n    public get readonly(): boolean {\r\n        return this.isReadonly;\r\n    }\r\n\r\n    @Input()\r\n    public set readonly(value: BooleanLike) {\r\n        this.isReadonly = toBoolean(value);\r\n        this.classes.set(ReadonlyDirective.readonly, this.isReadonly);\r\n    }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\nimport { TemplateTarget } from '../models/template-target';\r\n\r\n@Directive({\r\n    selector: '[m-to-template]',\r\n    })\r\nexport class ToTemplateDirective {\r\n    @Input('m-to-template')\r\n    public set toTemplate(target: TemplateTarget) {\r\n        target.template = this.template;\r\n    }\r\n\r\n    public constructor(\r\n        private readonly template: TemplateRef<unknown>\r\n    ) { }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[m-position-absolute]',\r\n    })\r\nexport class PositionAbsoluteDirective implements AfterViewInit, OnDestroy {\r\n    private readonly observer = new MutationObserver(() => this.refresh());\r\n    private parent: HTMLElement | undefined;\r\n\r\n    @Input('m-position-absolute')\r\n    public position: 'top-left' | 'top-center' | 'top-right' | 'middle-left' | 'middle-center' | 'middle-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | undefined;\r\n\r\n    @Input()\r\n    public attach: 'left' | 'middle' | 'right' = 'left';\r\n\r\n    @Input()\r\n    public parentWidth: 'none' | 'exact' | 'min' | 'max' = 'none';\r\n\r\n    @Input()\r\n    public minLeft: number | 'parent-left' | 'parent-center' | 'parent-right' | undefined;\r\n\r\n    public constructor(\r\n        private readonly elementRef: ElementRef<HTMLElement>\r\n    ) {\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        this.parent = this.elementRef.nativeElement.parentElement ?? undefined;\r\n        if (this.parent) {\r\n            this.observer.observe(this.parent, { attributes: true });\r\n        }\r\n        setTimeout(() => this.refresh());\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        this.observer.disconnect();\r\n    }\r\n\r\n    private refresh(): void {\r\n        if (!this.elementRef.nativeElement.style.position) {\r\n            this.elementRef.nativeElement.style.position = 'fixed';//'absolute';\r\n        }\r\n\r\n        const rect = this.parent?.getBoundingClientRect();\r\n        switch (this.parentWidth) {\r\n            case 'min':\r\n                this.setMinWidth(rect?.width ?? 0);\r\n                break;\r\n            case 'max':\r\n                this.setMaxWidth(rect?.width ?? 0);\r\n                break;\r\n            case 'exact':\r\n                this.setWidth(rect?.width ?? 0);\r\n                break;\r\n        }\r\n        switch (this.position) {\r\n            case 'top-left':\r\n            case 'top-center':\r\n            case 'top-right':\r\n                this.setTop(rect?.top ?? 0);\r\n                break;\r\n            case 'middle-left':\r\n            case 'middle-center':\r\n            case 'middle-right':\r\n                this.setTop(rect ? rect.top + rect.height / 2 : undefined);\r\n                break;\r\n            case 'bottom-left':\r\n            case 'bottom-center':\r\n            case 'bottom-right':\r\n                this.setTop(rect?.bottom);\r\n                break;\r\n        }\r\n        switch (this.position) {\r\n            case 'top-left':\r\n            case 'middle-left':\r\n            case 'bottom-left':\r\n                this.setLeft(rect?.left);\r\n                break;\r\n            case 'top-center':\r\n            case 'middle-center':\r\n            case 'bottom-center':\r\n                this.setLeft(rect ? rect.left + rect.width / 2 : undefined);\r\n                break;\r\n            case 'top-right':\r\n            case 'middle-right':\r\n            case 'bottom-right':\r\n                this.setLeft(rect?.right);\r\n                break;\r\n        }\r\n    }\r\n\r\n    private setTop(top: number | undefined): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.top = top === undefined ? '' : top + 'px';\r\n        style.maxHeight = `calc(100vh - ${top}px)`;\r\n    }\r\n\r\n    private setLeft(left: number | undefined): void {\r\n        const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n        const parentRect = this.parent?.getBoundingClientRect();\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.right = '';\r\n        style.right = '';\r\n        if (left !== undefined && parentRect !== undefined) {\r\n            if (this.attach === 'middle') {\r\n                left -= rect.width / 2;\r\n            }\r\n            if (this.attach === 'right') {\r\n                left -= rect.width;\r\n            }\r\n            left = Math.max(0, left);\r\n            if (this.minLeft === 'parent-left') {\r\n                left = Math.max(left, parentRect.left);\r\n            } else if (this.minLeft === 'parent-center') {\r\n                left = Math.max(left, parentRect.left + parentRect.width / 2);\r\n            } else if (this.minLeft === 'parent-right') {\r\n                left = Math.max(left, parentRect.right);\r\n            } else if (typeof this.minLeft === 'number') {\r\n                left = Math.max(left, this.minLeft);\r\n            }\r\n        }\r\n        if (left && rect.width > 0 && left + rect.width > window.innerWidth) {\r\n            style.right = '0px';\r\n            style.left = '';\r\n        } else {\r\n            style.left = left === undefined ? '' : left + 'px';\r\n        }\r\n    }\r\n\r\n    private setWidth(width: number): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.width = width === undefined ? '' : width + 'px';\r\n    }\r\n\r\n    private setMinWidth(width: number): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.minWidth = width === undefined ? '' : width + 'px';\r\n    }\r\n\r\n    private setMaxWidth(width: number): void {\r\n        const style = this.elementRef.nativeElement.style;\r\n        style.maxWidth = width === undefined ? '' : width + 'px';\r\n    }\r\n}\r\n","import { Directive, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ExternalRouteData } from './external-route-data';\r\n\r\n@Directive()\r\nexport abstract class ExternalRouteComponent implements OnInit {\r\n\r\n    protected constructor(\r\n        private readonly route: ActivatedRoute\r\n    ) { }\r\n\r\n    public ngOnInit(): void {\r\n        const data = this.route.snapshot.data as ExternalRouteData;\r\n        if (data && data.redirectTo) {\r\n            window.location.href = data.redirectTo;\r\n        }\r\n    }\r\n\r\n}\r\n","import { DefaultUrlSerializer, UrlTree } from '@angular/router';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class LowerCaseUrlSerializer extends DefaultUrlSerializer {\r\n    public override parse(url: string): UrlTree {\r\n        return super.parse(url ? url.toLowerCase() : url);\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UrlSerializer } from '@angular/router';\r\nimport { LowerCaseUrlSerializer } from './lower-case-url-serializer';\r\n\r\n@NgModule({\r\n    declarations: [],\r\n    providers: [\r\n        {\r\n            provide: UrlSerializer,\r\n            useClass: LowerCaseUrlSerializer\r\n        }\r\n    ],\r\n    imports: []\r\n})\r\nexport class LowerCaseUrlSerializerModule {}\r\n","export const mantic = Object.freeze({\r\n    pipes: {\r\n        isEmail: {\r\n            message: 'mantic.pipes.isEmail.message'\r\n        },\r\n        isFilled: {\r\n            message: 'mantic.pipes.isFilled.message'\r\n        },\r\n        allowedChars: {\r\n            message: 'mantic.pipes.allowedChars.message'\r\n        }\r\n    }\r\n});\r\n","import { map } from 'rxjs/operators';\r\n\r\nexport const mapVoid = () => {\r\n    return map(() => void 0);\r\n}\r\n","import { EnvironmentProviders, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';\r\nimport { registerLocaleData } from '@angular/common';\r\n\r\n/**\r\n * Register global data to be used internally by Angular. See the\r\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\r\n * data.\r\n */\r\nexport function provideLocale(locale: any, localeId: string, localeExtra: any): EnvironmentProviders {\r\n    registerLocaleData(locale, localeId, localeExtra);\r\n    return makeEnvironmentProviders([\r\n        { provide: LOCALE_ID, useValue: localeId }\r\n    ]);\r\n}\r\n","export interface FormValidation {\r\n    label?: string;\r\n    message: string | undefined;\r\n    valid: boolean;\r\n    value: unknown;\r\n}\r\n\r\nexport function isFormValidation(value: unknown): value is FormValidation {\r\n    const validation = value as FormValidation;\r\n    return validation && typeof validation.valid === 'boolean';\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localize } from '../components/localize/localize';\r\nimport { mantic } from '../helpers/mantic';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mAllowedChars',\r\n    })\r\nexport class AllowedCharsPipe implements ValidationPipe, PipeTransform {\r\n\r\n    public transform(value: unknown | FormValidation, allowedChars: string, message?: string): FormValidation {\r\n        const result = isFormValidation(value) ? value : { value, message: undefined, valid: true };\r\n        if (!result.valid) {\r\n            return result;\r\n        }\r\n        result.valid = this.isValid(result.value, allowedChars);\r\n        result.message = result.valid ? undefined : message || localize(mantic.pipes.allowedChars.message, `forbidden characters found`);\r\n        return result;\r\n    }\r\n\r\n    private isValid(value: unknown, allowedChars: string): boolean {\r\n        return typeof value === 'string' && new RegExp(`^${allowedChars}$`).test(value);\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mArray'\r\n})\r\nexport class ArrayPipe implements PipeTransform {\r\n\r\n    public transform(length: number): number[] {\r\n        return new Array(Math.round(length)).fill(0).map((_, index) => index);\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mCeil',\r\n    })\r\nexport class CeilPipe implements PipeTransform {\r\n\r\n    public transform(value: number, decimals = 0): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.ceil(value * factor) / factor;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'debug',\r\n    })\r\nexport class DebugPipe implements PipeTransform {\r\n\r\n    public transform(value: unknown, ...args: unknown[]): unknown {\r\n        // eslint-disable-next-line no-debugger\r\n        debugger;\r\n        return value;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'debugger'\r\n})\r\nexport class DebuggerPipe implements PipeTransform {\r\n\r\n    public transform(value: unknown, ...args: unknown[]): unknown {\r\n        // eslint-disable-next-line no-debugger\r\n        debugger;\r\n        return value;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mFloor',\r\n    })\r\nexport class FloorPipe implements PipeTransform {\r\n\r\n    public transform(value: number, decimals = 0): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.floor(value * factor) / factor;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localize } from '../components/localize/localize';\r\nimport { mantic } from '../helpers/mantic';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mIsEmail',\r\n    })\r\nexport class IsEmailPipe implements ValidationPipe, PipeTransform {\r\n\r\n    public transform(value: unknown | FormValidation, message?: string): FormValidation {\r\n        const result = isFormValidation(value) ? value : { value, message: undefined, valid: true };\r\n        if (!result.valid) {\r\n            return result;\r\n        }\r\n        result.valid = this.isEmail(result.value);\r\n        result.message = result.valid ? undefined : message || localize(mantic.pipes.isEmail.message, `no valid email address`);\r\n        return result;\r\n    }\r\n\r\n    private isEmail(value: unknown): boolean {\r\n        return typeof value === 'string' && /^[^@]+@[^@]+\\.[a-zA-Z0-9]+$/.test(value);\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localize } from '../components/localize/localize';\r\nimport { mantic } from '../helpers/mantic';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mIsFilled',\r\n    })\r\nexport class IsFilledPipe implements ValidationPipe, PipeTransform {\r\n    public transform(value: unknown | FormValidation, message?: string): FormValidation {\r\n        const result = isFormValidation(value) ? value : { value, message: undefined, valid: true };\r\n        if (!result.valid) {\r\n            return result;\r\n        }\r\n        result.valid = !!result.value;\r\n        result.message = result.valid ? undefined : message || localize(mantic.pipes.isFilled.message, `has to be filled`);\r\n        return result;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'log',\r\n    })\r\nexport class LogPipe implements PipeTransform {\r\n\r\n    public transform<T>(value: T, ...args: unknown[]): T {\r\n        if (args && args.length > 0) {\r\n            console.log(args[0], value);\r\n        } else {\r\n            console.log(value);\r\n        }\r\n        return value;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mPadEnd',\r\n    })\r\nexport class PadEndPipe implements PipeTransform {\r\n    public transform(value: unknown, maxLength: number, fillString?: string): string | undefined {\r\n        const text = value?.toString();\r\n        return text?.padEnd(maxLength, fillString);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mPadStart',\r\n    })\r\nexport class PadStartPipe implements PipeTransform {\r\n    public transform(value: unknown, maxLength: number, fillString?: string): string | undefined {\r\n        const text = value?.toString();\r\n        return text?.padStart(maxLength, fillString);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'mRound',\r\n    })\r\nexport class RoundPipe implements PipeTransform {\r\n\r\n    public transform(value: number, decimals = 0): number {\r\n        const factor = Math.pow(10, decimals);\r\n        return Math.round(value * factor) / factor;\r\n    }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'mSafe',\r\n    })\r\nexport class SafePipe implements PipeTransform {\r\n    public constructor(\r\n        private readonly sanitizer: DomSanitizer\r\n    ) {\r\n    }\r\n\r\n    public transform(url: string): SafeResourceUrl {\r\n        return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FormValidation, isFormValidation } from '../models/form-validation';\r\nimport { ValidationPipe } from './validation.pipe';\r\n\r\n@Pipe({\r\n    name: 'mTitle',\r\n    })\r\nexport class TitlePipe implements ValidationPipe, PipeTransform {\r\n\r\n    public transform(value: unknown | FormValidation, label?: string): FormValidation {\r\n        if (isFormValidation(value)) {\r\n            value.label = label;\r\n            return value;\r\n        }\r\n        return { valid: true, value, label, message: undefined };\r\n    }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AnimationComponent } from './components/animation/animation.component';\r\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\r\nimport { ButtonGroupComponent } from './components/button-group/button-group.component';\r\nimport { ButtonDefaultsComponent } from './components/button/button-defaults.component';\r\nimport { ButtonComponent } from './components/button/button.component';\r\nimport { CardGroupComponent } from './components/card-group/card-group.component';\r\nimport { CardComponent } from './components/card/card.component';\r\nimport { CellComponent } from './components/cell/cell.component';\r\nimport { ChatMessageComponent } from './components/chat-message/chat-message.component';\r\nimport { ChatDefaultsComponent } from './components/chat/chat-defaults.component';\r\nimport { ChatComponent } from './components/chat/chat.component';\r\nimport { CheckboxDefaultsComponent } from './components/checkbox/checkbox-defaults.component';\r\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\r\nimport { CircularProgressComponent } from './components/circular-progress/circular-progress.component';\r\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\r\nimport { ContextMenuItemComponent } from './components/context-menu/item/context-menu-item.component';\r\nimport { DataSourceComponent } from './components/data-source/data-source.component';\r\nimport { DimmerDefaultsComponent } from './components/dimmer/dimmer-defaults.component';\r\nimport { DimmerComponent } from './components/dimmer/dimmer.component';\r\nimport { DividerComponent } from './components/divider/divider.component';\r\nimport { DocumentNoIndexComponent } from './components/document-no-index/document-no-index.component';\r\nimport { DocumentTitleComponent } from './components/document-title/document-title.component';\r\nimport { DropdownGroupComponent } from './components/dropdown-group/dropdown-group.component';\r\nimport { DropdownItemComponent } from './components/dropdown-item/dropdown-item.component';\r\nimport { DropdownDefaultsComponent } from './components/dropdown/dropdown-defaults.component';\r\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\r\nimport { ErrorComponent } from './components/error/error.component';\r\nimport { ExpanderIconComponent } from './components/expander-icon/expander-icon.component';\r\nimport { ExpanderPartComponent } from './components/expander-part/expander-part.component';\r\nimport { ExpanderDefaultsComponent } from './components/expander/expander-defaults.component';\r\nimport { ExpanderHeaderComponent } from './components/expander/expander-header.component';\r\nimport { ExpanderComponent } from './components/expander/expander.component';\r\nimport { FieldGroupComponent } from './components/field-group/field-group.component';\r\nimport { FieldDefaultsComponent } from './components/field/field-defaults.component';\r\nimport { FieldComponent } from './components/field/field.component';\r\nimport { FlagComponent } from './components/flag/flag.component';\r\nimport { AutoComponent } from './components/flex/auto/auto.component';\r\nimport { AutoDirective } from './components/flex/auto/auto.directive';\r\nimport { FillComponent } from './components/flex/fill/fill.component';\r\nimport { FillDirective } from './components/flex/fill/fill.directive';\r\nimport { FlexComponent } from './components/flex/flex.component';\r\nimport { FlexDirective } from './components/flex/flex.directive';\r\nimport { GrowComponent } from './components/flex/grow/grow.component';\r\nimport { GrowDirective } from './components/flex/grow/grow.directive';\r\nimport { ShrinkComponent } from './components/flex/shrink/shrink.component';\r\nimport { ShrinkDirective } from './components/flex/shrink/shrink.directive';\r\nimport { FooterLinkComponent } from './components/footer-link/footer-link.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { FormElementRendererComponent } from './components/form-element-renderer/form-element-renderer.component';\r\nimport { FormElementRenderer2Component } from './components/form-element-renderer/form-element-renderer2.component';\r\nimport { FormRendererComponent } from './components/form-renderer/form-renderer.component';\r\nimport { FormDefaultsComponent } from './components/form/form-defaults.component';\r\nimport { FormComponent } from './components/form/form.component';\r\nimport { GridComponent } from './components/grid/grid.component';\r\nimport { HeaderDefaultsComponent } from './components/header/header-defaults.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { IconButtonComponent } from './components/icon-button/icon-button.component';\r\nimport { IconComponent } from './components/icon/icon.component';\r\nimport { ImageUploadComponent } from './components/image-upload/image-upload.component';\r\nimport { InfoComponent } from './components/info/info.component';\r\nimport { DateInputComponent } from './components/input/date/date-input.component';\r\nimport { FileInputComponent } from './components/input/file/file-input.component';\r\nimport { InputDefaultsComponent } from './components/input/input-defaults.component';\r\nimport { NumericInputComponent } from './components/input/numeric/numeric-input.component';\r\nimport { InputComponent } from './components/input/text/input.component';\r\nimport { TimeInputComponent } from './components/input/time/time-input.component';\r\nimport { LabelDropdownDefaultsComponent } from './components/label-dropdown/label-dropdown-defaults.component';\r\nimport { LabelDropdownComponent } from './components/label-dropdown/label-dropdown.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { LayoutDefaultsComponent } from './components/layout/layout-defaults.component';\r\nimport { LayoutComponent } from './components/layout/layout.component';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { MarkdownRendererComponent } from './components/markdown-renderer/markdown-renderer.component';\r\nimport { MenuHeaderComponent } from './components/menu-header/menu-header.component';\r\nimport { MenuItemComponent } from './components/menu-item/menu-item.component';\r\nimport { MenuLinkComponent } from './components/menu-link/menu-link.component';\r\nimport { MenuComponent } from './components/menu/menu.component';\r\nimport { MessageDefaultsComponent } from './components/message/message-defaults.component';\r\nimport { MessageComponent } from './components/message/message.component';\r\nimport { ModalDefaultsComponent } from './components/modal/modal-defaults.component';\r\nimport { ModalFooterComponent } from './components/modal/modal-footer.component';\r\nimport { ModalHeaderComponent } from './components/modal/modal-header.component';\r\nimport { ModalComponent } from './components/modal/modal.component';\r\nimport { NotificationComponent } from './components/notification/notification.component';\r\nimport { OrComponent } from './components/or/or.component';\r\nimport { RadioComponent } from './components/radio/radio.component';\r\nimport { RowComponent } from './components/row/row.component';\r\nimport { SegmentGroupComponent } from './components/segment-group/segment-group.component';\r\nimport { SegmentDefaultsComponent } from './components/segment/segment-defaults.component';\r\nimport { SegmentComponent } from './components/segment/segment.component';\r\nimport { SidebarComponent } from './components/sidebar/sidebar.component';\r\nimport { SliderComponent } from './components/slider/slider.component';\r\nimport { SubmitComponent } from './components/submit/submit.component';\r\nimport { TabGroupDefaultsComponent } from './components/tab-group/tab-group-defaults.component';\r\nimport { TabGroupComponent } from './components/tab-group/tab-group.component';\r\nimport { TabComponent } from './components/tab/tab.component';\r\nimport { TableDefaultsComponent } from './components/table/table-defaults.component';\r\nimport { TableComponent } from './components/table/table.component';\r\nimport { TemplateOutletComponent } from './components/template-outlet/template-outlet.component';\r\nimport { TemplateComponent } from './components/template/template.component';\r\nimport { TextContainerComponent } from './components/text-container/text-container.component';\r\nimport { TextareaDefaultsComponent } from './components/textarea/textarea-defaults.component';\r\nimport { TextareaComponent } from './components/textarea/textarea.component';\r\nimport { ToggleButtonComponent } from './components/toggle-button/toggle-button.component';\r\nimport { ToggleComponent } from './components/toggle/toggle.component';\r\nimport { WarningComponent } from './components/warning/warning.component';\r\nimport { BasicDirective } from './directives/basic.directive';\r\nimport { ButtonDirective } from './directives/button.directive';\r\nimport { ColorDirective } from './directives/color.directive';\r\nimport { DisabledDirective } from './directives/disabled.directive';\r\nimport { FallbackForDirective } from './directives/fallback-for.directive';\r\nimport { FluidDirective } from './directives/fluid.directive';\r\nimport { FooterLinkTemplateDirective } from './directives/footer-link-template.directive';\r\nimport { HeaderDirective } from './directives/header.directive';\r\nimport { HideOnEmptyTemplateDirective } from './directives/hide-on-empty-template.directive';\r\nimport { HideOnExistingTemplateDirective } from './directives/hide-on-existing-template.directive';\r\nimport { InvertedDirective } from './directives/inverted.directive';\r\nimport { LoadingDirective } from './directives/loading.directive';\r\nimport { MenuItemDirective } from './directives/menu-item.directive';\r\nimport { MenuLinkTemplateDirective } from './directives/menu-link-template.directive';\r\nimport { PositionAbsoluteDirective } from './directives/position-absolute.directive';\r\nimport { ReadOnlyDirective } from './directives/read-only.directive';\r\nimport { ReadonlyDirective } from './directives/readonly.directive';\r\nimport { ToBodyDirective } from './directives/to-body.directive';\r\nimport { ToTemplateDirective } from './directives/to-template.directive';\r\nimport { AllowedCharsPipe } from './pipes/allowed-chars.pipe';\r\nimport { ArrayPipe } from './pipes/array.pipe';\r\nimport { CeilPipe } from './pipes/ceil.pipe';\r\nimport { DebugPipe } from './pipes/debug.pipe';\r\nimport { DebuggerPipe } from './pipes/debugger.pipe';\r\nimport { FloorPipe } from './pipes/floor.pipe';\r\nimport { IsEmailPipe } from './pipes/is-email.pipe';\r\nimport { IsFilledPipe } from './pipes/is-filled.pipe';\r\nimport { LogPipe } from './pipes/log.pipe';\r\nimport { PadEndPipe } from './pipes/pad-end.pipe';\r\nimport { PadStartPipe } from './pipes/pad-start.pipe';\r\nimport { RoundPipe } from './pipes/round.pipe';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { TitlePipe } from './pipes/title.pipe';\r\n\r\nconst standalone = [\r\n    AllowedCharsPipe,\r\n    AnimationComponent,\r\n    AutoComponent,\r\n    AutoDirective,\r\n    ArrayPipe,\r\n    BasicDirective,\r\n    BreadcrumbComponent,\r\n    ButtonComponent,\r\n    ButtonDefaultsComponent,\r\n    ButtonDirective,\r\n    ButtonGroupComponent,\r\n    CardComponent,\r\n    CardGroupComponent,\r\n    CeilPipe,\r\n    CellComponent,\r\n    ChatComponent,\r\n    ChatDefaultsComponent,\r\n    ChatMessageComponent,\r\n    CheckboxComponent,\r\n    CheckboxDefaultsComponent,\r\n    CircularProgressComponent,\r\n    ColorDirective,\r\n    ContextMenuComponent,\r\n    ContextMenuItemComponent,\r\n    DataSourceComponent,\r\n    DateInputComponent,\r\n    DebuggerPipe,\r\n    DebugPipe,\r\n    DimmerComponent,\r\n    DimmerDefaultsComponent,\r\n    DisabledDirective,\r\n    DividerComponent,\r\n    DocumentNoIndexComponent,\r\n    DocumentTitleComponent,\r\n    DropdownComponent,\r\n    DropdownDefaultsComponent,\r\n    DropdownGroupComponent,\r\n    DropdownItemComponent,\r\n    ErrorComponent,\r\n    ExpanderComponent,\r\n    ExpanderDefaultsComponent,\r\n    ExpanderHeaderComponent,\r\n    ExpanderIconComponent,\r\n    ExpanderPartComponent,\r\n    FallbackForDirective,\r\n    FieldComponent,\r\n    FieldDefaultsComponent,\r\n    FieldGroupComponent,\r\n    FileInputComponent,\r\n    FillComponent,\r\n    FillDirective,\r\n    FlagComponent,\r\n    FlexComponent,\r\n    FlexDirective,\r\n    FloorPipe,\r\n    FluidDirective,\r\n    FooterComponent,\r\n    FooterLinkComponent,\r\n    FooterLinkTemplateDirective,\r\n    FormComponent,\r\n    FormDefaultsComponent,\r\n    FormElementRendererComponent,\r\n    FormElementRenderer2Component,\r\n    FormRendererComponent,\r\n    GridComponent,\r\n    GrowComponent,\r\n    GrowDirective,\r\n    HeaderComponent,\r\n    HeaderDefaultsComponent,\r\n    HeaderDirective,\r\n    HideOnEmptyTemplateDirective,\r\n    HideOnExistingTemplateDirective,\r\n    IconButtonComponent,\r\n    IconComponent,\r\n    InfoComponent,\r\n    InputComponent,\r\n    InputDefaultsComponent,\r\n    InvertedDirective,\r\n    ImageUploadComponent,\r\n    IsFilledPipe,\r\n    IsEmailPipe,\r\n    LabelComponent,\r\n    LabelDropdownComponent,\r\n    LabelDropdownDefaultsComponent,\r\n    LayoutComponent,\r\n    LayoutDefaultsComponent,\r\n    LoaderComponent,\r\n    LoadingDirective,\r\n    LogPipe,\r\n    MarkdownRendererComponent,\r\n    MenuComponent,\r\n    MenuHeaderComponent,\r\n    MenuItemComponent,\r\n    MenuItemDirective,\r\n    MenuLinkComponent,\r\n    MenuLinkTemplateDirective,\r\n    MessageComponent,\r\n    MessageDefaultsComponent,\r\n    ModalComponent,\r\n    ModalDefaultsComponent,\r\n    ModalFooterComponent,\r\n    ModalHeaderComponent,\r\n    NotificationComponent,\r\n    NumericInputComponent,\r\n    OrComponent,\r\n    PadEndPipe,\r\n    PadStartPipe,\r\n    PositionAbsoluteDirective,\r\n    RadioComponent,\r\n    ReadonlyDirective,\r\n    ReadOnlyDirective,\r\n    RoundPipe,\r\n    RowComponent,\r\n    SafePipe,\r\n    SegmentComponent,\r\n    SegmentDefaultsComponent,\r\n    SegmentGroupComponent,\r\n    ShrinkComponent,\r\n    ShrinkDirective,\r\n    SidebarComponent,\r\n    SliderComponent,\r\n    SubmitComponent,\r\n    TabComponent,\r\n    TabGroupDefaultsComponent,\r\n    TableComponent,\r\n    TableDefaultsComponent,\r\n    TabGroupComponent,\r\n    TemplateComponent,\r\n    TemplateOutletComponent,\r\n    TextareaComponent,\r\n    TextareaDefaultsComponent,\r\n    TextContainerComponent,\r\n    TimeInputComponent,\r\n    TitlePipe,\r\n    ToBodyDirective,\r\n    ToggleButtonComponent,\r\n    ToggleComponent,\r\n    ToTemplateDirective,\r\n    WarningComponent\r\n];\r\n\r\n@NgModule({\r\n    imports: [\r\n        ...standalone\r\n    ],\r\n    exports: [\r\n        ...standalone\r\n    ]\r\n})\r\nexport class ManticUiModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Returns a copy of a section of an array.\r\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\r\n * For example, -2 refers to the second to last element of the array.\r\n * @param start The beginning index of the specified portion of the array.\r\n * If start is undefined, then the slice begins at index 0.\r\n * @param end The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n * If end is undefined, then the slice extends to the end of the array.\r\n */\r\n@Pipe({\r\n    name: 'mSlice',\r\n    })\r\nexport class SlicePipe implements PipeTransform {\r\n    public transform<T>(array: T[], from?: number, to?: number): T[] {\r\n        return array.slice(from, to);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { toBoolean } from '../helpers/to-boolean';\r\nimport { BooleanLike } from '../models/boolean-like';\r\n\r\n@Pipe({\r\n    name: 'toBoolean'\r\n})\r\nexport class ToBooleanPipe implements PipeTransform {\r\n    public transform(value: BooleanLike): boolean {\r\n        return toBoolean(value);\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BaseHrefService {\r\n\r\n    public get(): string {\r\n        return document.head.querySelector('base')?.href ?? '';\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n    private baseUrl?: string;\r\n\r\n    public getBaseUrl(): string {\r\n        if (this.baseUrl === undefined) {\r\n            const baseElement = document.getElementsByTagName('base')[0];\r\n            this.baseUrl = baseElement ? baseElement.attributes.getNamedItem('href')?.value || '' : '';\r\n            this.baseUrl = this.baseUrl.replace(/\\/+$/, '');\r\n        }\r\n        return this.baseUrl;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class FaviconService {\r\n    private canvasElement: HTMLCanvasElement | undefined;\r\n    private faviconElement: HTMLLinkElement | undefined;\r\n\r\n    public getContext(): CanvasRenderingContext2D | undefined {\r\n        return this.getCanvas().getContext('2d') ?? undefined;\r\n    }\r\n\r\n    private getCanvas(): HTMLCanvasElement {\r\n        if (!this.canvasElement) {\r\n            this.canvasElement = document.createElement('canvas');\r\n            this.canvasElement.style.display = 'none';\r\n            this.canvasElement.width = 16;\r\n            this.canvasElement.height = 16;\r\n            document.body.appendChild(this.canvasElement);\r\n        }\r\n        return this.canvasElement;\r\n    }\r\n\r\n    public update(): void {\r\n        this.faviconElement ??= this.getFaviconElement();\r\n        if (this.faviconElement) {\r\n            this.faviconElement.href = this.canvasElement?.toDataURL('image/png') ?? '';\r\n        }\r\n    }\r\n\r\n    private getFaviconElement(): HTMLLinkElement | undefined {\r\n        const foundElement = document.querySelector('link[rel*=\"icon\"][sizes=\"16x16\"][type=\"image/png\"]')\r\n            ?? document.querySelector('link[rel*=\"icon\"][type=\"image/png\"]')\r\n            ?? document.querySelector('link[rel*=\"icon\"]');\r\n        return foundElement instanceof HTMLLinkElement ? foundElement : undefined;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n    private readonly versionSubject = new ReplaySubject<string>(1);\r\n    public version = this.versionSubject.asObservable();\r\n\r\n    public setVersion(version: string): void {\r\n        this.versionSubject.next(version);\r\n    }\r\n\r\n    public prefersDark(): boolean {\r\n        return matchMedia('(prefers-color-scheme: dark)').matches;\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ColorDirective","i2.BasicDirective","i3.InvertedDirective","i4.DisabledDirective","i5.LoadingDirective","i6.ActiveDirective","i3","i1.LoadingDirective","i2.FluidDirective","i1.ContextMenuComponent","i1.DropDownSelectionService","i4","i1","i1.IgnoredDirective","i1.RadioService","i2","i1.InlineDirective","i1.LayoutService","i1.InvertedDirective","i1.BasicDirective","i1.NotificationService","i1.FormComponent","i1.ActiveDirective"],"mappings":";;;;;;;;;;;;;;AAEO,MAAM,SAAS,GAAG,CAAC,KAAkB,KAAa;AACrD,IAAA,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;AACvF;AAEO,MAAM,sBAAsB,GAAG,CAAC,KAAkB,KAAyB;AAC9E,IAAA,OAAO,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;AAC7D;;MCIa,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAAiB;AAClC,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,CAAC;AA8I5E,IAAA;AA5IG;;AAEG;IACI,gBAAgB,CAAC,GAAG,IAAc,EAAA;AACrC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACf;YACJ;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAC3B;AACA,QAAA,OAAO,IAAI;IACf;AAEA;;AAEG;IACI,QAAQ,CAAC,GAAG,IAAc,EAAA;AAC7B,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxC,IAAI,aAAa,EAAE;gBACf,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;oBACjC,IAAI,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE;wBACnC,KAAK,CAAC,KAAK,EAAE;oBACjB;gBACJ;gBACA,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAC/C;iBACK;AACD,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAC3B;QACJ;AACA,QAAA,OAAO,IAAI;IACf;IAEO,aAAa,CAAC,GAAG,IAAc,EAAA;AAClC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5C;AACA,QAAA,OAAO,IAAI;IACf;IAEO,UAAU,CAAC,GAAG,IAAc,EAAA;AAC/B,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAChD;AACA,QAAA,OAAO,IAAI;IACf;IAEO,MAAM,CAAC,GAAG,IAAc,EAAA;AAC3B,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC7C;AACA,QAAA,OAAO,IAAI;IACf;IAEQ,aAAa,CAAC,GAAW,EAAE,OAAwB,EAAA;QACvD,IAAI,CAAC,GAAG,EAAE;YACN;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA,4BAAA,EAA+B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC;QACjG;AACA,QAAA,MAAM,KAAK,GAAU;AACjB,YAAA,GAAG,OAAO;AACV,YAAA,GAAG,EAAE,GAAG,CAAC,iBAAiB,EAAE;AAC5B,YAAA,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,GAAG,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE;AAClD,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;SACvB;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IACtC;AAEQ,IAAA,QAAQ,CAAC,GAAW,EAAA;AACxB,QAAA,GAAG,GAAG,GAAG,CAAC,iBAAiB,EAAE;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC;AAEO,IAAA,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,OAA8B,EAAA;QAClE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,2BAAA,EAA8B,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAA,mFAAA,CAAqF,CAAC;AAClL,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5C;QACA,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;QAC/C;AACA,QAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,CAAA,+BAAA,EAAkC,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAA,kDAAA,CAAoD,CAAC;AACrJ,YAAA,OAAO,IAAI;QACf;AACA,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,YAAA,KAAK,CAAC,KAAK,GAAG,GAAG;QACrB;AACK,aAAA,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AAC/D,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;QACpB;aACK;AACD,YAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;QAClC;AACA,QAAA,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAC3B;AACA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,GAAG,CAAC,GAAW,EAAA;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK;IACpC;AAEO,IAAA,GAAG,CAAC,GAAW,EAAA;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC/B;IAEO,QAAQ,GAAA;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAClC,aAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW;aACrC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;AACxB,aAAA,MAAM,CAAC,KAAK,IAAI,KAAK;aACrB,IAAI,CAAC,GAAG,CAAC;IAClB;IAEO,MAAM,GAAA;QACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;aAC3B,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;AAC7B,aAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW;AACrC,aAAA,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAClD;AAEQ,IAAA,WAAW,CAAC,KAAY,EAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS;AACzD,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;YAChB,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACvC;QACA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,QAAA,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AACxB,QAAA,KAAK,CAAC,QAAQ,GAAG,MAAM;IAC3B;AAEQ,IAAA,OAAO,WAAW,CAAC,IAAW,EAAE,KAAY,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IAC3E;8GA/IS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;MCNqB,WAAW,CAAA;AADjC,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAErD;;AAEG;AACa,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAc/D,IAAA;AAZG;;;;AAIG;IACI,gBAAgB,GAAA;AACnB,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;IAC9B;8GAnBkB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAX,WAAW,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADhC;;;ACKK,MAAgB,aAAc,SAAQ,WAAW,CAAA;AACzB,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAU7D,IAAA,IAAc,SAAS,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAc,SAAS,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC,cAAc,EAAE;IACzB;IAEA,WAAA,CACgC,UAAU,GAAG,IAAI,EAAA;AAE7C,QAAA,KAAK,EAAE;QApBQ,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjE,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,WAAW,GAAG,KAAK;AACR,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,CAAC;QAGjE,IAAA,CAAA,kBAAkB,GAAG,IAAI;AAe/B,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE;QAC9D,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;QACpC;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAClC;IAEO,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,4BAA4B,EAAE;YACnC,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEQ,4BAA4B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B;QACJ;QACA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAClF,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;YACjE,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC9K;YACJ;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACnC,gBAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,IAAI,CAAA,MAAA,EAAS,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAChH;QACJ;IACJ;;IAGU,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB;QACJ;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IACzB;AAEU,IAAA,SAAS,CAAC,KAAkB,EAAA;AAClC,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC;IAC3B;AAhEkB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAqBP,MAAM,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGArBZ,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,SAAA,EAFpB,aAAa,CAAC,SAAS,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,SAAS,EAAE,cAAc;AAC5B,iBAAA;;0BAsBQ;;0BAAY,MAAM;2BAAC,MAAM;;;AC3BlC;;AAEG;AAEG,MAAgB,oBAAqB,SAAQ,WAAW,CAAA;8GAAxC,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzC;;;ACHD;;AAEG;AAEG,MAAgB,oBAAqB,SAAQ,WAAW,CAAA;8GAAxC,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzC;;;MCEY,eAAe,CAAA;aACD,IAAA,CAAA,MAAM,GAAG,QAAH,CAAY;AAClB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;AAIlG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,QAAQ,GAAG,KAAK;QAGpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC;IACzD;AAEA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IACW,MAAM,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC3D;8GAlBS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACtB,iBAAA;;sBAeA;;;MCdQ,cAAc,CAAA;aACA,IAAA,CAAA,KAAK,GAAG,OAAH,CAAW;AAChB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;AAI/F,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,OAAO,GAAG,KAAK;QAGnB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;IACvD;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IACW,KAAK,CAAC,KAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACxD;8GAlBS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACrB,iBAAA;;sBAeA;;;MCfQ,cAAc,CAAA;aACA,IAAA,CAAA,KAAK,GAAG,OAAH,CAAW;AAChB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;AAI/F,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAInD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;IACvD;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,KAAK,CAAC,KAA4B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;IACjD;8GAlBS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAeI;;;MCbQ,iBAAiB,CAAA;aACH,IAAA,CAAA,QAAQ,GAAG,UAAH,CAAc;AACtB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAIxG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,UAAU,GAAG,KAAK;QAGtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IAC7D;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IACjE;8GAlBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACxB,iBAAA;;sBAeA;;;MCdQ,iBAAiB,CAAA;aACH,IAAA,CAAA,QAAQ,GAAG,UAAH,CAAc;AACtB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAKxG,IAAA,IACW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB;IACpD;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC/D;AAEA,IAAA,WAAA,GAAA;AAdiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAE/C,IAAA,CAAA,iBAAiB,GAAG,KAAK;QAa7B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IAC7D;AAEO,IAAA,kBAAkB,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC/D;8GAxBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACxB,iBAAA;;sBAQA;;;MCPQ,gBAAgB,CAAA;aACF,IAAA,CAAA,OAAO,GAAG,SAAH,CAAa;AACpB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;AAIrG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,SAAS,GAAG,KAAK;QAGrB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC3D;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IACW,OAAO,CAAC,KAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IAC9D;8GAlBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACvB,iBAAA;;sBAeA;;;ACjBC,MAAgB,mBAAoB,SAAQ,aAAa,CAAA;aACxB,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAK5E,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;IACjD;IAEA,WAAA,CACgC,UAAU,GAAG,IAAI,EAAA;QAE7C,KAAK,CAAC,UAAU,CAAC;QAjBb,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,iBAAiB,GAAG,KAAK;AAiB7B,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IACrC;AAEU,IAAA,eAAe,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB;QACJ;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;IAClC;AA9BkB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAkBb,MAAM,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAlBZ,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;;0BAmBQ;;0BAAY,MAAM;2BAAC,MAAM;;sBAZ7B;;;ACGC,MAAgB,mBAAoB,SAAQ,mBAAmB,CAAA;aAC9B,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAYlF,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IAEW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IACW,IAAI,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IACnC;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAEW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,YAAY,CAAC,KAAkB,EAAA;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/C;AAEA,IAAA,IAEW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAEW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,eAAe;IAC/B;IAEA,IAAW,aAAa,CAAC,KAAkB,EAAA;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAChD;AAEA,IAAA,IAEW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,cAAc,CAAC,KAAkB,EAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACjD;AAEA,IAAA,IACc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa;IAC/F;AAKA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAxHH,IAAA,CAAA,SAAS,GAAG,EAAE;QACd,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,gBAAgB,GAAG,KAAK;QA4Gb,IAAA,CAAA,MAAM,GAAG,IAAI;QAI5B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC;IAC3K;8GA7HkB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAF1B,mBAAmB,CAAC,SAAS,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEtB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,cAAc,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;oBACzK,SAAS,EAAE,oBAAoB;AAClC,iBAAA;;sBAcI;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBACA,WAAW;uBAAC,iBAAiB;;sBAS7B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAa5B;;sBAMA;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;sBACA,WAAW;uBAAC,WAAW;;sBASvB;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBACA,WAAW;uBAAC,cAAc;;sBAS1B,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,cAAc;;;AC7HzB,MAAgB,aAAc,SAAQ,WAAW,CAAA;AACzB,IAAA,SAAA,IAAA,CAAA,SAAS,GAAmB,CAAC,oBAAoB,CAAC,CAAC;AAU7E,IAAA,IAAc,SAAS,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAc,SAAS,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC,cAAc,EAAE;IACzB;IAEA,WAAA,CACgC,UAAU,GAAG,IAAI,EAAA;AAE7C,QAAA,KAAK,EAAE;QApBQ,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjE,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,WAAW,GAAG,KAAK;QACR,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAGjF,IAAA,CAAA,kBAAkB,GAAG,IAAI;AAe/B,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE;QAC9D,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;QACpC;IACJ;IAEO,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACvB,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,cAAc,EAAE;IACzB;IAEQ,4BAA4B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B;QACJ;QACA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAClF,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;YACjE,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC9K;YACJ;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACnC,gBAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,IAAI,CAAA,MAAA,EAAS,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAChH;QACJ;IACJ;IAEU,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB;QACJ;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IACzB;AAEU,IAAA,SAAS,CAAC,KAAkB,EAAA;AAClC,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC;IAC3B;AA5DkB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAqBP,MAAM,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGArBZ,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC;;0BAsBQ;;0BAAY,MAAM;2BAAC,MAAM;;;AClB5B,MAAO,kBAAmB,SAAQ,aAAa,CAAA;AASjD,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QANT,IAAA,CAAA,MAAM,GAAG,IAAI;AAOhB,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAChD;8GAbS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCR3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDUZ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,aAGZ,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;sBAItC;;sBACA,WAAW;uBAAC,cAAc;;sBAG1B;;;AEPC,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAElD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;IAC5C;8GALS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAFjB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCP3C,mSAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDGa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,aAGb,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,mSAAA,EAAA;;;MEL9B,GAAG,CAAA;AACW,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AACzB,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AACzB,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;AAElD,IAAA,WAAA,CACoB,IAAY,EAAA;QAAZ,IAAA,CAAA,IAAI,GAAJ,IAAI;IAExB;AAEO,IAAA,EAAE,CAAC,KAAoB,EAAA;QAC1B,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9B;AAEO,IAAA,OAAO,EAAE,CAAC,KAAoB,EAAE,GAAG,IAAuB,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACrF;;;ACJE,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;AAO1D,IAAA,IAAc,MAAM,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM;IACtC;IAEA,IAAc,MAAM,CAAC,KAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK;IACvC;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAEW,OAAO,CAAC,KAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACvB;AAKA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA5BM,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAInE,IAAA,CAAA,cAAc,GAA6C,IAAI;AAqBtD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAIvD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;aAC1B,aAAa,CAAC,QAAQ,CAAC;IAChC;IAGU,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,EAAE;QAClB;aACK;YACD,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,cAAc,EAAE;QAC1B;IACJ;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd;QACJ;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACzC;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf;QACJ;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACzC;8GAlES,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,uJCZjD,sJAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDSa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACI,iBAAiB,EAAA,OAAA,EAGlB,EAAE,EAAA,SAAA,EACA,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,sJAAA,EAAA;;sBAK5C,YAAY;uBAAC,QAAQ;;sBAgBrB;;sBACA,WAAW;uBAAC,eAAe;;sBAK3B;;sBASA,YAAY;uBAAC,OAAO;;sBAUpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;AE5CjC,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AASnD,IAAA,IAEW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,YAAY,CAAC,KAAkB,EAAA;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/C;AAEA,IAAA,IAEW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAEW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,eAAe;IAC/B;IAEA,IAAW,aAAa,CAAC,KAAkB,EAAA;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAChD;AAEA,IAAA,IAEW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,cAAc,CAAC,KAAkB,EAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACjD;AAEA,IAAA,IACc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa;IAC/F;AAEA,IAAA,IACc,aAAa,GAAA;QACvB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAc,aAAa,CAAC,KAAmD,EAAA;AAC3E,QAAA,IAAI,CAAC,+BAA+B,EAAE,WAAW,EAAE;AACnD,QAAA,IAAI,CAAC,+BAA+B,GAAG,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACpG,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAC/B,IAAI,CAAC,sBAAsB,EAAE;IACjC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA/DH,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,gBAAgB,GAAG,KAAK;AA6D5B,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;IACzC;IAEQ,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;AACnF,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3K;AAEQ,IAAA,aAAa,CAAC,MAA6B,EAAA;QAC/C,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3E;IAEQ,cAAc,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAChE,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QACtB;IACJ;8GArFS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFlB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAwDtB,qBAAqB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAL,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpE1C,2BAAyB,EAAA,MAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,CAAA,CAAA;;2FDcZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,cAAA,EAGV,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA,SAAA,EAC7B,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,CAAA,EAAA;;sBAWtC;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;sBACA,WAAW;uBAAC,WAAW;;sBASvB;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBACA,WAAW;uBAAC,cAAc;;sBAS1B,WAAW;uBAAC,gBAAgB;;sBAK5B,eAAe;uBAAC,qBAAqB;;;ME5D7B,cAAc,CAAA;aACA,IAAA,CAAA,KAAK,GAAG,OAAH,CAAW;AAChB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;AAI/F,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,OAAO,GAAG,KAAK;QAGnB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;IACvD;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IACW,KAAK,CAAC,KAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACxD;8GAlBS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACrB,iBAAA;;sBAeA;;;MCdQ,iBAAiB,CAAA;aACH,IAAA,CAAA,QAAQ,GAAG,UAAH,CAAc;AACtB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAIxG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,UAAU,GAAG,KAAK;QAGtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IAC7D;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IACjE;8GAlBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACxB,iBAAA;;sBAeA;;;MCTQ,aAAa,CAAA;AAN1B,IAAA,WAAA,GAAA;QAoFW,IAAA,CAAA,SAAS,GAAY,MAAM;AACrC,IAAA;AAzEG,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;IACpC;IAEA,IAAW,IAAI,CAAC,KAA2B,EAAA;AACvC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QACtB;aACK;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACvB;IACJ;AAEA,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;IACpC;IAEA,IAAW,IAAI,CAAC,KAAe,EAAA;QAC3B,QAAQ,KAAK;AACT,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;gBAClB;AACJ,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;gBAClB;AACJ,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;gBAClB;AACJ,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;gBAClB;AACJ,YAAA,KAAK,SAAS;AACd,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;gBAClB;AACJ,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;gBACnB;AACJ,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;gBACnB;AACJ,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;gBACnB;AACJ,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;gBACnB;;IAEZ;8GA3ES,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1B,+LAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIc,iBAAiB,0eAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE3B,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,OAAA,EAGT,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,+LAAA,EAAA;;sBAQpC;;sBAcA;;sBAyDA;;;AEpEC,MAAO,cAAe,SAAQ,aAAa,CAAA;AAK7C,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;IACvC;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;IACvC;AAEA,IAAA,IAEW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAjCH,IAAA,CAAA,YAAY,GAAG,KAAK;QAkCxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY;aACrD,aAAa,CAAC,OAAO,CAAC;IAC/B;8GAvCS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFZ,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,yLCpB3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDsBZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,kBAGH,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,aACrD,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;sBAOtC;;sBAUA;;sBAUA;;sBACA,WAAW;uBAAC,kBAAkB;;;AEf7B,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AAC7B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AASF,IAAA,IAAc,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK;IACpC;AAEA,IAAA,IAAc,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK;IACpC;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IACW,QAAQ,CAAC,KAAqC,EAAA;AACrD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,cAAc,EAAE;IACzB;AAEA,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS;IAC9D;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAiC,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;IACxC;AAEA,IAAA,IAAW,aAAa,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;IACvD;AAEA,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,IAAI,CAAC,KAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IAClE;AAKA,IAAA,IACW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IAAW,YAAY,CAAC,KAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;IAC3C;AAEA,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,MAAM,CAAC,KAAyB,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;IACrC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA/EM,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvD,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QA+EpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC;IACxI;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzH;8GA3FS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,uJAFb,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA2B/B,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAUlB,cAAc,wNCpEhC,mjCAiCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJc,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,oJAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIzC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;+BACI,UAAU,EAAA,OAAA,EAGX,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAA,cAAA,EACnC,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAA,SAAA,EACxD,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,mjCAAA,EAAA;;sBA2B5C,YAAY;uBAAC,kBAAkB;;sBAU/B,YAAY;uBAAC,cAAc;;sBAc3B;;sBAWA;;sBAGA;;sBAUA;;;MEnGQ,uBAAuB,CAAA;IAChC,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QACzC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACvD;8GALS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,+GAFtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAEI;;;MCCQ,aAAa,CAAA;AAN1B,IAAA,WAAA,GAAA;QAUuB,IAAA,CAAA,IAAI,GAAG,IAAI;AACjC,IAAA;8GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,gJCT1B,+BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDQa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,WAGT,EAAE,EAAA,QAAA,EAAA,+BAAA,EAAA;;sBAIV,WAAW;uBAAC,UAAU;;sBACtB,WAAW;uBAAC,YAAY;;;MEHhB,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;QASuB,IAAA,CAAA,IAAI,GAAG,IAAI;AACjC,IAAA;8GAJY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,uJCT/B,+BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDQa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WACf,EAAE,EAAA,QAAA,EAAA,+BAAA,EAAA;;sBAKV,WAAW;uBAAC,UAAU;;sBACtB,WAAW;uBAAC,aAAa;;;MEXjB,KAAK,CAAA;;AAEd,IAAA,WAAA,GAAA,EAAuB;AAKhB,IAAA,OAAO,WAAW,CAAC,GAAuB,EAAE,KAAyB,EAAE,GAAwB,EAAA;AAClG,QAAA,IAAI,GAAG,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,GAAG;QACd;AACA,QAAA,IAAI,GAAG,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,GAAG;QACd;AACA,QAAA,OAAO,KAAe;IAC1B;IAEO,OAAO,GAAG,CAAC,MAA0C,EAAA;QACxD,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3C,QAAA,OAAO,GAAG;IACd;AAEO,IAAA,OAAO,KAAK,CAAC,KAAa,EAAE,QAAgB,EAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM;IAC9C;AACH;;AClBM,MAAM,UAAU,GAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;AAErL,MAAM,cAAc,GAAG,CAAC,IAAuB,KAAe;AACjE,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC;IAC3B;IACA,MAAM,gBAAgB,GAAG,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS;AACxF,IAAA,OAAO,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,IAAI,EAAE,CAAc;AACtF,CAAC;;ACCK,MAAO,aAAc,SAAQ,aAAa,CAAA;AAK5C,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IACW,IAAI,CAAC,KAAoC,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAA4B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,GAAG,SAAS,CAAC;IACrE;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAA4B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,GAAG,SAAS,CAAC;IACrE;AAEA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;aACjD,aAAa,CAAC,QAAQ,CAAC;IAChC;8GAxCS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAFX,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDChB3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDkBZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,aAGP,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAWtC;;sBAOA;;sBAUA;;;MEpCQ,iBAAiB,CAAA;aACH,IAAA,CAAA,QAAQ,GAAG,UAAH,CAAc;aACrB,IAAA,CAAA,QAAQ,GAAG,WAAH,CAAe;AACxB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAIxG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,UAAU,GAAG,KAAK;QAGtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IAC7D;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IACjE;8GAnBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AACzB,iBAAA;;sBAgBA;;;ACEC,MAAO,iBAAkB,SAAQ,mBAAmB,CAAA;AAC/B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,SAAS,EAAY,OAAO;AAC5B,QAAA,aAAa,EAAY,OAAO;AAChC,QAAA,iBAAiB,EAAY,OAAO;AACpC,QAAA,qBAAqB,EAAY,OAAO;AACxC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAP8B,CAO7B;aACiC,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAUlF,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ;IAC1C;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;IAC3C;AAEA,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ;IAC1C;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;IAC3C;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE;IAC/B;IAEA,IAAW,IAAI,CAAC,KAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAyB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;AAEA,IAAA,IAEW,OAAO,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK;IAClC;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAQA,IAAA,IAEW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,eAAe;IAC/B;IAEA,IAAW,aAAa,CAAC,KAAkB,EAAA;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAChD;AAuBA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAnGM,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAGtE,IAAA,CAAA,SAAS,GAAwB,KAAK;QACtC,IAAA,CAAA,eAAe,GAAG,KAAK;AACZ,QAAA,IAAA,CAAA,QAAQ,GAAG,iBAAiB,CAAC,QAAQ;AAwDxC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAuB;AAGrD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAa3C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,WAAW;QAG/C,IAAA,CAAA,UAAU,GAAG,IAAI;QAeR,IAAA,CAAA,QAAQ,GAAG,IAAI;AAI3B,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;AACjG,QAAA,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3H;AAGU,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAChH;QACJ;QACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACpC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YAC5F;QACJ;QACA,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB;AAEU,IAAA,GAAG,CAAC,KAAc,EAAA;QACxB,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B;QACJ;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;YAClB,IAAI,CAAC,QAAQ,EAAE;QACnB;QACA,IAAI,CAAC,cAAc,EAAE;IACzB;IAEU,QAAQ,GAAA;QACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC3C;8GAnJS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFf,iBAAiB,CAAC,SAAS,2MCvB1C,miBAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQI,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EAGb;wBACT,aAAa;wBACb;qBACH,EAAA,cAAA,EACmB,CAAC,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAA,SAAA,EAC3D,iBAAA,CAAkB,SAAS,EAAA,QAAA,EAAA,miBAAA,EAAA;;sBAqCrC;;sBASA;;sBASA;;sBASA;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBAGA;;sBAGA;;sBACA,WAAW;uBAAC,qBAAqB;;sBASjC;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA,WAAW;uBAAC,gBAAgB;;sBAS5B,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAQhC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;ME3I1B,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,oBAAoB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS;AAC3D,QAAA,IAAA,CAAA,wBAAwB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,aAAa;AACnE,QAAA,IAAA,CAAA,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB;AACjE,QAAA,IAAA,CAAA,sBAAsB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB;AAkD7F,IAAA;IA5CG,IACW,SAAS,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,iBAAiB,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK;IAChD;IAEA,IACW,aAAa,CAAC,KAAe,EAAA;AACpC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK;IACpD;IAEA,IACW,iBAAiB,CAAC,KAAe,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;AACrC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,KAAK;IACxD;IAEA,IACW,qBAAqB,CAAC,KAAe,EAAA;AAC5C,QAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK;AACzC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,GAAG,KAAK;IAC5D;IAEA,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC3C,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACzD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,gBAAgB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE;YAChE,iBAAiB,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB;QACpE;QACA,IAAI,IAAI,CAAC,oBAAoB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,aAAa,EAAE;YACxE,iBAAiB,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB;QAC5E;QACA,IAAI,IAAI,CAAC,wBAAwB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAChF,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;QAC1E;QACA,IAAI,IAAI,CAAC,4BAA4B,KAAK,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACxF,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB;QAClF;IACJ;8GArDS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,iQAFxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAWI;;sBAMA;;sBAMA;;sBAMA;;sBAMA;;;AClCC,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AACpD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACnC;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzH;8GATS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,yDAFb,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEpC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,SAAS,EAAE,CAAC,GAAG,mBAAmB,CAAC,SAAS;AAC/C,iBAAA;;;MCSY,oBAAoB,CAAA;AAVjC,IAAA,WAAA,GAAA;AA+BoB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;AASvD,IAAA;AAzBG,IAAA,IACW,EAAE,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI;IAC3C;AAEA,IAAA,IACW,GAAG,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,KAAK;IAC5C;AAEA,IAAA,IACW,OAAO,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK;IACzC;AAKO,IAAA,IAAI,CAAC,GAAW,EAAA;AACnB,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACpB;AAEO,IAAA,SAAS,CAAC,MAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7B;8GA7BS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,sPCjBjC,2kCA+BA,EAAA,MAAA,EAAA,CAAA,kRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnBI,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,uDACf,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EAGjB;wBACT,eAAe;wBACf,eAAe;wBACf;AACH,qBAAA,EAAA,QAAA,EAAA,2kCAAA,EAAA,MAAA,EAAA,CAAA,kRAAA,CAAA,EAAA;;sBAII,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAGxB,WAAW;uBAAC,UAAU;;sBAKtB,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,eAAe;;sBAK3B;;;MEhCQ,oBAAoB,CAAA;IAE7B,IACW,QAAQ,CAAC,QAAgB,EAAA;AAChC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC;QACzF,IAAI,YAAY,EAAE;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;QAC9B;aAAO;YACH,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3D;IACJ;AAEA,IAAA,WAAA,CACqB,UAAmC,EACnC,WAAiC,EACjC,aAA+B,EAAA;QAF/B,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,aAAa,GAAb,aAAa;IAC9B;8GAhBK,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC3B,iBAAA;;sBAGA,KAAK;uBAAC,gBAAgB;;;ACWrB,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAYxD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO;aAC9C,aAAa,CAAC,MAAM,CAAC;IAC9B;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzH;8GArBS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAFjB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBjD,gGAGA,EAAA,MAAA,EAAA,CAAA,gFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDWI,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIJ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAGhB;wBACT;AACH,qBAAA,EAAA,SAAA,EACc,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,gGAAA,EAAA,MAAA,EAAA,CAAA,gFAAA,CAAA,EAAA;;sBAI5C;;sBAGA;;sBAGA;;sBACA,WAAW;uBAAC,cAAc;;;AEpB/B;AACA;AAUM,MAAO,sBAAuB,SAAQ,aAAa,CAAA;aAC9B,IAAA,CAAA,QAAQ,GAAG,EAAE,YAAY,EAAY,UAAU,EAAE,gBAAgB,EAAY,SAAS,EAA9E,CAAiF;AAoBhH,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AApBQ,QAAA,IAAA,CAAA,QAAQ,GAAG,sBAAsB,CAAC,QAAQ;QAEtD,IAAA,CAAA,MAAM,GAAG,KAAK;QAsBJ,IAAA,CAAA,qBAAqB,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;QAHvD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC;IACnD;AAKU,IAAA,OAAO,CAAC,KAAiB,EAAA;;QAE/B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,KAAK,EAAE;QAChB;aACK;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;YAClB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC;QAChE;IACJ;IAEQ,KAAK,GAAA;QACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC;AAC/D,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACvB;AAEO,IAAA,MAAM,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;8GAjDS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB3C,yUAOA,EAAA,MAAA,EAAA,CAAA,gDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOQ,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIR,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,OAAA,EAGnB;wBACL;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,yUAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,CAAA,EAAA;;sBAQtC;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAUA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AErC/B,MAAgB,oBAAqB,SAAQ,mBAAmB,CAAA;aAC/B,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAKlF,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAA+B,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,IAAI,UAAU,CAAC;QACpE;IACJ;AAEA,IAAA,IACW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAW,aAAa,CAAC,KAAyC,EAAA;AAC9D,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAC/B,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,IAAI,UAAU,CAAC;QACpE;IACJ;AAQA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,OAAO;IAC7H;AAKA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU;IAC7C;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QARJ,IAAA,CAAA,cAAc,GAAqB,OAAO;AAS7C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;;;IAGpC;8GArDkB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,0LAMxB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYd,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYtB,mBAAmB,yEAGnB,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAjCX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzC;;sBAOI,YAAY;uBAAC,cAAc;;sBAY3B,YAAY;uBAAC,sBAAsB;;sBAYnC,YAAY;uBAAC,mBAAmB;;sBAGhC,YAAY;uBAAC,eAAe;;sBAO5B;;sBAGA,WAAW;uBAAC,cAAc;;;ACrCzB,MAAgB,kBAAmB,SAAQ,oBAAoB,CAAA;AAE1C,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;aACiC,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAWnF,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IACW,YAAY,CAAC,KAAoC,EAAA;AACxD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;IAC3C;AAYA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAEW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACjD;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE;IACvB;AAmCA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA1HQ,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;QAQ7D,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,aAAa,GAAG,KAAK;QAsBtB,IAAA,CAAA,OAAO,GAAG,KAAK;AAgEN,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAiB;AAG3C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAiB;AAGzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS;AAGpC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAc;AAGrC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc;AAGtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc;AAGxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc;QAG/C,IAAA,CAAA,OAAO,GAAG,KAAK;AAsBR,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAoB,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxE,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAoB,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpE,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAClE,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/D,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACjE,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACrE,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAxBpF,QAAA,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxH,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC;IAC3I;IAEgB,WAAW,GAAA;QACvB,KAAK,CAAC,WAAW,EAAE;QACnB,IAAI,CAAC,YAAY,EAAE;IACvB;IAEU,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB;QACJ;QACA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa;QAC7D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa;IACjE;IAUU,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB;QACJ;;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACrF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACjF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACvF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC/E,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACjF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACrF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;IAC3F;IAEU,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB;QACJ;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACxF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACpF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC1F,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAClF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACpF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACxF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;IAC9F;IAEU,YAAY,GAAA;QAClB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE;YACzC,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC;IACJ;IAEO,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE;IAC5C;8GAzLkB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAFzB,kBAAkB,CAAC,SAAS,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAErB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,cAAc,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;oBAClE,SAAS,EAAE,mBAAmB;AACjC,iBAAA;;sBAsBI;;sBAMA;;sBACA,WAAW;uBAAC,YAAY;;sBAGxB;;sBAGA,WAAW;uBAAC,aAAa;;sBAGzB;;sBACA,WAAW;uBAAC,gBAAgB;;sBAU5B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAU5B;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBACA,WAAW;uBAAC,mBAAmB;;sBAS/B;;sBAUA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA,WAAW;uBAAC,aAAa;;;AClHxB,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAMlD,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;IACrC;IAEA,IAAW,IAAI,CAAC,KAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;AAKA,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAA4B,EAAA;AACxC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,OAAO;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE;QACtC;IACJ;IAWA,IACc,mBAAmB,CAAC,KAAmC,EAAA;QACjE,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;IAEA,IACc,gBAAgB,CAAC,KAAmC,EAAA;QAC9D,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA1CJ,IAAA,CAAA,OAAO,GAAG,EAAE;AAmBH,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAsB;AAGpD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU;AAqBnD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC;IAC/E;IAEU,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;8GAlES,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,6NAFZ,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBhD,uhDAiCA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBc,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,qnBAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGnE,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,WAGV,CAAC,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,CAAC,aAClE,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,uhDAAA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA;;sBAK3C;;sBAGA;;sBASA;;sBAGA;;sBAaA;;sBAGA;;sBAGA;;sBAGA,YAAY;uBAAC,OAAO;;sBASpB,SAAS;uBAAC,OAAO;;;ME7CT,aAAa,CAAA;aACC,IAAA,CAAA,QAAQ,GAAG,EAAE,QAAQ,EAAY,aAAa,EAAE,YAAY,EAAY,KAAK,EAArE,CAAwE;AAYvG,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;IACxC;AAeA,IAAA,IACW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IAAW,YAAY,CAAC,KAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC;IAC7C;AAcA,IAAA,WAAA,CACI,eAAgC,EAAA;AAvDnB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAe;AAEtC,QAAA,IAAA,CAAA,QAAQ,GAAG,aAAa,CAAC,QAAQ;QAC5C,IAAA,CAAA,YAAY,GAAG,IAAI;QACjB,IAAA,CAAA,iBAAiB,GAAG,KAAK;QAG5B,IAAA,CAAA,QAAQ,GAAkB,EAAE;QAkB5B,IAAA,CAAA,gBAAgB,GAA6C,IAAI;QAkBjE,IAAA,CAAA,WAAW,GAAG,oCAAoC;AAGzC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AAWlD,QAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACpE;IAEO,SAAS,GAAA;QACZ,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,EAAE;QACrB;IACJ;IAEU,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5H;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,QAAA,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;IAC1B;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;YACxD,IAAI,CAAC,WAAW,EAAE;QACtB;IACJ;IAEQ,UAAU,GAAA;AACd,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE;8GApFS,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqDX,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7E7B,+vBAqBA,EAAA,MAAA,EAAA,CAAA,0iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHI,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,cAAc,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGJ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,OAAA,EAGT;wBACT,oBAAoB;wBACpB,cAAc;wBACd,eAAe;wBACf;AACH,qBAAA,EAAA,QAAA,EAAA,+vBAAA,EAAA,MAAA,EAAA,CAAA,0iBAAA,CAAA,EAAA;;sBAUI;;sBAKA;;sBASA;;sBAGA;;sBAIA;;sBAGA;;sBAGA;;sBASA;;sBAGA;;sBAGA,SAAS;uBAAC,MAAM;;sBAGhB,SAAS;uBAAC,cAAc;;;MEpEhB,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ;AAClD,QAAA,IAAA,CAAA,oBAAoB,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY;AAwB9E,IAAA;IApBG,IACW,QAAQ,CAAC,KAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,aAAa,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;IAC3C;IAEA,IACW,YAAY,CAAC,KAAe,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,aAAa,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK;IAC/C;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,eAAe,KAAK,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC1D,aAAa,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB;QAC3D;QACA,IAAI,IAAI,CAAC,mBAAmB,KAAK,aAAa,CAAC,QAAQ,CAAC,YAAY,EAAE;YAClE,aAAa,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;QACnE;IACJ;8GAzBS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2IAFpB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAOI;;sBAMA;;;ACPC,MAAO,yBAA0B,SAAQ,aAAa,CAAA;AA6BxD,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IAEW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxC;AAEA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IACc,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK;IACpC;AAEA,IAAA,IAAc,MAAM,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;IAC/C;AAEA,IAAA,IAAc,KAAK,GAAA;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM;IACpC;AAEA,IAAA,IAAc,MAAM,GAAA;QAChB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC;IACzC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA7EM,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChE,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,OAAO,GAAG,KAAK;QAGhB,IAAA,CAAA,KAAK,GAAG,CAAC;QAGT,IAAA,CAAA,GAAG,GAAG,CAAC;QAGP,IAAA,CAAA,GAAG,GAAG,GAAG;QAGT,IAAA,CAAA,IAAI,GAAG,GAAG;QAGV,IAAA,CAAA,WAAW,GAAG,EAAE;QAGhB,IAAA,CAAA,aAAa,GAAG,IAAI;QAKR,IAAA,CAAA,IAAI,GAAG,IAAI;IAoD9B;8GA/ES,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,cAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAFvB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,8HCZ3C,i+BAcA,EAAA,MAAA,EAAA,CAAA,6LAAA,CAAA,EAAA,CAAA,CAAA;;2FDAa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,cAAA,EAGf,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA,OAAA,EAC/B,EAAE,EAAA,SAAA,EACA,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,i+BAAA,EAAA,MAAA,EAAA,CAAA,6LAAA,CAAA,EAAA;;sBAQtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAGxB;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA,WAAW;uBAAC,UAAU;;sBACtB,WAAW;uBAAC,gBAAgB;;sBAC5B,WAAW;uBAAC,gBAAgB;;sBAG5B;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B,WAAW;uBAAC,OAAO;;;MEpEX,eAAe,CAAA;IAGxB,WAAA,CACqB,QAA8B,EAC9B,gBAAkC,EAAA;QADlC,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAErC;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9E,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;AAC/C,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC;IACJ;IAEO,WAAW,GAAA;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,EAAE;YACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC9B,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACnC;QACJ;AACA,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;IACpC;8GAzBS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACtB,iBAAA;;;ACeC,MAAO,aAAc,SAAQ,mBAAmB,CAAA;AAWlD,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IACW,QAAQ,CAAC,KAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;IACvC;AAEA,IAAA,IAEW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxC;AAEA,IAAA,IAEW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAEW,QAAQ,CAAC,KAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;IACvC;AAEA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,WAAA,CAC4B,UAA0B,EAAA;AAElD,QAAA,KAAK,CAAC,CAAC,UAAU,CAAC;QApFd,IAAA,CAAA,OAAO,GAAG,KAAK;QAEf,IAAA,CAAA,WAAW,GAAG,KAAK;QAEnB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,UAAU,GAAG,KAAK;AAEV,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,UAAU;AA6ErC,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;IACtG;8GAxFS,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFX,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,uICjBjD,uFAEe,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDiBF,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,cAAA,EAGF,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA,SAAA,EAChC,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,uFAAA,EAAA;;0BAqFxC;;0BAAY;;sBApEhB;;sBAMA;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBACA,WAAW;uBAAC,iBAAiB;;sBAa7B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAM5B;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;sBACA,WAAW;uBAAC,gBAAgB;;;AEtE3B,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AAYnD,IAAA,IACW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IAAW,eAAe,CAAC,KAAkB,EAAA;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD;AAEA,IAAA,IACW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAW,gBAAgB,CAAC,KAAkB,EAAA;QAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACnD;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACzC;AAgBA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA9DH,IAAA,CAAA,iBAAiB,GAAG,KAAK;QACzB,IAAA,CAAA,kBAAkB,GAAG,IAAI;QACzB,IAAA,CAAA,UAAU,GAAG,IAAI;QACjB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAMjB,IAAA,CAAA,SAAS,GAAG,KAAK;QAuCjB,IAAA,CAAA,MAAM,GAAG,CAAC;;AAID,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;;AAIlC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAO7C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChG;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE;AAC/D,YAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAA8B,CAAC,CAAC;AACpK,YAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAA8B,CAAC,CAAC;QAC9K;AACA,QAAA,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAClJ;AAEQ,IAAA,aAAa,CAAC,KAA4B,EAAA;QAC9C,IAAI,KAAK,CAAC,MAAM,KAAA,CAAA,qBAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxD;QACJ;QACA,IAAI,KAAK,CAAC,MAAM,KAAA,CAAA,sBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1D;QACJ;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACpB;AAIU,IAAA,eAAe,CAAC,KAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB;QACJ;AACA,QAAA,IAAI,KAAK,CAAC,iBAAiB,KAAK,IAAI,IAAK,KAAuB,CAAC,GAAG,KAAK,IAAI,EAAE;YAC3E;QACJ;QACA,IAAK,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;YAC9D;QACJ;QACA,IAAI,CAAC,KAAK,EAAE;IAChB;IAEQ,eAAe,CAAC,KAAK,GAAG,CAAC,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,gBAAA,uBAAuB,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC3E;YACA;QACJ;AACA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,qBAAqB,EAAE;AACjE,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;AACpH,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACvH;IAIO,IAAI,CAAC,WAA4C,EAAE,GAAY,EAAA;QAClE,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,SAAS,EAAE;YAC9D,IAAI,CAAC,IAAI,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI;YACpC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG;QAC9B;aACK;YACD,WAAW,CAAC,cAAc,EAAE;AAC5B,YAAA,WAAW,CAAC,iBAAiB,GAAG,IAAI;AACpC,YAAA,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO;AAC/B,YAAA,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,OAAO;QAClC;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACtB;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACvB;8GAtIS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAFlB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA6D5B,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjF5B,0KAKA,EAAA,MAAA,EAAA,CAAA,qJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDYQ,aAAa,0IACb,eAAe,EAAA,QAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EAGjB;wBACL,aAAa;wBACb;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,0KAAA,EAAA,MAAA,EAAA,CAAA,qJAAA,CAAA,EAAA;;sBAWtC,WAAW;uBAAC,eAAe;;sBAG3B;;sBASA;;sBASA;;sBASA;;sBASA;;sBAIA,MAAM;uBAAC,OAAO;;sBAId,MAAM;uBAAC,MAAM;;sBAGb,SAAS;uBAAC,aAAa;;sBA0BvB,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;sBAC7C,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;AE/F1C,MAAO,iBAAkB,SAAQ,aAAa,CAAA;aACb,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;;AAK5E,IAAA,IACW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM;IACtC;IAEA,IAAc,MAAM,CAAC,KAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK;IACvC;AAEA,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC;IAKA,WAAA,CACgC,UAAU,GAAG,IAAI,EAAA;QAE7C,KAAK,CAAC,UAAU,CAAC;QA7BF,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpE,IAAA,CAAA,MAAM,GAAG,KAAK;AAuBN,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW;AAMtD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM;aACvB,aAAa,CAAC,MAAM,CAAC;IAC9B;AAlCS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBA6BF,MAAM,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA7BrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAHf,CAAC,oBAAoB,CAAC,iICVrC,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDaZ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACI,aAAa,EAAA,SAAA,EAGZ,CAAC,oBAAoB,CAAC,kBACjB,CAAC,eAAe,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;0BA+BpC;;0BAAY,MAAM;2BAAC,MAAM;;sBAvB7B,WAAW;uBAAC,cAAc;;sBAS1B;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;;AEtBC,MAAO,wBAAyB,SAAQ,iBAAiB,CAAA;AAS3D,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,WAAA,CACiC,WAAiC,EAAA;AAE9D,QAAA,KAAK,EAAE;QAFsB,IAAA,CAAA,WAAW,GAAX,WAAW;QAlBpC,IAAA,CAAA,aAAa,GAAG,KAAK;QAqBzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IACpB;IAGU,OAAO,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf;QACJ;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC5B;8GAhCS,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd/C,kFAGA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDSQ,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIR,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,OAAA,EAGtB;wBACL;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,kFAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA;;0BAqBtC;;sBAhBJ;;sBAGA;;sBAGA;;sBAiBA,YAAY;uBAAC,OAAO;;;AEpCzB;AAQM,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AAC7B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AAKF,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC;;;AAKA,IAAA,IACW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAGW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,IAAI,EAAE;QACf;aACK;YACD,IAAI,CAAC,IAAI,EAAE;QACf;IACJ;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA3CH,IAAA,CAAA,YAAY,GAAG,IAAI;QACnB,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,aAAa,GAAG,KAAK;QA0CzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS;aAClC,aAAa,CAAC,QAAQ,CAAC;AAC5B,QAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzH;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE;QACf;IACJ;IAEgB,WAAW,GAAA;QACvB,KAAK,CAAC,WAAW,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE;IACf;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,cAAc,EAAE;IACzB;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,cAAc,EAAE;IACzB;IAGU,OAAO,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,IAAI,EAAE;QACf;IACJ;8GAjFS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAFb,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,iDCZjD,8PAKuB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDSV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,aAGT,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,8PAAA,EAAA;;sBAW5C;;sBACA,WAAW;uBAAC,YAAY;;sBAYxB;;sBASA;;sBACA,WAAW;uBAAC,eAAe;;sBAC3B,WAAW;uBAAC,cAAc;;sBA2C1B,YAAY;uBAAC,OAAO;;;MEnFZ,uBAAuB,CAAA;IAEhC,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QACzC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACvD;8GANS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,+GAFtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAGI;;;MCPQ,iBAAiB,CAAA;AAI1B,IAAA,WAAA,CACoB,GAAW,EAAA;QAAX,IAAA,CAAA,GAAG,GAAH,GAAG;AAJN,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,CAA4B,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IAKxD;AAEO,IAAA,OAAO,CAAC,IAAuE,EAAA;AAClF,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B;aAAO;YACH,IAAI,CAAC,SAAS,CAAC;AACX,gBAAA,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACzC,gBAAA,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;AAC3C,aAAA,CAAC;QACN;IACJ;AACH;;MCbY,mBAAmB,CAAA;AAJhC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAqB;AAGlD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAO/D,IAAA;AALU,IAAA,GAAG,CAAC,GAAW,EAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,OAAO,OAAO,CAAC,UAAU;IAC7B;8GAVS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,0GAFlB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAII;;;ACFC,MAAO,gBAAiB,SAAQ,aAAa,CAAA;AAE/C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;IACzC;8GALS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAFd,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCP3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDSZ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,aAGV,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;MEP9B,YAAY,CAAA;;AAErB,IAAA,WAAA,GAAA,EAAuB;IAEhB,OAAO,KAAK,CAAI,KAAQ,EAAA;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM;IACjD;AAEO,IAAA,OAAO,GAAG,CAAc,MAA2C,EAAE,IAAuB,EAAA;AAC/F,QAAA,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AACnE,QAAA,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAwC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAM;IAC9J;AAEA;;AAEG;AACI,IAAA,OAAO,GAAG,CAAI,KAAc,EAAE,GAAG,IAAiB,EAAA;;QAErD,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC;IAClF;AAEA;;AAEG;AACI,IAAA,OAAO,OAAO,CAAI,KAAc,EAAE,GAAG,IAAiB,EAAA;;QAEzD,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC;IACjF;AACH;;ACZD,SAAS,eAAe,CAAI,IAAa,EAAA;IACrC,OAAQ,IAAY,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,SAAS;AAClD;MAEa,eAAe,CAAA;aACA,IAAA,CAAA,oBAAoB,GAA4B,EAAE,CAAC;IAEpE,OAAO,QAAQ,CAAI,SAAkB,EAAA;AACxC,QAAA,MAAM,YAAY,GAAG,eAAe,CAAI,SAAS,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,SAAS,CAAC,IAAI,CAAA,sBAAA,CAAwB,CAAC;QAC1F;AACA,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC;IAChD;AAEO,IAAA,OAAO,KAAK,CAAC,QAA4B,EAAE,gBAAkC,EAAE,IAA8B,EAAA;QAChH,IAAI,CAAC,QAAQ,EAAE;YACX,gBAAgB,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,EAAE;QACb;QACA,IAAI,KAAK,EAAE;QACX,MAAM,KAAK,GAAW,EAAE;QACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAChD,QAAA,UAAU,CAAC,SAAS,GAAG,QAAQ;QAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACtD,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACtE,QAAA,MAAM,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5D,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC;AACA,QAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;AAC7B,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QAC/D;AACA,QAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AAC7B,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC5D;AACA,QAAA,OAAO,KAAK;IAChB;AAEQ,IAAA,OAAO,SAAS,CAAC,IAAU,EAAE,gBAAkC,EAAE,IAA6B,EAAA;QAClG,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7I,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,MAAM,MAAM,GAAS,gBAAgB,CAAC,OAAO,CAAC,aAAa;AAC3D,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI;QACf;QAEA,MAAM,KAAK,GAAW,EAAE;QACxB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,QAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACnE;AACA,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9B,MAAM,gBAAgB,GAAyB,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,QAAQ,IAAG;AACzF,YAAA,IAAI,QAAQ,KAAK,GAAG,EAAE;AAClB,gBAAA,OAAO,WAAW;YACtB;AACA,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;AACjF,YAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAChC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,gBAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,oBAAA,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChC;YACJ;AACA,YAAA,OAAO,UAAU;AACrB,QAAA,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE;YACnE;AACH,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,YAAY,OAAO,EAAE;AACzB,YAAA,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACjD,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC9D,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI;gBAC7F,MAAM,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK;gBACjG,IAAI,UAAU,GAAG,KAAK;AACtB,gBAAA,IAAI,UAAU,CAAC,cAAc,EAAE;AAC3B,oBAAA,KAAK,MAAM,aAAa,IAAI,UAAU,CAAC,cAAc,EAAE;AACnD,wBAAA,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AACpC,4BAAA,YAAY,CAAC,QAAgB,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,aAAa,CAAC,GAAG,cAAc;4BAC3F,UAAU,GAAG,IAAI;wBACrB;oBACJ;gBACJ;gBACA,IAAI,CAAC,UAAU,EAAE;AACZ,oBAAA,YAAY,CAAC,QAAgB,CAAC,aAAa,CAAC,GAAG,cAAc;gBAClE;YACJ;QACJ;QACA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;AACxD,QAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,aAAa;IAC9C;AAEQ,IAAA,OAAO,QAAQ,CAAC,MAAY,EAAE,IAAU,EAAA;AAC5C,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC;QAC7D;aAAO;AACH,YAAA,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC;QACxC;IACJ;;;MCxGS,yBAAyB,CAAA;AANtC,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAe/D,IAAA;AAZG,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC;IAClE;8GAZS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,uHAHxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACI,qBAAqB,EAAA,OAAA,EACtB,EAAE,EAAA,QAAA,EACD,EAAE,EAAA;;sBAOX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAUxB;;;ACrBC,SAAU,uBAAuB,CACnC,IAAmB,EAAA;AAEnB,IAAA,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9B,IAAA,OAAO,wBAAwB,CAAC,EAAE,CAAC;AACvC;;ACLA;MAEa,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAW;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AAKjE,IAAA;AAHU,IAAA,MAAM,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC;8GANS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;ACOK,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAOpD,IAAA,IAEW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAGW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAOA,IAAA,WAAA,CACqB,wBAAkD,EAAA;AAEnE,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,wBAAwB,GAAxB,wBAAwB;QAjCrC,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,UAAU,GAAG,KAAK;AA6BV,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,UAAU;QAMrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO;aAChD,aAAa,CAAC,MAAM,CAAC;IAC9B;AAGU,IAAA,KAAK,CAAC,KAAiB,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACpD;IAEO,MAAM,CAAC,KAAK,GAAG,IAAI,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACzB;8GAlDS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCT3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDWZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,aAGhB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;sBAMtC;;sBAGA;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBACA,WAAW;uBAAC,cAAc;;sBAC1B,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBAaA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MEjDxB,aAAa,CAAA;AAGtB,IAAA,WAAA,CACW,KAAQ,EACR,IAAa,EACb,IAAe,EACf,QAAmB,EAAA;QAHnB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AACH;;ACcK,MAAO,iBAAkB,SAAQ,mBAAmB,CAAA;AAC/B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,YAAY,EAAY,UAAU;AAClC,QAAA,gBAAgB,EAAY,SAAS;AACrC,QAAA,UAAU,EAAY,QAAQ;AAC9B,QAAA,cAAc,EAAY,SAAS;AACnC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAP8B,CAO7B;IAwBF,IACc,0BAA0B,CAAC,KAAuC,EAAA;AAC5E,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B;AACA,QAAA,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3D;IAEA,IACc,uBAAuB,CAAC,KAAuC,EAAA;AACzE,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5B;AACA,QAAA,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3D;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACzC;AAEA,IAAA,IAEW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,YAAY,CAAC,KAAkB,EAAA;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/C;AAEA,IAAA,IAEW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAEW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,eAAe;IAC/B;IAEA,IAAW,aAAa,CAAC,KAAkB,EAAA;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAChD;AAEA,IAAA,IAEW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,cAAc,CAAC,KAAkB,EAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACjD;AAKA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,KAAK,CAAC,KAAc,EAAA;QAC3B,KAAK,KAAK,SAAS;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B;QACJ;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACtB;AAQA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,KAAK,CAAC,KAAyC,EAAA;QACtD,KAAK,KAAK,SAAS;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B;QACJ;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAgCA,IAAA,IACW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IACW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IAAW,aAAa,CAAC,KAAkB,EAAA;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD;AAEA,IAAA,IACW,QAAQ,GAAA;AACf,QAAA,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC;IACvC;AAEA,IAAA,IACW,WAAW,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;IAClD;AAKA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IACW,aAAa,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc;IACnD;AAmBA,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM;IACxC;IAKA,WAAA,CACqB,wBAAkD,EAClD,IAAY,EAAA;AAE7B,QAAA,KAAK,EAAE;QAHU,IAAA,CAAA,wBAAwB,GAAxB,wBAAwB;QACxB,IAAA,CAAA,IAAI,GAAJ,IAAI;QA1PjB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,iBAAiB,GAAG,KAAK;QACzB,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,UAAU,GAAG,KAAK;AACP,QAAA,IAAA,CAAA,QAAQ,GAAG,iBAAiB,CAAC,QAAQ;QA2GjD,IAAA,CAAA,iBAAiB,GAAG,GAAG;QAoBvB,IAAA,CAAA,WAAW,GAAG,IAAI;QAGlB,IAAA,CAAA,UAAU,GAAG,IAAI;QAqBjB,IAAA,CAAA,UAAU,GAA8B,YAAY;QA+BpD,IAAA,CAAA,QAAQ,GAAG,KAAK;QA8BhB,IAAA,CAAA,SAAS,GAAG,IAAI;QAChB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,SAAS,GAAG,KAAK;QAGjB,IAAA,CAAA,aAAa,GAAoB,EAAE;QAElC,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,cAAc,GAA4B,EAAE;AASpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;AAO5C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe;AACnM,aAAA,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC;AAC3C,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3G,QAAA,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3H;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MACxB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAChL,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7D;IAGO,KAAK,GAAA;;AAER,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB;QACJ;QACA,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACnE;IAGO,IAAI,GAAA;;AAEP,QAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9J;QACJ;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,KAAK,EAAE;IAChB;IAGO,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACtD,IAAI,CAAC,KAAK,EAAE;QAChB;aACK;YACD,IAAI,CAAC,IAAI,EAAE;QACf;IACJ;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC1B,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,EAAE;QACf;AACK,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YACjC,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,EAAE;QACf;AACK,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AACvD,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;gBAC7D,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,EAAE;YAChB;iBACK;AACD,gBAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AAC1F,gBAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;oBACjC,KAAK,CAAC,cAAc,EAAE;oBACtB,KAAK,CAAC,eAAe,EAAE;oBACvB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACxC,IAAI,CAAC,KAAK,EAAE;gBAChB;YACJ;QACJ;AACK,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpE;QACJ;AACK,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;YACvB,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,KAAK,EAAE;QAChB;AACK,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;gBAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAChC;iBACK;AACD,gBAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AAC1F,gBAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;oBACjC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5C;YACJ;QACJ;IACJ;IAEU,WAAW,CAAC,IAAmB,EAAE,KAAiB,EAAA;QACxD,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE;QAC5C;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;;QAG3B,UAAU,CAAC,MAAK;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,qBAAqB,EAAE;AACtE,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW;AAErE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;YAGrB,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;AAE7B,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC1G,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;QACvB,IAAI,CAAC,QAAQ,EAAE;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;AAE7B,QAAA,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;;IAE9B;AAEU,IAAA,MAAM,CAAC,KAAc,EAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,KAAK;AAC3C,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YACpD;QACJ;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;YACvB;QACJ;AACA,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AAChE,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,KAAK;QAC1C;aACK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;YACvB,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK;QACjC;aACK;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK;QACjC;QACA,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS;AACnF,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;;;QAIjC;aACK;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE;QAC9F;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE;QAChB;;QAEA,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB;YACJ;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE;AAC/F,QAAA,CAAC,CAAC;;IAEN;AAEU,IAAA,QAAQ,CAAC,IAAmB,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9C,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvC;QACA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACzB;IACJ;AAEU,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC;IACnG;IAEU,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;QAExF;aACK;;QAEL;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3E,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtE;aACK,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;AAC3G,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtE;QACA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM;;IAEnC;AAEQ,IAAA,iBAAiB,CAAC,IAA2B,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,YAAA,OAAO,KAAK;QAChB;QACA,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACvD,QAAA,MAAM,YAAY,GAA2C,IAAI,CAAC,UAAU,KAAK;cAC3E,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC;cAC5E,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAClF,QAAA,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AACjG,QAAA,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC;QAC1J,OAAO,kBAAkB,IAAI,mBAAmB;IACpD;AAEQ,IAAA,YAAY,CAAC,KAAuC,EAAA;AACxD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE;QACrC,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACrG,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C;IACJ;AAEU,IAAA,aAAa,CAAC,IAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;QAEpB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,gBAAA,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE;YAC5C;iBACK;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACzC;AACJ,QAAA,CAAC,CAAC;IACN;AAEU,IAAA,WAAW,CAAC,IAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACzB;8GAhiBS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAFf,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,SAAA,EAkCtD,qBAAqB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,SAAA,EAQxB,qBAAqB,wNCpEvC,owEAmDA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9BI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,aAAa,0FACb,qBAAqB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKZ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EAGb;wBACT,WAAW;wBACX,aAAa;wBACb;AACH,qBAAA,EAAA,cAAA,EACmB,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAA,SAAA,EACxD,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,owEAAA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA;;sBAyBtE,SAAS;uBAAC,aAAa;;sBAGvB,SAAS;uBAAC,aAAa;;sBAGvB,SAAS;uBAAC,cAAc;;sBAGxB,eAAe;uBAAC,qBAAqB;;sBAQrC,YAAY;uBAAC,qBAAqB;;sBAQlC;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBASA;;sBACA,WAAW;uBAAC,qBAAqB;;sBASjC;;sBACA,WAAW;uBAAC,oBAAoB;;sBAShC;;sBACA,WAAW;uBAAC,sBAAsB;;sBASlC;;sBACA,WAAW;uBAAC,uBAAuB;;sBASnC;;sBAOA;;sBAUA;;sBAGA;;sBAOA;;sBAUA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBASA;;sBASA,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,cAAc;;sBAK1B,WAAW;uBAAC,cAAc;;sBAG1B;;sBAaA;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B,WAAW;uBAAC,cAAc;;sBA0B1B;;sBAuBA,YAAY;uBAAC,SAAS;;sBAUtB,YAAY;uBAAC,UAAU;;sBAUvB,YAAY;uBAAC,OAAO;;sBAUpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;MEtU1B,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,oBAAoB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,YAAY;AAC9D,QAAA,IAAA,CAAA,wBAAwB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB;AACtE,QAAA,IAAA,CAAA,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU;AAC1D,QAAA,IAAA,CAAA,sBAAsB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,cAAc;AAkDtF,IAAA;IA5CG,IACW,YAAY,CAAC,KAAe,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK;IACnD;IAEA,IACW,gBAAgB,CAAC,KAAe,EAAA;AACvC,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAK;IACvD;IAEA,IACW,UAAU,CAAC,KAAe,EAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,QAAA,iBAAiB,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK;IACjD;IAEA,IACW,cAAc,CAAC,KAAe,EAAA;AACrC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAClC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK;IACrD;IAEA,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC3C,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACzD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,mBAAmB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE;YACtE,iBAAiB,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;QACvE;QACA,IAAI,IAAI,CAAC,uBAAuB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC9E,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,wBAAwB;QAC/E;QACA,IAAI,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE;YAClE,iBAAiB,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB;QACnE;QACA,IAAI,IAAI,CAAC,qBAAqB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC1E,iBAAiB,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB;QAC3E;IACJ;8GArDS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,iPAFxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAWI;;sBAMA;;sBAMA;;sBAMA;;sBAMA;;;ACtBC,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AAC7B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AASF,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAA6B,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IACnC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU;aACnC,aAAa,CAAC,QAAQ,CAAC;IAChC;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzH;8GAhCS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAFb,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnB3C,uGAIA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDaI,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EAGX;wBACT;AACH,qBAAA,EAAA,SAAA,EACc,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,uGAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAStC;;sBAGA;;sBAGA;;;MElBQ,sBAAsB,CAAA;AAa/B,IAAA,WAAA,CACqB,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAErC;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC;QAClE;aAAO;AACH,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;QACjC;IACJ;8GAxBS,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBnC,oNAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKI,eAAe,2FACf,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,OAAA,EAGnB;wBACT,eAAe;wBACf;AACH,qBAAA,EAAA,QAAA,EAAA,oNAAA,EAAA;;sBAGI;;sBAGA;;sBAGA;;sBAGA,SAAS;uBAAC,iBAAiB;;;AEvBhC;;AAEG;MAMU,sBAAsB,CAAA;aACjB,IAAA,CAAA,aAAa,GAAG,EAAH,CAAM;aACnB,IAAA,CAAA,YAAY,GAAG,EAAH,CAAM;AAKhC,IAAA,IACW,OAAO,GAAA;QACd,OAAO,sBAAsB,CAAC,aAAa;IAC/C;IAEA,IAAW,OAAO,CAAC,KAAa,EAAA;AAC5B,QAAA,sBAAsB,CAAC,aAAa,GAAG,KAAK;IAChD;AAEA,IAAA,IACW,MAAM,GAAA;QACb,OAAO,sBAAsB,CAAC,YAAY;IAC9C;IAEA,IAAW,MAAM,CAAC,KAAa,EAAA;AAC3B,QAAA,sBAAsB,CAAC,YAAY,GAAG,KAAK;IAC/C;IAEA,WAAA,CACqB,OAAgC,EAChC,YAAmB,EAAA;QADnB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;IAEjC;IAEO,SAAS,GAAA;AACZ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;AAClF,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YACrD;AACA,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C;IACJ;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACxD;IACJ;8GA/CS,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8HCXnC,2BAAyB,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,CAAA;;2FDWZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA;;sBAW3B;;sBASA;;;MErBQ,wBAAwB,CAAA;IAE1B,QAAQ,GAAA;QACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAoB;QACxF,IAAI,iBAAiB,EAAE;AACnB,YAAA,iBAAiB,CAAC,OAAO,GAAG,SAAS;QACzC;aAAO;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAoB;AACjE,YAAA,OAAO,CAAC,IAAI,GAAG,QAAQ;AACvB,YAAA,OAAO,CAAC,OAAO,GAAG,SAAS;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACtC;IACJ;IAEO,WAAW,GAAA;QACd,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAoB;QACxF,IAAI,iBAAiB,EAAE;AACnB,YAAA,iBAAiB,CAAC,OAAO,GAAG,OAAO;QACvC;IACJ;8GAnBS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,+EAFvB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;MCGY,gBAAgB,CAAA;aACF,IAAA,CAAA,OAAO,GAAG,SAAH,CAAa;AACpB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;AAIrG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,SAAS,GAAG,KAAK;QAGrB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC3D;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IACW,OAAO,CAAC,KAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IAC9D;8GAlBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACvB,iBAAA;;sBAeA;;;MCdQ,eAAe,CAAA;aACD,IAAA,CAAA,MAAM,GAAG,QAAH,CAAY;AAClB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;AAIlG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,QAAQ,GAAG,KAAK;QAGpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC;IACzD;AAEA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IACW,MAAM,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC3D;8GAlBS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACtB,iBAAA;;sBAeA;;;ACJC,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAM9C,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC;IACnD;AAEA,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAA6B,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IACnC;AAEA,IAAA,IAEW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACzC;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AApCM,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAGlD,IAAA,CAAA,QAAQ,GAAG,KAAK;AAkCpB,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;aAC/B,aAAa,CAAC,QAAQ,CAAC;IAChC;8GAzCS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAFb,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,mQChB3C,0DAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDca,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;+BACI,UAAU,EAAA,OAAA,EAGX,EAAE,EAAA,cAAA,EACK,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAA,SAAA,EAClF,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,0DAAA,EAAA;;sBAQtC;;sBAUA;;sBAUA;;sBACA,WAAW;uBAAC,cAAc;;;AErBzB,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAC9B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,SAAS,EAAY,OAAO;AAC5B,QAAA,aAAa,EAAY,SAAS;AAClC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAL8B,CAK7B;AAeF,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC;AAEA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IAEW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxC;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/C;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAChE;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE;AAKA,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;IACrC;AAcA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA/HH,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,OAAO,GAAG,KAAK;QACf,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,cAAc,GAAG,IAAI;QACrB,IAAA,CAAA,SAAS,GAAG,KAAK;AAIN,QAAA,IAAA,CAAA,QAAQ,GAAG,gBAAgB,CAAC,QAAQ;AAiHvC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc;AAIlD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;AAC1F,aAAA,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;IAC5C;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1H;AAGU,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC/B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE;AACvC,QAAA,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC,WAAW,CAAC,EAAE;YACjL;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;IACJ;8GA1JS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAFd,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBjD,2aAaA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKQ,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EAGZ;wBACL,aAAa;wBACb;qBACH,EAAA,cAAA,EACe,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA,SAAA,EAC/B,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2aAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAuB5C;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBASA;;sBASA;;sBAUA;;sBAUA;;sBAGA;;sBAUA;;sBAGA;;sBAGA;;sBAGA;;sBAcA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AE5J/B,MAAO,cAAe,SAAQ,mBAAmB,CAAA;AACnD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;IAC7D;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1H;8GATS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAFZ,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,oICXjD,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDaZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,cAAA,EAGH,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA,SAAA,EAC/B,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;MEJpC,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,kECP1B,+BACA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACI,QAAQ,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA;;;MEKT,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAOc,IAAA,CAAA,OAAO,GAAG,MAAM;AA8CV,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,KAAK,wCAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAuB,KAAK,+CAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAC;AAM7F,IAAA;aAxD0B,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAnI,CAAsI;AASpK,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,KAA4C,EAAA;AAC5D,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,EAAE;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,EAAE,GAAG,MAAM,GAAG,EAAE;IACtD;AAEA,IAAA,IACW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;IACtC;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,KAAK;IACxD;AAEA,IAAA,IACW,GAAG,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK;IACnC;IAEA,IAAW,GAAG,CAAC,KAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ;IACxD;AAiBA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,cAAc,GAAG,EAAE;IAC1E;8GAxDS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAII,WAAW;uBAAC,eAAe;;sBAG3B;;sBACA,WAAW;uBAAC,sBAAsB;;sBAGlC;;sBAUA;;sBASA;;sBASA;;sBACA,WAAW;uBAAC,mBAAmB;;sBAG/B;;sBACA,WAAW;uBAAC,uBAAuB;;sBAGnC;;sBACA,WAAW;uBAAC,WAAW;;sBAMvB,WAAW;uBAAC,iBAAiB;;;MCrDrB,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,oTAHZ,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,cAAc,EAAE,CAAC,aAAa,CAAC,OAAO;AACzC,iBAAA;;;MCKY,uBAAuB,CAAA;AATpC,IAAA,WAAA,GAAA;QAaW,IAAA,CAAA,QAAQ,GAA6C,IAAI;AAEnE,IAAA;8GANY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAErB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATZ,CAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE;AACZ,iBAAA;;sBAGI,SAAS;uBAAC,WAAW;;;ACIpB,MAAO,iBAAkB,SAAQ,aAAa,CAAA;AACzB,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,YAAY,EAAY,aAAa;AACrC,QAAA,gBAAgB,EAAY;AAC/B,KAH8B,CAG7B;AAQF,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAQA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7C;AAQA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAvCH,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,OAAO,GAAG,KAAK;AACJ,QAAA,IAAA,CAAA,QAAQ,GAAG,iBAAiB,CAAC,QAAQ;QA+BjD,IAAA,CAAA,YAAY,GAAqB,MAAM;AAO1C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ;AACnF,aAAA,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;IACpC;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,QAAQ,EAAE;QACnB;aACK;YACD,IAAI,CAAC,MAAM,EAAE;QACjB;IACJ;IAEO,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IAC1B;8GAjES,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,+NAFf,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA0CzB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1DzC,+hBAaA,iIDEc,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,mDAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG9D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WAGb,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,CAAC,aAC7D,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,+hBAAA,EAAA,MAAA,EAAA,CAAA,yEAAA,CAAA,EAAA;;sBAWtC;;sBAGA;;sBASA;;sBAGA;;sBAGA;;sBAUA;;sBAGA,YAAY;uBAAC,uBAAuB;;;MEjD5B,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,oBAAoB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,YAAY;AAC9D,QAAA,IAAA,CAAA,wBAAwB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB;AAwB1F,IAAA;IApBG,IACW,YAAY,CAAC,KAAe,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK;IACnD;IAEA,IACW,gBAAgB,CAAC,KAAe,EAAA;AACvC,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAK;IACvD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,mBAAmB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE;YACtE,iBAAiB,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;QACvE;QACA,IAAI,IAAI,CAAC,uBAAuB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC9E,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,wBAAwB;QAC/E;IACJ;8GAzBS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,+JAFxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAOA;;sBAMA;;;ACJC,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAIpD,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAWA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAvBH,IAAA,CAAA,UAAU,GAAG,KAAK;AACP,QAAA,IAAA,CAAA,QAAQ,GAAG,iBAAiB,CAAC,QAAQ;AAmBxC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW;IAI5D;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,QAAQ,EAAE;QACnB;aACK;YACD,IAAI,CAAC,MAAM,EAAE;QACjB;IACJ;IAEO,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7C;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7C;8GA5CS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf3C,iIACA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDYQ,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIR,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAGlB;wBACL;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,iIAAA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA;;sBAMtC;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBAGA;;sBAGA;;;AEnBC,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAOpD,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;IACvD;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAcA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QA7BR,IAAA,CAAA,UAAU,GAAG,KAAK;QAInB,IAAA,CAAA,UAAU,GAAwB,IAAI;AAmB7B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW;QAOxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IACnD;IAGU,OAAO,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B;QACJ;AACA,QAAA,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;IACvB;8GAxCS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4B5B,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5CpC,qQAMA,EAAA,MAAA,EAAA,CAAA,iGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOQ,aAAa,mDACb,qBAAqB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIhB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAGlB;wBACL,aAAa;wBACb;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,qQAAA,EAAA,MAAA,EAAA,CAAA,iGAAA,CAAA,EAAA;;sBAKtC;;sBACA,WAAW;uBAAC,kBAAkB;;sBAG9B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBAGA;;sBAGA;;sBAGA,SAAS;uBAAC,qBAAqB;;sBAQ/B,YAAY;uBAAC,OAAO;;;ME5CZ,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,0GCR1B,8CACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDOa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACI,QAAQ,EAAA,QAAA,EAAA,8CAAA,EAAA;;sBAKjB;;sBAGA;;;MEZQ,QAAQ,CAAA;aACM,IAAA,CAAA,UAAU,GAAG,EAAE,CAAC;aAEhB,IAAA,CAAA,aAAa,GAAG,EAAE,CAAC;aACnB,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;aAEpD,IAAA,CAAA,eAAe,GAAG,EAAE,CAAC;aACrB,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;aAC1D,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC;aAExD,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC;aAC5B,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC;aACxE,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;aACpE,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;;;MCXvE,UAAU,CAAA;AAIrB,IAAA,OAAO,WAAW,CAAC,GAAqB,EAAE,KAAuB,EAAE,GAAsB,EAAA;AAC5F,QAAA,IAAI,GAAG,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,GAAG;QACd;AACA,QAAA,IAAI,GAAG,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,GAAG;QACd;AACA,QAAA,OAAO,KAAY;IACvB;AAEO,IAAA,OAAO,OAAO,CAAC,IAAsB,EAAE,KAAuB,EAAA;AACjE,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;IAC5E;AAEO,IAAA,OAAO,QAAQ,CAAC,IAAsB,EAAE,KAAuB,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,iBAAiB,CAAC;AAC9H,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,iBAAiB,CAAC;AACjI,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,cAAc,KAAK,eAAe;IAC7C;AAEO,IAAA,OAAO,SAAS,CAAC,IAAsB,EAAE,KAAuB,EAAA;AACnE,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;IAC7E;AAEO,IAAA,OAAO,QAAQ,CAAC,IAAsB,EAAE,KAAuB,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,OAAO,KAAK;QAChB;QACA,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;IACrD;AAEO,IAAA,OAAO,KAAK,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;QACxB,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,OAAO,KAAK;IAChB;AACH;;ACnCK,MAAO,kBAAmB,SAAQ,kBAAkB,CAAA;AAOtD,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAyC,EAAA;AACtD,QAAA,KAAK,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS;AAC3C,QAAA,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,EAAS,CAAC,GAAG,SAAS,GAAG,KAAK;AAC1D,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAChC;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;AAEA,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;IACrC;IAEA,IAAW,IAAI,CAAC,KAAyC,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;AAWA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAClD;IAWA,IACc,mBAAmB,CAAC,KAAmC,EAAA;QACjE,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;IAEA,IACc,gBAAgB,CAAC,KAAmC,EAAA;QAC9D,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA1EH,IAAA,CAAA,YAAY,GAAG,KAAK;;QAGlB,IAAA,CAAA,aAAa,GAAkB,IAAI;AA0BtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;QAmBrB,IAAA,CAAA,YAAY,GAA0B,KAAK;AAGlC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAoB;AAGlD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AAqBjD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC;IAC9F;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE;AAEU,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AACvC,QAAA,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS;QACrD,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAChC;AACA,QAAA,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;AACzD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC;IACJ;AAEQ,IAAA,gBAAgB,CAAC,KAA8B,EAAA;;;AAGnD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;IACnE;8GAvGS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,sQChBhD,syCA8BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfc,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,wFAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,+IAAE,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG7F,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;+BACI,cAAc,EAAA,OAAA,EAGf,CAAC,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAA,SAAA,EAC5F,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,syCAAA,EAAA;;sBAS3C;;sBAcA;;sBASA;;sBAGA;;sBAGA;;sBAGA;;sBAUA;;sBAGA;;sBAGA;;sBAGA,YAAY;uBAAC,OAAO;;sBASpB,SAAS;uBAAC,OAAO;;;AErEhB,MAAO,qBAAsB,SAAQ,kBAAkB,CAAA;AAmBzD,IAAA,IAAc,mBAAmB,GAAA;QAC7B,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;IACrF;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAyB,EAAA;AACtC,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAChC;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;AAEA,IAAA,IACW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;IACrC;IAEA,IAAW,MAAM,CAAC,KAAyB,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,QAAQ;IACpD;IAQA,IACc,mBAAmB,CAAC,KAAmC,EAAA;QACjE,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;IAEA,IACc,gBAAgB,CAAC,KAAmC,EAAA;QAC9D,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA5EH,IAAA,CAAA,UAAU,GAAG,KAAK;;QAEhB,IAAA,CAAA,aAAa,GAAkB,IAAI;QACtC,IAAA,CAAA,IAAI,GAAuB,QAAQ;QAGnC,IAAA,CAAA,OAAO,GAAG,CAAC;AA+CF,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAsB;AAGpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU;AAqBrD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC/F;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE;AAEU,IAAA,gBAAgB,CAAC,QAAmC,EAAA;AAC1D,QAAA,IAAI,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,KAAK,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,QAAQ,IAAI,SAAS;AACrH,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC5B,QAAA,KAAK,GAAG,KAAK,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5G,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC;IACJ;AAEQ,IAAA,gBAAgB,CAAC,KAAgC,EAAA;QACrD,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;;;AAG9B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB;QACJ;;;AAGA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,IAAI;IACtC;8GA7GS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,qQAFnB,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdhD,kiCA2BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDdc,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,qnBAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGnE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAGlB,CAAC,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,CAAC,aAClE,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,kiCAAA,EAAA;;sBAS3C;;sBAGA;;sBAGA;;sBAGA;;sBAOA;;sBAYA;;sBASA;;sBAUA;;sBAGA;;sBAGA,YAAY;uBAAC,OAAO;;sBASpB,SAAS;uBAAC,OAAO;;;ME9ET,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAmB;AAChD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAK/D,IAAA;IAHU,KAAK,CAAC,KAAa,EAAE,KAAc,EAAA;QACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9C;8GANS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA;;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACSK,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AAEjD,IAAA,WAAA,CACqB,YAA0B,EAAA;AAE3C,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,YAAY,GAAZ,YAAY;AAG7B,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAC1B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EACnF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjH;8GAbS,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAFZ,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/C,+MAIQ,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOA,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EAGV;wBACL;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,+MAAA,EAAA;;;AEEzC,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAClD,IAAA,WAAA,CACqB,YAA0B,EAAA;AAE3C,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,YAAY,GAAZ,YAAY;AAG7B,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAC1B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EACnF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjH;8GAXS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAFb,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/C,+MAIQ,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOA,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIN,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EAGX;wBACL;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,+MAAA,EAAA;;;AEKzC,MAAO,iBAAkB,SAAQ,mBAAmB,CAAA;AAC/B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AAUF,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE;IAC1B;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE;IAC1B;AAYA,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;IACrC;IAEA,IAAW,IAAI,CAAC,KAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;IAmCA,IACc,sBAAsB,CAAC,QAAyC,EAAA;QAC1E,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ;QAC/B,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,UAAU,EAAE;IACrB;IAEA,IACc,gBAAgB,CAAC,QAAyC,EAAA;QACpE,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ;QAC/B,IAAI,CAAC,UAAU,EAAE;IACrB;AAEA,IAAA,WAAA,CACqB,cAA8B,EAAA;AAE/C,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,cAAc,GAAd,cAAc;QAlG3B,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,aAAa,GAAG,KAAK;QA+BtB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAkBhB,IAAA,CAAA,OAAO,GAAG,EAAE;AAMH,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAsB;AAGpD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU;AAGvC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAiB;AAG3C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAiB;AAGzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS;AAGpC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAc;AAGrC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc;AAGtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc;AAGxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc;AAyCxC,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAoB,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxE,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAoB,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpE,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAClE,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/D,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACjE,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACrE,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QA1BpF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa;;AAEvG,aAAA,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;AACtC,QAAA,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3H;IAEU,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB;QACJ;QACA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa;QAChE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa;IACpE;IAUU,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB;QACJ;;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACxF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACpF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC1F,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAClF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACpF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACxF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;IAC9F;IAEU,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB;QACJ;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC3F,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACvF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC7F,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACrF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACvF,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC3F,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;IACjG;8GAhKS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFf,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBjD,ySAEA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDWQ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EAGb;wBACL,WAAW;wBACX;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,ySAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAa5C;;sBAGA;;sBACA,WAAW;uBAAC,gBAAgB;;sBAU5B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAU5B;;sBACA,WAAW;uBAAC,aAAa;;sBAGzB;;sBAGA;;sBAGA;;sBASA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA,YAAY;uBAAC,UAAU;;sBAQvB,SAAS;uBAAC,UAAU;;;AEnGnB,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAClD,IAAA,WAAA,CACqB,YAA0B,EAAA;AAE3C,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,YAAY,GAAZ,YAAY;AAG7B,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAC1B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EACnF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjH;8GAXS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAFb,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/C,+MAIQ,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOA,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIN,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EAGX;wBACL;AACH,qBAAA,EAAA,SAAA,EACU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,+MAAA,EAAA;;;MEPlC,qBAAqB,CAAA;AAEvB,IAAA,SAAS,CAAC,MAAmB,EAAA;QAChC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5E;8GAJS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,mBAAmB;AACxB,iBAAA;;;AC2BC,MAAO,cAAe,SAAQ,aAAa,CAAA;AACtB,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAY,aAAa;AACjC,QAAA,YAAY,EAAY,SAAS;AACjC,QAAA,SAAS,EAAY,oBAAoB;AACzC,QAAA,aAAa,EAAY;AAC5B,KAL8B,CAK7B;AA6BF,IAAA,IACc,YAAY,GAAA;QACtB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IAAc,YAAY,CAAC,KAAmC,EAAA;AAC1D,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE;YACrC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QACzD;IACJ;AAEA,IAAA,IACc,cAAc,GAAA;QACxB,OAAO,IAAI,CAAC,mBAAmB;IACnC;IAEA,IAAc,cAAc,CAAC,KAAiC,EAAA;AAC1D,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI;YACxC,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;YACzC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACjD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACjD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1G;IACJ;AAEA,IAAA,IACc,qBAAqB,GAAA;QAC/B,OAAO,IAAI,CAAC,0BAA0B;IAC1C;IAEA,IAAc,qBAAqB,CAAC,KAAwC,EAAA;AACxE,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK;AACvC,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI;YAC/C,IAAI,CAAC,0BAA0B,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;YAChD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACxD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACxD,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjH;IACJ;AAEA,IAAA,IACc,kBAAkB,GAAA;QAC5B,OAAO,IAAI,CAAC,uBAAuB;IACvC;IAEA,IAAc,kBAAkB,CAAC,KAAqC,EAAA;AAClE,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,uBAAuB,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI;YAC5C,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;YAC7C,IAAI,CAAC,uBAAuB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACrD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACrD,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9G;IACJ;AAEA,IAAA,IACc,iBAAiB,GAAA;QAC3B,OAAO,IAAI,CAAC,sBAAsB;IACtC;IAEA,IAAc,iBAAiB,CAAC,KAAoC,EAAA;AAChE,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;AACnC,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YAClD;YACA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7G;IACJ;AAEA,IAAA,IACc,eAAe,GAAA;QACzB,OAAO,IAAI,CAAC,oBAAoB;IACpC;IAEA,IAAc,eAAe,CAAC,KAAkC,EAAA;AAC5D,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YAChD;YACA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAClD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAClD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3G;IACJ;AAEA,IAAA,IACc,eAAe,GAAA;QACzB,OAAO,IAAI,CAAC,oBAAoB;IACpC;IAEA,IAAc,eAAe,CAAC,KAAkC,EAAA;AAC5D,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YAChD;YACA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAClD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAClD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3G;IACJ;AAEA,IAAA,IACc,cAAc,GAAA;QACxB,OAAO,IAAI,CAAC,mBAAmB;IACnC;IAEA,IAAc,cAAc,CAAC,KAAiC,EAAA;AAC1D,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACzC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YAC/C;YACA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACjD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACjD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1G;IACJ;AAEA,IAAA,IACc,iBAAiB,GAAA;QAC3B,OAAO,IAAI,CAAC,sBAAsB;IACtC;IAEA,IAAc,iBAAiB,CAAC,KAAoC,EAAA;AAChE,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;AACnC,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;YAC5C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7G;IACJ;AAEA,IAAA,IACc,iBAAiB,GAAA;QAC3B,OAAO,IAAI,CAAC,sBAAsB;IACtC;IAEA,IAAc,iBAAiB,CAAC,KAAoC,EAAA;AAChE,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;AACnC,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;YAC5C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7G;IACJ;AAEA,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;QACtD;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,KAAK;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK;QACpC;AACA,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,GAAG,KAAK;AACtC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,GAAG,KAAK;QAC3C;AACA,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,KAAK;AACnC,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK;QACvC;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,KAAK;QACrC;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,KAAK;QACrC;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK;QACpC;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK;QACvC;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK;QACvC;IACJ;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAyB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACjD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK;YACxC;AACK,iBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YACrD;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK;AAC/C,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK;YACtC;AACK,iBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YACnD;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK;AAC/C,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK;YACtC;AACK,iBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YACnD;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AAC9C,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK;YACrC;AACK,iBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YAClD;QACJ;IACJ;AAKA,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,IAAI,CAAC,KAAwB,EAAA;QACpC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IAC5C;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;AAC/B,QAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B;QACJ;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAKA,IACW,KAAK,CAAC,KAA+B,EAAA;AAC5C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;QAC3B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,SAAS,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;AAC5E,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACtB,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE;AACrE,YAAA,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,EAAE;YACpH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACxC;AACA,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;YACrB,IAAI,CAAC,cAAc,EAAE;QACzB;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC/B;aACK,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACrD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC7B;IACJ;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,KAAK;QAC/C;AACA,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK;QAC5C;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;QAC3C;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK;QACzC;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK;QACzC;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;QAC3C;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;QAC3C;IACJ;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,KAAK;QAC/C;AACA,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK;QAC5C;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;QAC3C;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK;QACzC;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK;QACzC;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK;QACxC;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK;QAC3C;IACJ;AAEA,IAAA,IAEW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACzC;AAEA,IAAA,IACW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,qBAAqB;IACrC;IAEA,IAAW,gBAAgB,CAAC,KAAc,EAAA;AACtC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;IACtC;AAEA,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC;AAEA,IAAA,IACW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAW,gBAAgB,CAAC,KAAkB,EAAA;QAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACnD;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAQA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QArcR,IAAA,CAAA,SAAS,GAAc,EAAE;QACzB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,qBAAqB,GAAG,IAAI;QAC5B,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,MAAM,GAAG,KAAK;QAEZ,IAAA,CAAA,eAAe,GAAG,KAAK;QACjB,IAAA,CAAA,MAAM,GAAgB,EAAE;AACrB,QAAA,IAAA,CAAA,QAAQ,GAAG,cAAc,CAAC,QAAQ;QAC7C,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,YAAY,GAAG,KAAK;QA0RlB,IAAA,CAAA,YAAY,GAAG,KAAK;AAwJd,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW;AAGzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAI7C,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5F;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;IAClC;8GAheS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAFZ,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiDzB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBd,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBrB,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBlB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAkBjB,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAkBf,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAkBf,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAkBd,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAejB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtNnC,wtBAiBA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDUI,aAAa,qFACb,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EAGV;wBACT,aAAa;wBACb;AACH,qBAAA,EAAA,SAAA,EACc,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,wtBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAqCtC,YAAY;uBAAC,cAAc;;sBAY3B,YAAY;uBAAC,cAAc;;sBAgB3B,YAAY;uBAAC,qBAAqB;;sBAgBlC,YAAY;uBAAC,kBAAkB;;sBAgB/B,YAAY;uBAAC,iBAAiB;;sBAkB9B,YAAY;uBAAC,eAAe;;sBAkB5B,YAAY;uBAAC,eAAe;;sBAkB5B,YAAY;uBAAC,cAAc;;sBAkB3B,YAAY;uBAAC,iBAAiB;;sBAe9B,YAAY;uBAAC,iBAAiB;;sBAe9B;;sBA0CA;;sBA6CA;;sBAGA;;sBACA,WAAW;uBAAC,YAAY;;sBAUxB;;sBAeA,WAAW;uBAAC,aAAa;;sBAGzB;;sBAsBA;;sBACA,WAAW;uBAAC,gBAAgB;;sBAoC5B;;sBACA,WAAW;uBAAC,gBAAgB;;sBAiC5B;;sBACA,WAAW;uBAAC,cAAc;;sBAS1B;;sBASA;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;sBASA;;sBASA;;sBASA;;sBAGA;;;AExdC,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAUlD,IAAA,IACW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe;IACnD;IAEA,IAAW,MAAM,CAAC,KAA6B,EAAA;;AAE3C,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC/C;aACK;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QAC5B;IACJ;AAEA,IAAA,IACW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,oBAAoB;IACpC;IAEA,IAAW,eAAe,CAAC,KAA4C,EAAA;AACnE,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;QACjC,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,0BAA0B,EAAE;QACjC,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACpD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC;gBAC1D,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,IAAI,CAAC,0BAA0B,EAAE;gBACjC,IAAI,CAAC,cAAc,EAAE;AACzB,YAAA,CAAC,CAAC;QACN;IACJ;AAEA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IACW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAW,gBAAgB,CAAC,KAAkB,EAAA;QAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,uBAAuB,EAAE;IAClC;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;AAC/B,QAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B;QACJ;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;AAQA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QAtFC,IAAA,CAAA,YAAY,GAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;QAGtH,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,mBAAmB,GAAmB,EAAE;AA0EhC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW;AAGzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAI7C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;aAC1B,aAAa,CAAC,QAAQ,CAAC;IAChC;AAEQ,IAAA,aAAa,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACnD;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC1F;IAEQ,0BAA0B,GAAA;AAC9B,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;AAC5E,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,IAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CACzB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAC9E,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CACzF,CAAC;IACV;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;IACzE;8GA/GS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAFjB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA2BtB,cAAc,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrDnC,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FD4BZ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,cAAA,EAGT,CAAC,eAAe,CAAC,OAAO,CAAC,EAAA,SAAA,EAC9B,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;sBAYtC;;sBAeA,eAAe;uBAAC,cAAc;;sBAqB9B;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBAUA;;sBAcA;;sBAGA;;;MEtGQ,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ;AACnD,QAAA,IAAA,CAAA,oBAAoB,GAAG,cAAc,CAAC,QAAQ,CAAC,YAAY;AAC3D,QAAA,IAAA,CAAA,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS;AACrD,QAAA,IAAA,CAAA,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC,aAAa;AA4CjF,IAAA;IAtCG,IACW,QAAQ,CAAC,KAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;IAC5C;IAEA,IACW,YAAY,CAAC,KAAe,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK;IAChD;IAEA,IACW,SAAS,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,cAAc,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK;IAC7C;IAEA,IACW,aAAa,CAAC,KAAe,EAAA;AACpC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,QAAA,cAAc,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK;IACjD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC3D,cAAc,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB;QAC5D;QACA,IAAI,IAAI,CAAC,mBAAmB,KAAK,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE;YACnE,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;QACpE;QACA,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC7D,cAAc,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB;QAC9D;QACA,IAAI,IAAI,CAAC,oBAAoB,KAAK,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE;YACrE,cAAc,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB;QACtE;IACJ;8GA/CS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,oMAFrB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAWA;;sBAMA;;sBAMA;;sBAMA;;;MC9BQ,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,kECP1B,+BACA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACI,QAAQ,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA;;;MEET,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAMoB,IAAA,CAAA,IAAI,GAAG,UAAU;AAEpC,IAAA;8GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACnB,iBAAA;;sBAGA,WAAW;uBAAC,YAAY;;;MCFhB,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAMoB,IAAA,CAAA,IAAI,GAAG,GAAG;AAE7B,IAAA;8GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACnB,iBAAA;;sBAGA,WAAW;uBAAC,YAAY;;;MCAhB,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,oECP5B,+BACA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACI,UAAU,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA;;;MEEX,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;QAMuB,IAAA,CAAA,IAAI,GAAG,UAAU;AAEvC,IAAA;8GALY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACrB,iBAAA;;sBAGA,WAAW;uBAAC,YAAY;;;MCAhB,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,kECP1B,+BACA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACI,QAAQ,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA;;;MEET,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAMoB,IAAA,CAAA,IAAI,GAAG,UAAU;AAEpC,IAAA;8GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACnB,iBAAA;;sBAGA,WAAW;uBAAC,YAAY;;;MCGhB,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;AAaoB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAiC,SAAS,4CAAI,KAAK,EAAE,YAAY,EAAA,CAAA,GAAA,CAArB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAC;AACpF,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAA4B,SAAS,6CAAI,KAAK,EAAE,cAAc,EAAA,CAAA,GAAA,CAAvB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAC;AAClF,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAA4B,SAAS,6CAAI,KAAK,EAAE,cAAc,EAAA,CAAA,GAAA,CAAvB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAC;AAE/E,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,8DAAC;AACrF,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,8DAAC;AAC3G,IAAA;AAX0B,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG;AAC7B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc;AACxD,KAH6B,CAG5B;8GAJO,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACF,wBAAA,oBAAoB,EAAE,sBAAsB;AAC5C,wBAAA,oBAAoB,EAAE,sBAAsB;AAC/C;AACJ,iBAAA;;;ACAK,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAE9C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,sCAAsC,CAAC;IACtE;8GALS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAFb,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCP3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA,CAAA;;2FDSZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,aAGT,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA;;;MEL9B,cAAc,CAAA;AAE1B;;MCCY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAIoB,IAAA,CAAA,aAAa,GAA2B,EAAE;QAC1C,IAAA,CAAA,eAAe,GAA2B,EAAE;AAC/D,IAAA;8GAHY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;2FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCEY,2BAA2B,CAAA;IACpC,WAAA,CACqB,WAA0B,EAC1B,QAA8B,EAAA;QAD9B,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAEzB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxD;8GANS,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACnC,iBAAA;;;ACOL;MACa,mBAAmB,CAAA;AAThC,IAAA,WAAA,GAAA;AAWoB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,cAAc,EAAE;AAChD,IAAA;8GAHY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbhC,gGAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDMQ,2BAA2B,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAItB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAGhB;wBACL;AACH,qBAAA,EAAA,QAAA,EAAA,gGAAA,EAAA;;;MENQ,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAEY,IAAA,CAAA,YAAY,GAAG,IAAI;QACV,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,YAAY,CAAC;AACjE,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAWhE,IAAA;AATG,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;AAEO,IAAA,GAAG,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC;8GAZS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACsBK,MAAO,aAAc,SAAQ,mBAAmB,CAAA;AAC3B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AAkBF,IAAA,IAAc,OAAO,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO;IACxC;AAEA,IAAA,IAAc,aAAa,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,SAAS;IACxC;AAEA,IAAA,IACW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,oBAAoB;IACpC;IAEA,IAAc,eAAe,CAAC,KAA4C,EAAA;QACtE,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;QACjC,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;gBAC7C,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,uBAAuB,EAAE;AAClC,YAAA,CAAC,CAAC;QACN;IACJ;AAEA,IAAA,IACW,qBAAqB,GAAA;QAC5B,OAAO,IAAI,CAAC,0BAA0B;IAC1C;IAEA,IAAc,qBAAqB,CAAC,KAAiD,EAAA;QACjF,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK;QACvC,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;gBACnD,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,uBAAuB,EAAE;AAClC,YAAA,CAAC,CAAC;QACN;IACJ;AAoBA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IAEW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,KAAK,CAAC,KAAkB,EAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxC;AAEA,IAAA,IAEW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAKA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,CAAU,EAAA;;IAE7B;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,IACW,kBAAkB,GAAA;QACzB,OAAO,IAAI,CAAC,uBAAuB;IACvC;IAEA,IAAW,kBAAkB,CAAC,KAAa,EAAA;AACvC,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;QACpC,IAAI,CAAC,6BAA6B,EAAE;IACxC;AAEA,IAAA,IACW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAW,gBAAgB,CAAC,KAAkB,EAAA;QAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,uBAAuB,EAAE;IAClC;AAQA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QAjKC,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrE,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAKpF,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,OAAO,GAAG,KAAK;QACf,IAAA,CAAA,YAAY,GAAG,KAAK;AACX,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAQ;QAChD,IAAA,CAAA,uBAAuB,GAAG,IAAI;QAE9B,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAkE3B,IAAA,CAAA,UAAU,GAAG,KAAK;AA0ET,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAGjC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAIvD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;IACtE;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnH,IAAI,CAAC,6BAA6B,EAAE;IACxC;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;QACvC;IACJ;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,kBAAkB,GAAG;gBACtB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AAC9F,gBAAA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE;aAC/G;QACL;IACJ;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;QACvC;IACJ;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG;gBACtB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AACpG,gBAAA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE;aACrH;QACL;IACJ;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;IACjC;IAEQ,6BAA6B,GAAA;AACjC,QAAA,IAAI,CAAC,sBAAsB,EAAE,WAAW,EAAE;QAC1C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACrD,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAExF,QAAA,KAAK,CAAC,CAAC,CAAC,CACX,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC/C;IAEQ,cAAc,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;AAC3H,QAAA,MAAM,OAAO,GAAG,CAAC,QAAQ;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO;AAC3B,YAAA,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,OAAO,CAAC;;AAEzC,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD;IACJ;IAEO,iBAAiB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QACnE;aACK;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACtB;IACJ;AAEU,IAAA,QAAQ,CAAC,KAAkB,EAAA;QACjC,KAAK,CAAC,cAAc,EAAE;;IAE1B;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACtF,QAAA,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAChG;8GA1PS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,+jBAFX,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAgC5B,cAAc,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,SAAA,EAoBd,mBAAmB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAV,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3ExC,4oCAyBA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNI,aAAa,qKACb,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKJ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,OAAA,EAGT;wBACT,aAAa;wBACb;qBACH,EAAA,cAAA,EACmB,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA,SAAA,EAC/B,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,4oCAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAgC5C,eAAe;uBAAC,cAAc;;sBAoB9B,eAAe;uBAAC,mBAAmB;;sBAoBnC;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBACA,WAAW;uBAAC,aAAa;;sBASzB;;sBACA,WAAW;uBAAC,eAAe;;sBAS3B;;sBAGA;;sBASA;;sBASA;;sBAUA;;sBAUA;;sBAGA;;;MEpLQ,qBAAqB,CAAA;IAC9B,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,aAAa,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QACvC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACrD;8GALS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,6GAFpB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAEA;;;ACIC,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAK9C,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ;IAC1C;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3D;AAEA,IAAA,IAEW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAEW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACvC;AAMA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AArCM,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACtD,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,MAAM,GAAG,KAAK;QAgCf,IAAA,CAAA,GAAG,GAAG,KAAK;AAId,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;AACpC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACnC;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9I;8GA9CS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,sOAFb,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAW,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAE9B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,cAAc,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC3C,oBAAA,SAAS,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS;AACzC,iBAAA;;sBAcI;;sBACA,WAAW;uBAAC,gBAAgB;;sBAS5B;;sBACA,WAAW;uBAAC,YAAY;;sBASxB;;sBACA,WAAW;uBAAC,WAAW;;;ACjCtB,MAAO,aAAc,SAAQ,aAAa,CAAA;AAS5C,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;IACrD;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;IAC/C;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAoC,EAAA;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,CAAA,OAAA,CAAS,GAAG,SAAS,CAAC;IAC9F;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;IACrD;AAEA,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7C;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAA4B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,MAAA,CAAQ,GAAG,SAAS,CAAC;IACnE;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;IAChD;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA9EH,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,YAAY,GAAG,KAAK;QAEpB,IAAA,CAAA,aAAa,GAAG,KAAK;AA0EzB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU;aAChG,aAAa,CAAC,MAAM,CAAC;IAC9B;8GAnFS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAFX,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCX3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDaZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,aAGP,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAWtC;;sBAUA;;sBAUA;;sBAUA;;sBAUA;;sBAUA;;sBAUA;;;AErEC,MAAO,aAAc,SAAQ,mBAAmB,CAAA;AAClD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;IAC5D;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1H;8GATS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAFX,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,oICXjD,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDaZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,cAAA,EAGF,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA,SAAA,EAC/B,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;AEK3C,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAUrD,IAAA,IACW,OAAO,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM;IACvB;AAKA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAlBQ,QAAA,IAAA,CAAA,QAAQ,GAAG,gBAAgB,CAAC,QAAQ;QAGhD,IAAA,CAAA,SAAS,GAAG,IAAI;QAIhB,IAAA,CAAA,MAAM,GAAG,KAAK;AAQL,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;QAI5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;IACpD;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1H;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACrB;8GA/BS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAFd,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdjD,mLAIA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQI,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIJ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EAGZ;wBACT;AACH,qBAAA,EAAA,SAAA,EACc,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,mLAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;;sBAK5C;;sBAGA;;sBACA,WAAW;uBAAC,cAAc;;sBAG1B,WAAW;uBAAC,eAAe;;sBAK3B;;;MEzBQ,mBAAmB,CAAA;aACL,IAAA,CAAA,YAAY,GAA6C,EAA7C,CAAgD;IAE5E,QAAQ,CAAC,IAA2B,EAAE,IAAY,EAAA;QACrD,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;QACnE;AACA,QAAA,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI;IACjD;AAEO,IAAA,GAAG,CAAC,IAAwB,EAAA;AAC/B,QAAA,OAAO,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS;IACpE;8GAZS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCOY,6BAA6B,CAAA;AAN1C,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACjD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAiD/D,IAAA;AAvCG,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IACW,OAAO,CAAC,KAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;AACnE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,WAAW;QACzC;QACA,IAAI,CAAC,eAAe,EAAE;IAC1B;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IACW,IAAI,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK;QAC3C;IACJ;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACpC;QACJ;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;QACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;IAC/C;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;IAChC;8GAlDS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,yLCZ1C,sFAGA,EAAA,MAAA,EAAA,CAAA,qCAAA,CAAA,EAAA,CAAA,CAAA;;2FDSa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,WAGnB,EAAE,EAAA,QAAA,EAAA,sFAAA,EAAA,MAAA,EAAA,CAAA,qCAAA,CAAA,EAAA;;sBAWV,WAAW;uBAAC,eAAe;;sBAO3B;;sBAcA;;;AEVC,MAAO,4BAA6B,SAAQ,aAAa,CAAA;AAU3D,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAqB,EAAA;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,aAAa,EAAE;IACxB;AAKA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAEW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACzC;AAEA,IAAA,IAAc,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,IAAI;IACpB;AAEA,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE;IAC/B;IAEA,IAAW,IAAI,CAAC,KAA8B,EAAA;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,aAAa,EAAE;IACxB;AAKA,IAAA,WAAA,CACI,eAAgC,EAAA;QAEhC,KAAK,CAAC,KAAK,CAAC;QApDR,IAAA,CAAA,QAAQ,GAAG,KAAK;QAEP,IAAA,CAAA,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;AAC/F,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAiD;AACpE,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,GAAG,EAAuC;AAC9D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAU;QAC/C,IAAA,CAAA,aAAa,GAAmB,EAAE;QAClC,IAAA,CAAA,SAAS,GAA4B,EAAE;AAa/B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;QA2BrD,IAAA,CAAA,WAAW,GAA0B,EAAE;QAM1C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC3C,QAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACpE;IAEO,SAAS,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzE;IACJ;AAEU,IAAA,OAAO,CAAC,UAAkB,EAAA;QAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;QACvD,IAAI,gBAAgB,EAAE;AAClB,YAAA,OAAO,gBAAgB;QAC3B;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAA4B,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;AACtD,QAAA,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK;AACrC,SAAA,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE;IACjC;AAEU,IAAA,QAAQ,CAAC,QAA6B,EAAA;AAC5C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QACpE,IAAI,gBAAgB,EAAE;AAClB,YAAA,OAAO,gBAAgB;QAC3B;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAkB,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;YACxC,IAAI,EAAE,IAAI,IAAG;AACT,gBAAA,MAAM,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,aAAa,CAAU,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC9J,OAAO,CAAC,IAAI,CAAC;AACT,oBAAA,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1C,oBAAA,GAAG,MAAM;AACT,oBAAA,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY;AAC7C,iBAAA,CAAC;YACN,CAAC;YACD,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK;AACrC,SAAA,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE;IACjC;AAEU,IAAA,SAAS,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;IACpC;IAEQ,aAAa,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC9B;QACJ;AACA,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAA6B,EAAE;YACtD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE;gBACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,YAAY;YACrD;QACJ;IACJ;AAEQ,IAAA,MAAM,CAAC,KAA8B,EAAE,KAAwB,EAAE,cAAuB,EAAA;AAC5F,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC;QACA,IAAI,cAAc,EAAE;YAChB,IAAI,MAAM,GAAG,cAAc;YAC3B,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC;AAChE,YAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;gBACvC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACxC,oBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnD,oBAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAW,CAAC;gBACpE;YACJ;AACA,YAAA,OAAO,MAAM;QACjB;AACA,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7C;AAEQ,IAAA,YAAY,CAAC,MAAmC,EAAA;QACpD,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,OAAO,EAAE;QACb;AACA,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxB,YAAA,KAAK,CAAC,KAAK,KAAK,SAAS;QAC7B;AACA,QAAA,OAAO,MAAM;IACjB;AAEU,IAAA,MAAM,CAAC,OAAqB,EAAA;AAClC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,EAAE;AACjC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,6BAAA,CAA+B,CAAC;IAC1E;AAEU,IAAA,SAAS,CAAC,OAAqB,EAAA;AACrC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE;AACpC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,gCAAA,CAAkC,CAAC;IAC7E;AAEU,IAAA,KAAK,CAAC,OAAqB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;AAChC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,4BAAA,CAA8B,CAAC;IACzE;AAEU,IAAA,SAAS,CAAC,OAAqB,EAAA;AACrC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE;AACpC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,gCAAA,CAAkC,CAAC;IAC7E;AAEU,IAAA,OAAO,CAAC,OAAqB,EAAA;AACnC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE;AAClC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,8BAAA,CAAgC,CAAC;IAC3E;AAEU,IAAA,MAAM,CAAC,OAAqB,EAAA;AAClC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,EAAE;AACjC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,6BAAA,CAA+B,CAAC;IAC1E;AAEU,IAAA,OAAO,CAAC,OAAqB,EAAA;AACnC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE;AAClC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,8BAAA,CAAgC,CAAC;IAC3E;AAEU,IAAA,KAAK,CAAC,OAAqB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;AAChC,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,4BAAA,CAA8B,CAAC;IACzE;AAEU,IAAA,QAAQ,CAAC,OAAqB,EAAA;QACpC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,EAAE;AAC7I,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,+BAAA,CAAiC,CAAC;IAC5E;AAEU,IAAA,OAAO,CAAC,OAAqB,EAAA;AACnC,QAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;AAC9L,YAAA,OAAO,OAAO;QAClB;QACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,WAAW,CAAA,4BAAA,CAA8B,CAAC;IACzE;8GAnNS,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAF1B,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDC9B3C,q9KA0HA,EAAA,MAAA,EAAA,CAAA,0DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1Fa,4BAA4B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAH3B,cAAc,iQAAE,cAAc,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,mRAAE,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,6GAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,mPAAE,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,oDAAE,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,6BAA6B,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,uFAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG9S,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,WAG1B,CAAC,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,eAAe,EAAE,SAAS,CAAC,EAAA,SAAA,EAC7S,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,q9KAAA,EAAA,MAAA,EAAA,CAAA,0DAAA,CAAA,EAAA;;sBAYtC;;sBAUA;;sBAOA;;sBACA,WAAW;uBAAC,cAAc;;sBAS1B;;sBAUA;;;ME1DQ,qBAAqB,CAAA;AAXlC,IAAA,WAAA,GAAA;AAYqB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAW;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAU;AAC/C,QAAA,IAAA,CAAA,WAAW,GAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,IAAA,CAAA,SAAS,GAA4B,EAAE;QACxC,IAAA,CAAA,WAAW,GAA0B,EAAE;AA2B9B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AAGlD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAW/D,IAAA;AAvCG,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,MAAM,CAAC,KAA6B,EAAA;QAC3C,IAAI,CAAC,WAAW,GAAG,KAAK,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChD;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IACW,IAAI,CAAC,KAAoC,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,KAAK,EAAE;YACR,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE;gBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/C,YAAA,CAAC,CAAC;QACN;IACJ;IAQA,IACc,kBAAkB,CAAC,KAAqC,EAAA;QAClE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,QAAA,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE;AAEU,IAAA,SAAS,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;IACpC;8GA7CS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EAqCb,mBAAmB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1DxC,iOAIA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDWI,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,QAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,4BAA4B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGJ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAGlB;wBACT,aAAa;wBACb,4BAA4B;wBAC5B,aAAa;wBACb;AACH,qBAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA;;sBASI;;sBAaA;;sBAWA;;sBAGA;;sBAGA,eAAe;uBAAC,mBAAmB;;;AEvDxC;;AAEG;AACG,SAAU,WAAW,CAAC,IAAY,EAAA;IACpC,IAAI,CAAC,IAAI,EAAE;AACP,QAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;IAC5D;AACA,IAAA,IAAI,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,kCAAkC,CAAC;IAC/E;AACA,IAAA,OAAO,UAAU,WAAsB,EAAA;AACnC,QAAA,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW;AACxD,IAAA,CAAC;AACL;;ACZM,SAAU,kBAAkB,CAC9B,IAA2B,EAAE,IAAY,EAAA;IAEzC,IAAI,CAAC,IAAI,EAAE;AACP,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;IACzD;AACA,IAAA,IAAI,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,wBAAwB,CAAC;IACrE;AACA,IAAA,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI;AAC7C,IAAA,OAAO,wBAAwB,CAAC,EAAE,CAAC;AACvC;;MCRa,uBAAuB,CAAA;IAChC,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QACzC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACvD;8GALS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,+GAFtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAEA;;;ACKC,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAP7D,IAAA,WAAA,GAAA;;AAQqB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,OAAO,EAAU;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAY;QACjD,IAAA,CAAA,gBAAgB,GAAG,IAAI;QACtB,IAAA,CAAA,0BAA0B,GAAG,KAAK;AA+B1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE;AAGlE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AA6C7D,IAAA;IA3DG,IACW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD;IAEA,IACW,uBAAuB,CAAC,KAAkB,EAAA;QACjD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3D;AAQU,IAAA,QAAQ,CAAC,QAAyB,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YACnB;QACJ;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,0BAA0B,EAAE;YAC1D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B;IACJ;AAEQ,IAAA,WAAW,CAAC,IAAU,EAAA;AAC1B,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;AACzB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;YACjB,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/C,QAAA,CAAC;AACD,QAAA,KAAK,CAAC,MAAM,GAAG,MAAK;YAChB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;YACrC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;AACxC,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK;AACtC,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,gBAAA,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK;YAC/B;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,gBAAA,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK;YACjC;AACA,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK;AACtC,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;YACtB,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,UAAU,IAAI,CAAC;YACrC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,IAAI,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACvC,YAAA,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC;YAC7D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1D,QAAA,CAAC;AACD,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;IAC9B;8GAlFS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAFlB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,iDCXjD,6ZASA,EAAA,MAAA,EAAA,CAAA,oTAAA,CAAA,EAAA,CAAA,CAAA;;2FDIa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACI,gBAAgB,EAAA,OAAA,EAGjB,EAAE,EAAA,SAAA,EACA,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,6ZAAA,EAAA,MAAA,EAAA,CAAA,oTAAA,CAAA,EAAA;;sBAQ5C;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAKA;;sBAKA;;sBAGA;;;MEvCQ,kBAAkB,CAAA;AAR/B,IAAA,WAAA,GAAA;AASoB,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;AAatE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAS;AAErD,IAAA;AAVG,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,SAAS;IACvD;8GARS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX/B,iLAIA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIQ,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,OAAA,EAGf;wBACL;AACH,qBAAA,EAAA,QAAA,EAAA,iLAAA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA;;sBAKA,SAAS;uBAAC,OAAO;;sBAOjB;;sBAGA;;;AETC,MAAO,kBAAmB,SAAQ,kBAAkB,CAAA;AAMtD,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAyC,EAAA;AACtD,QAAA,KAAK,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS;AAC3C,QAAA,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,EAAS,CAAC,GAAG,SAAS,GAAG,KAAK;AAC1D,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAChC;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;AAEA,IAAA,IACW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;IACrC;IAEA,IAAW,IAAI,CAAC,KAAyC,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;IAiBA,IACc,mBAAmB,CAAC,KAAmC,EAAA;QACjE,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;IAEA,IACc,gBAAgB,CAAC,KAAmC,EAAA;QAC9D,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;;QA1DD,IAAA,CAAA,aAAa,GAAkB,IAAI;AA0BtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AASZ,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAoB;AAGlD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AAqBjD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC;IACxE;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE;AAEU,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU;QAC9E,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;QAClC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,QAAA,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;QACzD,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,KAAK,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC;IACJ;AAEQ,IAAA,gBAAgB,CAAC,KAA8B,EAAA;;;QAGnD,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI;IACpF;8GAzFS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,oNAFhB,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbhD,0oCA2BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfc,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,yFAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGnE,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WAGf,CAAC,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,aAClE,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,0oCAAA,EAAA;;sBAQ3C;;sBAcA;;sBASA;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAGA,YAAY;uBAAC,OAAO;;sBASpB,SAAS;uBAAC,OAAO;;;ME7DT,sBAAsB,CAAA;IAE/B,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC5C,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1D;8GANS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8GAFrB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAGA;;;MCAQ,8BAA8B,CAAA;AAJ3C,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,oBAAoB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,YAAY;AACnE,QAAA,IAAA,CAAA,wBAAwB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB;AAwB/F,IAAA;IApBG,IACW,YAAY,CAAC,KAAe,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,sBAAsB,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK;IACxD;IAEA,IACW,gBAAgB,CAAC,KAAe,EAAA;AACvC,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,QAAA,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAK;IAC5D;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,mBAAmB,KAAK,sBAAsB,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC3E,sBAAsB,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;QAC5E;QACA,IAAI,IAAI,CAAC,uBAAuB,KAAK,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACnF,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,wBAAwB;QACpF;IACJ;8GAzBS,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,qKAF7B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAOA;;sBAMA;;;MCLQ,eAAe,CAAA;aACD,IAAA,CAAA,QAAQ,GAAG,EAAE,QAAQ,EAAY,MAAM,EAAE,YAAY,EAAY,SAAS,EAAlE,CAAqE;AAYpG,IAAA,IAAW,aAAa,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa;IAC3C;AAEA,IAAA,IAAW,eAAe,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe;IAC7C;AAEA,IAAA,WAAA,CACqB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;AApBf,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,QAAQ;QAG/C,IAAA,CAAA,aAAa,GAAG,KAAK;IAmB5B;8GAxBS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB5B,whBAgBA,EAAA,MAAA,EAAA,CAAA,6RAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFc,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEnF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACI,UAAU,EAAA,OAAA,EAGX,CAAC,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,whBAAA,EAAA,MAAA,EAAA,CAAA,6RAAA,CAAA,EAAA;;sBAM5F;;sBAGA;;sBAGA;;;MEjBQ,uBAAuB,CAAA;AAJpC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ;AACpD,QAAA,IAAA,CAAA,oBAAoB,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY;AAwBhF,IAAA;IApBG,IACW,QAAQ,CAAC,KAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;IAC7C;IAEA,IACW,YAAY,CAAC,KAAe,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,eAAe,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK;IACjD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC5D,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB;QAC7D;QACA,IAAI,IAAI,CAAC,mBAAmB,KAAK,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE;YACpE,eAAe,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;QACrE;IACJ;8GAzBS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,6IAFtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAOA;;sBAMA;;;ACrBE,MAAM,kBAAkB,GAAG,IAAI,GAAG;AAEnC,SAAU,QAAQ,CAAC,GAAW,EAAE,QAAiB,EAAA;IACnD,OAAO,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,GAAG;AACzD;;MCMa,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;AAQqB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,8CAAU;AASjD,IAAA;IAPU,QAAQ,GAAA;AACX,QAAA,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;IACjF;IAEO,eAAe,GAAA;AAClB,QAAA,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;IACjF;8GAVS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,mMCV9B,oBACA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDSa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EACb,EAAE,EAAA,eAAA,EAGM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA;;;AEA5C,MAAM,mBAAmB,GAAG,SAAS;AACrC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAAiC,OAAO,EAAE,IAAI,KAAK,mBAAmB;AAQzH,MAAM,mBAAmB,GAAG,SAAS;AACrC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAAiC,OAAO,EAAE,IAAI,KAAK,mBAAmB;AAQzH,MAAM,mBAAmB,GAAG,SAAS;AACrC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAAiC,OAAO,EAAE,IAAI,KAAK,mBAAmB;AAQzH,MAAM,mBAAmB,GAAG,SAAS;AACrC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAAiC,OAAO,EAAE,IAAI,KAAK,mBAAmB;AAQzH,MAAM,mBAAmB,GAAG,SAAS;AACrC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAAiC,OAAO,EAAE,IAAI,KAAK,mBAAmB;AAQzH,MAAM,mBAAmB,GAAG,SAAS;AACrC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAAiC,OAAO,EAAE,IAAI,KAAK,mBAAmB;;AC7CzH,MAAM,qBAAqB,GAAG,YAAY;AAC1C,MAAM,mBAAmB,GAAG,CAAC,OAAwB,KAAmC,OAAO,EAAE,IAAI,KAAK,qBAAqB;;ACH/H,MAAM,qBAAqB,GAAG,WAAW;AACzC,MAAM,mBAAmB,GAAG,CAAC,OAAwB,KAAmC,OAAO,EAAE,IAAI,KAAK,qBAAqB;;ACR/H,MAAM,IAAI,GAAG,CAAI,KAAQ,KAAQ;;ACOjC,MAAM,gBAAgB,GAAG,MAAM;AAC/B,MAAM,cAAc,GAAG,CAAC,OAAwB,KAA8B,OAAO,EAAE,IAAI,KAAK,gBAAgB;;ACAhH,MAAM,iBAAiB,GAAG,OAAO;AACjC,MAAM,eAAe,GAAG,CAAC,OAAwB,KAA+B,OAAO,EAAE,IAAI,KAAK,iBAAiB;;ACDnH,MAAM,gBAAgB,GAAG,MAAM;AAC/B,MAAM,cAAc,GAAG,CAAC,OAAwB,KAA8B,OAAO,EAAE,IAAI,KAAK,gBAAgB;;ACFhH,MAAM,kBAAkB,GAAG,QAAQ;AACnC,MAAM,gBAAgB,GAAG,CAAC,OAAwB,KAAgC,OAAO,EAAE,IAAI,KAAK,kBAAkB;;ACDtH,MAAM,gBAAgB,GAAG,MAAM;AAC/B,MAAM,cAAc,GAAG,CAAC,OAAwB,KAA8B,OAAO,EAAE,IAAI,KAAK,gBAAgB;;ACDhH,MAAM,yBAAyB,GAAG,eAAe;AACjD,MAAM,uBAAuB,GAAG,CAAC,OAAwB,KAAuC,OAAO,EAAE,IAAI,KAAK,yBAAyB;;ACD3I,MAAM,gBAAgB,GAAG,MAAM;AAC/B,MAAM,cAAc,GAAG,CAAC,OAAwB,KAA8B,OAAO,EAAE,IAAI,KAAK,gBAAgB;;ACChH,MAAM,yBAAyB,GAAG,gBAAgB;AAClD,MAAM,uBAAuB,GAAG,CAAC,OAAwB,KAAuC,OAAO,EAAE,IAAI,KAAK,yBAAyB;;ACJ3I,MAAM,iBAAiB,GAAG,OAAO;AACjC,MAAM,iBAAiB,GAAG,CAAC,OAAwB,KAA+B,OAAO,EAAE,IAAI,KAAK,iBAAiB;;ACOrH,MAAM,gBAAgB,GAAG,MAAM;AAC/B,MAAM,cAAc,GAAG,CAAC,OAAwB,KAA8B,OAAO,EAAE,IAAI,KAAK,gBAAgB;;MCS1G,cAAc,CAAA;AAIvB,IAAA,WAAA,GAAA;QAHiB,IAAA,CAAA,YAAY,GAA0B,EAAE;QACxC,IAAA,CAAA,aAAa,GAA2B,EAAE;QAGvD,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAuB;AACpD,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,4BAA4B;AACnC,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAuB;AACpD,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,4BAA4B;AACnC,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAuB;AACpD,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,4BAA4B;AACnC,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAuB;AACpD,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,4BAA4B;AACnC,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAuB;AACpD,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,4BAA4B;AACnC,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAuB;AACpD,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,yDAAyD;AAChE,YAAA,OAAO,EAAE,CAAC,MAAuB,MAAyB;AACtD,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;AACrC,gBAAA,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,OAAO,EAAE,OAA0B;AAC/B,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,oCAAoC;YAC3C,OAAO,EAAE,CAAC,MAAuB,EAAE,IAA8B,MAA6B;AAC1F,gBAAA,IAAI,EAAE,yBAAyB;AAC/B,gBAAA,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC7B,IAAI;AACJ,gBAAA,OAAO,EAAE;aACZ;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,8BAA8B;AACrC,YAAA,OAAO,EAAE,OAAsB;AAC3B,gBAAA,IAAI,EAAE;aACT;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC;AACrB,YAAA,KAAK,EAAE,kCAAkC;YACzC,OAAO,EAAE,CAAC,MAAuB,EAAE,CAAC,EAAE,QAAQ,KAA8B;AACxE,gBAAA,MAAM,IAAI,GAAqB;AAC3B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD;AACD,gBAAA,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC1B,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,oBAAA,OAAO,SAAS;gBACpB;gBACA,OAAO;AACH,oBAAA,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC;AAC3C,oBAAA,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,CAAC,IAAI,CAAC;AACb,oBAAA,OAAO,EAAE;iBACZ;YACL;AACH,SAAA,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,+BAA+B;AACtC,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAe;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM;iBAC/B,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,yCAAyC;AAChD,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAgB;AAChB,oBAAA,IAAI,EAAE,iBAAiB;oBACvB,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE;oBACjC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI;iBAClC,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,2CAA2C;AAClD,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAe;AACf,oBAAA,IAAI,EAAE,gBAAgB;oBACtB,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE;AACjC,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,+BAA+B;AACtC,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAiB;AACjB,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,6BAA6B;AACpC,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAiB;AACjB,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,mCAAmC;AAC1C,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAe;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,+BAA+B;AACtC,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAe;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC;AACtB,YAAA,KAAK,EAAE,+BAA+B;AACtC,YAAA,OAAO,EAAE,CAAC,MAAuB,KAAwB;AACrD,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAwB;AACxB,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;iBACvD,CAAC;gBACF,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9C;AACJ,SAAA,CAAC;IAEN;AAEO,IAAA,mBAAmB,CAAC,MAA2B,EAAA;AAClD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAClC;AAEO,IAAA,oBAAoB,CAAC,MAA4B,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC;AAEO,IAAA,iBAAiB,CAAC,SAAwB,EAAA;AAC7C,QAAA,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;IACvC;AAEO,IAAA,KAAK,CAAC,KAAa,EAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAsB,EAAE;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AACtC,YAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAChC,gBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAoB;AAClC,oBAAA,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC;AAC1C,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC,CAAC;YACP;AACA,YAAA,OAAO,QAAQ;QACnB;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;IACvC;AAEQ,IAAA,SAAS,CAAC,KAAa,EAAA;QAC3B,MAAM,IAAI,GAA4B,EAAE;QACxC,MAAM,KAAK,GAAG,0CAA0C;QACxD,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,OAAO,KAAK,EAAE;YACV,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;AAC/D,YAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B;AACA,QAAA,OAAO,IAAI;IACf;IAEQ,UAAU,CAAC,IAAY,EAAE,IAA6B,EAAA;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,MAAM,QAAQ,GAAsB,EAAE;AACtC,QAAA,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;AACpB,YAAA,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE;YACtB,IAAI,MAAM,GAAG,KAAK;AAClB,YAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;gBACpC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,IAAI,WAAW,EAAE;AACb,oBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAChF,IAAI,OAAO,EAAE;AACT,wBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC1B;oBACA,MAAM,GAAG,IAAI;oBACb;gBACJ;YACJ;YACA,IAAI,CAAC,MAAM,EAAE;gBACT,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC5C;YACA,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI;QAClD;AACA,QAAA,OAAO,QAAQ;IACnB;AAEQ,IAAA,WAAW,CAAC,IAAwB,EAAA;QACxC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9B;QACA,MAAM,QAAQ,GAAsB,EAAE;AACtC,QAAA,IAAI,WAAwC;AAC5C,QAAA,IAAI,WAA6C;AACjD,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,YAAA,IAAI,WAAW,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;gBACzE,WAAW,GAAG,WAAW;gBACzB,WAAW,GAAG,MAAM;YACxB;QACJ;AACA,QAAA,IAAI,WAAW,IAAI,WAAW,EAAE;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD;aAAO;AACH,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE;AACA,QAAA,OAAO,QAAQ;IACnB;8GA3RS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACfM,MAAM,qBAAqB,GAAG,WAAW;AACzC,MAAM,mBAAmB,GAAG,CAAC,OAAwB,KAAmC,OAAO,EAAE,IAAI,KAAK,qBAAqB;;MCiBzH,yBAAyB,CAAA;AANtC,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACxC,IAAA,CAAA,QAAQ,GAAG,EAAE;QACX,IAAA,CAAA,QAAQ,GAAsB,EAAE;QACvB,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;QAC7C,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;QACzC,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;QACzC,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;QACzC,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;QACzC,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;QACzC,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;QACzC,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;QAC7C,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;QAC7C,IAAA,CAAA,yBAAyB,GAAG,yBAAyB;QACrD,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;QACnC,IAAA,CAAA,iBAAiB,GAAG,iBAAiB;QACrC,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;QACnC,IAAA,CAAA,kBAAkB,GAAG,kBAAkB;QACvC,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;QACnC,IAAA,CAAA,yBAAyB,GAAG,yBAAyB;QACrD,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;QACnC,IAAA,CAAA,iBAAiB,GAAG,iBAAiB;QACrC,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;AAuFzD,IAAA;AArFG,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,KAAK,CAAC,KAAyB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;YACR;QACJ;QACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5C;AAEU,IAAA,SAAS,CAAC,QAAY,EAAA;AAC5B,QAAA,OAAO,QAAQ;IACnB;AAEU,IAAA,UAAU,CAAC,OAAwB,EAAA;AACzC,QAAA,OAAO,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC7D;AAEU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC3D;AAEU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC3D;AAEU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC3D;AAEU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC3D;AAEU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC3D;AAEU,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC3D;AAEU,IAAA,UAAU,CAAC,OAAwB,EAAA;AACzC,QAAA,OAAO,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC7D;AAEU,IAAA,cAAc,CAAC,OAAwB,EAAA;AAC7C,QAAA,OAAO,uBAAuB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACjE;AAEU,IAAA,KAAK,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACxD;AAEU,IAAA,KAAK,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACxD;AAEU,IAAA,MAAM,CAAC,OAAwB,EAAA;AACrC,QAAA,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACzD;AAEU,IAAA,KAAK,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACxD;AAEU,IAAA,OAAO,CAAC,OAAwB,EAAA;AACtC,QAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IAC1D;AAEU,IAAA,KAAK,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACxD;AAEU,IAAA,cAAc,CAAC,OAAwB,EAAA;AAC7C,QAAA,OAAO,uBAAuB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACjE;AAEU,IAAA,KAAK,CAAC,OAAwB,EAAA;AACpC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS;IACxD;8GA5GS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BtC,4mLA+FA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzEc,YAAY,+rBAAE,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIxC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,OAAA,EACtB,CAAC,YAAY,EAAE,yBAAyB,CAAC,EAAA,QAAA,EAAA,4mLAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBA4BjD;;;AEzCC,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAElD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;IAChD;8GALS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAFjB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCP3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDSZ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,aAGd,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;;MED9B,yBAAyB,CAAA;IAClC,WAAA,CACqB,WAA0B,EAC1B,QAA8B,EAAA;QAD9B,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAEzB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtD;8GANS,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AACjC,iBAAA;;;MCOQ,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;AAUoB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,cAAc,EAAE;AAEhD,IAAA;8GAJY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ9B,8FAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDMQ,yBAAyB,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGpB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,OAAA,EAGd;wBACL;AACH,qBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA;;;MEDQ,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACvD,QAAA,IAAA,CAAA,qBAAqB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa;AA8BnF,IAAA;IA1BG,IACW,SAAS,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,gBAAgB,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK;IAC/C;IAEA,IACW,aAAa,CAAC,KAAe,EAAA;AACpC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,QAAA,gBAAgB,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK;IACnD;IAEA,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC1C,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACxD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC/D,gBAAgB,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB;QAChE;QACA,IAAI,IAAI,CAAC,oBAAoB,KAAK,gBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE;YACvE,gBAAgB,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB;QACxE;IACJ;8GA/BS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,wKAFvB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAOA;;sBAMA;;sBAMA;;;MCrBQ,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,0EAFnB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEjB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;MCCY,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,0EAFnB,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;AC0BK,MAAO,cAAe,SAAQ,mBAAmB,CAAA;AAC5B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,SAAS,EAAY,OAAO;AAC5B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAJ8B,CAI7B;AAqBF,IAAA,IAAc,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK;IACpC;AAKA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,IACW,UAAU,GAAA;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY;IAC7B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,IACW,UAAU,GAAA;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY;IAC7B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9C;AAEA,IAAA,IAEW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IACW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,YAAY,CAAC,KAAkB,EAAA;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC/C;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAKA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAcA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QAvJR,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,YAAY,GAAG,IAAI;QACnB,IAAA,CAAA,YAAY,GAAG,IAAI;QACnB,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,SAAS,GAAG,IAAI;QAChB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,WAAW,GAAG,IAAI;QAClB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,SAAS,GAAG,KAAK;AACR,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjE,IAAA,CAAA,wBAAwB,GAAG,CAAC;QAErB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,QAAQ,GAAG,cAAc,CAAC,QAAQ;AAErC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAuB,KAAK,4CAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAC;AACvE,QAAA,IAAA,CAAA,iBAAiB,GAAG,SAAS,CAA0B,SAAS,6DAAC;AAmIjE,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;AAI5C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;AAClO,QAAA,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEpH,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACpC,IAAI,CAAC,GAAG,EAAE;gBACN;YACJ;YACA,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE;YACnB;iBACK;AACD,gBAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;YACpD;AACJ,QAAA,CAAC,CAAC;IACN;IAEU,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACrB;AAEU,IAAA,aAAa,CAAC,KAAiB,EAAA;;QAErC,IAAK,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACjD;QACJ;QACA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChD,IAAI,CAAC,OAAO,EAAE;QAClB;IACJ;IAEQ,QAAQ,GAAA;QACZ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3I;8GAnMS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFZ,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAE,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BjD,ylDAiCA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNc,eAAe,iGAAE,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,0FAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAInI,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EAGV,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAA,cAAA,EAC7H,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA,SAAA,EAC7B,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,ylDAAA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA;yMA0B0B,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA;sBAM/E;;sBAGA;;sBASA;;sBASA;;sBASA;;sBASA;;sBASA;;sBACA,WAAW;uBAAC,mBAAmB;;sBAS/B;;sBASA;;sBASA;;sBASA;;sBAGA;;sBASA;;sBASA;;sBASA;;sBAGA;;sBAGA;;sBAGA;;;MEjLQ,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS;AAoBzE,IAAA;IAjBG,IACW,SAAS,CAAC,KAAe,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,cAAc,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK;IAC7C;IAEA,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QACxC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACtD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC7D,cAAc,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB;QAC9D;IACJ;8GApBS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,sIAFrB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAKI;;sBAMA;;;MChBQ,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAQ;AAE9B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAEnD;;;AAGG;AACa,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,IAAI;IAcpC;IAZW,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IAC3B;AAEO,IAAA,KAAK,CAAC,OAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAC/B;IAEO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAA;QACtB,OAAO,IAAI,CAAC,OAAO;IACvB;AACH;;MCtBY,eAAe,CAAA;IACxB,WAAA,CACoB,YAA6B,EAC5B,OAA4B,EAAA;QAD7B,IAAA,CAAA,YAAY,GAAZ,YAAY;QACX,IAAA,CAAA,OAAO,GAAP,OAAO;IAE5B;IAEO,KAAK,GAAA;QACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC1C;AACH;;MCFY,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAgB;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAgB;AAC5C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAgB;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAgB;AAC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAgB;AAC9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAgB;AAC9C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAgB;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAmC;AACxD,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,KAAK,EAAE;SACV;AAEe,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AACxC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAC5C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAC5C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAChD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAChD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AAoHjE,IAAA;AAzI0B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,WAAW,EAAY;AAC1B,KAF8B,CAE7B;AAqBK,IAAA,GAAG,CAAC,KAAgC,EAAA;QACvC,KAAK,KAAK,KAAK;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;QAC7B;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC/B;AAEO,IAAA,GAAG,CAAC,YAA0B,EAAA;QACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,QAAA,IAAI,YAAY,CAAC,KAAK,EAAE;AACpB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACnD;aACK;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAC7C;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;QACpC,IAAI,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE;AACnD,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC;QACrE;AACA,QAAA,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC;IAClD;AAEO,IAAA,MAAM,CAAC,YAA0B,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACxD,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC;AACA,QAAA,IAAI,YAAY,CAAC,KAAK,EAAE;AACpB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AAC1E,YAAA,IAAI,UAAU,IAAI,CAAC,EAAE;AACjB,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3D;QACJ;aACK;AACD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AAC/D,YAAA,IAAI,UAAU,IAAI,CAAC,EAAE;AACjB,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAChD;QACJ;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;IAC1C;AAEO,IAAA,KAAK,CAAC,cAAsB,EAAE,QAAgB,EAAE,SAAkB,EAAA;AACrE,QAAA,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AAChC,QAAA,MAAM,cAAc,GAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AAC5G,QAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;AACxB,QAAA,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,MAAK;AACP,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAChG,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAa,EAAE,OAAoD,KAAI;AAC3E,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,IAAI,wGAAwG,EAAE,OAAO,CAAC;YACvJ;AACH,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;IACjB;IAIO,KAAK,CAAC,aAA6C,EAAE,eAAuC,EAAA;AAC/F,QAAA,MAAM,OAAO,GAA0B,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,IAAI,EAAE;AAChH,QAAA,MAAM,IAAI,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI;AAC7E,QAAA,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QAClF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,QAAA,OAAO,GAAG;IACd;IAIO,OAAO,CAAC,aAA6C,EAAE,eAAuC,EAAA;AACjG,QAAA,MAAM,OAAO,GAA0B,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,IAAI,EAAE;AAChH,QAAA,MAAM,IAAI,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI;AAC7E,QAAA,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;QACvF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;AACrC,QAAA,OAAO,GAAG;IACd;IAIO,OAAO,CAAC,aAA6C,EAAE,eAAuC,EAAA;AACjG,QAAA,MAAM,OAAO,GAA0B,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,IAAI,EAAE;AAChH,QAAA,MAAM,IAAI,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI;AAC7E,QAAA,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;QACvF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAA,OAAO,GAAG;IACd;IAIO,QAAQ,CAAC,aAA6C,EAAE,eAAuC,EAAA;AAClG,QAAA,MAAM,OAAO,GAA0B,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,IAAI,EAAE;AAChH,QAAA,MAAM,IAAI,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI;AAC7E,QAAA,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QACxF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAA,OAAO,GAAG;IACd;IAIO,IAAI,CAAC,aAA6C,EAAE,eAAuC,EAAA;AAC9F,QAAA,MAAM,OAAO,GAA0B,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,IAAI,EAAE;AAChH,QAAA,MAAM,IAAI,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI;AAC7E,QAAA,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,QAAA,OAAO,GAAG;IACd;8GAzIS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCFY,6BAA6B,CAAA;AAJ1C,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,mBAAmB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,WAAW;AAclF,IAAA;IAXG,IACW,WAAW,CAAC,KAAe,EAAA;AAClC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,QAAA,mBAAmB,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK;IACpD;IAEO,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,kBAAkB,KAAK,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE;YACtE,mBAAmB,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB;QACvE;IACJ;8GAdS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,2HAF5B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAKA;;;MCTQ,iBAAiB,GAAG,IAAI,cAAc,CAAe,cAAc;;MCInE,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAW/C,IAAA;AATU,IAAA,SAAS,CAAC,OAAqB,EAAA;QAClC,OAAO,QAAQ,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACP,gBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO;AAClD;AACJ,SAAA,CAAC;IACN;8GAVS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACSK,MAAO,qBAAsB,SAAQ,aAAa,CAAA;IACpD,IACW,WAAW,CAAC,KAAa,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;IACvD;AAWA,IAAA,WAAA,CACqB,mBAAwC,EAAA;AAEzD,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QATjC,IAAA,CAAA,QAAQ,GAAmB,EAAE;QAG7B,IAAA,CAAA,IAAI,GAAwB,OAAO;QAStC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAChD;IAEO,KAAK,CAAC,OAAqB,EAAE,KAAiB,EAAA;AACjD,QAAA,IAAI,KAAK,CAAC,gBAAgB,EAAE;YACxB;QACJ;AACA,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C;AAEU,IAAA,QAAQ,CAAC,OAAgB,EAAA;AAC/B,QAAA,OAAO,OAAuB;IAClC;8GA/BS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,+JAFnB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb3C,upCAwBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAA4B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,oRAA7D,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG3C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WAGjB,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,aAC/E,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,upCAAA,EAAA;;sBAGtC;;sBAKA;;sBAGA;;sBAGA;;;MErBQ,WAAW,CAAA;AAJxB,IAAA,WAAA,GAAA;QAMoB,IAAA,CAAA,EAAE,GAAG,IAAI;AAC5B,IAAA;8GAHY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,iHCNxB,EAAA,EAAA,CAAA,CAAA;;2FDMa,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,SAAS;+BACI,MAAM,EAAA,QAAA,EAAA,EAAA,EAAA;;sBAIf,WAAW;uBAAC,UAAU;;;AEIrB,MAAO,YAAa,SAAQ,aAAa,CAAA;AAI3C,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACnD;AAEA,IAAA,IAEW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QAxBR,IAAA,CAAA,WAAW,GAAG,KAAK;QAyBvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW;aACjD,aAAa,CAAC,KAAK,CAAC;IAC7B;8GA7BS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAFV,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCT3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDWZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,OAAO,aAGN,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;sBAMtC;;sBAWA;;sBACA,WAAW;uBAAC,iBAAiB;;;AEP5B,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AAC9B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC,CAAC;AAC7C,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,YAAY,EAAE,IAAI,aAAa,CAAU,CAAC;AAC7C,KAL8B,CAK7B;aACiC,IAAA,CAAA,SAAS,GAAG,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAYlF,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7C;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;IACjD;AAEA,IAAA,IACW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;IACvD;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;IACnD;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;IACjD;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IACW,QAAQ,CAAC,KAAkC,EAAA;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC;IACzC;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;IAC9E;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3E;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA7FH,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,UAAU,GAAG,KAAK;QAElB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,UAAU,GAAG,KAAK;QAsFtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU;aACnI,aAAa,CAAC,SAAS,CAAC;IACjC;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACtH,QAAA,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtH;AAEQ,IAAA,aAAa,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB;QACJ;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;IAChC;8GAvHS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAFd,gBAAgB,CAAC,SAAS,0PClBzC,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDoBZ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,kBAGL,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAA,SAAA,EAC/E,iBAAiB,SAAS,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAqBpC;;sBAWA;;sBAUA;;sBAUA;;sBAUA;;sBAcA;;sBAOA;;sBAUA;;;MExGQ,wBAAwB,CAAA;IACjC,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC1C,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACxD;IAEA,IACW,MAAM,CAAC,KAAc,EAAA;AAC5B,QAAA,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK;QACxC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IACtD;8GAXS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,kIAFvB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAEA;;sBAMA;;;ACJC,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAGpD,IAAA,IAEW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAbH,IAAA,CAAA,YAAY,GAAG,KAAK;AAcxB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;aAC7B,aAAa,CAAC,UAAU,CAAC;IAClC;8GAjBS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,iDCR3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDUZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,aAGhB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAKtC;;sBACA,WAAW;uBAAC,kBAAkB;;;AEY7B,MAAO,gBAAiB,SAAQ,aAAa,CAAA;AAM/C,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;IAC/C;AAEA,IAAA,IACW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,KAAK,CAAC,KAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;IACpC;AAEA,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,QAAQ,CAAC,KAAkC,EAAA;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;IACvC;AAEA,IAAA,IAEW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACjD;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA7CH,IAAA,CAAA,SAAS,GAAG,KAAK;QAEjB,IAAA,CAAA,gBAAgB,GAAG,KAAK;AA4C5B,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa;aAC9D,aAAa,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,CAAC,cAAc,EAAE;IACzB;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACvB;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACxB;8GA7DS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAFd,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,kMCxB3C,+BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDyBa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,kBAGL,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,aACxD,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,+BAAA,EAAA;;sBAQtC;;sBAUA;;sBAUA;;sBAUA;;sBACA,WAAW;uBAAC,oBAAoB;;;AEnD/B,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AAEpD,IAAA,WAAA,CACiC,IAAmB,EAAA;AAEhD,QAAA,KAAK,EAAE;QAFsB,IAAA,CAAA,IAAI,GAAJ,IAAI;IAGrC;IAGU,OAAO,GAAA;QACb,IAAI,CAAC,MAAM,EAAE;IACjB;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,cAAc,EAAE;QAC1B;IACJ;IAEU,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ;QACJ;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACjC;8GA1BS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAFb,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,iDCVjD,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDYZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;+BACI,UAAU,EAAA,OAAA,EAGX,EAAE,EAAA,SAAA,EACA,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;0BAKxC;;sBAKJ,YAAY;uBAAC,OAAO;;sBAKpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;AENjC,MAAO,cAAe,SAAQ,mBAAmB,CAAA;AAC5B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AASF,IAAA,IACW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,MAAM,CAAC,KAAkB,EAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7C;AAEA,IAAA,IACW,SAAS,GAAA;AAChB,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM;IACvB;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxC;AAEA,IAAA,IACW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,IAAI,CAAC,KAAkB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACzC;AAEA,IAAA,IACW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,WAAW,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;IACvD;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,OAAO,CAAC,KAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IACvE;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;IACrD;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;IACrD;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA7EH,IAAA,CAAA,QAAQ,GAAG,IAAI;QACf,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,MAAM,GAAG,KAAK;QAEd,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,YAAY,GAAG,KAAK;QAyExB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;aAC1H,aAAa,CAAC,OAAO,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,KAAK,QAAQ;IAC7B;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACxH;8GA5FS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAFZ,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,8HCjBjD,+BACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDkBa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,cAAA,EAGH,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA,SAAA,EAC7B,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAe5C;;sBAUA;;sBASA;;sBAUA;;sBAUA;;sBAUA;;sBAUA;;;MEpFQ,sBAAsB,CAAA;IAC/B,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QACxC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACtD;8GALS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8GAFrB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAEA;;;ACQC,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AAwB/C,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QATT,IAAA,CAAA,QAAQ,GAA6C,IAAI;AAGhD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AAGnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;QAIjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAClD;AAEO,IAAA,WAAW,CAAC,KAA0B,EAAA;QACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;YAC9C;QACJ;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACxB;aACK;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAC1B;IACJ;8GAzCS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,qNAFV,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdrC,mKAOA,iIDKQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIX,YAAY,EAAA,UAAA,EAAA,CAAA;kBATxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,OAAO,EAAA,OAAA,EAGR;wBACL;qBACH,EAAA,SAAA,EACU,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,mKAAA,EAAA,MAAA,EAAA,CAAA,yEAAA,CAAA,EAAA;;sBAIhC;;sBAGA;;sBAGA;;sBAGA;;sBAGA;;sBAIA;;sBAGA;;;AElBC,MAAO,iBAAkB,SAAQ,mBAAmB,CAAA;AAC/B,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG;AAC9B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,IAAI,aAAa,CAAU,CAAC;AAC/C,KAH8B,CAG7B;AAmBF,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,QAAQ,CAAC,KAAkB,EAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IACW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,OAAO,CAAC,KAAkB,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,IACc,YAAY,GAAA;AACtB,QAAA,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI;IAC9B;AAEA,IAAA,IACc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;IACxD;AAEA,IAAA,IACW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAW,aAAa,CAAC,KAAa,EAAA;QAClC,IAAI,CAAC,eAAe,GAAG,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK;AAC9C,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,IAAI,KAAK;IAC5C;AAEA,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IACW,aAAa,CAAC,KAAyB,EAAA;AAC9C,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACvE;IACJ;AAEA,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAW,SAAS,CAAC,KAAkB,EAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IACW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAW,UAAU,CAAC,KAAkB,EAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C;AAEA,IAAA,IACc,IAAI,GAAA;QACd,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAc,IAAI,CAAC,KAA0C,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACnF;IAEA,WAAA,CACqB,KAAqB,EACrB,MAAc,EAAA;QAE/B,KAAK,CAAC,KAAK,CAAC;QAHK,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,MAAM,GAAN,MAAM;QAzGnB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,kBAAkB,GAAG,EAAE;QACvB,IAAA,CAAA,WAAW,GAAG,KAAK;QAEnB,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,MAAM,GAAiB,EAAE;QAG1B,IAAA,CAAA,IAAI,GAAiB,KAAK;AAGjB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU;AA8F5D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC;IACnJ;IAEgB,QAAQ,GAAA;QACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/D,YAAA,IAAI,KAAK,YAAY,aAAa,EAAE;gBAChC,IAAI,CAAC,UAAU,EAAE;YACrB;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3H;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACpF,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G;QACA,IAAI,CAAC,UAAU,EAAE;IACrB;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB;QACJ;AACA,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;AACtD,QAAA,IAAI,KAA+B;QACnC,IAAI,eAAe,EAAE;AACjB,YAAA,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE;YAC/C,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,eAAe,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,eAAe,IAAI,gBAAgB,KAAK,KAAK,CAAC;QAElM;aACK;AACD,YAAA,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC;QACnH;QACA,IAAI,KAAK,EAAE;YACP,MAAM,MAAM,GAAG,KAAK;YACpB,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C;IACJ;AAEU,IAAA,QAAQ,CAAC,GAAiB,EAAA;QAChC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;AAC5D,YAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;QAChC;AACA,QAAA,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE;YACjD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC/E,YAAA,IAAI,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE;gBACxB;YACJ;YACA,IAAI,OAAO,EAAE;AACT,gBAAA,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI;AAChC,gBAAA,OAAO,CAAC,IAAI,GAAG,IAAI;gBACnB,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;gBACvE;YACJ;AACA,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrE,YAAA,MAAM,UAAU,GAAG;AACf,gBAAA,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpG,gBAAA,IAAI,CAAC;aACR;AACD,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1J,iBAAA,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,KAAK,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9I,YAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,+DAAA,EAAkE,IAAI,CAAC,kBAAkB,CAAA,0BAAA,EAA6B,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,kBAAkB,CAAA,mBAAA,CAAqB,CAAC;gBAC3N;YACJ;AACA,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC;AAC/B,YAAA,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAC1E,YAAA,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,UAAU,EAAE;gBAC1C,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,aAAa,CAAC,EAAE,IAAI;AAC5F,gBAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;YACxE;AACA,YAAA,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACrE;IACJ;AAEQ,IAAA,MAAM,CAAC,KAAyB,EAAA;QACpC,OAAO,KAAK,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE;IACnG;IAEQ,sBAAsB,GAAA;QAC1B,MAAM,QAAQ,GAAsB,EAAE;AACtC,QAAA,IAAI,OAAO,GAA0B,IAAI,CAAC,KAAK;AAC/C,QAAA,GAAG;AACC,YAAA,IAAI,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;AAChC,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;AAC7D,gBAAA,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;AAC1D,oBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;gBACxE;YACJ;AACA,YAAA,OAAO,GAAG,OAAO,EAAE,MAAM;QAC7B,CAAC,QACM,OAAO;AACd,QAAA,OAAO,QAAQ;IACnB;IAEQ,WAAW,CAAC,MAAc,EAAE,IAAc,EAAA;QAC9C,MAAM,WAAW,GAAiB,EAAE;AACpC,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;YACnE,WAAW,CAAC,IAAI,CAAC;AACb,gBAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,gBAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7H,gBAAA,GAAG;AACN,aAAA,CAAC;AACF,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAChB,gBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnE;QACJ;AACA,QAAA,OAAO,WAAW;IACtB;8GA1OS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,gaAFf,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAsG5B,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvHjC,43BAwBA,0WDRc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,0FAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGjE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,WAGd,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,CAAC,aAChE,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,43BAAA,EAAA,MAAA,EAAA,CAAA,kTAAA,CAAA,EAAA;;sBAmB5C;;sBAGA;;sBAGA;;sBASA;;sBASA;;sBASA,WAAW;uBAAC,OAAO;;sBAKnB,WAAW;uBAAC,kBAAkB;;sBAK9B;;sBAcA;;sBAQA;;sBASA;;sBASA,eAAe;uBAAC,YAAY;;AAyIjC,MAAM,eAAgB,SAAQ,UAAU,CAAA;IACpC,WAAA,CACoB,IAAY,EAC5B,OAAmB,EAAA;QAEnB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;QAHvB,IAAA,CAAA,IAAI,GAAJ,IAAI;AAIpB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;IAChC;AACH;;MEjQY,yBAAyB,CAAA;IAClC,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC3C,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACzD;8GALS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,kHAFxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAEA;;;MCDQ,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,GAAG,EAAyC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAsB;AAiF7D,IAAA;IA/EU,IAAI,CAAC,KAAwB,EAAE,QAAkB,EAAA;AACpD,QAAA,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AACzD,QAAA,MAAM,mBAAmB,GAAG,IAAI,eAAe,CAAuB,QAAQ,CAAC;AAC/E,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,IAAI,EAAE;gBACP,IAAI,GAAG,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;YAClC;YACA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,YAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACzB;YACA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACjB;gBACJ;AACA,gBAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,gBAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3B,gBAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzB;YACJ;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnB,YAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC;QACpD;IACJ;IAEO,IAAI,CAAC,KAAwB,EAAE,QAAkB,EAAA;AACpD,QAAA,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AACzD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE;gBACP;YACJ;YACA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpC,YAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,gBAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,YAAA,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;QACnC;IACJ;IAEO,MAAM,CAAC,KAAwB,EAAE,QAAkB,EAAA;AACtD,QAAA,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AACzD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;YACrC,IAAI,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC7B;iBACK;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC7B;QACJ;IACJ;AAEO,IAAA,GAAG,CAAC,KAAwB,EAAA;AAC/B,QAAA,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AACzD,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC;QAC1G,MAAM,OAAO,GAAG,eAAe,IAAI,IAAI,aAAa,CAAuB,CAAC,CAAC;AAC7E,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;QACzC;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC/C;AAEQ,IAAA,MAAM,CAAC,IAAY,EAAE,QAA8B,EAAE,2BAAmE,EAAA;QAC5H,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChD;aACK,IAAI,2BAA2B,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC;QAC7D;IACJ;8GAlFS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCMY,iBAAiB,CAAA;AAoB1B,IAAA,WAAA,GAAA;AAnBiB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAEvC,QAAA,IAAA,CAAA,eAAe,GAAG,SAAS,CAAuB,iBAAiB,2DAAC;AACvE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAqB;QAC1C,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,IAAI,mDAAC;AAErC;;;;;;AAMG;AACa,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA0B,KAAK,0CAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAC;;AAGxE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAuB,KAAK,4CAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAC;QAGnF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;YAClC,SAAS,CAAC,MAAK;AACX,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACzD;AACA,gBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS;gBAChH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AACjC,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACzD;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;QACzE,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB;YACJ;YACA,IAAI,SAAS,EAAE;AACX,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;YACzD;iBACK;AACD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;YACzD;AACJ,QAAA,CAAC,CAAC;IACN;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;QACzD;IACJ;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;QACzD;IACJ;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;QACzD;IACJ;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC3D;IACJ;8GAtES,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,m2BCZ9B,2EAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDSa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,2EAAA,EAAA;uGAO0D,iBAAiB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEIpF,MAAO,uBAAwB,SAAQ,WAAW,CAAA;AAMpD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AANM,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAuB,SAAS,oDAAC;AACrD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAqB;QAItD,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtJ,QAAA,CAAC,CAAC;IACN;8GAZS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBpC,gHAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAQX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACL;qBACH,EAAA,IAAA,EAGK;AACF,wBAAA,SAAS,EAAE;AACd,qBAAA,EAAA,QAAA,EAAA,gHAAA,EAAA;;;AENC,MAAO,sBAAuB,SAAQ,aAAa,CAAA;AACrD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC;IACnD;8GAJS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,SAAA,EAFpB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,8HCT3C,2BAAyB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDWZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,cAAA,EAGZ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA,SAAA,EAC7B,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;;MEF9B,yBAAyB,CAAA;IAClC,IACW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK;QAC3C,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACzD;8GALS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,iHAFxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAEH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,EAAE;AACX,iBAAA;;sBAEA;;;MCHQ,qCAAqC,GAAG,IAAI,cAAc,CAAS,kCAAkC;AAG5G,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAClD,IAAA,WAAA,CACmE,gBAAkD,EAAE,EAAA;AAEnH,QAAA,KAAK,EAAE;QAFwD,IAAA,CAAA,aAAa,GAAb,aAAa;AAG5E,QAAA,IAAI,CAAC,aAAa,KAAK,EAAE;IAC7B;AAEgB,IAAA,WAAW,CAAC,QAA6B,EAAA;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACvC,QAAA,MAAM,MAAM,GAAG,SAAS,EAAE,oBAAoB,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,IAAI,KAAK,GAAG,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,GAAG,EAAE;AAC9J,QAAA,MAAM,OAAO,GAAG,SAAS,EAAE,qBAAqB,IAAI,IAAI,CAAC,aAAa,CAAC,qBAAqB,IAAI,KAAK,GAAG,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE;QACnK,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,OAAO;IAC3G;AAEO,IAAA,YAAY,CAAC,SAAuC,EAAA;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,EAAE;QACpC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACjD;IAEQ,OAAO,CAAC,SAAuC,EAAE,GAAW,EAAA;AAChE,QAAA,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE;YACzC,OAAO,GAAG,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;QAC9D;QACA,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1C;AA1BS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEhB,qCAAqC,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAFxC,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;0BAGQ,MAAM;2BAAC,qCAAqC;;;ACNrD,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE;MAUlC,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,SAAA,EALvB;AACP,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE;AACnD,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa;AAC1D,SAAA,EAAA,CAAA,CAAA;;2FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE;AACP,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE;AACnD,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa;AAC1D;AACJ,iBAAA;;;ACRK,SAAU,0BAA0B,CACtC,aAA+C,EAAA;AAE/C,IAAA,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC,aAAa,CAAC;AAC5D,IAAA,OAAO,wBAAwB,CAAC;AAC5B,QAAA,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE;AACnD,QAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa;AAC1D,KAAA,CAAC;AACN;;ACJM,MAAO,4BAA6B,SAAQ,WAAW,CAAA;AASzD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AATM,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAC,WAAoB,EAAC;AACvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;QAC9C,IAAA,CAAA,WAAW,GAAG,KAAK;AAEX,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,uCAAsB,KAAK,EAAE,sBAAsB,EAAA,CAAA,GAAA,CAA/B,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAC;QAIvF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AACjH,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ;gBAC7B,IAAI,CAAC,WAAW,EAAE;AACtB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEQ,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC7B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3D;IACJ;8GAzBS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AACjC,iBAAA;;;ACCC,MAAO,+BAAgC,SAAQ,WAAW,CAAA;AAS5D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AATM,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAC,WAAoB,EAAC;AACvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;QAC9C,IAAA,CAAA,WAAW,GAAG,KAAK;AAEX,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,uCAAsB,KAAK,EAAE,yBAAyB,EAAA,CAAA,GAAA,CAAlC,EAAE,KAAK,EAAE,yBAAyB,EAAE,GAAC;QAI1F,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AACjH,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ;gBAC7B,IAAI,CAAC,WAAW,EAAE;AACtB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEQ,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3D;IACJ;8GAzBS,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACpC,iBAAA;;;ACCL;AACM,MAAO,iBAAiB,qEAAuC,aAAa,CAAA;AAE9E,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;IACtC;AALS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,gCAA8B,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/C,iBAAiB,gCAA8B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAH7C,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAU,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAG9B,EAAA,CAAA,wBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,gCAA8B,UAAA,EAAA,CAAA;kBAN3D,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,cAAc,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;AACzC,oBAAA,SAAS,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS;AACzC,iBAAA;;;MCAY,iBAAiB,CAAA;aACH,IAAA,CAAA,QAAQ,GAAG,UAAH,CAAc;AACtB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAIxG,IAAA,WAAA,GAAA;AAHiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAA,CAAA,UAAU,GAAG,KAAK;QAGtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IAC7D;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IACW,QAAQ,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IACjE;8GAlBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACxB,iBAAA;;sBAeA;;;MChBQ,mBAAmB,CAAA;IAC5B,IACW,UAAU,CAAC,MAAsB,EAAA;AACxC,QAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;IACnC;AAEA,IAAA,WAAA,CACqB,QAA8B,EAAA;QAA9B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACzB;8GARK,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,eAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC1B,iBAAA;;sBAEA,KAAK;uBAAC,eAAe;;;MCFb,yBAAyB,CAAA;AAgBlC,IAAA,WAAA,CACqB,UAAmC,EAAA;QAAnC,IAAA,CAAA,UAAU,GAAV,UAAU;AAhBd,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAO/D,IAAA,CAAA,MAAM,GAAgC,MAAM;QAG5C,IAAA,CAAA,WAAW,GAAqC,MAAM;IAQ7D;IAEO,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,IAAI,SAAS;AACtE,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC5D;QACA,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACpC;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC9B;IAEQ,OAAO,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC3D;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE;AACjD,QAAA,QAAQ,IAAI,CAAC,WAAW;AACpB,YAAA,KAAK,KAAK;gBACN,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;gBAClC;AACJ,YAAA,KAAK,KAAK;gBACN,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;gBAClC;AACJ,YAAA,KAAK,OAAO;gBACR,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC/B;;AAER,QAAA,QAAQ,IAAI,CAAC,QAAQ;AACjB,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,WAAW;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC3B;AACJ,YAAA,KAAK,aAAa;AAClB,YAAA,KAAK,eAAe;AACpB,YAAA,KAAK,cAAc;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC1D;AACJ,YAAA,KAAK,aAAa;AAClB,YAAA,KAAK,eAAe;AACpB,YAAA,KAAK,cAAc;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;gBACzB;;AAER,QAAA,QAAQ,IAAI,CAAC,QAAQ;AACjB,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,aAAa;AAClB,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;gBACxB;AACJ,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,eAAe;AACpB,YAAA,KAAK,eAAe;gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC3D;AACJ,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,cAAc;AACnB,YAAA,KAAK,cAAc;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;gBACzB;;IAEZ;AAEQ,IAAA,MAAM,CAAC,GAAuB,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK;AACjD,QAAA,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI;AAC/C,QAAA,KAAK,CAAC,SAAS,GAAG,CAAA,aAAA,EAAgB,GAAG,KAAK;IAC9C;AAEQ,IAAA,OAAO,CAAC,IAAwB,EAAA;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK;AACjD,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE;AAChB,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE;QAChB,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;AAChD,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;YAC1B;AACA,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACzB,gBAAA,IAAI,IAAI,IAAI,CAAC,KAAK;YACtB;YACA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AACxB,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,EAAE;gBAChC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;YAC1C;AAAO,iBAAA,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE;AACzC,gBAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;YACjE;AAAO,iBAAA,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,EAAE;gBACxC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;YAC3C;AAAO,iBAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACzC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;YACvC;QACJ;AACA,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE;AACjE,YAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACnB,YAAA,KAAK,CAAC,IAAI,GAAG,EAAE;QACnB;aAAO;AACH,YAAA,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;QACtD;IACJ;AAEQ,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK;AACjD,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI;IACzD;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK;AACjD,QAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI;IAC5D;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK;AACjD,QAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI;IAC5D;8GAzIS,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AAChC,iBAAA;;sBAKA,KAAK;uBAAC,qBAAqB;;sBAG3B;;sBAGA;;sBAGA;;;MCbiB,sBAAsB,CAAA;AAExC,IAAA,WAAA,CACqB,KAAqB,EAAA;QAArB,IAAA,CAAA,KAAK,GAAL,KAAK;IACtB;IAEG,QAAQ,GAAA;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAyB;AAC1D,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;QAC1C;IACJ;8GAXkB,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;ACAK,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;AAC5C,IAAA,KAAK,CAAC,GAAW,EAAA;AAC7B,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;IACrD;8GAHS,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCWY,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAA5B,4BAA4B,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,SAAA,EAR1B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,QAAQ,EAAE;AACb;AACJ,SAAA,EAAA,CAAA,CAAA;;2FAGQ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,QAAQ,EAAE;AACb;AACJ,qBAAA;AACD,oBAAA,OAAO,EAAE;AACZ,iBAAA;;;ACbM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,IAAA,KAAK,EAAE;AACH,QAAA,OAAO,EAAE;AACL,YAAA,OAAO,EAAE;AACZ,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,OAAO,EAAE;AACZ,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,OAAO,EAAE;AACZ;AACJ;AACJ,CAAA;;ACVM,MAAM,OAAO,GAAG,MAAK;IACxB,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAC5B;;ACDA;;;;AAIG;SACa,aAAa,CAAC,MAAW,EAAE,QAAgB,EAAE,WAAgB,EAAA;AACzE,IAAA,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC;AACjD,IAAA,OAAO,wBAAwB,CAAC;AAC5B,QAAA,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;AAC3C,KAAA,CAAC;AACN;;ACNM,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC3C,MAAM,UAAU,GAAG,KAAuB;IAC1C,OAAO,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,SAAS;AAC9D;;MCDa,gBAAgB,CAAA;AAElB,IAAA,SAAS,CAAC,KAA+B,EAAE,YAAoB,EAAE,OAAgB,EAAA;QACpF,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,MAAM;QACjB;AACA,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC;QACvD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA,0BAAA,CAA4B,CAAC;AAChI,QAAA,OAAO,MAAM;IACjB;IAEQ,OAAO,CAAC,KAAc,EAAE,YAAoB,EAAA;AAChD,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACnF;8GAdS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,eAAe;AACpB,iBAAA;;;MCHQ,SAAS,CAAA;AAEX,IAAA,SAAS,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;IACzE;8GAJS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCCY,QAAQ,CAAA;AAEV,IAAA,SAAS,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAA;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM;IAC7C;8GALS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AACZ,iBAAA;;;MCCQ,SAAS,CAAA;AAEX,IAAA,SAAS,CAAC,KAAc,EAAE,GAAG,IAAe,EAAA;;AAE/C,QAAA;AACA,QAAA,OAAO,KAAK;IAChB;8GANS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AACZ,iBAAA;;;MCCQ,YAAY,CAAA;AAEd,IAAA,SAAS,CAAC,KAAc,EAAE,GAAG,IAAe,EAAA;;AAE/C,QAAA;AACA,QAAA,OAAO,KAAK;IAChB;8GANS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCCY,SAAS,CAAA;AAEX,IAAA,SAAS,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAA;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM;IAC9C;8GALS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACb,iBAAA;;;MCKQ,WAAW,CAAA;IAEb,SAAS,CAAC,KAA+B,EAAE,OAAgB,EAAA;QAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,MAAM;QACjB;QACA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACzC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA,sBAAA,CAAwB,CAAC;AACvH,QAAA,OAAO,MAAM;IACjB;AAEQ,IAAA,OAAO,CAAC,KAAc,EAAA;QAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;IACjF;8GAdS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,UAAU;AACf,iBAAA;;;MCCQ,YAAY,CAAA;IACd,SAAS,CAAC,KAA+B,EAAE,OAAgB,EAAA;QAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,MAAM;QACjB;QACA,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;QAC7B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA,gBAAA,CAAkB,CAAC;AAClH,QAAA,OAAO,MAAM;IACjB;8GATS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AAChB,iBAAA;;;MCHQ,OAAO,CAAA;AAET,IAAA,SAAS,CAAI,KAAQ,EAAE,GAAG,IAAe,EAAA;QAC5C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAC/B;aAAO;AACH,YAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;AACA,QAAA,OAAO,KAAK;IAChB;8GATS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;2FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,KAAK;AACV,iBAAA;;;MCCQ,UAAU,CAAA;AACZ,IAAA,SAAS,CAAC,KAAc,EAAE,SAAiB,EAAE,UAAmB,EAAA;AACnE,QAAA,MAAM,IAAI,GAAG,KAAK,EAAE,QAAQ,EAAE;QAC9B,OAAO,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC;IAC9C;8GAJS,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,SAAS;AACd,iBAAA;;;MCCQ,YAAY,CAAA;AACd,IAAA,SAAS,CAAC,KAAc,EAAE,SAAiB,EAAE,UAAmB,EAAA;AACnE,QAAA,MAAM,IAAI,GAAG,KAAK,EAAE,QAAQ,EAAE;QAC9B,OAAO,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAChD;8GAJS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AAChB,iBAAA;;;MCCQ,SAAS,CAAA;AAEX,IAAA,SAAS,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAA;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM;IAC9C;8GALS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACb,iBAAA;;;MCEQ,QAAQ,CAAA;AACjB,IAAA,WAAA,CACqB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;IAE9B;AAEO,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC;IAC7D;8GARS,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AACZ,iBAAA;;;MCEQ,SAAS,CAAA;IAEX,SAAS,CAAC,KAA+B,EAAE,KAAc,EAAA;AAC5D,QAAA,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACnB,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;IAC5D;8GARS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACb,iBAAA;;;ACuIL,MAAM,UAAU,GAAG;IACf,gBAAgB;IAChB,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,SAAS;IACT,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,oBAAoB;IACpB,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,aAAa;IACb,aAAa;IACb,qBAAqB;IACrB,oBAAoB;IACpB,iBAAiB;IACjB,yBAAyB;IACzB,yBAAyB;IACzB,cAAc;IACd,oBAAoB;IACpB,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;IAClB,YAAY;IACZ,SAAS;IACT,eAAe;IACf,uBAAuB;IACvB,iBAAiB;IACjB,gBAAgB;IAChB,wBAAwB;IACxB,sBAAsB;IACtB,iBAAiB;IACjB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,cAAc;IACd,iBAAiB;IACjB,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,cAAc;IACd,sBAAsB;IACtB,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,SAAS;IACT,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,2BAA2B;IAC3B,aAAa;IACb,qBAAqB;IACrB,4BAA4B;IAC5B,6BAA6B;IAC7B,qBAAqB;IACrB,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,4BAA4B;IAC5B,+BAA+B;IAC/B,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,cAAc;IACd,sBAAsB;IACtB,iBAAiB;IACjB,oBAAoB;IACpB,YAAY;IACZ,WAAW;IACX,cAAc;IACd,sBAAsB;IACtB,8BAA8B;IAC9B,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,gBAAgB;IAChB,OAAO;IACP,yBAAyB;IACzB,aAAa;IACb,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,yBAAyB;IACzB,gBAAgB;IAChB,wBAAwB;IACxB,cAAc;IACd,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,WAAW;IACX,UAAU;IACV,YAAY;IACZ,yBAAyB;IACzB,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,YAAY;IACZ,yBAAyB;IACzB,cAAc;IACd,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,yBAAyB;IACzB,sBAAsB;IACtB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,qBAAqB;IACrB,eAAe;IACf,mBAAmB;IACnB;CACH;MAUY,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YArJvB,gBAAgB;YAChB,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,SAAS;YACT,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,uBAAuB;YACvB,eAAe;YACf,oBAAoB;YACpB,aAAa;YACb,kBAAkB;YAClB,QAAQ;YACR,aAAa;YACb,aAAa;YACb,qBAAqB;YACrB,oBAAoB;YACpB,iBAAiB;YACjB,yBAAyB;YACzB,yBAAyB;YACzB,cAAc;YACd,oBAAoB;YACpB,wBAAwB;YACxB,mBAAmB;YACnB,kBAAkB;YAClB,YAAY;YACZ,SAAS;YACT,eAAe;YACf,uBAAuB;YACvB,iBAAiB;YACjB,gBAAgB;YAChB,wBAAwB;YACxB,sBAAsB;YACtB,iBAAiB;YACjB,yBAAyB;YACzB,sBAAsB;YACtB,qBAAqB;YACrB,cAAc;YACd,iBAAiB;YACjB,yBAAyB;YACzB,uBAAuB;YACvB,qBAAqB;YACrB,qBAAqB;YACrB,oBAAoB;YACpB,cAAc;YACd,sBAAsB;YACtB,mBAAmB;YACnB,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,SAAS;YACT,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,2BAA2B;YAC3B,aAAa;YACb,qBAAqB;YACrB,4BAA4B;YAC5B,6BAA6B;YAC7B,qBAAqB;YACrB,aAAa;YACb,aAAa;YACb,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,eAAe;YACf,4BAA4B;YAC5B,+BAA+B;YAC/B,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,cAAc;YACd,sBAAsB;YACtB,iBAAiB;YACjB,oBAAoB;YACpB,YAAY;YACZ,WAAW;YACX,cAAc;YACd,sBAAsB;YACtB,8BAA8B;YAC9B,eAAe;YACf,uBAAuB;YACvB,eAAe;YACf,gBAAgB;YAChB,OAAO;YACP,yBAAyB;YACzB,aAAa;YACb,mBAAmB;YACnB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,yBAAyB;YACzB,gBAAgB;YAChB,wBAAwB;YACxB,cAAc;YACd,sBAAsB;YACtB,oBAAoB;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,qBAAqB;YACrB,WAAW;YACX,UAAU;YACV,YAAY;YACZ,yBAAyB;YACzB,cAAc;YACd,iBAAiB;YACjB,iBAAiB;YACjB,SAAS;YACT,YAAY;YACZ,QAAQ;YACR,gBAAgB;YAChB,wBAAwB;YACxB,qBAAqB;YACrB,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,YAAY;YACZ,yBAAyB;YACzB,cAAc;YACd,sBAAsB;YACtB,iBAAiB;YACjB,iBAAiB;YACjB,uBAAuB;YACvB,iBAAiB;YACjB,yBAAyB;YACzB,sBAAsB;YACtB,kBAAkB;YAClB,SAAS;YACT,eAAe;YACf,qBAAqB;YACrB,eAAe;YACf,mBAAmB;AACnB,YAAA,gBAAgB,aA1IhB,gBAAgB;YAChB,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,SAAS;YACT,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,uBAAuB;YACvB,eAAe;YACf,oBAAoB;YACpB,aAAa;YACb,kBAAkB;YAClB,QAAQ;YACR,aAAa;YACb,aAAa;YACb,qBAAqB;YACrB,oBAAoB;YACpB,iBAAiB;YACjB,yBAAyB;YACzB,yBAAyB;YACzB,cAAc;YACd,oBAAoB;YACpB,wBAAwB;YACxB,mBAAmB;YACnB,kBAAkB;YAClB,YAAY;YACZ,SAAS;YACT,eAAe;YACf,uBAAuB;YACvB,iBAAiB;YACjB,gBAAgB;YAChB,wBAAwB;YACxB,sBAAsB;YACtB,iBAAiB;YACjB,yBAAyB;YACzB,sBAAsB;YACtB,qBAAqB;YACrB,cAAc;YACd,iBAAiB;YACjB,yBAAyB;YACzB,uBAAuB;YACvB,qBAAqB;YACrB,qBAAqB;YACrB,oBAAoB;YACpB,cAAc;YACd,sBAAsB;YACtB,mBAAmB;YACnB,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,SAAS;YACT,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,2BAA2B;YAC3B,aAAa;YACb,qBAAqB;YACrB,4BAA4B;YAC5B,6BAA6B;YAC7B,qBAAqB;YACrB,aAAa;YACb,aAAa;YACb,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,eAAe;YACf,4BAA4B;YAC5B,+BAA+B;YAC/B,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,cAAc;YACd,sBAAsB;YACtB,iBAAiB;YACjB,oBAAoB;YACpB,YAAY;YACZ,WAAW;YACX,cAAc;YACd,sBAAsB;YACtB,8BAA8B;YAC9B,eAAe;YACf,uBAAuB;YACvB,eAAe;YACf,gBAAgB;YAChB,OAAO;YACP,yBAAyB;YACzB,aAAa;YACb,mBAAmB;YACnB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,yBAAyB;YACzB,gBAAgB;YAChB,wBAAwB;YACxB,cAAc;YACd,sBAAsB;YACtB,oBAAoB;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,qBAAqB;YACrB,WAAW;YACX,UAAU;YACV,YAAY;YACZ,yBAAyB;YACzB,cAAc;YACd,iBAAiB;YACjB,iBAAiB;YACjB,SAAS;YACT,YAAY;YACZ,QAAQ;YACR,gBAAgB;YAChB,wBAAwB;YACxB,qBAAqB;YACrB,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,YAAY;YACZ,yBAAyB;YACzB,cAAc;YACd,sBAAsB;YACtB,iBAAiB;YACjB,iBAAiB;YACjB,uBAAuB;YACvB,iBAAiB;YACjB,yBAAyB;YACzB,sBAAsB;YACtB,kBAAkB;YAClB,SAAS;YACT,eAAe;YACf,qBAAqB;YACrB,eAAe;YACf,mBAAmB;YACnB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAWP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YA9IvB,eAAe;YAQf,aAAa;YAEb,oBAAoB;YACpB,iBAAiB;YAKjB,wBAAwB;YAExB,kBAAkB;YASlB,iBAAiB;YAEjB,sBAAsB;YAGtB,iBAAiB;YAGjB,qBAAqB;YACrB,qBAAqB;YAErB,cAAc;YAgBd,4BAA4B;YAE5B,qBAAqB;YAIrB,eAAe;YAKf,mBAAmB;YACnB,aAAa;YAEb,cAAc;YAOd,sBAAsB;YAEtB,eAAe;YAKf,yBAAyB;YAOzB,gBAAgB;YAEhB,cAAc;YAId,qBAAqB;YACrB,qBAAqB;YAKrB,cAAc;YAYd,eAAe;YAMf,iBAAiB;YAGjB,iBAAiB;YAGjB,kBAAkB;YAIlB,eAAe;YAEf,gBAAgB,CAAA,EAAA,CAAA,CAAA;;2FAWP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG;AACN,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG;AACN;AACJ,iBAAA;;;AChSD;;;;;;;;AAQG;MAIU,SAAS,CAAA;AACX,IAAA,SAAS,CAAI,KAAU,EAAE,IAAa,EAAE,EAAW,EAAA;QACtD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAChC;8GAHS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACb,iBAAA;;;MCNQ,aAAa,CAAA;AACf,IAAA,SAAS,CAAC,KAAkB,EAAA;AAC/B,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC;IAC3B;8GAHS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCDY,eAAe,CAAA;IAEjB,GAAG,GAAA;AACN,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE;IAC1D;8GAJS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,kBAAkB,CAAA;IAGpB,UAAU,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE;AAC1F,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD;QACA,OAAO,IAAI,CAAC,OAAO;IACvB;8GAVS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA,CAAA;;2FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,cAAc,CAAA;IAIhB,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS;IACzD;IAEQ,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AACzC,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE;YAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QACjD;QACA,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAChD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;QAC/E;IACJ;IAEQ,iBAAiB,GAAA;AACrB,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,oDAAoD;AACzF,eAAA,QAAQ,CAAC,aAAa,CAAC,qCAAqC;AAC5D,eAAA,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAClD,OAAO,YAAY,YAAY,eAAe,GAAG,YAAY,GAAG,SAAS;IAC7E;8GA/BS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCEY,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAStD,IAAA;AAPU,IAAA,UAAU,CAAC,OAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC;IAEO,WAAW,GAAA;AACd,QAAA,OAAO,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;IAC7D;8GAVS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA;;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACLD;;AAEG;;;;"}