@sdcorejs/angular 19.1.3 → 19.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -14
- package/components/audit-diff/index.d.ts +2 -0
- package/components/audit-diff/src/audit-diff.component.d.ts +30 -0
- package/components/audit-diff/src/audit-diff.engine.d.ts +40 -0
- package/components/badge/src/badge.component.d.ts +1 -1
- package/components/breadcrumb/index.d.ts +1 -0
- package/components/breadcrumb/src/breadcrumb.component.d.ts +50 -0
- package/components/data-state/index.d.ts +1 -0
- package/components/data-state/src/data-state.component.d.ts +40 -0
- package/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +1 -2
- package/components/document-builder/src/document-builder.component.d.ts +4 -4
- package/components/form-generic/src/components/form-builder/components/attribute-expression/attribute-expression.component.d.ts +7 -8
- package/components/form-generic/src/components/form-builder/components/attribute-input/attribute-input.component.d.ts +4 -5
- package/components/form-generic/src/components/form-builder/components/attribute-input-number/attribute-input-number.component.d.ts +1 -2
- package/components/form-generic/src/components/form-builder/components/attribute-parameter/attribute-parameter.component.d.ts +6 -5
- package/components/form-generic/src/components/form-builder/components/attribute-select/attribute-select.component.d.ts +4 -5
- package/components/form-generic/src/components/form-builder/components/attribute-selection/attribute-selection.component.d.ts +9 -9
- package/components/form-generic/src/components/form-builder/components/attribute-selection/components/build-queries/build-queries.component.d.ts +8 -7
- package/components/form-generic/src/components/form-builder/components/attribute-selection/components/build-variables/build-variables.component.d.ts +8 -7
- package/components/form-generic/src/components/form-builder/components/attribute-switch/attribute-switch.component.d.ts +3 -4
- package/components/form-generic/src/components/form-builder/components/attribute-table/attribute-table.component.d.ts +5 -6
- package/components/form-generic/src/components/form-builder/components/attribute-template/attribute-template.component.d.ts +1 -2
- package/components/form-generic/src/components/form-builder/components/attribute-textarea/attribute-textarea.component.d.ts +4 -5
- package/components/form-generic/src/components/form-builder/components/checkbox/attribute/checkbox-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/chip-calendar/attribute/chip-calendar-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/chip-calendar/control/chip-calendar-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/chip-string/attribute/chip-string-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/chip-string/control/chip-string-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/configure-validation/configure-validation.component.d.ts +2 -2
- package/components/form-generic/src/components/form-builder/components/datetime/attribute/datetime-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/datetime/control/datetime-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/expression-builder/expression-builder.component.d.ts +6 -5
- package/components/form-generic/src/components/form-builder/components/html/attribute/components/build-queries/build-queries.component.d.ts +7 -6
- package/components/form-generic/src/components/form-builder/components/html/attribute/html-attribute.component.d.ts +7 -8
- package/components/form-generic/src/components/form-builder/components/html/control/html-control.component.d.ts +3 -4
- package/components/form-generic/src/components/form-builder/components/number/attribute/number-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/number/control/number-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/radio/attribute/radio-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/radio/control/radio-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/select/attribute/select-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/select/control/select-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/table/attribute/table-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/table/control/table-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/textarea/attribute/textarea-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/textarea/control/textarea-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/textfield/attribute/textfield-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/textfield/control/textfield-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-builder/components/upload/attribute/upload-attribute.component.d.ts +6 -6
- package/components/form-generic/src/components/form-builder/components/upload/control/upload-control.component.d.ts +3 -3
- package/components/form-generic/src/components/form-render/components/item/components/chip-calendar/chip-calendar.component.d.ts +7 -6
- package/components/form-generic/src/components/form-render/components/item/components/chip-string/chip-string.component.d.ts +7 -6
- package/components/form-generic/src/components/form-render/components/item/components/datetime/datetime.component.d.ts +7 -7
- package/components/form-generic/src/components/form-render/components/item/components/html/html.component.d.ts +6 -6
- package/components/form-generic/src/components/form-render/components/item/components/number/number.component.d.ts +7 -6
- package/components/form-generic/src/components/form-render/components/item/components/radio/radio.component.d.ts +6 -7
- package/components/form-generic/src/components/form-render/components/item/components/select/select.component.d.ts +6 -7
- package/components/form-generic/src/components/form-render/components/item/components/table/table.component.d.ts +8 -8
- package/components/form-generic/src/components/form-render/components/item/components/textarea/textarea.component.d.ts +7 -6
- package/components/form-generic/src/components/form-render/components/item/components/textfield/textfield.component.d.ts +7 -6
- package/components/form-generic/src/components/form-render/components/item/components/upload/upload.component.d.ts +7 -6
- package/components/form-generic/src/components/form-render/components/item/item.component.d.ts +4 -4
- package/components/form-generic/src/components/sd-feel-expression/sd-feel-expression.component.d.ts +8 -9
- package/components/form-generic/src/pipes/component-viewed.pipe.d.ts +2 -3
- package/components/form-generic/src/pipes/html.pipe.d.ts +2 -2
- package/components/form-generic/src/services/form-render.service.d.ts +2 -2
- package/components/import-excel/src/import-excel.component.d.ts +4 -7
- package/components/import-excel/src/pipes/column-transform.pipe.d.ts +3 -2
- package/components/index.d.ts +4 -0
- package/components/job-progress/index.d.ts +1 -0
- package/components/job-progress/src/job-progress.component.d.ts +34 -0
- package/components/mini-editor/src/mini-editor.component.d.ts +7 -7
- package/components/modal/src/modal.component.d.ts +6 -1
- package/components/preview/index.d.ts +3 -0
- package/components/preview/src/preview-pdf/preview-pdf.browser.d.ts +28 -0
- package/components/preview/src/preview-pdf/preview-pdf.component.d.ts +61 -23
- package/components/preview/src/preview-pdf/preview-pdf.pdfjs.d.ts +77 -0
- package/components/preview/src/preview-pdf/preview-pdf.print.d.ts +10 -0
- package/components/preview/src/preview-pdf/preview-pdf.types.d.ts +11 -9
- package/components/side-drawer/src/side-drawer.component.d.ts +6 -1
- package/components/tab/src/tab-group.component.d.ts +1 -0
- package/components/tab/src/tab.component.d.ts +7 -1
- package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +3 -4
- package/components/tab-router/src/pipes/tab-info.pipe.d.ts +2 -2
- package/components/tab-router/src/services/tab-decorator.service.d.ts +2 -1
- package/components/table/src/components/filter/column-filter/column-filter.component.d.ts +1 -1
- package/components/table/src/components/popup-export/popup-export.component.d.ts +6 -6
- package/components/table/src/models/table-column.model.d.ts +1 -1
- package/components/table/src/services/config.service.d.ts +3 -2
- package/components/table/src/services/table-filter/table-filter.model.d.ts +1 -1
- package/components/table/src/services/table-filter/table-filter.service.d.ts +2 -2
- package/components/tree/src/tree.component.d.ts +13 -2
- package/components/tree/src/tree.model.d.ts +11 -0
- package/components/upload-file/src/components/preview/preview.component.d.ts +4 -4
- package/directives/src/sd-hover-copy.directive.d.ts +6 -5
- package/directives/src/sd-href.directive.d.ts +2 -2
- package/directives/src/sd-scroll.directive.d.ts +3 -2
- package/fesm2022/sdcorejs-angular-components-anchor.mjs +14 -14
- package/fesm2022/sdcorejs-angular-components-anchor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-audit-diff.mjs +332 -0
- package/fesm2022/sdcorejs-angular-components-audit-diff.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-badge.mjs +1 -0
- package/fesm2022/sdcorejs-angular-components-badge.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-breadcrumb.mjs +121 -0
- package/fesm2022/sdcorejs-angular-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-data-state.mjs +68 -0
- package/fesm2022/sdcorejs-angular-components-data-state.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs +16 -21
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-editor.mjs +6 -4
- package/fesm2022/sdcorejs-angular-components-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +463 -806
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +23 -33
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-job-progress.mjs +97 -0
- package/fesm2022/sdcorejs-angular-components-job-progress.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs +9 -19
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal.mjs +60 -3
- package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-preview.mjs +1437 -217
- package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +38 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs +16 -22
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab.mjs +47 -3
- package/fesm2022/sdcorejs-angular-components-tab.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-table.mjs +94 -61
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tree.mjs +185 -16
- package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs +14 -21
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components.mjs +4 -0
- package/fesm2022/sdcorejs-angular-components.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs +29 -41
- package/fesm2022/sdcorejs-angular-directives.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +7 -7
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs +20 -73
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +6 -3
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip.mjs +6 -3
- package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs +16 -13
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date.mjs +42 -65
- package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs +51 -66
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs +384 -0
- package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs +7 -5
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input.mjs +289 -55
- package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-models.mjs +155 -2
- package/fesm2022/sdcorejs-angular-forms-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-radio.mjs +44 -68
- package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-select.mjs +6 -20
- package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-switch.mjs +19 -66
- package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs +6 -5
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-time-range.mjs +279 -0
- package/fesm2022/sdcorejs-angular-forms-time-range.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-time.mjs +309 -0
- package/fesm2022/sdcorejs-angular-forms-time.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-tree-select.mjs +210 -0
- package/fesm2022/sdcorejs-angular-forms-tree-select.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms.mjs +73 -4
- package/fesm2022/sdcorejs-angular-forms.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-i18n.mjs +355 -10
- package/fesm2022/sdcorejs-angular-i18n.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-interceptors.mjs +12 -17
- package/fesm2022/sdcorejs-angular-interceptors.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-layout.mjs +859 -78
- package/fesm2022/sdcorejs-angular-modules-layout.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-pipes.mjs +5 -7
- package/fesm2022/sdcorejs-angular-pipes.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-api.mjs +407 -137
- package/fesm2022/sdcorejs-angular-services-api.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-cache.mjs +515 -105
- package/fesm2022/sdcorejs-angular-services-cache.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-confirm.mjs +5 -7
- package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-docx.mjs +7 -10
- package/fesm2022/sdcorejs-angular-services-docx.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-loading.mjs +339 -74
- package/fesm2022/sdcorejs-angular-services-loading.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-notify.mjs +7 -10
- package/fesm2022/sdcorejs-angular-services-notify.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-persistence.mjs +899 -0
- package/fesm2022/sdcorejs-angular-services-persistence.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services-storage.mjs +324 -122
- package/fesm2022/sdcorejs-angular-services-storage.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-task.mjs +389 -0
- package/fesm2022/sdcorejs-angular-services-task.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services-unsaved-changes.mjs +255 -0
- package/fesm2022/sdcorejs-angular-services-unsaved-changes.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services-viewport.mjs +76 -0
- package/fesm2022/sdcorejs-angular-services-viewport.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services.mjs +4 -0
- package/fesm2022/sdcorejs-angular-services.mjs.map +1 -1
- package/forms/autocomplete/src/autocomplete.component.d.ts +3 -4
- package/forms/checkbox/src/checkbox.component.d.ts +4 -8
- package/forms/date/src/date.component.d.ts +3 -2
- package/forms/date-range/src/date-range.component.d.ts +5 -8
- package/forms/datetime/src/datetime.component.d.ts +3 -2
- package/forms/entity-picker/index.d.ts +1 -0
- package/forms/entity-picker/src/entity-picker.component.d.ts +123 -0
- package/forms/index.d.ts +6 -0
- package/forms/input/index.d.ts +1 -0
- package/forms/input/src/input-mask.d.ts +43 -0
- package/forms/input/src/input.component.d.ts +26 -9
- package/forms/input-number/src/input-number.component.d.ts +1 -1
- package/forms/models/index.d.ts +1 -0
- package/forms/models/src/sd-form-control-connector.d.ts +86 -0
- package/forms/radio/src/radio.component.d.ts +12 -8
- package/forms/src/forms.module.d.ts +9 -5
- package/forms/switch/src/switch.component.d.ts +4 -7
- package/forms/time/index.d.ts +3 -0
- package/forms/time/src/time-picker.adapter.d.ts +13 -0
- package/forms/time/src/time-value.d.ts +19 -0
- package/forms/time/src/time.component.d.ts +78 -0
- package/forms/time-range/index.d.ts +2 -0
- package/forms/time-range/src/time-range-value.d.ts +14 -0
- package/forms/time-range/src/time-range.component.d.ts +80 -0
- package/forms/tree-select/index.d.ts +1 -0
- package/forms/tree-select/src/tree-select.component.d.ts +71 -0
- package/i18n/src/en.d.ts +68 -2
- package/interceptors/no-internet/no-internet.interceptor.d.ts +2 -3
- package/interceptors/unauthorized/unauthorized.interceptor.d.ts +2 -2
- package/modules/layout/components/index.d.ts +6 -0
- package/modules/layout/components/layout-main/layout-main.component.d.ts +7 -2
- package/modules/layout/components/shared/menu-tree/menu-tree.component.d.ts +28 -0
- package/modules/layout/components/shared/user-menu/user-menu.component.d.ts +25 -0
- package/modules/layout/components/sidebar-mobile-v2/main.component.d.ts +27 -0
- package/modules/layout/components/sidebar-mobile-v3/main.component.d.ts +28 -0
- package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +3 -4
- package/modules/layout/components/sidebar-v1/main.component.d.ts +2 -2
- package/modules/layout/components/sidebar-v2/main.component.d.ts +36 -0
- package/modules/layout/components/sidebar-v3/main.component.d.ts +29 -0
- package/modules/layout/configurations/layout.configuration.d.ts +36 -2
- package/modules/layout/index.d.ts +1 -0
- package/modules/layout/pipes/menu.pipe.d.ts +2 -2
- package/modules/layout/services/index.d.ts +3 -0
- package/modules/layout/services/layout.service.d.ts +2 -2
- package/modules/layout/services/menu/menu.utils.d.ts +6 -0
- package/modules/layout/services/navigation-state/navigation-state.service.d.ts +18 -0
- package/modules/layout/services/responsive/responsive.service.d.ts +12 -0
- package/modules/layout/services/storage/storage.service.d.ts +21 -8
- package/package.json +49 -1
- package/pipes/src/safe-html.pipe.d.ts +2 -2
- package/services/api/src/api.model.d.ts +54 -15
- package/services/api/src/api.service.d.ts +13 -8
- package/services/api/src/interceptors/api.interceptor.d.ts +1 -1
- package/services/cache/src/cache.model.d.ts +46 -13
- package/services/cache/src/cache.service.d.ts +5 -2
- package/services/confirm/src/lib/confirm.service.d.ts +2 -2
- package/services/docx/src/lib/docx.service.d.ts +2 -3
- package/services/index.d.ts +4 -0
- package/services/loading/src/loading.service.d.ts +15 -8
- package/services/notify/src/components/toast/toast.component.d.ts +2 -3
- package/services/persistence/index.d.ts +5 -0
- package/services/persistence/src/graph-serializer.d.ts +16 -0
- package/services/persistence/src/persistence-envelope.d.ts +28 -0
- package/services/persistence/src/persistence-key.d.ts +17 -0
- package/services/persistence/src/persistence.model.d.ts +63 -0
- package/services/persistence/src/storage-adapter.d.ts +29 -0
- package/services/storage/src/storage.model.d.ts +20 -5
- package/services/storage/src/storage.service.d.ts +6 -3
- package/services/task/index.d.ts +3 -0
- package/services/task/src/task.model.d.ts +75 -0
- package/services/task/src/task.service.d.ts +14 -0
- package/services/task/src/task.tokens.d.ts +12 -0
- package/services/unsaved-changes/index.d.ts +4 -0
- package/services/unsaved-changes/src/unsaved-changes.adapters.d.ts +15 -0
- package/services/unsaved-changes/src/unsaved-changes.model.d.ts +41 -0
- package/services/unsaved-changes/src/unsaved-changes.service.d.ts +16 -0
- package/services/unsaved-changes/src/unsaved-changes.tokens.d.ts +9 -0
- package/services/viewport/index.d.ts +3 -0
- package/services/viewport/src/viewport.model.d.ts +12 -0
- package/services/viewport/src/viewport.service.d.ts +18 -0
- package/services/viewport/src/viewport.tokens.d.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdcorejs-angular-services-persistence.mjs","sources":["../../../projects/sdcorejs-angular/services/persistence/src/persistence.model.ts","../../../projects/sdcorejs-angular/services/persistence/src/graph-serializer.ts","../../../projects/sdcorejs-angular/services/persistence/src/storage-adapter.ts","../../../projects/sdcorejs-angular/services/persistence/src/persistence-key.ts","../../../projects/sdcorejs-angular/services/persistence/src/persistence-envelope.ts","../../../projects/sdcorejs-angular/services/persistence/sdcorejs-angular-services-persistence.ts"],"sourcesContent":["export const SD_GRAPH_FORMAT = 'sdcorejs.graph';\nexport const SD_GRAPH_VERSION = 1;\n\nexport type SdPersistenceErrorCode =\n | 'INVALID_DOCUMENT'\n | 'UNKNOWN_FORMAT'\n | 'UNKNOWN_VERSION'\n | 'INVALID_NODE'\n | 'INVALID_REFERENCE'\n | 'UNSUPPORTED_VALUE'\n | 'LIMIT_EXCEEDED';\n\nexport interface SdGraphSerializerLimits {\n maxDocumentCharacters: number;\n maxDepth: number;\n maxNodes: number;\n maxEntries: number;\n maxStringCharacters: number;\n maxKeyCharacters: number;\n maxBigIntDigits: number;\n}\n\nexport interface SdPersistenceSerializer {\n readonly format: string;\n stringify<T>(value: T): string;\n parse<T = unknown>(serialized: string): T;\n clone<T>(value: T): T;\n}\n\n/** Deterministic, versioned canonicalization used only for persistence identity. */\nexport interface SdPersistenceIdentityCanonicalizer {\n readonly format: string;\n canonicalize(value: unknown): string;\n}\n\nexport type SdGraphSpecialNumber = 'NaN' | 'Infinity' | '-Infinity' | '-0';\n\nexport type SdGraphValue =\n | null\n | boolean\n | string\n | number\n | { $ref: number }\n | { $type: 'undefined' }\n | { $type: 'number'; value: SdGraphSpecialNumber }\n | { $type: 'bigint'; value: string };\n\nexport interface SdGraphArrayNode {\n type: 'array';\n values: SdGraphValue[];\n}\n\nexport interface SdGraphObjectNode {\n type: 'object';\n prototype: 'object' | 'null';\n entries: [string, SdGraphValue][];\n}\n\nexport interface SdGraphDateNode {\n type: 'date';\n value: string;\n}\n\nexport interface SdGraphMapNode {\n type: 'map';\n entries: [SdGraphValue, SdGraphValue][];\n}\n\nexport interface SdGraphSetNode {\n type: 'set';\n values: SdGraphValue[];\n}\n\nexport type SdGraphNode = SdGraphArrayNode | SdGraphObjectNode | SdGraphDateNode | SdGraphMapNode | SdGraphSetNode;\n\nexport interface SdGraphEnvelope {\n format: typeof SD_GRAPH_FORMAT;\n version: typeof SD_GRAPH_VERSION;\n root: SdGraphValue;\n nodes: SdGraphNode[];\n}\n","import {\n SD_GRAPH_FORMAT,\n SD_GRAPH_VERSION,\n SdGraphEnvelope,\n SdGraphNode,\n SdGraphSerializerLimits,\n SdGraphSpecialNumber,\n SdGraphValue,\n SdPersistenceErrorCode,\n SdPersistenceSerializer,\n} from './persistence.model';\n\nconst DATE_GET_TIME = Date.prototype.getTime;\nconst DATE_TO_ISO_STRING = Date.prototype.toISOString;\nconst MAP_ENTRIES = Map.prototype.entries;\nconst MAP_SET = Map.prototype.set;\nconst SET_VALUES = Set.prototype.values;\nconst SET_ADD = Set.prototype.add;\n\nexport const SD_GRAPH_HARD_LIMITS: Readonly<SdGraphSerializerLimits> = Object.freeze({\n maxDocumentCharacters: 4_000_000,\n maxDepth: 128,\n maxNodes: 50_000,\n maxEntries: 200_000,\n maxStringCharacters: 1_000_000,\n maxKeyCharacters: 16_384,\n maxBigIntDigits: 100_000,\n});\n\ninterface SdGraphTraversalBudget {\n entries: number;\n}\n\nexport class SdPersistenceError extends Error {\n override readonly name = 'SdPersistenceError';\n\n constructor(\n readonly code: SdPersistenceErrorCode,\n message: string\n ) {\n super(`${code}: ${message}`);\n }\n}\n\nexport class SdGraphSerializer implements SdPersistenceSerializer {\n readonly format = `${SD_GRAPH_FORMAT}@${SD_GRAPH_VERSION}`;\n readonly limits: Readonly<SdGraphSerializerLimits>;\n\n constructor(limits: Partial<SdGraphSerializerLimits> = {}) {\n const configured = { ...SD_GRAPH_HARD_LIMITS, ...limits };\n for (const key of Object.keys(SD_GRAPH_HARD_LIMITS) as (keyof SdGraphSerializerLimits)[]) {\n const value = configured[key];\n if (!Number.isSafeInteger(value) || value < 1 || value > SD_GRAPH_HARD_LIMITS[key]) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', `Invalid ${key} limit`);\n }\n }\n this.limits = Object.freeze(configured);\n }\n\n stringify<T>(value: T): string {\n const nodes: SdGraphNode[] = [];\n const references = new Map<object, number>();\n const budget: SdGraphTraversalBudget = { entries: 0 };\n const root = this.#encode(value, nodes, references, '$', 0, budget);\n const envelope: SdGraphEnvelope = {\n format: SD_GRAPH_FORMAT,\n version: SD_GRAPH_VERSION,\n root,\n nodes,\n };\n const serialized = JSON.stringify(envelope);\n this.#ensureDocumentLength(serialized.length);\n return serialized;\n }\n\n parse<T = unknown>(serialized: string): T {\n this.#ensureDocumentLength(serialized.length);\n let document: unknown;\n try {\n document = JSON.parse(serialized) as unknown;\n } catch {\n throw new SdPersistenceError('INVALID_DOCUMENT', 'Serialized value is not valid JSON');\n }\n\n const envelope = this.#validateEnvelope(document);\n this.#validateDepth(envelope);\n const values: unknown[] = envelope.nodes.map((node, index) => this.#createNode(node, index));\n envelope.nodes.forEach((node, index) => this.#populateNode(node, values[index], values));\n return this.#decode(envelope.root, values, '$.root') as T;\n }\n\n clone<T>(value: T): T {\n return this.parse<T>(this.stringify(value));\n }\n\n #encode(\n value: unknown,\n nodes: SdGraphNode[],\n references: Map<object, number>,\n path: string,\n depth: number,\n budget: SdGraphTraversalBudget\n ): SdGraphValue {\n this.#ensureDepth(depth, path);\n if (value === null || typeof value === 'boolean') return value;\n if (typeof value === 'string') {\n this.#ensureStringLength(value, path);\n return value;\n }\n if (value === undefined) return { $type: 'undefined' };\n if (typeof value === 'number') {\n if (Number.isNaN(value)) return { $type: 'number', value: 'NaN' };\n if (value === Number.POSITIVE_INFINITY) return { $type: 'number', value: 'Infinity' };\n if (value === Number.NEGATIVE_INFINITY) return { $type: 'number', value: '-Infinity' };\n if (Object.is(value, -0)) return { $type: 'number', value: '-0' };\n return value;\n }\n if (typeof value === 'bigint') {\n const bigint = value.toString();\n this.#ensureBigIntLength(bigint, path);\n return { $type: 'bigint', value: bigint };\n }\n if (typeof value === 'function' || typeof value === 'symbol') {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Unsupported ${typeof value} at ${path}`);\n }\n\n const prototype = Object.getPrototypeOf(value) as object | null;\n if (Array.isArray(value) && prototype !== Array.prototype) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Unsupported array prototype at ${path}`);\n }\n\n const existingReference = references.get(value);\n if (existingReference !== undefined) return { $ref: existingReference };\n\n const reference = nodes.length;\n references.set(value, reference);\n\n if (Array.isArray(value)) {\n this.#addNode(nodes, { type: 'array', values: [] }, path);\n this.#consumeEntries(value.length, path, budget);\n const node = nodes[reference];\n if (node.type !== 'array') throw new SdPersistenceError('INVALID_NODE', `Invalid array node at ${path}`);\n if (Object.getOwnPropertySymbols(value).length > 0) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Symbol properties are unsupported at ${path}`);\n }\n const descriptors = Object.getOwnPropertyDescriptors(value);\n for (const key of Object.keys(descriptors)) {\n if (key === 'length') continue;\n if (!this.#isArrayIndex(key, value.length)) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Extra array property is unsupported at ${path}.${key}`);\n }\n }\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = descriptors[String(index)];\n if (!descriptor) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Sparse array entry is unsupported at ${path}[${index}]`);\n }\n if (!('value' in descriptor)) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Accessor property is unsupported at ${path}[${index}]`);\n }\n node.values.push(this.#encode(descriptor.value, nodes, references, `${path}[${index}]`, depth + 1, budget));\n }\n return { $ref: reference };\n }\n\n if (prototype === Date.prototype) {\n this.#ensureNoOwnProperties(value, path, 'Date');\n let time: number;\n let iso: string;\n try {\n time = DATE_GET_TIME.call(value);\n iso = DATE_TO_ISO_STRING.call(value);\n } catch {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Invalid Date at ${path}`);\n }\n if (!Number.isFinite(time)) throw new SdPersistenceError('UNSUPPORTED_VALUE', `Invalid Date at ${path}`);\n this.#addNode(nodes, { type: 'date', value: iso }, path);\n return { $ref: reference };\n }\n\n if (prototype === Map.prototype) {\n this.#ensureNoOwnProperties(value, path, 'Map');\n let iterator: IterableIterator<[unknown, unknown]>;\n try {\n iterator = MAP_ENTRIES.call(value);\n } catch {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Invalid Map at ${path}`);\n }\n const node: SdGraphNode = { type: 'map', entries: [] };\n this.#addNode(nodes, node, path);\n let index = 0;\n for (const [key, item] of iterator) {\n this.#consumeEntries(1, path, budget);\n node.entries.push([\n this.#encode(key, nodes, references, `${path}.mapKey[${index}]`, depth + 1, budget),\n this.#encode(item, nodes, references, `${path}.mapValue[${index}]`, depth + 1, budget),\n ]);\n index += 1;\n }\n return { $ref: reference };\n }\n\n if (prototype === Set.prototype) {\n this.#ensureNoOwnProperties(value, path, 'Set');\n let iterator: IterableIterator<unknown>;\n try {\n iterator = SET_VALUES.call(value);\n } catch {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Invalid Set at ${path}`);\n }\n const node: SdGraphNode = { type: 'set', values: [] };\n this.#addNode(nodes, node, path);\n let index = 0;\n for (const item of iterator) {\n this.#consumeEntries(1, path, budget);\n node.values.push(this.#encode(item, nodes, references, `${path}.set[${index}]`, depth + 1, budget));\n index += 1;\n }\n return { $ref: reference };\n }\n\n if (prototype !== Object.prototype && prototype !== null) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Unsupported object prototype at ${path}`);\n }\n if (Object.getOwnPropertySymbols(value).length > 0) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Symbol properties are unsupported at ${path}`);\n }\n\n const node: SdGraphNode = {\n type: 'object',\n prototype: prototype === null ? 'null' : 'object',\n entries: [],\n };\n this.#addNode(nodes, node, path);\n const descriptors = Object.getOwnPropertyDescriptors(value);\n const keys = Object.keys(descriptors).sort();\n this.#consumeEntries(keys.length, path, budget);\n for (const key of keys) {\n this.#ensureKeyLength(key, `${path}.${key}`);\n const descriptor = descriptors[key];\n if (!descriptor || !('value' in descriptor)) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Accessor property is unsupported at ${path}.${key}`);\n }\n if (!descriptor.enumerable) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Non-enumerable property is unsupported at ${path}.${key}`);\n }\n node.entries.push([key, this.#encode(descriptor.value, nodes, references, `${path}.${key}`, depth + 1, budget)]);\n }\n return { $ref: reference };\n }\n\n #validateEnvelope(value: unknown): SdGraphEnvelope {\n if (!this.#isRecord(value) || !this.#hasExactKeys(value, ['format', 'version', 'root', 'nodes'])) {\n throw new SdPersistenceError('INVALID_DOCUMENT', 'Graph envelope must have the exact schema');\n }\n if (value['format'] !== SD_GRAPH_FORMAT) throw new SdPersistenceError('UNKNOWN_FORMAT', 'Unknown persistence format');\n if (value['version'] !== SD_GRAPH_VERSION) throw new SdPersistenceError('UNKNOWN_VERSION', 'Unsupported persistence version');\n if (!Array.isArray(value['nodes'])) throw new SdPersistenceError('INVALID_DOCUMENT', 'Graph nodes must be an array');\n if (value['nodes'].length > this.limits.maxNodes) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Graph node limit exceeded at $.nodes');\n }\n\n const budget: SdGraphTraversalBudget = { entries: 0 };\n const nodes = value['nodes'].map((node, index) => this.#validateNode(node, index, budget));\n const root = this.#validateGraphValue(value['root'], '$.root');\n return { format: SD_GRAPH_FORMAT, version: SD_GRAPH_VERSION, root, nodes };\n }\n\n #validateNode(value: unknown, index: number, budget: SdGraphTraversalBudget): SdGraphNode {\n if (!this.#isRecord(value) || typeof value['type'] !== 'string') {\n throw new SdPersistenceError('INVALID_NODE', `Invalid node at index ${index}`);\n }\n switch (value['type']) {\n case 'array':\n case 'set': {\n if (!this.#hasExactKeys(value, ['type', 'values']) || !Array.isArray(value['values'])) {\n throw new SdPersistenceError('INVALID_NODE', `Invalid ${value['type']} node at index ${index}`);\n }\n this.#consumeEntries(value['values'].length, `$.nodes[${index}]`, budget);\n const values = value['values'].map((item, itemIndex) => this.#validateGraphValue(item, `$.nodes[${index}].values[${itemIndex}]`));\n if (value['type'] === 'set') this.#rejectDuplicateValues(values, `set node at index ${index}`);\n return { type: value['type'], values };\n }\n case 'object': {\n if (\n !this.#hasExactKeys(value, ['type', 'prototype', 'entries']) ||\n (value['prototype'] !== 'object' && value['prototype'] !== 'null') ||\n !Array.isArray(value['entries'])\n ) {\n throw new SdPersistenceError('INVALID_NODE', `Invalid object node at index ${index}`);\n }\n this.#consumeEntries(value['entries'].length, `$.nodes[${index}]`, budget);\n const keys = new Set<string>();\n const entries = value['entries'].map((entry, entryIndex): [string, SdGraphValue] => {\n if (!Array.isArray(entry) || entry.length !== 2 || typeof entry[0] !== 'string') {\n throw new SdPersistenceError('INVALID_NODE', `Invalid object entry at index ${index}:${entryIndex}`);\n }\n this.#ensureKeyLength(entry[0], `$.nodes[${index}].entries[${entryIndex}]`);\n if (keys.has(entry[0])) throw new SdPersistenceError('INVALID_NODE', `Duplicate object key at index ${index}:${entryIndex}`);\n keys.add(entry[0]);\n return [entry[0], this.#validateGraphValue(entry[1], `$.nodes[${index}].entries[${entryIndex}]`)];\n });\n return { type: 'object', prototype: value['prototype'], entries };\n }\n case 'date': {\n if (!this.#hasExactKeys(value, ['type', 'value']) || typeof value['value'] !== 'string') {\n throw new SdPersistenceError('INVALID_NODE', `Invalid date node at index ${index}`);\n }\n this.#ensureStringLength(value['value'], `$.nodes[${index}].value`);\n let canonical = false;\n try {\n const date = new Date(value['value']);\n canonical = Number.isFinite(DATE_GET_TIME.call(date)) && DATE_TO_ISO_STRING.call(date) === value['value'];\n } catch {\n canonical = false;\n }\n if (!canonical) throw new SdPersistenceError('INVALID_NODE', `Invalid date node at index ${index}`);\n return { type: 'date', value: value['value'] };\n }\n case 'map': {\n if (!this.#hasExactKeys(value, ['type', 'entries']) || !Array.isArray(value['entries'])) {\n throw new SdPersistenceError('INVALID_NODE', `Invalid map node at index ${index}`);\n }\n this.#consumeEntries(value['entries'].length, `$.nodes[${index}]`, budget);\n const seen = new Set<string>();\n const entries = value['entries'].map((entry, entryIndex): [SdGraphValue, SdGraphValue] => {\n if (!Array.isArray(entry) || entry.length !== 2) {\n throw new SdPersistenceError('INVALID_NODE', `Invalid map entry at index ${index}:${entryIndex}`);\n }\n const key = this.#validateGraphValue(entry[0], `$.nodes[${index}].entries[${entryIndex}].key`);\n const signature = this.#graphValueSignature(key);\n if (seen.has(signature)) throw new SdPersistenceError('INVALID_NODE', `Duplicate map key at index ${index}:${entryIndex}`);\n seen.add(signature);\n return [key, this.#validateGraphValue(entry[1], `$.nodes[${index}].entries[${entryIndex}].value`)];\n });\n return { type: 'map', entries };\n }\n default:\n throw new SdPersistenceError('INVALID_NODE', `Unknown node type at index ${index}`);\n }\n }\n\n #validateGraphValue(value: unknown, path: string): SdGraphValue {\n if (value === null || typeof value === 'boolean') return value;\n if (typeof value === 'string') {\n this.#ensureStringLength(value, path);\n return value;\n }\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) throw new SdPersistenceError('INVALID_DOCUMENT', `Non-finite number at ${path}`);\n return value;\n }\n if (!this.#isRecord(value)) throw new SdPersistenceError('INVALID_DOCUMENT', `Invalid graph value at ${path}`);\n const hasReference = '$ref' in value;\n const hasType = '$type' in value;\n if (hasReference === hasType) throw new SdPersistenceError('INVALID_DOCUMENT', `Ambiguous graph value tag at ${path}`);\n if (hasReference) {\n if (!this.#hasExactKeys(value, ['$ref'])) throw new SdPersistenceError('INVALID_DOCUMENT', `Malformed reference tag at ${path}`);\n if (!Number.isInteger(value['$ref']) || (value['$ref'] as number) < 0) {\n throw new SdPersistenceError('INVALID_REFERENCE', `Invalid reference at ${path}`);\n }\n return { $ref: value['$ref'] as number };\n }\n if (value['$type'] === 'undefined' && this.#hasExactKeys(value, ['$type'])) return { $type: 'undefined' };\n if (value['$type'] === 'number' && this.#hasExactKeys(value, ['$type', 'value']) && this.#isSpecialNumber(value['value'])) {\n return { $type: 'number', value: value['value'] };\n }\n if (\n value['$type'] === 'bigint' &&\n this.#hasExactKeys(value, ['$type', 'value']) &&\n typeof value['value'] === 'string' &&\n /^-?\\d+$/.test(value['value'])\n ) {\n this.#ensureBigIntLength(value['value'], path);\n return { $type: 'bigint', value: value['value'] };\n }\n throw new SdPersistenceError('INVALID_DOCUMENT', `Unknown graph value tag at ${path}`);\n }\n\n #validateDepth(envelope: SdGraphEnvelope): void {\n const highestDepth = new Map<number, number>();\n const visit = (value: SdGraphValue, depth: number, path: string, active: Set<number>): void => {\n this.#ensureDepth(depth, path);\n if (typeof value !== 'object' || value === null || !('$ref' in value)) return;\n if (value.$ref >= envelope.nodes.length) {\n throw new SdPersistenceError('INVALID_REFERENCE', `Reference out of bounds at ${path}`);\n }\n if (active.has(value.$ref)) return;\n const previous = highestDepth.get(value.$ref);\n if (previous !== undefined && previous >= depth) return;\n highestDepth.set(value.$ref, depth);\n active.add(value.$ref);\n const node = envelope.nodes[value.$ref];\n switch (node.type) {\n case 'array':\n case 'set':\n node.values.forEach((item, index) => visit(item, depth + 1, `${path}[${index}]`, active));\n break;\n case 'object':\n node.entries.forEach(([key, item]) => visit(item, depth + 1, `${path}.${key}`, active));\n break;\n case 'map':\n node.entries.forEach(([key, item], index) => {\n visit(key, depth + 1, `${path}.mapKey[${index}]`, active);\n visit(item, depth + 1, `${path}.mapValue[${index}]`, active);\n });\n break;\n case 'date':\n break;\n }\n active.delete(value.$ref);\n };\n visit(envelope.root, 0, '$.root', new Set<number>());\n envelope.nodes.forEach((_node, index) => visit({ $ref: index }, 0, `$.nodes[${index}]`, new Set<number>()));\n }\n\n #createNode(node: SdGraphNode, index: number): unknown {\n switch (node.type) {\n case 'array':\n return [];\n case 'object':\n return node.prototype === 'null' ? Object.create(null) : {};\n case 'date':\n return new Date(node.value);\n case 'map':\n return new Map<unknown, unknown>();\n case 'set':\n return new Set<unknown>();\n default:\n throw new SdPersistenceError('INVALID_NODE', `Unknown node type at index ${index}`);\n }\n }\n\n #populateNode(node: SdGraphNode, target: unknown, values: unknown[]): void {\n switch (node.type) {\n case 'array': {\n const array = target as unknown[];\n array.length = node.values.length;\n node.values.forEach((value, index) => {\n array[index] = this.#decode(value, values, `array[${index}]`);\n });\n break;\n }\n case 'object': {\n const object = target as Record<string, unknown>;\n for (const [key, value] of node.entries) {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n value: this.#decode(value, values, `object.${key}`),\n writable: true,\n });\n }\n break;\n }\n case 'map': {\n const map = target as Map<unknown, unknown>;\n for (const [key, value] of node.entries) {\n MAP_SET.call(map, this.#decode(key, values, 'map.key'), this.#decode(value, values, 'map.value'));\n }\n break;\n }\n case 'set': {\n const set = target as Set<unknown>;\n for (const value of node.values) SET_ADD.call(set, this.#decode(value, values, 'set.value'));\n break;\n }\n case 'date':\n break;\n }\n }\n\n #decode(value: SdGraphValue, values: unknown[], path: string): unknown {\n if (value === null || typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number') return value;\n if ('$ref' in value) {\n if (value.$ref >= values.length) throw new SdPersistenceError('INVALID_REFERENCE', `Reference out of bounds at ${path}`);\n return values[value.$ref];\n }\n if (value.$type === 'undefined') return undefined;\n if (value.$type === 'bigint') return BigInt(value.value);\n switch (value.value) {\n case 'NaN':\n return Number.NaN;\n case 'Infinity':\n return Number.POSITIVE_INFINITY;\n case '-Infinity':\n return Number.NEGATIVE_INFINITY;\n case '-0':\n return -0;\n }\n }\n\n #addNode(nodes: SdGraphNode[], node: SdGraphNode, path: string): void {\n if (nodes.length >= this.limits.maxNodes) throw new SdPersistenceError('LIMIT_EXCEEDED', `Graph node limit exceeded at ${path}`);\n nodes.push(node);\n }\n\n #consumeEntries(count: number, path: string, budget: SdGraphTraversalBudget): void {\n if (count > this.limits.maxEntries - budget.entries) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', `Graph entry limit exceeded at ${path}`);\n }\n budget.entries += count;\n }\n\n #ensureDocumentLength(length: number): void {\n if (length > this.limits.maxDocumentCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Serialized document character limit exceeded');\n }\n }\n\n #ensureDepth(depth: number, path: string): void {\n if (depth > this.limits.maxDepth) throw new SdPersistenceError('LIMIT_EXCEEDED', `Graph depth limit exceeded at ${path}`);\n }\n\n #ensureStringLength(value: string, path: string): void {\n if (value.length > this.limits.maxStringCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', `String character limit exceeded at ${path}`);\n }\n }\n\n #ensureKeyLength(value: string, path: string): void {\n if (value.length > this.limits.maxKeyCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', `Object key character limit exceeded at ${path}`);\n }\n }\n\n #ensureBigIntLength(value: string, path: string): void {\n const digits = value.startsWith('-') ? value.length - 1 : value.length;\n if (digits > this.limits.maxBigIntDigits) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', `BigInt digit limit exceeded at ${path}`);\n }\n }\n\n #ensureNoOwnProperties(value: object, path: string, type: string): void {\n if (Reflect.ownKeys(value).length > 0) {\n throw new SdPersistenceError('UNSUPPORTED_VALUE', `Own properties on ${type} are unsupported at ${path}`);\n }\n }\n\n #rejectDuplicateValues(values: SdGraphValue[], description: string): void {\n const seen = new Set<string>();\n values.forEach((value, index) => {\n const signature = this.#graphValueSignature(value);\n if (seen.has(signature)) throw new SdPersistenceError('INVALID_NODE', `Duplicate value in ${description}:${index}`);\n seen.add(signature);\n });\n }\n\n #graphValueSignature(value: SdGraphValue): string {\n if (value === null) return 'null';\n if (typeof value === 'string') return `string:${value}`;\n if (typeof value === 'boolean') return `boolean:${value}`;\n if (typeof value === 'number') return `number:${Object.is(value, -0) ? 0 : value}`;\n if ('$ref' in value) return `ref:${value.$ref}`;\n if (value.$type === 'number') return value.value === '-0' ? 'number:0' : `number:${value.value}`;\n if (value.$type === 'bigint') return `bigint:${BigInt(value.value).toString()}`;\n return `type:${value.$type}`;\n }\n\n #isArrayIndex(key: string, length: number): boolean {\n const index = Number(key);\n return Number.isInteger(index) && index >= 0 && index < length && index <= 4_294_967_294 && String(index) === key;\n }\n\n #isSpecialNumber(value: unknown): value is SdGraphSpecialNumber {\n return value === 'NaN' || value === 'Infinity' || value === '-Infinity' || value === '-0';\n }\n\n #hasExactKeys(value: Record<string, unknown>, expected: readonly string[]): boolean {\n const keys = Object.keys(value);\n return keys.length === expected.length && expected.every(key => Object.prototype.hasOwnProperty.call(value, key));\n }\n\n #isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n }\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, InjectionToken, PLATFORM_ID } from '@angular/core';\n\nexport type SdPersistenceStorageArea = 'local' | 'session';\n\nexport type SdPersistenceStorageRead = { status: 'found'; value: string } | { status: 'absent' } | { status: 'unavailable' };\n\nexport interface SdPersistenceStorageAdapter {\n /** Optional tri-state read. Legacy adapters may continue to implement only `getItem`. */\n readItem?(area: SdPersistenceStorageArea, key: string): SdPersistenceStorageRead;\n getItem(area: SdPersistenceStorageArea, key: string): string | null;\n setItem(area: SdPersistenceStorageArea, key: string, value: string): boolean;\n removeItem(area: SdPersistenceStorageArea, key: string): boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SdBrowserStorageAdapter implements SdPersistenceStorageAdapter {\n readonly #document = inject(DOCUMENT);\n readonly #platformId = inject(PLATFORM_ID);\n\n readItem(area: SdPersistenceStorageArea, key: string): SdPersistenceStorageRead {\n try {\n const storage = this.#getStorage(area);\n if (!storage) return { status: 'unavailable' };\n const value = storage.getItem(key);\n return value === null ? { status: 'absent' } : { status: 'found', value };\n } catch {\n return { status: 'unavailable' };\n }\n }\n\n getItem(area: SdPersistenceStorageArea, key: string): string | null {\n const result = this.readItem(area, key);\n return result.status === 'found' ? result.value : null;\n }\n\n setItem(area: SdPersistenceStorageArea, key: string, value: string): boolean {\n try {\n const storage = this.#getStorage(area);\n if (!storage) return false;\n storage.setItem(key, value);\n return true;\n } catch {\n return false;\n }\n }\n\n removeItem(area: SdPersistenceStorageArea, key: string): boolean {\n try {\n const storage = this.#getStorage(area);\n if (!storage) return false;\n storage.removeItem(key);\n return true;\n } catch {\n return false;\n }\n }\n\n #getStorage(area: SdPersistenceStorageArea): Storage | null {\n if (!isPlatformBrowser(this.#platformId)) return null;\n const browserWindow = this.#document.defaultView;\n if (!browserWindow) return null;\n return area === 'local' ? browserWindow.localStorage : browserWindow.sessionStorage;\n }\n}\n\nexport function readSdPersistenceStorageItem(\n adapter: SdPersistenceStorageAdapter,\n area: SdPersistenceStorageArea,\n key: string\n): SdPersistenceStorageRead {\n try {\n if (adapter.readItem) return adapter.readItem(area, key);\n const value = adapter.getItem(area, key);\n return value === null ? { status: 'absent' } : { status: 'found', value };\n } catch {\n return { status: 'unavailable' };\n }\n}\n\nexport const SD_PERSISTENCE_STORAGE_ADAPTER = new InjectionToken<SdPersistenceStorageAdapter>('sd-persistence.storage-adapter', {\n factory: () => inject(SdBrowserStorageAdapter),\n});\n","import { SdGraphSerializer } from './graph-serializer';\nimport { SdPersistenceIdentityCanonicalizer } from './persistence.model';\n\nexport interface SdPersistenceKeyField {\n tag: string;\n value: string;\n}\n\nexport class SdPersistenceIdentityError extends Error {\n override readonly name = 'SdPersistenceIdentityError';\n\n constructor(message: string) {\n super(message);\n }\n}\n\nexport function buildSdPersistenceKey(baseKey: string, fields: readonly SdPersistenceKeyField[]): string {\n const parts = [{ tag: 'base', value: baseKey }, ...fields];\n return `sdcorejs.persistence-key@1|${parts.map(part => `${encode(part.tag)}${encode(part.value)}`).join('|')}`;\n}\n\nexport class SdGraphIdentityCanonicalizer implements SdPersistenceIdentityCanonicalizer {\n readonly format = 'sdcorejs.graph-identity@1';\n readonly #serializer = new SdGraphSerializer();\n\n canonicalize(value: unknown): string {\n return this.#serializer.stringify(value);\n }\n}\n\nexport function canonicalizeSdPersistenceValue(canonicalizer: SdPersistenceIdentityCanonicalizer, value: unknown, label: string): string {\n try {\n return canonicalizer.canonicalize(value);\n } catch (error: unknown) {\n const detail = error instanceof Error ? error.message : 'unknown serialization error';\n throw new SdPersistenceIdentityError(`Cannot canonicalize ${label}: ${detail}`);\n }\n}\n\nfunction encode(value: string): string {\n return `${value.length}:${value}`;\n}\n\nexport function digestSdPersistenceKey(value: string): string {\n const bytes = encodeUtf8(value);\n const bitLength = bytes.length * 8;\n const paddedLength = Math.ceil((bytes.length + 9) / 64) * 64;\n const padded = new Uint8Array(paddedLength);\n padded.set(bytes);\n padded[bytes.length] = 0x80;\n const high = Math.floor(bitLength / 0x1_0000_0000);\n const low = bitLength >>> 0;\n writeUint32(padded, paddedLength - 8, high);\n writeUint32(padded, paddedLength - 4, low);\n\n const hash = new Uint32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]);\n const schedule = new Uint32Array(64);\n for (let offset = 0; offset < padded.length; offset += 64) {\n for (let index = 0; index < 16; index += 1) {\n const position = offset + index * 4;\n schedule[index] =\n ((padded[position] ?? 0) << 24) |\n ((padded[position + 1] ?? 0) << 16) |\n ((padded[position + 2] ?? 0) << 8) |\n (padded[position + 3] ?? 0);\n }\n for (let index = 16; index < 64; index += 1) {\n const previous15 = schedule[index - 15] ?? 0;\n const previous2 = schedule[index - 2] ?? 0;\n const sigma0 = rotateRight(previous15, 7) ^ rotateRight(previous15, 18) ^ (previous15 >>> 3);\n const sigma1 = rotateRight(previous2, 17) ^ rotateRight(previous2, 19) ^ (previous2 >>> 10);\n schedule[index] = ((schedule[index - 16] ?? 0) + sigma0 + (schedule[index - 7] ?? 0) + sigma1) >>> 0;\n }\n\n let a = hash[0] ?? 0;\n let b = hash[1] ?? 0;\n let c = hash[2] ?? 0;\n let d = hash[3] ?? 0;\n let e = hash[4] ?? 0;\n let f = hash[5] ?? 0;\n let g = hash[6] ?? 0;\n let h = hash[7] ?? 0;\n for (let index = 0; index < 64; index += 1) {\n const sum1 = rotateRight(e, 6) ^ rotateRight(e, 11) ^ rotateRight(e, 25);\n const choice = (e & f) ^ (~e & g);\n const temp1 = (h + sum1 + choice + SHA256_CONSTANTS[index]! + schedule[index]!) >>> 0;\n const sum0 = rotateRight(a, 2) ^ rotateRight(a, 13) ^ rotateRight(a, 22);\n const majority = (a & b) ^ (a & c) ^ (b & c);\n const temp2 = (sum0 + majority) >>> 0;\n h = g;\n g = f;\n f = e;\n e = (d + temp1) >>> 0;\n d = c;\n c = b;\n b = a;\n a = (temp1 + temp2) >>> 0;\n }\n hash[0] = (hash[0]! + a) >>> 0;\n hash[1] = (hash[1]! + b) >>> 0;\n hash[2] = (hash[2]! + c) >>> 0;\n hash[3] = (hash[3]! + d) >>> 0;\n hash[4] = (hash[4]! + e) >>> 0;\n hash[5] = (hash[5]! + f) >>> 0;\n hash[6] = (hash[6]! + g) >>> 0;\n hash[7] = (hash[7]! + h) >>> 0;\n }\n\n return Array.from(hash, word => word.toString(16).padStart(8, '0')).join('');\n}\n\nconst SHA256_CONSTANTS = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be,\n 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa,\n 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85,\n 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n]);\n\nfunction encodeUtf8(value: string): Uint8Array {\n const bytes: number[] = [];\n for (let index = 0; index < value.length; index += 1) {\n const first = value.charCodeAt(index);\n let codePoint = first;\n if (first >= 0xd800 && first <= 0xdbff && index + 1 < value.length) {\n const second = value.charCodeAt(index + 1);\n if (second >= 0xdc00 && second <= 0xdfff) {\n codePoint = 0x10000 + ((first - 0xd800) << 10) + (second - 0xdc00);\n index += 1;\n }\n }\n if (codePoint <= 0x7f) bytes.push(codePoint);\n else if (codePoint <= 0x7ff) bytes.push(0xc0 | (codePoint >>> 6), 0x80 | (codePoint & 0x3f));\n else if (codePoint <= 0xffff) {\n bytes.push(0xe0 | (codePoint >>> 12), 0x80 | ((codePoint >>> 6) & 0x3f), 0x80 | (codePoint & 0x3f));\n } else {\n bytes.push(\n 0xf0 | (codePoint >>> 18),\n 0x80 | ((codePoint >>> 12) & 0x3f),\n 0x80 | ((codePoint >>> 6) & 0x3f),\n 0x80 | (codePoint & 0x3f)\n );\n }\n }\n return Uint8Array.from(bytes);\n}\n\nfunction rotateRight(value: number, shift: number): number {\n return (value >>> shift) | (value << (32 - shift));\n}\n\nfunction writeUint32(target: Uint8Array, offset: number, value: number): void {\n target[offset] = (value >>> 24) & 0xff;\n target[offset + 1] = (value >>> 16) & 0xff;\n target[offset + 2] = (value >>> 8) & 0xff;\n target[offset + 3] = value & 0xff;\n}\n","import { SdPersistenceError } from './graph-serializer';\n\nexport const SD_PERSISTENCE_ENVELOPE_FORMAT = 'sdcorejs.persistence-envelope';\nexport const SD_PERSISTENCE_ENVELOPE_VERSION = 1;\n\nexport interface SdPersistenceEnvelopeLimits {\n maxDocumentCharacters: number;\n maxPayloadCharacters: number;\n maxSerializerCharacters: number;\n maxIdentityCharacters: number;\n}\n\nexport const SD_PERSISTENCE_ENVELOPE_HARD_LIMITS: Readonly<SdPersistenceEnvelopeLimits> = Object.freeze({\n maxDocumentCharacters: 24_020_000,\n maxPayloadCharacters: 4_000_000,\n maxSerializerCharacters: 1_024,\n maxIdentityCharacters: 1_024,\n});\n\nexport interface SdPersistenceValueEnvelope {\n format: typeof SD_PERSISTENCE_ENVELOPE_FORMAT;\n version: typeof SD_PERSISTENCE_ENVELOPE_VERSION;\n kind: 'value';\n identity: string;\n serializer: string;\n payload: string;\n}\n\nexport interface SdPersistenceTombstoneEnvelope {\n format: typeof SD_PERSISTENCE_ENVELOPE_FORMAT;\n version: typeof SD_PERSISTENCE_ENVELOPE_VERSION;\n kind: 'tombstone';\n identity: string;\n serializer: string;\n}\n\nexport type SdPersistenceEnvelope = SdPersistenceValueEnvelope | SdPersistenceTombstoneEnvelope;\n\nexport function stringifySdPersistenceValueEnvelope(\n identity: string,\n serializer: string,\n payload: string,\n limits?: Partial<SdPersistenceEnvelopeLimits>\n): string {\n const resolved = resolveLimits(limits);\n ensureFieldLimits(identity, serializer, payload, resolved);\n const envelope: SdPersistenceValueEnvelope = {\n format: SD_PERSISTENCE_ENVELOPE_FORMAT,\n version: SD_PERSISTENCE_ENVELOPE_VERSION,\n kind: 'value',\n identity,\n serializer,\n payload,\n };\n const serialized = JSON.stringify(envelope);\n ensureDocumentLimit(serialized, resolved);\n return serialized;\n}\n\nexport function stringifySdPersistenceTombstoneEnvelope(\n identity: string,\n serializer: string,\n limits?: Partial<SdPersistenceEnvelopeLimits>\n): string {\n const resolved = resolveLimits(limits);\n ensureFieldLimits(identity, serializer, undefined, resolved);\n const envelope: SdPersistenceTombstoneEnvelope = {\n format: SD_PERSISTENCE_ENVELOPE_FORMAT,\n version: SD_PERSISTENCE_ENVELOPE_VERSION,\n kind: 'tombstone',\n identity,\n serializer,\n };\n const serialized = JSON.stringify(envelope);\n ensureDocumentLimit(serialized, resolved);\n return serialized;\n}\n\nexport function parseSdPersistenceEnvelope(\n serialized: string,\n expectedIdentity: string,\n expectedSerializer: string,\n limits?: Partial<SdPersistenceEnvelopeLimits>\n): SdPersistenceEnvelope | undefined {\n const resolved = resolveLimits(limits);\n ensureFieldLimits(expectedIdentity, expectedSerializer, undefined, resolved);\n ensureDocumentLimit(serialized, resolved);\n let value: unknown;\n try {\n value = JSON.parse(serialized) as unknown;\n } catch {\n return undefined;\n }\n if (!isRecord(value)) return undefined;\n if (typeof value['identity'] === 'string' && value['identity'].length > resolved.maxIdentityCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope identity character limit exceeded');\n }\n if (typeof value['serializer'] === 'string' && value['serializer'].length > resolved.maxSerializerCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope serializer character limit exceeded');\n }\n if (typeof value['payload'] === 'string' && value['payload'].length > resolved.maxPayloadCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope payload character limit exceeded');\n }\n if (\n value['format'] !== SD_PERSISTENCE_ENVELOPE_FORMAT ||\n value['version'] !== SD_PERSISTENCE_ENVELOPE_VERSION ||\n value['identity'] !== expectedIdentity ||\n value['serializer'] !== expectedSerializer\n ) {\n return undefined;\n }\n if (value['kind'] === 'tombstone' && hasExactKeys(value, ['format', 'version', 'kind', 'identity', 'serializer'])) {\n return {\n format: SD_PERSISTENCE_ENVELOPE_FORMAT,\n version: SD_PERSISTENCE_ENVELOPE_VERSION,\n kind: 'tombstone',\n identity: expectedIdentity,\n serializer: expectedSerializer,\n };\n }\n if (\n value['kind'] === 'value' &&\n typeof value['payload'] === 'string' &&\n hasExactKeys(value, ['format', 'version', 'kind', 'identity', 'serializer', 'payload'])\n ) {\n return {\n format: SD_PERSISTENCE_ENVELOPE_FORMAT,\n version: SD_PERSISTENCE_ENVELOPE_VERSION,\n kind: 'value',\n identity: expectedIdentity,\n serializer: expectedSerializer,\n payload: value['payload'],\n };\n }\n return undefined;\n}\n\nfunction resolveLimits(limits: Partial<SdPersistenceEnvelopeLimits> | undefined): Readonly<SdPersistenceEnvelopeLimits> {\n const resolved = { ...SD_PERSISTENCE_ENVELOPE_HARD_LIMITS, ...limits };\n for (const key of Object.keys(SD_PERSISTENCE_ENVELOPE_HARD_LIMITS) as (keyof SdPersistenceEnvelopeLimits)[]) {\n const value = resolved[key];\n if (!Number.isSafeInteger(value) || value < 1 || value > SD_PERSISTENCE_ENVELOPE_HARD_LIMITS[key]) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', `Invalid persistence envelope ${key} limit`);\n }\n }\n return resolved;\n}\n\nfunction ensureFieldLimits(\n identity: string,\n serializer: string,\n payload: string | undefined,\n limits: Readonly<SdPersistenceEnvelopeLimits>\n): void {\n if (identity.length > limits.maxIdentityCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope identity character limit exceeded');\n }\n if (serializer.length > limits.maxSerializerCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope serializer character limit exceeded');\n }\n if (payload !== undefined && payload.length > limits.maxPayloadCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope payload character limit exceeded');\n }\n}\n\nfunction ensureDocumentLimit(serialized: string, limits: Readonly<SdPersistenceEnvelopeLimits>): void {\n if (serialized.length > limits.maxDocumentCharacters) {\n throw new SdPersistenceError('LIMIT_EXCEEDED', 'Persistence envelope document character limit exceeded');\n }\n}\n\nfunction hasExactKeys(value: Record<string, unknown>, expected: readonly string[]): boolean {\n const keys = Object.keys(value);\n return keys.length === expected.length && expected.every(key => Object.prototype.hasOwnProperty.call(value, key));\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAO,MAAM,eAAe,GAAG;AACxB,MAAM,gBAAgB,GAAG;;ACWhC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO;AAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AACrD,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO;AACzC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG;AACjC,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM;AACvC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG;AAE1B,MAAM,oBAAoB,GAAsC,MAAM,CAAC,MAAM,CAAC;AACnF,IAAA,qBAAqB,EAAE,SAAS;AAChC,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,eAAe,EAAE,OAAO;AACzB,CAAA;AAMK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAIhC,IAAA,IAAA;IAHO,IAAI,GAAG,oBAAoB;IAE7C,WAAA,CACW,IAA4B,EACrC,OAAe,EAAA;AAEf,QAAA,KAAK,CAAC,CAAA,EAAG,IAAI,KAAK,OAAO,CAAA,CAAE,CAAC;QAHnB,IAAA,CAAA,IAAI,GAAJ,IAAI;IAIf;AACD;MAEY,iBAAiB,CAAA;AACnB,IAAA,MAAM,GAAG,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,gBAAgB,EAAE;AACjD,IAAA,MAAM;AAEf,IAAA,WAAA,CAAY,SAA2C,EAAE,EAAA;QACvD,MAAM,UAAU,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,EAAE;QACzD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAsC,EAAE;AACxF,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE;gBAClF,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,QAAA,EAAW,GAAG,CAAA,MAAA,CAAQ,CAAC;YACxE;QACF;QACA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACzC;AAEA,IAAA,SAAS,CAAI,KAAQ,EAAA;QACnB,MAAM,KAAK,GAAkB,EAAE;AAC/B,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB;AAC5C,QAAA,MAAM,MAAM,GAA2B,EAAE,OAAO,EAAE,CAAC,EAAE;AACrD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC;AACnE,QAAA,MAAM,QAAQ,GAAoB;AAChC,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,OAAO,EAAE,gBAAgB;YACzB,IAAI;YACJ,KAAK;SACN;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C,QAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC;AAC7C,QAAA,OAAO,UAAU;IACnB;AAEA,IAAA,KAAK,CAAc,UAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC;AAC7C,QAAA,IAAI,QAAiB;AACrB,QAAA,IAAI;AACF,YAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY;QAC9C;AAAE,QAAA,MAAM;AACN,YAAA,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;QACxF;QAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AACjD,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC7B,MAAM,MAAM,GAAc,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5F,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACxF,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAM;IAC3D;AAEA,IAAA,KAAK,CAAI,KAAQ,EAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C;IAEA,OAAO,CACL,KAAc,EACd,KAAoB,EACpB,UAA+B,EAC/B,IAAY,EACZ,KAAa,EACb,MAA8B,EAAA;AAE9B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9B,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAC9D,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC;AACrC,YAAA,OAAO,KAAK;QACd;QACA,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;AACtD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;AACjE,YAAA,IAAI,KAAK,KAAK,MAAM,CAAC,iBAAiB;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;AACrF,YAAA,IAAI,KAAK,KAAK,MAAM,CAAC,iBAAiB;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;YACtF,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;AACjE,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;YACtC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;QAC3C;QACA,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5D,YAAA,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,YAAA,EAAe,OAAO,KAAK,CAAA,IAAA,EAAO,IAAI,CAAA,CAAE,CAAC;QAC7F;QAEA,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAkB;AAC/D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE;YACzD,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,+BAAA,EAAkC,IAAI,CAAA,CAAE,CAAC;QAC7F;QAEA,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/C,IAAI,iBAAiB,KAAK,SAAS;AAAE,YAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE;AAEvE,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;AAC9B,QAAA,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AAEhC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AAChD,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;AAC7B,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,sBAAA,EAAyB,IAAI,CAAA,CAAE,CAAC;YACxG,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClD,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,qCAAA,EAAwC,IAAI,CAAA,CAAE,CAAC;YACnG;YACA,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC1C,IAAI,GAAG,KAAK,QAAQ;oBAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC1C,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;gBAC5G;YACF;AACA,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;gBACpD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,EAAE;oBACf,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,qCAAA,EAAwC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAC;gBAC7G;AACA,gBAAA,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,EAAE;oBAC5B,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,oCAAA,EAAuC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAC;gBAC5G;AACA,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7G;AACA,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B;AAEA,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;AAChD,YAAA,IAAI,IAAY;AAChB,YAAA,IAAI,GAAW;AACf,YAAA,IAAI;AACF,gBAAA,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,gBAAA,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YACtC;AAAE,YAAA,MAAM;gBACN,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,gBAAA,EAAmB,IAAI,CAAA,CAAE,CAAC;YAC9E;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,gBAAA,EAAmB,IAAI,CAAA,CAAE,CAAC;AACxG,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC;AACxD,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B;AAEA,QAAA,IAAI,SAAS,KAAK,GAAG,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/C,YAAA,IAAI,QAA8C;AAClD,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC;AAAE,YAAA,MAAM;gBACN,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,eAAA,EAAkB,IAAI,CAAA,CAAE,CAAC;YAC7E;YACA,MAAM,IAAI,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;YAChC,IAAI,KAAK,GAAG,CAAC;YACb,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE;gBAClC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAA,QAAA,EAAW,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBACnF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAA,UAAA,EAAa,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;AACvF,iBAAA,CAAC;gBACF,KAAK,IAAI,CAAC;YACZ;AACA,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B;AAEA,QAAA,IAAI,SAAS,KAAK,GAAG,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/C,YAAA,IAAI,QAAmC;AACvC,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC;AAAE,YAAA,MAAM;gBACN,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,eAAA,EAAkB,IAAI,CAAA,CAAE,CAAC;YAC7E;YACA,MAAM,IAAI,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;YAChC,IAAI,KAAK,GAAG,CAAC;AACb,YAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAA,CAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnG,KAAK,IAAI,CAAC;YACZ;AACA,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B;QAEA,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE;YACxD,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,gCAAA,EAAmC,IAAI,CAAA,CAAE,CAAC;QAC9F;QACA,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,qCAAA,EAAwC,IAAI,CAAA,CAAE,CAAC;QACnG;AAEA,QAAA,MAAM,IAAI,GAAgB;AACxB,YAAA,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,GAAG,QAAQ;AACjD,YAAA,OAAO,EAAE,EAAE;SACZ;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;QAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AAC/C,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;AAC5C,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,UAAU,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,EAAE;gBAC3C,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,oCAAA,EAAuC,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;YACzG;AACA,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;gBAC1B,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,0CAAA,EAA6C,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;YAC/G;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAClH;AACA,QAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B;AAEA,IAAA,iBAAiB,CAAC,KAAc,EAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE;AAChG,YAAA,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;QAC/F;AACA,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,eAAe;AAAE,YAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;AACrH,QAAA,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,gBAAgB;AAAE,YAAA,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;QAC7H,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAAE,YAAA,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;AACpH,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAChD,YAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;QACxF;AAEA,QAAA,MAAM,MAAM,GAA2B,EAAE,OAAO,EAAE,CAAC,EAAE;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1F,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;AAC9D,QAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE;IAC5E;AAEA,IAAA,aAAa,CAAC,KAAc,EAAE,KAAa,EAAE,MAA8B,EAAA;AACzE,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;YAC/D,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,sBAAA,EAAyB,KAAK,CAAA,CAAE,CAAC;QAChF;AACA,QAAA,QAAQ,KAAK,CAAC,MAAM,CAAC;AACnB,YAAA,KAAK,OAAO;YACZ,KAAK,KAAK,EAAE;gBACV,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;AACrF,oBAAA,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,QAAA,EAAW,KAAK,CAAC,MAAM,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAA,CAAE,CAAC;gBACjG;AACA,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC;AACzE,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAA,QAAA,EAAW,KAAK,CAAA,SAAA,EAAY,SAAS,CAAA,CAAA,CAAG,CAAC,CAAC;AACjI,gBAAA,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK;oBAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAA,kBAAA,EAAqB,KAAK,CAAA,CAAE,CAAC;gBAC9F,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;YACxC;YACA,KAAK,QAAQ,EAAE;AACb,gBAAA,IACE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAC5D,qBAAC,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;oBAClE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAChC;oBACA,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,6BAAA,EAAgC,KAAK,CAAA,CAAE,CAAC;gBACvF;AACA,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC;AAC1E,gBAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;AAC9B,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,KAA4B;oBACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;wBAC/E,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,8BAAA,EAAiC,KAAK,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;oBACtG;AACA,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,QAAA,EAAW,KAAK,CAAA,UAAA,EAAa,UAAU,CAAA,CAAA,CAAG,CAAC;oBAC3E,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,8BAAA,EAAiC,KAAK,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;oBAC5H,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,QAAA,EAAW,KAAK,aAAa,UAAU,CAAA,CAAA,CAAG,CAAC,CAAC;AACnG,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACnE;YACA,KAAK,MAAM,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACvF,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,CAAE,CAAC;gBACrF;AACA,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,QAAA,EAAW,KAAK,CAAA,OAAA,CAAS,CAAC;gBACnE,IAAI,SAAS,GAAG,KAAK;AACrB,gBAAA,IAAI;oBACF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC;gBAC3G;AAAE,gBAAA,MAAM;oBACN,SAAS,GAAG,KAAK;gBACnB;AACA,gBAAA,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,CAAE,CAAC;AACnG,gBAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAChD;YACA,KAAK,KAAK,EAAE;gBACV,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE;oBACvF,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,0BAAA,EAA6B,KAAK,CAAA,CAAE,CAAC;gBACpF;AACA,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC;AAC1E,gBAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;AAC9B,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,KAAkC;AACvF,oBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/C,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;oBACnG;AACA,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,QAAA,EAAW,KAAK,aAAa,UAAU,CAAA,KAAA,CAAO,CAAC;oBAC9F,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;AAChD,oBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;wBAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;AAC1H,oBAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACnB,oBAAA,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,CAAA,UAAA,EAAa,UAAU,CAAA,OAAA,CAAS,CAAC,CAAC;AACpG,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;YACjC;AACA,YAAA;gBACE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,CAAE,CAAC;;IAEzF;IAEA,mBAAmB,CAAC,KAAc,EAAE,IAAY,EAAA;AAC9C,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAC9D,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC;AACrC,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAA,CAAE,CAAC;AAC7G,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAA,uBAAA,EAA0B,IAAI,CAAA,CAAE,CAAC;AAC9G,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,KAAK;AACpC,QAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK;QAChC,IAAI,YAAY,KAAK,OAAO;YAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAA,6BAAA,EAAgC,IAAI,CAAA,CAAE,CAAC;QACtH,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAA,2BAAA,EAA8B,IAAI,CAAA,CAAE,CAAC;AAChI,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAK,KAAK,CAAC,MAAM,CAAY,GAAG,CAAC,EAAE;gBACrE,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAA,CAAE,CAAC;YACnF;YACA,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAW,EAAE;QAC1C;AACA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;AACzG,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE;AACzH,YAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACnD;AACA,QAAA,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;YAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;YAClC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC9B;YACA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AAC9C,YAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACnD;QACA,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAA,2BAAA,EAA8B,IAAI,CAAA,CAAE,CAAC;IACxF;AAEA,IAAA,cAAc,CAAC,QAAyB,EAAA;AACtC,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB;QAC9C,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAE,KAAa,EAAE,IAAY,EAAE,MAAmB,KAAU;AAC5F,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9B,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC;gBAAE;YACvE,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;gBACvC,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,2BAAA,EAA8B,IAAI,CAAA,CAAE,CAAC;YACzF;AACA,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,YAAA,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,KAAK;gBAAE;YACjD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACvC,YAAA,QAAQ,IAAI,CAAC,IAAI;AACf,gBAAA,KAAK,OAAO;AACZ,gBAAA,KAAK,KAAK;AACR,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC,CAAC;oBACzF;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;oBACvF;AACF,gBAAA,KAAK,KAAK;AACR,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,KAAI;AAC1C,wBAAA,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAA,EAAG,IAAI,WAAW,KAAK,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC;AACzD,wBAAA,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAA,EAAG,IAAI,aAAa,KAAK,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC;AAC9D,oBAAA,CAAC,CAAC;oBACF;AACF,gBAAA,KAAK,MAAM;oBACT;;AAEJ,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3B,QAAA,CAAC;AACD,QAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAU,CAAC;AACpD,QAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA,CAAG,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;IAC7G;IAEA,WAAW,CAAC,IAAiB,EAAE,KAAa,EAAA;AAC1C,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,EAAE;AACX,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;AAC7D,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,GAAG,EAAoB;AACpC,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,GAAG,EAAW;AAC3B,YAAA;gBACE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,CAAE,CAAC;;IAEzF;AAEA,IAAA,aAAa,CAAC,IAAiB,EAAE,MAAe,EAAE,MAAiB,EAAA;AACjE,QAAA,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,OAAO,EAAE;gBACZ,MAAM,KAAK,GAAG,MAAmB;gBACjC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AACnC,oBAAA,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAA,MAAA,EAAS,KAAK,CAAA,CAAA,CAAG,CAAC;AAC/D,gBAAA,CAAC,CAAC;gBACF;YACF;YACA,KAAK,QAAQ,EAAE;gBACb,MAAM,MAAM,GAAG,MAAiC;gBAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;AACvC,oBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AACjC,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAA,OAAA,EAAU,GAAG,CAAA,CAAE,CAAC;AACnD,wBAAA,QAAQ,EAAE,IAAI;AACf,qBAAA,CAAC;gBACJ;gBACA;YACF;YACA,KAAK,KAAK,EAAE;gBACV,MAAM,GAAG,GAAG,MAA+B;gBAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;oBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACnG;gBACA;YACF;YACA,KAAK,KAAK,EAAE;gBACV,MAAM,GAAG,GAAG,MAAsB;AAClC,gBAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC5F;YACF;AACA,YAAA,KAAK,MAAM;gBACT;;IAEN;AAEA,IAAA,OAAO,CAAC,KAAmB,EAAE,MAAiB,EAAE,IAAY,EAAA;AAC1D,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;AACxH,QAAA,IAAI,MAAM,IAAI,KAAK,EAAE;AACnB,YAAA,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,2BAAA,EAA8B,IAAI,CAAA,CAAE,CAAC;AACxH,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B;AACA,QAAA,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW;AAAE,YAAA,OAAO,SAAS;AACjD,QAAA,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACxD,QAAA,QAAQ,KAAK,CAAC,KAAK;AACjB,YAAA,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,GAAG;AACnB,YAAA,KAAK,UAAU;gBACb,OAAO,MAAM,CAAC,iBAAiB;AACjC,YAAA,KAAK,WAAW;gBACd,OAAO,MAAM,CAAC,iBAAiB;AACjC,YAAA,KAAK,IAAI;gBACP,OAAO,CAAC,CAAC;;IAEf;AAEA,IAAA,QAAQ,CAAC,KAAoB,EAAE,IAAiB,EAAE,IAAY,EAAA;QAC5D,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,6BAAA,EAAgC,IAAI,CAAA,CAAE,CAAC;AAChI,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAClB;AAEA,IAAA,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,MAA8B,EAAA;AACzE,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE;YACnD,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,8BAAA,EAAiC,IAAI,CAAA,CAAE,CAAC;QACzF;AACA,QAAA,MAAM,CAAC,OAAO,IAAI,KAAK;IACzB;AAEA,IAAA,qBAAqB,CAAC,MAAc,EAAA;QAClC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAC9C,YAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;QAChG;IACF;IAEA,YAAY,CAAC,KAAa,EAAE,IAAY,EAAA;AACtC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,8BAAA,EAAiC,IAAI,CAAA,CAAE,CAAC;IAC3H;IAEA,mBAAmB,CAAC,KAAa,EAAE,IAAY,EAAA;QAC7C,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YAClD,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,mCAAA,EAAsC,IAAI,CAAA,CAAE,CAAC;QAC9F;IACF;IAEA,gBAAgB,CAAC,KAAa,EAAE,IAAY,EAAA;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC/C,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAE,CAAC;QAClG;IACF;IAEA,mBAAmB,CAAC,KAAa,EAAE,IAAY,EAAA;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;QACtE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YACxC,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,+BAAA,EAAkC,IAAI,CAAA,CAAE,CAAC;QAC1F;IACF;AAEA,IAAA,sBAAsB,CAAC,KAAa,EAAE,IAAY,EAAE,IAAY,EAAA;QAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAA,kBAAA,EAAqB,IAAI,CAAA,oBAAA,EAAuB,IAAI,CAAA,CAAE,CAAC;QAC3G;IACF;IAEA,sBAAsB,CAAC,MAAsB,EAAE,WAAmB,EAAA;AAChE,QAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;QAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAClD,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAA,mBAAA,EAAsB,WAAW,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC;AACnH,YAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACrB,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,oBAAoB,CAAC,KAAmB,EAAA;QACtC,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,MAAM;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;QACvD,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,CAAA,QAAA,EAAW,KAAK,CAAA,CAAE;QACzD,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,UAAU,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE;QAClF,IAAI,MAAM,IAAI,KAAK;AAAE,YAAA,OAAO,CAAA,IAAA,EAAO,KAAK,CAAC,IAAI,EAAE;AAC/C,QAAA,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,UAAU,GAAG,CAAA,OAAA,EAAU,KAAK,CAAC,KAAK,EAAE;AAChG,QAAA,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA,CAAE;AAC/E,QAAA,OAAO,CAAA,KAAA,EAAQ,KAAK,CAAC,KAAK,EAAE;IAC9B;IAEA,aAAa,CAAC,GAAW,EAAE,MAAc,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,MAAM,IAAI,KAAK,IAAI,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;IACnH;AAEA,IAAA,gBAAgB,CAAC,KAAc,EAAA;AAC7B,QAAA,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI;IAC3F;IAEA,aAAa,CAAC,KAA8B,EAAE,QAA2B,EAAA;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnH;AAEA,IAAA,SAAS,CAAC,KAAc,EAAA;AACtB,QAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7E;AACD;;MChjBY,uBAAuB,CAAA;AACzB,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAE1C,QAAQ,CAAC,IAA8B,EAAE,GAAW,EAAA;AAClD,QAAA,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YAClC,OAAO,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3E;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;QAClC;IACF;IAEA,OAAO,CAAC,IAA8B,EAAE,GAAW,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;AACvC,QAAA,OAAO,MAAM,CAAC,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI;IACxD;AAEA,IAAA,OAAO,CAAC,IAA8B,EAAE,GAAW,EAAE,KAAa,EAAA;AAChE,QAAA,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,KAAK;AAC1B,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AAC3B,YAAA,OAAO,IAAI;QACb;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;IACF;IAEA,UAAU,CAAC,IAA8B,EAAE,GAAW,EAAA;AACpD,QAAA,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,KAAK;AAC1B,YAAA,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;AACvB,YAAA,OAAO,IAAI;QACb;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,WAAW,CAAC,IAA8B,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;AAAE,YAAA,OAAO,IAAI;AACrD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AAChD,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,OAAO,IAAI;AAC/B,QAAA,OAAO,IAAI,KAAK,OAAO,GAAG,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,cAAc;IACrF;wGA/CW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA;;4FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;SAmDlB,4BAA4B,CAC1C,OAAoC,EACpC,IAA8B,EAC9B,GAAW,EAAA;AAEX,IAAA,IAAI;QACF,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACxC,OAAO,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;IAC3E;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;IAClC;AACF;MAEa,8BAA8B,GAAG,IAAI,cAAc,CAA8B,gCAAgC,EAAE;AAC9H,IAAA,OAAO,EAAE,MAAM,MAAM,CAAC,uBAAuB,CAAC;AAC/C,CAAA;;AC1EK,MAAO,0BAA2B,SAAQ,KAAK,CAAA;IACjC,IAAI,GAAG,4BAA4B;AAErD,IAAA,WAAA,CAAY,OAAe,EAAA;QACzB,KAAK,CAAC,OAAO,CAAC;IAChB;AACD;AAEK,SAAU,qBAAqB,CAAC,OAAe,EAAE,MAAwC,EAAA;AAC7F,IAAA,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC;AAC1D,IAAA,OAAO,CAAA,2BAAA,EAA8B,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA,EAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAChH;MAEa,4BAA4B,CAAA;IAC9B,MAAM,GAAG,2BAA2B;AACpC,IAAA,WAAW,GAAG,IAAI,iBAAiB,EAAE;AAE9C,IAAA,YAAY,CAAC,KAAc,EAAA;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AACD;SAEe,8BAA8B,CAAC,aAAiD,EAAE,KAAc,EAAE,KAAa,EAAA;AAC7H,IAAA,IAAI;AACF,QAAA,OAAO,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC;IAC1C;IAAE,OAAO,KAAc,EAAE;AACvB,QAAA,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,6BAA6B;QACrF,MAAM,IAAI,0BAA0B,CAAC,CAAA,oBAAA,EAAuB,KAAK,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,CAAC;IACjF;AACF;AAEA,SAAS,MAAM,CAAC,KAAa,EAAA;AAC3B,IAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAA,CAAA,EAAI,KAAK,EAAE;AACnC;AAEM,SAAU,sBAAsB,CAAC,KAAa,EAAA;AAClD,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AAClC,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE;AAC5D,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC;AAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACjB,IAAA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;AAClD,IAAA,MAAM,GAAG,GAAG,SAAS,KAAK,CAAC;IAC3B,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC;IAC3C,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC;IAE1C,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC9H,IAAA,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;AACpC,IAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE;AACzD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AAC1C,YAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC;YACnC,QAAQ,CAAC,KAAK,CAAC;gBACb,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,qBAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACnC,qBAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACjC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B;AACA,QAAA,KAAK,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;YAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC;YAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,KAAK,EAAE,CAAC;AAC3F,YAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC;QACtG;QAEA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;YAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC;AACxE,YAAA,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAE,GAAG,QAAQ,CAAC,KAAK,CAAE,MAAM,CAAC;YACrF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC;AACxE,YAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,QAAQ,MAAM,CAAC;YACrC,CAAC,GAAG,CAAC;YACL,CAAC,GAAG,CAAC;YACL,CAAC,GAAG,CAAC;YACL,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC;YACrB,CAAC,GAAG,CAAC;YACL,CAAC,GAAG,CAAC;YACL,CAAC,GAAG,CAAC;YACL,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,MAAM,CAAC;QAC3B;AACA,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAC;IAChC;AAEA,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9E;AAEA,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC;AACvC,IAAA,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAClI,IAAA,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAClI,IAAA,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAClI,IAAA,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAClI,IAAA,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAClI,IAAA,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAC3G,CAAA,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa,EAAA;IAC/B,MAAM,KAAK,GAAa,EAAE;AAC1B,IAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACrC,IAAI,SAAS,GAAG,KAAK;AACrB,QAAA,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1C,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE;AACxC,gBAAA,SAAS,GAAG,OAAO,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC;gBAClE,KAAK,IAAI,CAAC;YACZ;QACF;QACA,IAAI,SAAS,IAAI,IAAI;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;aACvC,IAAI,SAAS,IAAI,KAAK;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC;AACvF,aAAA,IAAI,SAAS,IAAI,MAAM,EAAE;AAC5B,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC;QACrG;aAAO;AACL,YAAA,KAAK,CAAC,IAAI,CACR,IAAI,IAAI,SAAS,KAAK,EAAE,CAAC,EACzB,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,EAClC,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,EACjC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,CAC1B;QACH;IACF;AACA,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B;AAEA,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa,EAAA;AAC/C,IAAA,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;AACpD;AAEA,SAAS,WAAW,CAAC,MAAkB,EAAE,MAAc,EAAE,KAAa,EAAA;IACpE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI;AACtC,IAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI;AAC1C,IAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI;IACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACnC;;AC3JO,MAAM,8BAA8B,GAAG;AACvC,MAAM,+BAA+B,GAAG;AASxC,MAAM,mCAAmC,GAA0C,MAAM,CAAC,MAAM,CAAC;AACtG,IAAA,qBAAqB,EAAE,UAAU;AACjC,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,qBAAqB,EAAE,KAAK;AAC7B,CAAA;AAqBK,SAAU,mCAAmC,CACjD,QAAgB,EAChB,UAAkB,EAClB,OAAe,EACf,MAA6C,EAAA;AAE7C,IAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;IACtC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;AAC1D,IAAA,MAAM,QAAQ,GAA+B;AAC3C,QAAA,MAAM,EAAE,8BAA8B;AACtC,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,IAAI,EAAE,OAAO;QACb,QAAQ;QACR,UAAU;QACV,OAAO;KACR;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C,IAAA,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC;AACzC,IAAA,OAAO,UAAU;AACnB;SAEgB,uCAAuC,CACrD,QAAgB,EAChB,UAAkB,EAClB,MAA6C,EAAA;AAE7C,IAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;IACtC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC5D,IAAA,MAAM,QAAQ,GAAmC;AAC/C,QAAA,MAAM,EAAE,8BAA8B;AACtC,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,IAAI,EAAE,WAAW;QACjB,QAAQ;QACR,UAAU;KACX;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C,IAAA,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC;AACzC,IAAA,OAAO,UAAU;AACnB;AAEM,SAAU,0BAA0B,CACxC,UAAkB,EAClB,gBAAwB,EACxB,kBAA0B,EAC1B,MAA6C,EAAA;AAE7C,IAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;IACtC,iBAAiB,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC5E,IAAA,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC;AACzC,IAAA,IAAI,KAAc;AAClB,IAAA,IAAI;AACF,QAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY;IAC3C;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,SAAS;IAClB;AACA,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;AACtC,IAAA,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE;AACtG,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;IAC1G;AACA,IAAA,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,uBAAuB,EAAE;AAC5G,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,0DAA0D,CAAC;IAC5G;AACA,IAAA,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAAE;AACnG,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,uDAAuD,CAAC;IACzG;AACA,IAAA,IACE,KAAK,CAAC,QAAQ,CAAC,KAAK,8BAA8B;AAClD,QAAA,KAAK,CAAC,SAAS,CAAC,KAAK,+BAA+B;AACpD,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,gBAAgB;AACtC,QAAA,KAAK,CAAC,YAAY,CAAC,KAAK,kBAAkB,EAC1C;AACA,QAAA,OAAO,SAAS;IAClB;IACA,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE;QACjH,OAAO;AACL,YAAA,MAAM,EAAE,8BAA8B;AACtC,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,UAAU,EAAE,kBAAkB;SAC/B;IACH;AACA,IAAA,IACE,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO;AACzB,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ;AACpC,QAAA,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,EACvF;QACA,OAAO;AACL,YAAA,MAAM,EAAE,8BAA8B;AACtC,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;SAC1B;IACH;AACA,IAAA,OAAO,SAAS;AAClB;AAEA,SAAS,aAAa,CAAC,MAAwD,EAAA;IAC7E,MAAM,QAAQ,GAAG,EAAE,GAAG,mCAAmC,EAAE,GAAG,MAAM,EAAE;IACtE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAA0C,EAAE;AAC3G,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,mCAAmC,CAAC,GAAG,CAAC,EAAE;YACjG,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,6BAAA,EAAgC,GAAG,CAAA,MAAA,CAAQ,CAAC;QAC7F;IACF;AACA,IAAA,OAAO,QAAQ;AACjB;AAEA,SAAS,iBAAiB,CACxB,QAAgB,EAChB,UAAkB,EAClB,OAA2B,EAC3B,MAA6C,EAAA;IAE7C,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAClD,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;IAC1G;IACA,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,uBAAuB,EAAE;AACtD,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,0DAA0D,CAAC;IAC5G;AACA,IAAA,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,oBAAoB,EAAE;AACzE,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,uDAAuD,CAAC;IACzG;AACF;AAEA,SAAS,mBAAmB,CAAC,UAAkB,EAAE,MAA6C,EAAA;IAC5F,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE;AACpD,QAAA,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;IAC1G;AACF;AAEA,SAAS,YAAY,CAAC,KAA8B,EAAE,QAA2B,EAAA;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,IAAA,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnH;AAEA,SAAS,QAAQ,CAAC,KAAc,EAAA;AAC9B,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7E;;AClLA;;AAEG;;;;"}
|