@acorex-platform/module-maintenance-management-client 2.0.0-next.0 → 2.0.0-next.10
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/fesm2022/{acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs → acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-DFQ1G-hG.mjs} +37 -16
- package/fesm2022/acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-DFQ1G-hG.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-order.mjs +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-order.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-Dgu63wyv.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-DizPNs_s.mjs} +27 -27
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-Dgu63wyv.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-DizPNs_s.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-CePSpBHM.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-kR0oSO4e.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-CePSpBHM.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-kR0oSO4e.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-Bfvk4GcQ.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-ClwDi_Jb.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-Bfvk4GcQ.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-ClwDi_Jb.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-Jy3BDuNN.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-DP5sZxs_.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-Jy3BDuNN.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-DP5sZxs_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-CCgWn686.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-BmeTCrwN.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-CCgWn686.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-BmeTCrwN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-r_GaKV4C.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-CDpUhYiN.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-r_GaKV4C.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-CDpUhYiN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-BC8cmP-E.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-Cdk-qtLE.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-BC8cmP-E.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-Cdk-qtLE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DkyVyX8d.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-C44dK6qu.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DkyVyX8d.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-C44dK6qu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-WxiHq42o.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-CjSaac8w.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-WxiHq42o.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-CjSaac8w.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-B1yGBbFQ.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-Be5DyJW3.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-B1yGBbFQ.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-Be5DyJW3.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-Bquvs5zg.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-NVDxs4Jg.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-Bquvs5zg.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-NVDxs4Jg.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DU4i03Hi.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DPxL9xPT.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DU4i03Hi.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DPxL9xPT.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-DvO7KoEq.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-D6eRyfNF.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-DvO7KoEq.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-D6eRyfNF.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-DK702y8j.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-B8hemq03.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-DK702y8j.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-B8hemq03.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-Dua1ufeE.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-DbZv4ND1.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-Dua1ufeE.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-DbZv4ND1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-Cs-SLfHm.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-DY1wDu57.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-Cs-SLfHm.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-DY1wDu57.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-C-vkhC0g.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-CNEyZP8a.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-C-vkhC0g.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-CNEyZP8a.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-DEcLe9MD.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-CzCbAfmc.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-DEcLe9MD.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-CzCbAfmc.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-R0UVSWKi.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-CbNGgF1g.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-R0UVSWKi.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-CbNGgF1g.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-C3KERG4U.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-CbdP4Qru.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-C3KERG4U.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-CbdP4Qru.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-EXXJjDYH.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-UmQTCcp5.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-EXXJjDYH.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-UmQTCcp5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-CrMPuOD8.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-Ca41hUCB.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-CrMPuOD8.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-Ca41hUCB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-Bn2DAaNN.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-pJH1271_.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-Bn2DAaNN.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-pJH1271_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-DS8_oRB7.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-CILIRWU2.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-DS8_oRB7.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-CILIRWU2.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-DS1RPQ-I.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-B52SPa32.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-DS1RPQ-I.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-B52SPa32.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-BUMsgLTC.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-D981EFzG.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-BUMsgLTC.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-D981EFzG.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-V0CqICBq.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-DhlbPwc1.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-V0CqICBq.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-DhlbPwc1.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts.mjs +450 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-BXKKfu4I.mjs → acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-C33pzC76.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-BXKKfu4I.mjs.map → acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-C33pzC76.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-Be1Nup4H.mjs → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-yQWSRSqF.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-Be1Nup4H.mjs.map → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-yQWSRSqF.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-open-work-order-checklist-form.command-BWzoBPoP.mjs +597 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-open-work-order-checklist-form.command-BWzoBPoP.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BJUgm59a.mjs → acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BsWJRAfF.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BJUgm59a.mjs.map → acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BsWJRAfF.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-sign-off-work-order.command-Ca8WbM3R.mjs +217 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-sign-off-work-order.command-Ca8WbM3R.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow-id.util-CuUi8LBT.mjs +123 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow-id.util-CuUi8LBT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs → acorex-platform-module-maintenance-management-client-start-work-order-flow.command-C4vMm8Mu.mjs} +249 -129
- package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow.command-C4vMm8Mu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs → acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-CIU_evCh.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs.map → acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-CIU_evCh.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs → acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DiUfIHO9.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs.map → acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DiUfIHO9.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client.mjs +1 -1
- package/i18n/en-AU/maintenance-management.json +47 -1
- package/i18n/en-US/maintenance-management.json +47 -1
- package/i18n/fa-IR/maintenance-management.json +47 -1
- package/package.json +2 -2
- package/types/acorex-platform-module-maintenance-management-client-contracts.d.ts +153 -2
- package/fesm2022/acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs","sources":["../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/workflows/work-order-workflow.debug.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/maintenance-interval/maintenance-interval.component.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/maintenance-interval/maintenance-interval.component.html","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/maintenance-generation.utils.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/asset-create-maintenance-offer.middleware.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/failure-register-create-work-order.middleware.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/maintenance-plan-create-work-order.middleware.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/work-order-checklist-prefill.constants.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/work-order-checklist-fill.middleware.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/work-order-checklist-post-submit.middleware.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/work-order-source-type.middleware.ts","../../../../libs/modules/maintenance-management/client/src/lib/middlewares/index.ts","../../../../libs/modules/maintenance-management/client/src/lib/catalog-scope-definition.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/shared/maintenance-plan-create-actions-expression-evaluator-scope.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/shared/work-order-expression-evaluator-scope.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/maintenance-interval/maintenance-interval-widget.config.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/maintenance-interval/maintenance-interval-widget.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/widgets/work-order-workflow-column.widget.config.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/widgets/work-order-work-report-column.widget.config.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/widgets/work-order-workflow-column-widget.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-report/widgets/work-report-checklist-results.widget.config.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-report/widgets/work-report-widget.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/maintenance-management.module.ts","../../../../libs/modules/maintenance-management/client/src/lib/menu.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/workflows/work-order-execution-workflow.shared.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/workflows/work-order-execution.workflow.ts","../../../../libs/modules/maintenance-management/client/src/acorex-platform-module-maintenance-management-client.ts"],"sourcesContent":["//#region ---- Workflow debug namespace ----\n\nexport const AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE = 'maintenance-management';\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDateTimeBoxModule } from '@acorex/components/datetime-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport {\n AXSchedulerPickerComponent,\n AXSchedulerPickerSettings,\n AXSchedulerPickerValue,\n} from '@acorex/components/scheduler-picker';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport {\n AXMMaintenanceIntervalConfig,\n AXMMaintenanceIntervalDraft,\n AXMMaintenanceIntervalErrorCode,\n AXMMaintenanceIntervalKind,\n AXMMaintenanceIntervalTriggerLogic,\n AXMMaintenanceIntervalUnit,\n AXMMaintenanceMeterKind,\n buildAXMMaintenanceIntervalConfig,\n draftFromAXMMaintenanceIntervalConfig,\n emptyAXMMaintenanceIntervalConfig,\n emptyAXMMaintenanceIntervalDraft,\n isAXMMaintenanceIntervalKind,\n isAXMMaintenanceIntervalUnitForKind,\n isAXMMaintenanceMeterKind,\n readIntervalDate,\n} from '@acorex-platform/module-maintenance-management-client/contracts';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n//#endregion\n\n//#region ----- Types -----\n\ntype MaintenanceScheduleMode = 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly';\n\ninterface MaintenanceIntervalSection {\n kind: AXMMaintenanceIntervalKind;\n labelKey: string;\n enabled: boolean;\n editor: 'schedule' | 'date' | 'distance' | 'meter';\n meterKind: AXMMaintenanceMeterKind | null;\n date: string | null;\n interval: number | null;\n decimals: number;\n unitId: AXMMaintenanceIntervalUnit | null;\n unitLabelKey: string;\n errorKey: string | null;\n}\n\ninterface MaintenanceIntervalChoice {\n id: string;\n text: string;\n}\n\n//#endregion\n\n//#region ----- Constants -----\n\nconst I18N = '@maintenance-management:maintenance-interval';\n\nconst KIND_ORDER: AXMMaintenanceIntervalKind[] = ['schedule', 'date', 'distance', 'operating-hours', 'operation-count'];\n\nconst SCHEDULE_MODES: readonly MaintenanceScheduleMode[] = ['hourly', 'daily', 'weekly', 'monthly', 'yearly'];\n\nconst LABEL_KEYS: Record<AXMMaintenanceIntervalKind, string> = {\n schedule: `${I18N}.kinds.schedule`,\n date: `${I18N}.kinds.date`,\n distance: `${I18N}.kinds.distance`,\n 'operating-hours': `${I18N}.kinds.operating-hours`,\n 'operation-count': `${I18N}.kinds.operation-count`,\n};\n\nconst ERROR_KEYS: Record<AXMMaintenanceIntervalErrorCode, string> = {\n schedule: `${I18N}.validation.schedule`,\n date: `${I18N}.validation.date`,\n interval: `${I18N}.validation.interval`,\n integer: `${I18N}.validation.integer`,\n};\n\nconst UNIT_LABEL_KEYS: Record<AXMMaintenanceIntervalUnit, string> = {\n [AXMMaintenanceIntervalUnit.Kilometer]: `${I18N}.units.kilometer`,\n [AXMMaintenanceIntervalUnit.Mile]: `${I18N}.units.mile`,\n [AXMMaintenanceIntervalUnit.Hour]: `${I18N}.units.hour`,\n [AXMMaintenanceIntervalUnit.Operation]: `${I18N}.units.operation`,\n};\n\nconst SCHEDULE_MODE_LABEL_KEYS: Record<MaintenanceScheduleMode, string> = {\n hourly: `${I18N}.recurrence-unit.hourly`,\n daily: `${I18N}.recurrence-unit.daily`,\n weekly: `${I18N}.recurrence-unit.weekly`,\n monthly: `${I18N}.recurrence-unit.monthly`,\n yearly: `${I18N}.recurrence-unit.yearly`,\n};\n\nfunction isScheduleMode(value: unknown): value is MaintenanceScheduleMode {\n return typeof value === 'string' && (SCHEDULE_MODES as readonly string[]).includes(value);\n}\n\n/** Existing schedules without a mode stay daily so legacy daily rows keep working. */\nfunction readScheduleMode(schedule: unknown): MaintenanceScheduleMode {\n if (schedule && typeof schedule === 'object' && 'mode' in schedule) {\n const mode = (schedule as { mode?: unknown }).mode;\n if (isScheduleMode(mode)) {\n return mode;\n }\n }\n return 'daily';\n}\n\nfunction createScheduleSettings(mode: MaintenanceScheduleMode): AXSchedulerPickerSettings {\n const shared = {\n mode,\n showStartCondition: true,\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n } as const;\n\n switch (mode) {\n case 'hourly':\n return { ...shared, options: { showInterval: true } };\n case 'daily':\n return { ...shared, options: { showInterval: true, showWeekdaysOnly: false } };\n case 'weekly':\n return { ...shared, options: { showInterval: true, showWeekdaySelection: true } };\n case 'monthly':\n return { ...shared, options: { showInterval: true, recurrenceMode: 'specificDays' } };\n case 'yearly':\n return {\n ...shared,\n options: { showInterval: true, recurrenceMode: 'specificDate', showMonthSelection: true },\n };\n }\n}\n\n/** Same starting value the scheduler-picker widget uses when a schedule is empty. */\nfunction createDefaultSchedule(): AXSchedulerPickerValue {\n return {\n mode: 'daily',\n interval: 1,\n startCondition: { type: 'now', startDate: new Date() },\n recurrence: {},\n endCondition: { type: 'never' },\n };\n}\n\nfunction withScheduleMode(\n schedule: AXSchedulerPickerValue,\n mode: MaintenanceScheduleMode,\n): AXSchedulerPickerValue {\n const currentRecurrence = (schedule as { recurrence?: unknown }).recurrence;\n // Seed rows store recurrence as a mode string; the picker uses an object. Preserve start/end.\n if (typeof currentRecurrence === 'string') {\n return {\n ...schedule,\n mode,\n recurrence: mode as unknown as AXSchedulerPickerValue['recurrence'],\n };\n }\n return {\n ...schedule,\n mode,\n recurrence: {},\n };\n}\n\nfunction stable(value: unknown): string {\n return JSON.stringify(value, (_key, item) => (item instanceof Date ? item.toISOString() : item));\n}\n\nfunction configsEqual(left: unknown, right: AXMMaintenanceIntervalConfig): boolean {\n const normalized = left == null ? emptyAXMMaintenanceIntervalConfig() : left;\n return stable(normalized) === stable(right);\n}\n\nfunction kindsKey(kinds: readonly string[]): string {\n return [...new Set(kinds)].sort().join('|');\n}\n\nfunction readChoiceId(value: unknown): string {\n if (typeof value === 'string') {\n return value;\n }\n if (Array.isArray(value)) {\n return readChoiceId(value[0]);\n }\n if (value && typeof value === 'object' && 'id' in value && typeof (value as { id: unknown }).id === 'string') {\n return (value as { id: string }).id;\n }\n return '';\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-maintenance-interval',\n templateUrl: './maintenance-interval.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n FormsModule,\n AXTranslationModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXLabelComponent,\n AXNumberBoxModule,\n AXSelectionListModule,\n AXSchedulerPickerComponent,\n AXDateTimeBoxModule,\n ],\n host: { class: 'block' },\n})\nexport class AXMMaintenanceIntervalComponent {\n //#region ----- Inputs -----\n\n readonly supportedIntervalKinds = input<readonly string[]>([]);\n readonly value = input<AXMMaintenanceIntervalConfig | null | undefined>(undefined);\n readonly disabled = input(false);\n\n //#endregion\n\n //#region ----- Outputs -----\n\n readonly valueChange = output<AXMMaintenanceIntervalConfig>();\n\n //#endregion\n\n //#region ----- Constants -----\n\n protected readonly titleKey = `${I18N}.title`;\n protected readonly everyKey = `${I18N}.every`;\n protected readonly emptyKey = `${I18N}.empty`;\n protected readonly recurrenceUnitKey = `${I18N}.recurrence-unit.title`;\n protected readonly triggerLogicTitleKey = `${I18N}.trigger-logic.title`;\n protected readonly triggerLogic = AXMMaintenanceIntervalTriggerLogic;\n protected readonly distanceUnits: MaintenanceIntervalChoice[] = [\n { id: AXMMaintenanceIntervalUnit.Kilometer, text: UNIT_LABEL_KEYS[AXMMaintenanceIntervalUnit.Kilometer] },\n { id: AXMMaintenanceIntervalUnit.Mile, text: UNIT_LABEL_KEYS[AXMMaintenanceIntervalUnit.Mile] },\n ];\n protected readonly triggerLogicItems: MaintenanceIntervalChoice[] = [\n { id: AXMMaintenanceIntervalTriggerLogic.Any, text: `${I18N}.trigger-logic.any` },\n { id: AXMMaintenanceIntervalTriggerLogic.All, text: `${I18N}.trigger-logic.all` },\n ];\n protected readonly scheduleModeItems: MaintenanceIntervalChoice[] = SCHEDULE_MODES.map((mode) => ({\n id: mode,\n text: SCHEDULE_MODE_LABEL_KEYS[mode],\n }));\n\n //#endregion\n\n //#region ----- State Signals -----\n\n private readonly draft = signal<AXMMaintenanceIntervalDraft>(emptyAXMMaintenanceIntervalDraft());\n private lastEmitted: AXMMaintenanceIntervalConfig | null = null;\n private lastSupportedKey = '';\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly scheduleValue = computed<AXSchedulerPickerValue | null>(() => {\n const schedule = this.draft().schedule;\n return schedule ? (schedule as unknown as AXSchedulerPickerValue) : null;\n });\n\n protected readonly selectedScheduleMode = computed(() => readScheduleMode(this.draft().schedule));\n\n protected readonly scheduleSettings = computed(() => createScheduleSettings(this.selectedScheduleMode()));\n\n protected readonly sections = computed<MaintenanceIntervalSection[]>(() => {\n const supported = this.supportedKeys();\n const draft = this.draft();\n const errors = new Map(\n buildAXMMaintenanceIntervalConfig(supported, draft).errors.map((error) => [error.kind, error.code]),\n );\n return KIND_ORDER.filter((kind) => supported.includes(kind)).map((kind) => this.toSection(kind, draft, errors));\n });\n\n protected readonly showTriggerLogic = computed(\n () => this.sections().filter((section) => section.enabled).length > 1,\n );\n\n protected readonly selectedTriggerLogic = computed(() => this.draft().triggerLogic);\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n effect(() => {\n const supported = this.supportedKeys();\n const incoming = this.value();\n const supportedKey = kindsKey(supported);\n if (\n this.lastEmitted &&\n configsEqual(incoming, this.lastEmitted) &&\n supportedKey === this.lastSupportedKey\n ) {\n return;\n }\n this.lastSupportedKey = supportedKey;\n const next = draftFromAXMMaintenanceIntervalConfig(incoming, supported);\n this.draft.set(next);\n const built = buildAXMMaintenanceIntervalConfig(supported, next).config;\n this.lastEmitted = built;\n if (!configsEqual(incoming, built)) {\n this.valueChange.emit(built);\n }\n });\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onEnabled(kind: AXMMaintenanceIntervalKind, event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const enabled = Boolean(event.value);\n const draft = this.draft();\n if (kind === 'schedule') {\n const schedule =\n enabled && !draft.schedule\n ? (createDefaultSchedule() as unknown as AXMMaintenanceIntervalDraft['schedule'])\n : draft.schedule;\n this.commit({ ...draft, scheduleEnabled: enabled, schedule });\n return;\n }\n if (kind === 'date') {\n this.commit({ ...draft, dateEnabled: enabled });\n return;\n }\n if (!isAXMMaintenanceMeterKind(kind)) {\n return;\n }\n this.commit({\n ...draft,\n meters: {\n ...draft.meters,\n [kind]: { ...draft.meters[kind], enabled },\n },\n });\n }\n\n protected onInterval(kind: AXMMaintenanceMeterKind, event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const interval = typeof event.value === 'number' && Number.isFinite(event.value) ? event.value : null;\n const draft = this.draft();\n if (draft.meters[kind].interval === interval) {\n return;\n }\n this.commit({\n ...draft,\n meters: {\n ...draft.meters,\n [kind]: { ...draft.meters[kind], interval },\n },\n });\n }\n\n protected onDistanceUnit(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const unit = readChoiceId(event.value);\n if (!isAXMMaintenanceIntervalUnitForKind('distance', unit as AXMMaintenanceIntervalUnit)) {\n return;\n }\n const draft = this.draft();\n if (draft.meters.distance.unit === unit) {\n return;\n }\n this.commit({\n ...draft,\n meters: {\n ...draft.meters,\n distance: { ...draft.meters.distance, unit: unit as AXMMaintenanceIntervalUnit },\n },\n });\n }\n\n protected onDate(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const date = readIntervalDate(event.value);\n const draft = this.draft();\n if (draft.date === date) {\n return;\n }\n this.commit({ ...draft, date });\n }\n\n protected onSchedule(value: AXSchedulerPickerValue | null): void {\n if (this.disabled()) {\n return;\n }\n const draft = this.draft();\n const mode = this.selectedScheduleMode();\n const next = value ? withScheduleMode(value, isScheduleMode(value.mode) ? value.mode : mode) : value;\n if (stable(draft.schedule) === stable(next)) {\n return;\n }\n this.commit({ ...draft, schedule: next as unknown as AXMMaintenanceIntervalDraft['schedule'] });\n }\n\n protected onScheduleMode(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const mode = readChoiceId(event.value);\n if (!isScheduleMode(mode)) {\n return;\n }\n const draft = this.draft();\n const current = draft.schedule as unknown as AXSchedulerPickerValue | null;\n if (!current || readScheduleMode(current) === mode) {\n return;\n }\n this.commit({\n ...draft,\n schedule: withScheduleMode(current, mode) as unknown as AXMMaintenanceIntervalDraft['schedule'],\n });\n }\n\n protected onTriggerLogic(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const logic = readChoiceId(event.value);\n const triggerLogic =\n logic === AXMMaintenanceIntervalTriggerLogic.All\n ? AXMMaintenanceIntervalTriggerLogic.All\n : AXMMaintenanceIntervalTriggerLogic.Any;\n const draft = this.draft();\n if (draft.triggerLogic === triggerLogic) {\n return;\n }\n this.commit({ ...draft, triggerLogic });\n }\n\n //#endregion\n\n //#region ----- Draft -----\n\n private supportedKeys(): AXMMaintenanceIntervalKind[] {\n return this.supportedIntervalKinds().filter(isAXMMaintenanceIntervalKind);\n }\n\n private toSection(\n kind: AXMMaintenanceIntervalKind,\n draft: AXMMaintenanceIntervalDraft,\n errors: Map<AXMMaintenanceIntervalKind, AXMMaintenanceIntervalErrorCode>,\n ): MaintenanceIntervalSection {\n const error = errors.get(kind);\n if (kind === 'schedule') {\n return {\n kind,\n labelKey: LABEL_KEYS[kind],\n enabled: draft.scheduleEnabled,\n editor: 'schedule',\n meterKind: null,\n date: null,\n interval: null,\n decimals: 0,\n unitId: null,\n unitLabelKey: '',\n errorKey: draft.scheduleEnabled && error ? ERROR_KEYS[error] : null,\n };\n }\n if (kind === 'date') {\n return {\n kind,\n labelKey: LABEL_KEYS[kind],\n enabled: draft.dateEnabled,\n editor: 'date',\n meterKind: null,\n date: draft.date,\n interval: null,\n decimals: 0,\n unitId: null,\n unitLabelKey: '',\n errorKey: draft.dateEnabled && error ? ERROR_KEYS[error] : null,\n };\n }\n if (!isAXMMaintenanceMeterKind(kind)) {\n return {\n kind,\n labelKey: LABEL_KEYS[kind],\n enabled: false,\n editor: 'meter',\n meterKind: null,\n date: null,\n interval: null,\n decimals: 0,\n unitId: null,\n unitLabelKey: '',\n errorKey: null,\n };\n }\n const meter = draft.meters[kind];\n return {\n kind,\n labelKey: LABEL_KEYS[kind],\n enabled: meter.enabled,\n editor: kind === 'distance' ? 'distance' : 'meter',\n meterKind: kind,\n date: null,\n interval: meter.interval,\n decimals: kind === 'operation-count' ? 0 : 2,\n unitId: meter.unit,\n unitLabelKey: UNIT_LABEL_KEYS[meter.unit],\n errorKey: meter.enabled && error ? ERROR_KEYS[error] : null,\n };\n }\n\n private commit(draft: AXMMaintenanceIntervalDraft): void {\n this.draft.set(draft);\n const config = buildAXMMaintenanceIntervalConfig(this.supportedKeys(), draft).config;\n this.lastEmitted = config;\n this.lastSupportedKey = kindsKey(this.supportedKeys());\n this.valueChange.emit(config);\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"flex flex-col gap-4\">\n <span class=\"text-sm font-medium\">{{ titleKey | translate | async }}</span>\n\n <!-- ----- No interval sections when the asset type supports none ----- -->\n @if (sections().length === 0) {\n <p class=\"ax-text-muted\">{{ emptyKey | translate | async }}</p>\n }\n\n @for (section of sections(); track section.kind) {\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex items-center gap-2\">\n <ax-check-box\n [ngModel]=\"section.enabled\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onEnabled(section.kind, $event)\"\n ></ax-check-box>\n <ax-label>{{ section.labelKey | translate | async }}</ax-label>\n </div>\n\n <!-- ----- Schedule interval reuses the scheduler picker ----- -->\n @if (section.enabled && section.editor === 'schedule') {\n <div class=\"flex flex-col gap-3 ps-7\">\n <div class=\"flex flex-wrap items-center gap-3\">\n <ax-label>{{ recurrenceUnitKey | translate | async }}</ax-label>\n <ax-selection-list\n [items]=\"scheduleModeItems\"\n [ngModel]=\"selectedScheduleMode()\"\n [disabled]=\"disabled()\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n (onValueChanged)=\"onScheduleMode($event)\"\n >\n <ng-template #itemTemplate let-item>\n <span>{{ item.text | translate | async }}</span>\n </ng-template>\n </ax-selection-list>\n </div>\n <ax-scheduler-picker\n [config]=\"scheduleSettings()\"\n [ngModel]=\"scheduleValue()\"\n [disabled]=\"disabled()\"\n (ngModelChange)=\"onSchedule($event)\"\n />\n <!-- ----- Schedule is required while Schedule is enabled ----- -->\n @if (section.errorKey; as errorKey) {\n <p class=\"text-sm text-danger\">{{ errorKey | translate | async }}</p>\n }\n </div>\n }\n <!-- ----- Date interval is a single date ----- -->\n @else if (section.enabled && section.editor === 'date') {\n <div class=\"ps-7\">\n <ax-datetime-box\n picker=\"date\"\n [ngModel]=\"section.date\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onDate($event)\"\n ></ax-datetime-box>\n <!-- ----- A date is required while Date is enabled ----- -->\n @if (section.errorKey; as errorKey) {\n <p class=\"text-sm text-danger\">{{ errorKey | translate | async }}</p>\n }\n </div>\n }\n <!-- ----- Distance interval with a kilometer or mile choice ----- -->\n @else if (section.enabled && section.editor === 'distance') {\n <div class=\"flex flex-wrap items-end gap-3 ps-7\">\n <span>{{ everyKey | translate | async }}</span>\n <ax-number-box\n class=\"w-36\"\n [minValue]=\"0\"\n [decimals]=\"section.decimals\"\n [ngModel]=\"section.interval\"\n [disabled]=\"disabled()\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"onInterval('distance', $event)\"\n ></ax-number-box>\n <ax-selection-list\n [items]=\"distanceUnits\"\n [ngModel]=\"section.unitId\"\n [disabled]=\"disabled()\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n (onValueChanged)=\"onDistanceUnit($event)\"\n >\n <ng-template #itemTemplate let-item>\n <span>{{ item.text | translate | async }}</span>\n </ng-template>\n </ax-selection-list>\n </div>\n <!-- ----- Positive distance is required while the section is enabled ----- -->\n @if (section.errorKey; as errorKey) {\n <p class=\"ps-7 text-sm text-danger\">{{ errorKey | translate | async }}</p>\n }\n }\n <!-- ----- Operating hours or operation count with a fixed unit ----- -->\n @else if (section.enabled && section.editor === 'meter') {\n <div class=\"flex flex-wrap items-end gap-3 ps-7\">\n <span>{{ everyKey | translate | async }}</span>\n <ax-number-box\n class=\"w-36\"\n [minValue]=\"0\"\n [decimals]=\"section.decimals\"\n [ngModel]=\"section.interval\"\n [disabled]=\"disabled()\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"onInterval(section.meterKind ?? 'operating-hours', $event)\"\n >\n <ax-suffix>{{ section.unitLabelKey | translate | async }}</ax-suffix>\n </ax-number-box>\n </div>\n <!-- ----- Positive meter interval is required while the section is enabled ----- -->\n @if (section.errorKey; as errorKey) {\n <p class=\"ps-7 text-sm text-danger\">{{ errorKey | translate | async }}</p>\n }\n }\n </div>\n }\n\n <!-- ----- Trigger condition when more than one interval is enabled ----- -->\n @if (showTriggerLogic()) {\n <div class=\"flex flex-col gap-2\">\n <ax-label>{{ triggerLogicTitleKey | translate | async }}</ax-label>\n <ax-selection-list\n [items]=\"triggerLogicItems\"\n [ngModel]=\"selectedTriggerLogic()\"\n [disabled]=\"disabled()\"\n direction=\"vertical\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n (onValueChanged)=\"onTriggerLogic($event)\"\n >\n <ng-template #itemTemplate let-item>\n <span>{{ item.text | translate | async }}</span>\n </ng-template>\n </ax-selection-list>\n </div>\n }\n</div>\n","//#region ---- Imports ----\n\nimport type { AXPIdentifierService } from '@acorex-platform/module-identifier-management-client';\nimport type { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { isValidMultiLanguageObject, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { defaultTo, get, isNumber, isObject, isString } from 'lodash';\nimport {\n AXMMaintenanceIntervalTriggerLogic,\n AXMWorkOrderSourceType,\n AXMWorkOrderStatus,\n readMaintenancePlanCalendarSchedule,\n type AXMMaintenanceIntervalConfig,\n} from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Identifier rules ----\n\nexport const MAINTENANCE_PLAN_CODE_RULE_ID = 'maintenance-plan-code';\nexport const WORK_ORDER_NO_RULE_ID = 'work-order-no';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport type MaintenanceScheduleMode = 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly';\n\n/** Calendar schedule, or the plan interval config that wraps a date trigger. */\ntype MaintenancePlanIntervalInput = AXMMaintenanceIntervalConfig | MaintenancePlanScheduleLike;\n\nexport interface MaintenancePlanScheduleLike {\n startCondition?: {\n type?: string;\n startDate?: string | Date;\n };\n recurrence?: string;\n cron?: string;\n mode?: string;\n interval?: number;\n endCondition?: {\n type?: string;\n occurrences?: number;\n endDate?: string | Date;\n };\n}\n\nexport type LocalizableLabel = string | AXPMultiLanguageString | undefined;\n\ntype BilingualLabel = { 'en-US': string; 'fa-IR': string };\n\nexport interface MaintenanceTemplateLike {\n id: string;\n code?: string;\n title?: LocalizableLabel;\n description?: LocalizableLabel;\n maintenanceTypeId?: string;\n assetTypeId?: string;\n schedule?: MaintenancePlanScheduleLike;\n estimatedMinutes?: number;\n needPermission?: boolean;\n needShutdown?: boolean;\n autoGeneratePlan?: boolean;\n metadataIds?: string[];\n workflowConfig?: {\n workflowDefinitionId?: string;\n workflowName?: string;\n enabled?: boolean;\n defaultInput?: Record<string, unknown>;\n } | null;\n}\n\nexport interface FailureRegisterLike {\n id: string;\n code?: string;\n assetId?: string;\n priorityId?: string;\n description?: string;\n}\n\nexport interface MaintenancePlanLike {\n id: string;\n code?: string;\n title?: LocalizableLabel;\n description?: LocalizableLabel;\n assetId?: string;\n maintenanceTypeId?: string;\n maintenanceTemplateId?: string;\n intervalConfig?: AXMMaintenanceIntervalConfig;\n assignedToId?: string;\n assignedTo?: { id?: string; displayName?: string; fullName?: string };\n priorityId?: string;\n priority?: { id?: string; title?: LocalizableLabel };\n estimatedHours?: number;\n needPermission?: boolean;\n needShutdown?: boolean;\n autoGeneratedPlan?: boolean;\n}\n\nexport interface WorkOrderFieldsFromPlan {\n assignedToId?: string;\n assignedTo?: { id: string; fullName?: string };\n priorityId?: string;\n estimatedHours?: number;\n}\n\nexport interface WorkOrderOccurrenceWindow {\n scheduledStart?: string;\n scheduledEnd?: string;\n}\n\n//#endregion\n\nexport interface AssetLike {\n id: string;\n code?: string;\n title?: LocalizableLabel;\n assetTypeId?: string;\n}\n\nexport interface EntityStorageBackend {\n getOne(entityName: string, id: string): Promise<unknown>;\n insertOne(entityName: string, entity: Record<string, unknown>): Promise<unknown>;\n query(\n entityName: string,\n request: {\n skip?: number;\n take?: number;\n filter?: unknown;\n },\n ): Promise<{ total: number; items: unknown[] }>;\n}\n\n//#endregion\n\n//#region ---- Helpers ----\n\nconst MAX_BY_DATE_OCCURRENCES = 10_000;\n\nexport function isTruthyFlag(value: unknown): boolean {\n return [true, 'true', 1, '1'].includes(value as never);\n}\n\nfunction isMultiLanguageString(value: unknown): value is AXPMultiLanguageString {\n return isValidMultiLanguageObject(value);\n}\n\n/**\n * Normalizes plain or multilingual labels into a bilingual {@link AXPMultiLanguageString}.\n */\nexport function normalizeMultiLanguageString(\n value: LocalizableLabel,\n fallback: string,\n): BilingualLabel {\n if (!value) {\n return { 'en-US': fallback, 'fa-IR': fallback };\n }\n if (isString(value)) {\n return { 'en-US': value, 'fa-IR': value };\n }\n if (isMultiLanguageString(value)) {\n const en = resolveMultiLanguageString(value, 'en-US') || fallback;\n const fa = resolveMultiLanguageString(value, 'fa-IR') || en;\n return { 'en-US': en, 'fa-IR': fa };\n }\n return { 'en-US': fallback, 'fa-IR': fallback };\n}\n\n/**\n * Resolves a display label for dialogs and messages (defaults to en-US).\n */\nexport function resolveDisplayLabel(\n value: LocalizableLabel,\n fallback: string,\n locale: 'en-US' | 'fa-IR' = 'en-US',\n): string {\n if (!value) {\n return fallback;\n }\n if (isString(value)) {\n return value;\n }\n return resolveMultiLanguageString(value, locale) || fallback;\n}\n\nfunction combineMultiLanguageTitle(\n left: LocalizableLabel,\n leftFallback: string,\n right: LocalizableLabel,\n rightFallback: string,\n): AXPMultiLanguageString {\n const leftMl = normalizeMultiLanguageString(left, leftFallback);\n const rightMl = normalizeMultiLanguageString(right, rightFallback);\n\n return {\n 'en-US': `${leftMl['en-US']} - ${rightMl['en-US']}`,\n 'fa-IR': `${leftMl['fa-IR']} - ${rightMl['fa-IR']}`,\n };\n}\n\nfunction toDate(value: string | Date | undefined | null): Date | undefined {\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? undefined : new Date(value.getTime());\n }\n if (typeof value === 'string' && value.length > 0) {\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }\n return undefined;\n}\n\n/** Treat schedule end dates as inclusive through the end of the calendar day. */\nfunction toScheduleEndBoundary(value: string | Date | undefined | null): Date | undefined {\n const date = toDate(value);\n if (!date) {\n return undefined;\n }\n\n const boundary = new Date(date.getTime());\n boundary.setHours(23, 59, 59, 999);\n return boundary;\n}\n\nfunction toIsoString(date: Date): string {\n return date.toISOString();\n}\n\nfunction inferScheduleMode(schedule: MaintenancePlanScheduleLike): MaintenanceScheduleMode {\n const mode = get(schedule, 'mode');\n if (\n mode === 'hourly' ||\n mode === 'daily' ||\n mode === 'weekly' ||\n mode === 'monthly' ||\n mode === 'yearly'\n ) {\n return mode;\n }\n\n const recurrence = get(schedule, 'recurrence');\n switch (recurrence) {\n case 'hourly':\n return 'hourly';\n case 'daily':\n return 'daily';\n case 'weekly':\n return 'weekly';\n case 'monthly':\n return 'monthly';\n case 'yearly':\n return 'yearly';\n default:\n return 'daily';\n }\n}\n\nfunction resolveScheduleInterval(schedule: MaintenancePlanScheduleLike): number {\n const interval = get(schedule, 'interval');\n return isNumber(interval) && interval > 0 ? interval : 1;\n}\n\n/**\n * Anchor date for the first work-order occurrence (now, byDate, or onDemand).\n */\nexport function resolveScheduleAnchorDate(\n schedule: MaintenancePlanScheduleLike | undefined,\n referenceDate: Date = new Date(),\n): Date | undefined {\n if (!schedule) {\n return undefined;\n }\n\n const startType = get(schedule, 'startCondition.type');\n if (startType === 'onDemand') {\n return undefined;\n }\n\n if (startType === 'now') {\n return new Date(referenceDate.getTime());\n }\n\n const configuredStart = toDate(get(schedule, 'startCondition.startDate'));\n if (configuredStart) {\n return configuredStart;\n }\n\n return undefined;\n}\n\nfunction addScheduleInterval(\n anchor: Date,\n mode: MaintenanceScheduleMode,\n interval: number,\n step: number,\n): Date {\n const result = new Date(anchor.getTime());\n const amount = step * interval;\n\n switch (mode) {\n case 'hourly':\n result.setHours(result.getHours() + amount);\n break;\n case 'daily':\n result.setDate(result.getDate() + amount);\n break;\n case 'weekly':\n result.setDate(result.getDate() + amount * 7);\n break;\n case 'monthly':\n result.setMonth(result.getMonth() + amount);\n break;\n case 'yearly':\n result.setFullYear(result.getFullYear() + amount);\n break;\n }\n\n return result;\n}\n\nfunction resolveOccurrenceScheduledEnd(\n scheduledStart: Date,\n estimatedHours?: number,\n): string | undefined {\n if (!isNumber(estimatedHours) || estimatedHours <= 0) {\n return undefined;\n }\n\n const end = new Date(scheduledStart.getTime());\n end.setTime(end.getTime() + estimatedHours * 60 * 60 * 1000);\n return toIsoString(end);\n}\n\n/**\n * Resolves scheduled start dates for work orders from a maintenance plan schedule.\n *\n * - End `never`: first occurrence only (next ones are generated later).\n * - End `afterOccurrences`: all occurrences up to the configured count.\n * - End `byDate`: occurrences from anchor through end date (inclusive).\n */\nexport function resolveWorkOrderScheduledStarts(\n schedule: MaintenancePlanIntervalInput | undefined,\n referenceDate: Date = new Date(),\n): Date[] {\n const calendar = readMaintenancePlanCalendarSchedule(schedule);\n if (!calendar) {\n return [];\n }\n\n const anchor = resolveScheduleAnchorDate(calendar, referenceDate);\n if (!anchor) {\n return [];\n }\n\n const mode = inferScheduleMode(calendar);\n const interval = resolveScheduleInterval(calendar);\n const endType = defaultTo(get(calendar, 'endCondition.type'), 'never');\n\n if (endType === 'never') {\n return [anchor];\n }\n\n if (endType === 'afterOccurrences') {\n const count = Math.max(1, defaultTo(get(calendar, 'endCondition.occurrences'), 1));\n return Array.from({ length: count }, (_, step) => addScheduleInterval(anchor, mode, interval, step));\n }\n\n if (endType === 'byDate') {\n const endDate = toScheduleEndBoundary(get(calendar, 'endCondition.endDate'));\n if (!endDate) {\n return [anchor];\n }\n\n const starts: Date[] = [];\n for (let step = 0; step < MAX_BY_DATE_OCCURRENCES; step += 1) {\n const occurrence = addScheduleInterval(anchor, mode, interval, step);\n if (occurrence.getTime() > endDate.getTime()) {\n break;\n }\n starts.push(occurrence);\n }\n\n return starts;\n }\n\n return [anchor];\n}\n\nexport function resolveWorkOrderOccurrences(\n schedule: MaintenancePlanIntervalInput | undefined,\n options?: { referenceDate?: Date; estimatedHours?: number },\n): WorkOrderOccurrenceWindow[] {\n const referenceDate = options?.referenceDate ?? new Date();\n const starts = resolveWorkOrderScheduledStarts(schedule, referenceDate);\n const estimatedHours = options?.estimatedHours;\n\n if (starts.length === 0) {\n return [{}];\n }\n\n return starts.map((scheduledStart) => {\n const scheduledEnd = resolveOccurrenceScheduledEnd(scheduledStart, estimatedHours);\n return {\n scheduledStart: toIsoString(scheduledStart),\n ...(scheduledEnd ? { scheduledEnd } : {}),\n };\n });\n}\n\n/**\n * Returns how many work orders will be created from a plan schedule (minimum 1 when schedule is absent or on-demand).\n */\nexport function countWorkOrdersToCreateFromSchedule(\n schedule: MaintenancePlanIntervalInput | undefined,\n referenceDate: Date = new Date(),\n): number {\n return resolveWorkOrderOccurrences(schedule, { referenceDate }).length;\n}\n\nexport function resolveScheduledStart(\n schedule?: MaintenancePlanIntervalInput,\n referenceDate: Date = new Date(),\n): string | undefined {\n const starts = resolveWorkOrderScheduledStarts(schedule, referenceDate);\n const first = starts[0];\n return first ? toIsoString(first) : undefined;\n}\n\n/** Internal flag on plan create payloads; stripped before persistence when supported. */\nexport const SUPPRESS_WORK_ORDER_PROMPT_FIELD = '__suppressWorkOrderPrompt';\n\n/**\n * Allocates and commits the next identifier code for programmatic entity creates.\n * Validation runs before identifier middleware (order 5); the code must be on the payload.\n * Uses `generate` (not `peek`) so back-to-back creates in a loop receive distinct codes.\n */\nexport async function allocateIdentifierCode(\n identifierService: AXPIdentifierService,\n sessionService: AXPSessionService,\n ruleId: string,\n): Promise<string> {\n const result = await identifierService.generate({\n id: ruleId,\n tenantId: sessionService.tenant?.id,\n appId: sessionService.application?.id,\n });\n return result.code;\n}\n\nexport function buildMaintenancePlanPayload(\n asset: AssetLike,\n template: MaintenanceTemplateLike,\n options?: { suppressWorkOrderPrompt?: boolean; code?: string; autoGeneratedPlan?: boolean },\n): Record<string, unknown> {\n return {\n ...(options?.code ? { code: options.code } : {}),\n title: combineMultiLanguageTitle(\n template.title,\n template.code ?? 'Template',\n asset.title,\n asset.code ?? 'Asset',\n ),\n description: template.description,\n assetId: asset.id,\n maintenanceTypeId: template.maintenanceTypeId,\n maintenanceTemplateId: template.id,\n intervalConfig: {\n triggerLogic: AXMMaintenanceIntervalTriggerLogic.Any,\n triggers: [\n {\n kind: 'schedule',\n schedule: template.schedule ?? {\n mode: 'daily',\n interval: 1,\n startCondition: { type: 'byDate', startDate: new Date().toISOString() },\n endCondition: { type: 'never' },\n },\n },\n ],\n },\n intervalStates: [],\n estimatedHours: template.estimatedMinutes\n ? Math.max(1, Math.ceil(template.estimatedMinutes / 60))\n : undefined,\n needPermission: !!template.needPermission,\n needShutdown: !!template.needShutdown,\n ...(options?.autoGeneratedPlan ? { autoGeneratedPlan: true } : {}),\n ...(options?.suppressWorkOrderPrompt\n ? { [SUPPRESS_WORK_ORDER_PROMPT_FIELD]: true }\n : {}),\n };\n}\n\nexport async function resolveMaintenanceTemplate(\n backend: EntityStorageBackend,\n templateEntityName: string,\n partial: MaintenanceTemplateLike,\n): Promise<MaintenanceTemplateLike | null> {\n if (!partial?.id) {\n return null;\n }\n\n if (partial.maintenanceTypeId) {\n return partial;\n }\n\n const loaded = (await backend\n .getOne(templateEntityName, partial.id)\n .catch(() => null)) as MaintenanceTemplateLike | null;\n\n return loaded?.maintenanceTypeId ? loaded : null;\n}\n\nfunction resolveRelationId(value: unknown): string | undefined {\n if (isString(value)) {\n const trimmed = value.trim();\n return trimmed || undefined;\n }\n\n if (isObject(value)) {\n const id = get(value, 'id') as unknown;\n if (isString(id)) {\n const trimmed = id.trim();\n return trimmed || undefined;\n }\n }\n\n return undefined;\n}\n\n/**\n * Normalizes lookup-style relation values on a plan to plain ids for work-order generation.\n */\nexport function normalizePlanRelationIds(plan: MaintenancePlanLike): MaintenancePlanLike {\n return {\n ...plan,\n assetId: resolveRelationId(plan.assetId) ?? plan.assetId,\n maintenanceTypeId: resolveRelationId(plan.maintenanceTypeId) ?? plan.maintenanceTypeId,\n maintenanceTemplateId: resolveRelationId(plan.maintenanceTemplateId) ?? plan.maintenanceTemplateId,\n assignedToId: resolveRelationId(plan.assignedToId) ?? plan.assignedToId,\n priorityId:\n resolveRelationId(plan.priorityId) ?? resolveRelationId(plan.priority?.id) ?? plan.priorityId,\n };\n}\n\n/**\n * Merges persisted plan with create-time fields that may not be returned by `getOne` yet.\n * Stored values win; missing work-order fields are filled from the create payload.\n */\nexport function mergeMaintenancePlanForWorkOrder(\n createPayload: MaintenancePlanLike | null | undefined,\n stored: MaintenancePlanLike | null,\n id: string,\n): MaintenancePlanLike | null {\n if (!stored && !createPayload) {\n return null;\n }\n\n const merged: MaintenancePlanLike = {\n ...(createPayload ?? {}),\n ...(stored ?? {}),\n id: stored?.id ?? id,\n };\n\n delete (merged as unknown as Record<string, unknown>)[SUPPRESS_WORK_ORDER_PROMPT_FIELD];\n\n if (!createPayload) {\n return normalizePlanRelationIds(merged);\n }\n\n const fillIfMissing = <K extends keyof MaintenancePlanLike>(key: K): void => {\n const storedValue = merged[key];\n const createValue = createPayload[key];\n const storedEmpty =\n storedValue === undefined ||\n storedValue === null ||\n (typeof storedValue === 'string' && storedValue.trim() === '');\n if (storedEmpty && createValue !== undefined && createValue !== null) {\n merged[key] = createValue;\n }\n };\n\n fillIfMissing('assetId');\n fillIfMissing('maintenanceTypeId');\n fillIfMissing('maintenanceTemplateId');\n fillIfMissing('intervalConfig');\n fillIfMissing('title');\n fillIfMissing('description');\n fillIfMissing('needPermission');\n fillIfMissing('needShutdown');\n fillIfMissing('assignedToId');\n fillIfMissing('assignedTo');\n fillIfMissing('priorityId');\n fillIfMissing('priority');\n fillIfMissing('estimatedHours');\n\n return normalizePlanRelationIds(merged);\n}\n\n/**\n * Normalizes plan priority for work-order payload.\n */\nexport function resolvePlanPriorityId(plan: MaintenancePlanLike): string | undefined {\n const priorityId = plan.priorityId?.trim() || plan.priority?.id?.trim();\n return priorityId || undefined;\n}\n\n/**\n * Normalizes plan estimated hours (supports numeric strings from forms/storage).\n */\nexport function resolvePlanEstimatedHours(plan: MaintenancePlanLike): number | undefined {\n const raw = plan.estimatedHours;\n if (isNumber(raw) && raw >= 0) {\n return raw;\n }\n if (isString(raw)) {\n const parsed = Number(raw);\n if (!Number.isNaN(parsed) && parsed >= 0) {\n return parsed;\n }\n }\n return undefined;\n}\n\nconst EMPLOYEE_ENTITY = 'HumanCapitalManagement.Employee';\n\n/**\n * Maintenance plan `assignedToId` stores Employee id; work order `assignedToId` expects Person id.\n */\nexport async function resolvePlanAssignedToForWorkOrder(\n backend: EntityStorageBackend,\n plan: MaintenancePlanLike,\n): Promise<Pick<WorkOrderFieldsFromPlan, 'assignedToId' | 'assignedTo'>> {\n const employeeId = plan.assignedToId?.trim();\n if (!employeeId) {\n return {};\n }\n\n const employee = (await backend.getOne(EMPLOYEE_ENTITY, employeeId).catch(() => null)) as {\n personId?: string;\n person?: { id?: string; fullName?: string; displayName?: string };\n } | null;\n\n const personId = employee?.personId?.trim() || employee?.person?.id?.trim();\n if (!personId) {\n return {};\n }\n\n const fullName = employee?.person?.fullName?.trim() || employee?.person?.displayName?.trim();\n return {\n assignedToId: personId,\n assignedTo: fullName ? { id: personId, fullName } : { id: personId },\n };\n}\n\n/**\n * Resolves work-order assignment, priority, and estimated hours from a maintenance plan.\n */\nexport async function resolvePlanFieldsForWorkOrder(\n backend: EntityStorageBackend,\n plan: MaintenancePlanLike,\n): Promise<WorkOrderFieldsFromPlan> {\n const assignment = await resolvePlanAssignedToForWorkOrder(backend, plan);\n const priorityId = resolvePlanPriorityId(plan);\n const estimatedHours = resolvePlanEstimatedHours(plan);\n\n return {\n ...assignment,\n ...(priorityId ? { priorityId } : {}),\n ...(estimatedHours !== undefined ? { estimatedHours } : {}),\n };\n}\n\nexport function buildWorkOrderPayloadFromFailureRegister(\n failureRegister: FailureRegisterLike,\n template: MaintenanceTemplateLike,\n workOrderNo: string,\n): Record<string, unknown> {\n const title = normalizeMultiLanguageString(template.title, template.code ?? 'Template');\n\n return {\n workOrderNo,\n assetId: failureRegister.assetId,\n maintenanceTypeId: template.maintenanceTypeId,\n maintenanceTemplateId: template.id,\n failureRegisterId: failureRegister.id,\n priorityId: failureRegister.priorityId,\n title,\n description: failureRegister.description,\n needPermission: !!template.needPermission,\n needShutdown: !!template.needShutdown,\n statusId: AXMWorkOrderStatus.Planned,\n sourceType: AXMWorkOrderSourceType.FailureRegister,\n isArchived: false,\n isDeleted: false,\n };\n}\n\nexport function buildWorkOrderPayloadFromPlan(\n plan: MaintenancePlanLike,\n workOrderNo: string,\n options?: {\n autoGeneratedWorkOrder?: boolean;\n referenceDate?: Date;\n occurrence?: WorkOrderOccurrenceWindow;\n sourceType?: AXMWorkOrderSourceType;\n workOrderFields?: WorkOrderFieldsFromPlan;\n includeScheduledEnd?: boolean;\n },\n): Record<string, unknown> {\n const title = normalizeMultiLanguageString(plan.title, plan.code ?? 'Work order');\n const occurrence =\n options?.occurrence ??\n resolveWorkOrderOccurrences(plan.intervalConfig, {\n referenceDate: options?.referenceDate,\n estimatedHours: resolvePlanEstimatedHours(plan),\n })[0];\n\n const fields = options?.workOrderFields ?? {};\n const priorityId = fields.priorityId ?? resolvePlanPriorityId(plan);\n const estimatedHours = fields.estimatedHours ?? resolvePlanEstimatedHours(plan);\n\n return {\n workOrderNo,\n assetId: plan.assetId,\n maintenanceTypeId: plan.maintenanceTypeId,\n maintenanceTemplateId: plan.maintenanceTemplateId,\n maintenancePlanId: plan.id,\n title,\n description: plan.description,\n scheduledStart: occurrence?.scheduledStart,\n ...(options?.includeScheduledEnd && occurrence?.scheduledEnd\n ? { scheduledEnd: occurrence.scheduledEnd }\n : {}),\n ...(fields.assignedToId\n ? {\n assignedToId: fields.assignedToId,\n ...(fields.assignedTo ? { assignedTo: fields.assignedTo } : {}),\n }\n : {}),\n ...(priorityId ? { priorityId } : {}),\n ...(estimatedHours !== undefined ? { estimatedHours } : {}),\n needPermission: !!plan.needPermission,\n needShutdown: !!plan.needShutdown,\n ...(options?.autoGeneratedWorkOrder ? { autoGeneratedWorkOrder: true } : {}),\n statusId: AXMWorkOrderStatus.Planned,\n sourceType: options?.sourceType ?? AXMWorkOrderSourceType.MaintenancePlan,\n isArchived: false,\n isDeleted: false,\n };\n}\n\n/**\n * Builds one work-order payload per schedule occurrence (count varies by end condition).\n */\nexport function buildWorkOrderPayloadsFromPlan(\n plan: MaintenancePlanLike,\n options?: {\n autoGeneratedWorkOrder?: boolean;\n referenceDate?: Date;\n sourceType?: AXMWorkOrderSourceType;\n workOrderFields?: WorkOrderFieldsFromPlan;\n includeScheduledEnd?: boolean;\n },\n): Array<Record<string, unknown>> {\n const referenceDate = options?.referenceDate ?? new Date();\n const estimatedHours = resolvePlanEstimatedHours(plan);\n const occurrences = resolveWorkOrderOccurrences(plan.intervalConfig, {\n referenceDate,\n estimatedHours,\n });\n const selectedOccurrences = options?.autoGeneratedWorkOrder ? occurrences.slice(0, 1) : occurrences;\n\n return selectedOccurrences.map((occurrence) =>\n buildWorkOrderPayloadFromPlan(plan, '', {\n autoGeneratedWorkOrder: options?.autoGeneratedWorkOrder,\n referenceDate,\n occurrence,\n sourceType: options?.sourceType,\n workOrderFields: options?.workOrderFields,\n includeScheduledEnd: options?.includeScheduledEnd,\n }),\n );\n}\n\n/**\n * Inserts all work orders implied by the plan schedule (peek identifier per row).\n */\nexport async function insertWorkOrdersFromPlan(\n entityStorage: { insertOne(entityName: string, entity: Record<string, unknown>): Promise<unknown> },\n identifierService: AXPIdentifierService,\n sessionService: AXPSessionService,\n workOrderEntityName: string,\n plan: MaintenancePlanLike,\n options?: {\n autoGeneratedWorkOrder?: boolean;\n referenceDate?: Date;\n sourceType?: AXMWorkOrderSourceType;\n backend?: EntityStorageBackend;\n },\n): Promise<number> {\n const resolvedPlan = normalizePlanRelationIds(plan);\n const workOrderFields = options?.backend ? await resolvePlanFieldsForWorkOrder(options.backend, resolvedPlan) : {};\n\n const payloads = buildWorkOrderPayloadsFromPlan(resolvedPlan, {\n autoGeneratedWorkOrder: options?.autoGeneratedWorkOrder,\n referenceDate: options?.referenceDate,\n sourceType: options?.sourceType,\n workOrderFields,\n includeScheduledEnd: false,\n });\n let createdCount = 0;\n\n for (const payload of payloads) {\n const workOrderNo = await allocateIdentifierCode(identifierService, sessionService, WORK_ORDER_NO_RULE_ID);\n await entityStorage.insertOne(workOrderEntityName, { ...payload, workOrderNo });\n createdCount += 1;\n }\n\n return createdCount;\n}\n\nexport function canCreateWorkOrderFromFailureRegister(\n failureRegister: FailureRegisterLike,\n template: MaintenanceTemplateLike,\n): boolean {\n return !!(failureRegister.assetId && template.id && template.maintenanceTypeId);\n}\n\nexport function canCreateWorkOrderFromPlan(plan: MaintenancePlanLike): boolean {\n const normalized = normalizePlanRelationIds(plan);\n return !!(\n normalized.assetId &&\n normalized.maintenanceTypeId &&\n normalized.maintenanceTemplateId\n );\n}\n\nfunction isMaintenanceTemplateLike(row: unknown): row is MaintenanceTemplateLike {\n if (!row || typeof row !== 'object') {\n return false;\n }\n const candidate = row as MaintenanceTemplateLike;\n return typeof candidate.id === 'string' && typeof candidate.maintenanceTypeId === 'string';\n}\n\nexport async function queryAutoGenerateTemplatesForAssetType(\n backend: EntityStorageBackend,\n templateEntityName: string,\n assetTypeId: string,\n): Promise<MaintenanceTemplateLike[]> {\n const result = await backend\n .query(templateEntityName, {\n skip: 0,\n take: 200,\n filter: {\n logic: 'and',\n filters: [\n { field: 'assetTypeId', operator: { type: 'equal' }, value: assetTypeId },\n { field: 'autoGeneratePlan', operator: { type: 'equal' }, value: true },\n ],\n },\n })\n .catch(() => ({ total: 0, items: [] }));\n\n const items: unknown[] = result.items ?? [];\n return items.filter(isMaintenanceTemplateLike);\n}\n\nconst ASSET_ENTITY = 'AssetManagement.Asset';\nconst ASSET_TYPE_ENTITY = 'AssetManagement.AssetType';\n\nexport function isWorkflowEnabledOnTemplate(template: MaintenanceTemplateLike): boolean {\n const config = template.workflowConfig;\n if (!config?.workflowDefinitionId?.trim() || !config?.workflowName?.trim()) {\n return false;\n }\n return config.enabled !== false;\n}\n\n/**\n * Resolves asset → asset type maintenance types → maintenance templates with an enabled workflow.\n */\nexport async function queryWorkflowTemplatesForAsset(\n backend: EntityStorageBackend,\n templateEntityName: string,\n assetId: string,\n): Promise<MaintenanceTemplateLike[]> {\n const trimmedAssetId = assetId?.trim();\n if (!trimmedAssetId) {\n return [];\n }\n\n const asset = (await backend.getOne(ASSET_ENTITY, trimmedAssetId).catch(() => null)) as AssetLike | null;\n const assetTypeId = asset?.assetTypeId?.trim();\n if (!asset || !assetTypeId) {\n return [];\n }\n\n const assetType = (await backend.getOne(ASSET_TYPE_ENTITY, assetTypeId).catch(() => null)) as\n | { maintenanceTypeIds?: string[] }\n | null;\n const maintenanceTypeIds = (assetType?.maintenanceTypeIds ?? []).filter((id) => isString(id) && id.trim());\n if (maintenanceTypeIds.length === 0) {\n return [];\n }\n\n const result = await backend\n .query(templateEntityName, {\n skip: 0,\n take: 500,\n filter: {\n logic: 'and',\n filters: [\n { field: 'assetTypeId', operator: { type: 'equal' }, value: assetTypeId },\n { field: 'maintenanceTypeId', operator: { type: 'in' }, value: maintenanceTypeIds },\n ],\n },\n })\n .catch(() => ({ total: 0, items: [] }));\n\n const rawItems: unknown[] = result.items ?? [];\n const items = rawItems.filter(isMaintenanceTemplateLike);\n return items.filter((template) => isWorkflowEnabledOnTemplate(template));\n}\n\nexport async function hasWorkOrderForPlan(\n backend: EntityStorageBackend,\n workOrderEntityName: string,\n planId: string,\n): Promise<boolean> {\n const result = await backend\n .query(workOrderEntityName, {\n skip: 0,\n take: 1,\n filter: {\n field: 'maintenancePlanId',\n operator: { type: 'equal' },\n value: planId,\n },\n })\n .catch(() => ({ total: 0, items: [] }));\n\n return (result.total ?? 0) > 0 || (result.items?.length ?? 0) > 0;\n}\n\nexport async function countWorkOrdersForMaintenancePlan(\n backend: EntityStorageBackend,\n workOrderEntityName: string,\n planId: string,\n): Promise<number> {\n const result = await backend\n .query(workOrderEntityName, {\n skip: 0,\n take: 1,\n filter: {\n field: 'maintenancePlanId',\n operator: { type: 'equal' },\n value: planId,\n },\n })\n .catch(() => ({ total: 0 }));\n\n return result.total ?? 0;\n}\n\nexport async function hasWorkOrderForPlanScheduledStart(\n backend: EntityStorageBackend,\n workOrderEntityName: string,\n planId: string,\n scheduledStart: string,\n): Promise<boolean> {\n const result = await backend\n .query(workOrderEntityName, {\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [\n { field: 'maintenancePlanId', operator: { type: 'equal' }, value: planId },\n { field: 'scheduledStart', operator: { type: 'equal' }, value: scheduledStart },\n ],\n },\n })\n .catch(() => ({ total: 0, items: [] }));\n\n return (result.total ?? 0) > 0 || (result.items?.length ?? 0) > 0;\n}\n\n/**\n * Resolves the next scheduled work-order occurrence after a signed-off work order.\n * For `endCondition.type === 'never'`, returns the next interval from the signed-off scheduled start.\n */\nexport function resolveNextWorkOrderOccurrenceAfterSignedOff(\n plan: MaintenancePlanLike,\n signedOffWorkOrder: { scheduledStart?: string },\n referenceDate: Date = new Date(),\n): WorkOrderOccurrenceWindow | null {\n const schedule = readMaintenancePlanCalendarSchedule(plan.intervalConfig);\n if (!schedule) {\n return null;\n }\n\n const startType = get(schedule, 'startCondition.type');\n if (startType === 'onDemand') {\n return null;\n }\n\n const anchor = toDate(signedOffWorkOrder.scheduledStart) ?? resolveScheduleAnchorDate(schedule, referenceDate);\n if (!anchor) {\n return null;\n }\n\n const mode = inferScheduleMode(schedule);\n const interval = resolveScheduleInterval(schedule);\n const nextStart = addScheduleInterval(anchor, mode, interval, 1);\n const endType = defaultTo(get(schedule, 'endCondition.type'), 'never');\n\n if (endType === 'byDate') {\n const endDate = toScheduleEndBoundary(get(schedule, 'endCondition.endDate'));\n if (endDate && nextStart.getTime() > endDate.getTime()) {\n return null;\n }\n }\n\n const estimatedHours = resolvePlanEstimatedHours(plan);\n const scheduledEnd = resolveOccurrenceScheduledEnd(nextStart, estimatedHours);\n\n return {\n scheduledStart: toIsoString(nextStart),\n ...(scheduledEnd ? { scheduledEnd } : {}),\n };\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXP_IDENTIFIER_SERVICE, type AXPIdentifierService } from '@acorex-platform/module-identifier-management-client';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport {\n AXPEntityStorageMiddleware,\n AXPEntityStorageService,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { AXMWorkOrderSourceType, RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n buildMaintenancePlanPayload,\n canCreateWorkOrderFromPlan,\n allocateIdentifierCode,\n insertWorkOrdersFromPlan,\n MAINTENANCE_PLAN_CODE_RULE_ID,\n mergeMaintenancePlanForWorkOrder,\n queryAutoGenerateTemplatesForAssetType,\n resolveDisplayLabel,\n type AssetLike,\n type EntityStorageBackend,\n type MaintenancePlanLike,\n type MaintenanceTemplateLike,\n} from './maintenance-generation.utils';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst ASSET_ENTITY = 'AssetManagement.Asset';\n\n//#endregion\n\n//#region ---- Dialog ----\n\ninterface MaintenanceOfferChoice {\n createPlans: boolean;\n createWorkOrders: boolean;\n}\n\nasync function askMaintenanceOfferChoice(\n dialogService: AXDialogService,\n translateService: AXTranslationService,\n templateCount: number,\n assetTitle: string,\n): Promise<MaintenanceOfferChoice | null> {\n const title = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.title',\n );\n const content = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.content',\n { params: { count: templateCount, assetTitle } },\n );\n const plansOnlyLabel = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.actions.plans-only',\n );\n const plansAndWorkOrdersLabel = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.actions.plans-and-work-orders',\n );\n const cancelLabel = await translateService.translateAsync('@general:actions.cancel.title');\n\n return new Promise((resolve) => {\n let settled = false;\n const finish = (value: MaintenanceOfferChoice | null) => {\n if (settled) {\n return;\n }\n settled = true;\n resolve(value);\n };\n\n const dialog = dialogService.open({\n title,\n content,\n type: 'primary',\n orientation: 'horizontal',\n closeButton: false,\n buttons: [\n {\n text: cancelLabel,\n color: 'default',\n autofocus: true,\n onClick: () => {\n dialog.close();\n finish(null);\n },\n },\n {\n text: plansOnlyLabel,\n color: 'default',\n onClick: () => {\n dialog.close();\n finish({ createPlans: true, createWorkOrders: false });\n },\n },\n {\n text: plansAndWorkOrdersLabel,\n color: 'primary',\n onClick: () => {\n dialog.close();\n finish({ createPlans: true, createWorkOrders: true });\n },\n },\n ],\n });\n });\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * After creating an Asset, offers to create maintenance plans (and optionally work orders)\n * for maintenance templates on the asset type with `autoGeneratePlan = true`.\n */\nexport const assetCreateMaintenanceOfferMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create'],\n order: 88,\n },\n execute: async (ctx, next) => {\n const dialogService = inject(AXDialogService, { optional: true });\n const toastService = inject(AXToastService, { optional: true });\n const translateService = inject(AXTranslationService, { optional: true });\n const backend = ctx.entities as EntityStorageBackend;\n const entityStorage = inject(AXPEntityStorageService, { optional: true });\n const identifierService = inject(AXP_IDENTIFIER_SERVICE, { optional: true }) as AXPIdentifierService | null;\n const sessionService = inject(AXPSessionService, { optional: true });\n\n if (ctx.entityName !== ASSET_ENTITY) {\n await next();\n return;\n }\n\n await next();\n\n const createdId = typeof ctx.result === 'string' ? ctx.result : undefined;\n if (\n !createdId ||\n !dialogService ||\n !toastService ||\n !translateService ||\n !entityStorage ||\n !identifierService ||\n !sessionService\n ) {\n return;\n }\n\n const asset = (await backend.getOne(ASSET_ENTITY, createdId).catch(() => null)) as AssetLike | null;\n if (!asset?.assetTypeId) {\n return;\n }\n\n const templateEntity = `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`;\n const planEntity = `${RootConfig.module.name}.${RootConfig.entities.maintenancePlan.name}`;\n const workOrderEntity = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n\n const templates = await queryAutoGenerateTemplatesForAssetType(\n backend,\n templateEntity,\n asset.assetTypeId,\n );\n if (templates.length === 0) {\n return;\n }\n\n const assetTitle = resolveDisplayLabel(asset.title, asset.code ?? createdId);\n const choice = await askMaintenanceOfferChoice(\n dialogService,\n translateService,\n templates.length,\n assetTitle,\n );\n if (!choice?.createPlans) {\n return;\n }\n\n const createdPlans: MaintenancePlanLike[] = [];\n\n for (const template of templates) {\n if (!template.maintenanceTypeId) {\n const loaded = (await backend\n .getOne(templateEntity, template.id)\n .catch(() => null)) as MaintenanceTemplateLike | null;\n if (!loaded?.maintenanceTypeId) {\n continue;\n }\n Object.assign(template, loaded);\n }\n\n try {\n // Validation runs before identifier middleware; allocate (commit) a distinct code per plan.\n const planCode = await allocateIdentifierCode(\n identifierService,\n sessionService,\n MAINTENANCE_PLAN_CODE_RULE_ID,\n );\n const planPayload = buildMaintenancePlanPayload(asset, template, {\n suppressWorkOrderPrompt: true,\n code: planCode,\n autoGeneratedPlan: true,\n });\n const planId = await entityStorage.insertOne(planEntity, planPayload);\n const resolvedPlanId = typeof planId === 'string' ? planId : undefined;\n if (!resolvedPlanId) {\n continue;\n }\n\n const storedPlan = (await backend.getOne(planEntity, resolvedPlanId).catch(() => null)) as MaintenancePlanLike | null;\n const plan = mergeMaintenancePlanForWorkOrder(\n { ...planPayload, id: resolvedPlanId },\n storedPlan,\n resolvedPlanId,\n );\n if (plan) {\n createdPlans.push(plan);\n }\n } catch (error) {\n const errorTitle = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.errors.create-failed-title',\n );\n const errorMessage =\n error instanceof Error\n ? error.message\n : await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.errors.create-failed-content',\n );\n toastService.show({ color: 'danger', title: errorTitle, content: errorMessage });\n return;\n }\n }\n\n if (!choice.createWorkOrders || createdPlans.length === 0) {\n const successTitle = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.success.plans-title',\n );\n const successContent = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.success.plans-content',\n { params: { count: createdPlans.length } },\n );\n toastService.show({ color: 'success', title: successTitle, content: successContent });\n return;\n }\n\n let workOrderCount = 0;\n const referenceDate = new Date();\n for (const plan of createdPlans) {\n if (!canCreateWorkOrderFromPlan(plan)) {\n continue;\n }\n workOrderCount += await insertWorkOrdersFromPlan(\n entityStorage,\n identifierService,\n sessionService,\n workOrderEntity,\n plan,\n {\n autoGeneratedWorkOrder: true,\n referenceDate,\n sourceType: AXMWorkOrderSourceType.CreateAsset,\n backend,\n },\n );\n }\n\n const successTitle = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.success.both-title',\n );\n const successContent = await translateService.translateAsync(\n '@asset-management:assets.entities.asset.dialogs.create-maintenance-offer.success.both-content',\n { params: { planCount: createdPlans.length, workOrderCount } },\n );\n toastService.show({ color: 'success', title: successTitle, content: successContent });\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXDataSourceFilterOption } from '@acorex/cdk/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXP_IDENTIFIER_SERVICE, type AXPIdentifierService } from '@acorex-platform/module-identifier-management-client';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport {\n AXPEntityDataSelectorService,\n AXPEntityDefinitionRegistryService,\n AXPEntityStorageMiddleware,\n AXPEntityStorageService,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n allocateIdentifierCode,\n buildWorkOrderPayloadFromFailureRegister,\n canCreateWorkOrderFromFailureRegister,\n resolveMaintenanceTemplate,\n WORK_ORDER_NO_RULE_ID,\n type EntityStorageBackend,\n type FailureRegisterLike,\n type MaintenanceTemplateLike,\n} from './maintenance-generation.utils';\n\n/** Asset detail route entity keys (must match AssetManagement registration). */\nconst ASSET_ENTITY = 'AssetManagement.Asset';\nconst ASSET_TYPE_ENTITY = 'AssetManagement.AssetType';\n\nconst I18N = '@maintenance-management:failure-registers.create-work-order-prompt';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface AssetLike {\n assetTypeId?: string;\n assetType?: {\n maintenanceTypeIds?: string[];\n };\n}\n\ninterface AssetTypeLike {\n maintenanceTypeIds?: string[];\n}\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction normalizeMaintenanceTypeIds(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n return value.filter((id): id is string => typeof id === 'string' && id.trim().length > 0);\n}\n\n/**\n * Resolves maintenance type ids allowed for the asset (from asset type), matching work-order / maintenance-plan lookups.\n */\nasync function resolveAssetMaintenanceTypeIds(backend: EntityStorageBackend, assetId: string): Promise<string[]> {\n const asset = (await backend.getOne(ASSET_ENTITY, assetId).catch(() => null)) as AssetLike | null;\n if (!asset) {\n return [];\n }\n\n const fromAssetType = normalizeMaintenanceTypeIds(asset.assetType?.maintenanceTypeIds);\n if (fromAssetType.length > 0) {\n return fromAssetType;\n }\n\n if (!asset.assetTypeId) {\n return [];\n }\n\n const assetType = (await backend\n .getOne(ASSET_TYPE_ENTITY, asset.assetTypeId)\n .catch(() => null)) as AssetTypeLike | null;\n return normalizeMaintenanceTypeIds(assetType?.maintenanceTypeIds);\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * After creating a Failure Register, asks user to optionally create a Work Order.\n * If user confirms, opens the standard entity data selector for maintenance templates.\n */\nexport const failureRegisterCreateWorkOrderMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create'],\n order: 90,\n },\n execute: async (ctx, next) => {\n // IMPORTANT: resolve injected deps before any await to keep Angular injection context valid.\n const dialogService = inject(AXDialogService, { optional: true });\n const toastService = inject(AXToastService, { optional: true });\n const translateService = inject(AXTranslationService, { optional: true });\n const entityRegistry = inject(AXPEntityDefinitionRegistryService, { optional: true });\n const entityDataSelector = inject(AXPEntityDataSelectorService, { optional: true });\n const backend = ctx.entities as EntityStorageBackend;\n const entityStorage = inject(AXPEntityStorageService, { optional: true });\n const identifierService = inject(AXP_IDENTIFIER_SERVICE, { optional: true }) as AXPIdentifierService | null;\n const sessionService = inject(AXPSessionService, { optional: true });\n\n const failureRegisterEntity = `${RootConfig.module.name}.${RootConfig.entities.failureRegister.name}`;\n if (ctx.entityName !== failureRegisterEntity) {\n await next();\n return;\n }\n\n await next();\n\n const createdId = typeof ctx.result === 'string' ? ctx.result : undefined;\n if (!createdId) {\n return;\n }\n\n // The middleware can run in non-UI execution contexts; keep it safe.\n if (\n !dialogService ||\n !toastService ||\n !translateService ||\n !entityRegistry ||\n !entityDataSelector ||\n !entityStorage ||\n !identifierService ||\n !sessionService\n ) {\n return;\n }\n\n const fr = (await backend.getOne(ctx.entityName, createdId).catch(() => null)) as FailureRegisterLike | null;\n if (!fr?.assetId) {\n return;\n }\n\n const confirm = await dialogService.confirm(\n await translateService.translateAsync(`${I18N}.confirm-title`),\n await translateService.translateAsync(`${I18N}.confirm-message`),\n 'warning',\n 'horizontal',\n false,\n 'cancel',\n );\n if (confirm.result !== true) {\n return;\n }\n\n const templateEntity = await entityRegistry.resolve(\n RootConfig.module.name,\n RootConfig.entities.maintenanceTemplate.name,\n );\n if (!templateEntity) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync(`${I18N}.template-error-title`),\n content: await translateService.translateAsync(`${I18N}.template-entity-unavailable`),\n });\n return;\n }\n\n const maintenanceTypeIds = await resolveAssetMaintenanceTypeIds(backend, fr.assetId);\n if (!maintenanceTypeIds.length) {\n toastService.show({\n color: 'warning',\n title: await translateService.translateAsync(`${I18N}.no-maintenance-types-title`),\n content: await translateService.translateAsync(`${I18N}.no-maintenance-types-content`),\n });\n return;\n }\n\n const selectorTitle =\n typeof templateEntity.title === 'string' ? templateEntity.title : RootConfig.entities.maintenanceTemplate.title;\n\n const templateFilters: AXDataSourceFilterOption = {\n field: 'maintenanceTypeId',\n operator: { type: 'in' },\n value: maintenanceTypeIds,\n };\n\n const templateEntityName = `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`;\n const workOrderEntityName = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n\n const selectorResult = await entityDataSelector.open({\n entity: templateEntity,\n title: selectorTitle,\n allowMultiple: false,\n allowCreate: 'none',\n columns: [\n 'code',\n 'title',\n 'maintenanceTypeId',\n 'needPermission',\n 'needShutdown',\n 'estimatedHours',\n 'schedule',\n 'autoGeneratePlan',\n ],\n filters: templateFilters,\n });\n\n if (!selectorResult?.items?.length) {\n return;\n }\n\n const selectedTemplate = selectorResult.items[0] as MaintenanceTemplateLike;\n const template = await resolveMaintenanceTemplate(backend, templateEntityName, selectedTemplate);\n if (!template) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync(`${I18N}.template-error-title`),\n content: await translateService.translateAsync(`${I18N}.template-missing-type`),\n });\n return;\n }\n\n if (!canCreateWorkOrderFromFailureRegister(fr, template)) {\n toastService.show({\n color: 'warning',\n title: await translateService.translateAsync(`${I18N}.missing-data-title`),\n content: await translateService.translateAsync(`${I18N}.missing-data-content`),\n });\n return;\n }\n\n const workOrderNo = await allocateIdentifierCode(identifierService, sessionService, WORK_ORDER_NO_RULE_ID);\n\n const result = await entityStorage.insertOne(\n workOrderEntityName,\n buildWorkOrderPayloadFromFailureRegister(fr, template, workOrderNo),\n );\n const workOrderId = typeof result === 'string' ? result : undefined;\n\n if (!workOrderId) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync(`${I18N}.work-order-error-title`),\n content: await translateService.translateAsync(`${I18N}.work-order-error-content`),\n });\n return;\n }\n\n toastService.show({\n color: 'success',\n title: await translateService.translateAsync(`${I18N}.success-title`),\n content: await translateService.translateAsync(`${I18N}.success-content`),\n });\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXP_IDENTIFIER_SERVICE, type AXPIdentifierService } from '@acorex-platform/module-identifier-management-client';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport {\n AXPEntityStorageMiddleware,\n AXPEntityStorageService,\n AXPMiddlewareAbortError,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport {\n AXM_MAINTENANCE_INTERVAL_STATE_ERRORS,\n readMaintenanceIntervalStates,\n resolveMaintenanceIntervalStates,\n RootConfig,\n} from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n canCreateWorkOrderFromPlan,\n countWorkOrdersToCreateFromSchedule,\n hasWorkOrderForPlan,\n insertWorkOrdersFromPlan,\n mergeMaintenancePlanForWorkOrder,\n SUPPRESS_WORK_ORDER_PROMPT_FIELD,\n type EntityStorageBackend,\n type MaintenancePlanLike,\n} from './maintenance-generation.utils';\n\n//#endregion\n\n//#region ---- Constants ----\n\n/** Per-create ctx.locals flag so duplicate middleware entries schedule only one prompt. */\nconst WORK_ORDER_PROMPT_SCHEDULED_KEY = 'maintenancePlan.workOrderPromptScheduled';\n\nconst I18N = '@maintenance-management:maintenance-plans.create-work-order-prompt';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface MaintenancePlanWorkOrderPromptDeps {\n createdId: string;\n planEntity: string;\n createPayload?: MaintenancePlanLike;\n dialogService: AXDialogService;\n backend: EntityStorageBackend;\n entityStorage: {\n insertOne(entityName: string, entity: Record<string, unknown>): Promise<unknown>;\n };\n identifierService: AXPIdentifierService;\n sessionService: AXPSessionService;\n toastService: AXToastService;\n translateService: AXTranslationService;\n}\n\n//#endregion\n\n//#region ---- Prompt runner ----\n\n/**\n * Asks whether to create work order(s) immediately after plan create completes.\n * Runs inline after `next()` so the dialog appears before navigation away from the create form.\n */\nasync function runMaintenancePlanWorkOrderPrompt(deps: MaintenancePlanWorkOrderPromptDeps): Promise<void> {\n const {\n createdId,\n planEntity,\n createPayload,\n dialogService,\n backend,\n entityStorage,\n identifierService,\n sessionService,\n toastService,\n translateService,\n } = deps;\n\n const storedPlan = (await backend.getOne(planEntity, createdId).catch(() => null)) as MaintenancePlanLike | null;\n const plan = mergeMaintenancePlanForWorkOrder(createPayload, storedPlan, createdId);\n if (!plan) {\n return;\n }\n\n const plannedWorkOrderCount = countWorkOrdersToCreateFromSchedule(plan.intervalConfig);\n const confirmTitle = await translateService.translateAsync(`${I18N}.confirm-title`);\n const confirmMessage =\n plannedWorkOrderCount === 1\n ? await translateService.translateAsync(`${I18N}.confirm-single`)\n : await translateService.translateAsync(`${I18N}.confirm-multiple`, {\n params: { count: plannedWorkOrderCount },\n });\n\n const confirm = await dialogService.confirm(\n confirmTitle,\n confirmMessage,\n 'warning',\n 'horizontal',\n false,\n 'cancel',\n );\n if (confirm.result !== true) {\n return;\n }\n\n if (!canCreateWorkOrderFromPlan(plan)) {\n await dialogService.alert(\n await translateService.translateAsync(`${I18N}.missing-data-title`),\n await translateService.translateAsync(`${I18N}.missing-data-message`),\n 'warning',\n );\n return;\n }\n\n const workOrderEntity = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n if (await hasWorkOrderForPlan(backend, workOrderEntity, plan.id)) {\n await dialogService.alert(\n await translateService.translateAsync(`${I18N}.exists-title`),\n await translateService.translateAsync(`${I18N}.exists-message`),\n 'warning',\n );\n return;\n }\n\n try {\n const workOrderCount = await insertWorkOrdersFromPlan(\n entityStorage,\n identifierService,\n sessionService,\n workOrderEntity,\n plan,\n { backend },\n );\n\n if (workOrderCount === 0) {\n await dialogService.alert(\n await translateService.translateAsync(`${I18N}.error-title`),\n await translateService.translateAsync(`${I18N}.error-failed`),\n 'danger',\n );\n return;\n }\n\n const successMessage =\n workOrderCount === 1\n ? await translateService.translateAsync(`${I18N}.success-single`)\n : await translateService.translateAsync(`${I18N}.success-multiple`, {\n params: { count: workOrderCount },\n });\n toastService.show({\n color: 'success',\n title: await translateService.translateAsync(`${I18N}.success-title`),\n content: successMessage,\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : await translateService.translateAsync(`${I18N}.error-failed`);\n await dialogService.alert(await translateService.translateAsync(`${I18N}.error-title`), message, 'danger');\n }\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * After creating a Maintenance Plan, asks whether to create a Work Order immediately.\n * If confirmed, creates Work Order using the plan's already selected template.\n */\nconst WRITE_OPS = new Set(['create', 'update', 'upsertOne']);\n\nfunction readRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return null;\n }\n return value as Record<string, unknown>;\n}\n\nfunction assignIntervalStates(record: Record<string, unknown>): void {\n record['intervalStates'] = readMaintenanceIntervalStates(record['intervalStates']);\n}\n\nexport const maintenancePlanCreateWorkOrderMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update', 'upsertOne', 'getOne', 'getAll', 'query', 'queryAll', 'getMany'],\n entity: `${RootConfig.module.name}.${RootConfig.entities.maintenancePlan.name}`,\n order: 91,\n },\n execute: async (ctx, next) => {\n const dialogService = inject(AXDialogService, { optional: true });\n const toastService = inject(AXToastService, { optional: true });\n const backend = ctx.entities as EntityStorageBackend;\n const entityStorage = inject(AXPEntityStorageService, { optional: true });\n const identifierService = inject(AXP_IDENTIFIER_SERVICE, { optional: true }) as AXPIdentifierService | null;\n const sessionService = inject(AXPSessionService, { optional: true });\n const translateService = inject(AXTranslationService, { optional: true });\n\n const maintenancePlanEntity = `${RootConfig.module.name}.${RootConfig.entities.maintenancePlan.name}`;\n if (ctx.entityName !== maintenancePlanEntity) {\n await next();\n return;\n }\n\n if (WRITE_OPS.has(ctx.op)) {\n const data = readRecord(ctx.data);\n const fieldPresent = ctx.op === 'create' || ctx.op === 'upsertOne' || (data != null && 'intervalStates' in data);\n if (data && fieldPresent) {\n const resolved = resolveMaintenanceIntervalStates(data['intervalStates']);\n if (resolved.issue) {\n const error = AXM_MAINTENANCE_INTERVAL_STATE_ERRORS[resolved.issue];\n throw new AXPMiddlewareAbortError(error.message, { code: error.code, status: 400 });\n }\n data['intervalStates'] = resolved.states;\n }\n }\n\n const suppressPrompt =\n ctx.data &&\n typeof ctx.data === 'object' &&\n (ctx.data as Record<string, unknown>)[SUPPRESS_WORK_ORDER_PROMPT_FIELD] === true;\n\n const createPayload =\n ctx.data && typeof ctx.data === 'object' ? (ctx.data as unknown as MaintenancePlanLike) : undefined;\n\n await next();\n\n if (ctx.op !== 'create') {\n if (ctx.op === 'getOne') {\n const record = readRecord(ctx.result);\n if (record) {\n assignIntervalStates(record);\n }\n return;\n }\n\n const items = Array.isArray(ctx.result)\n ? ctx.result\n : Array.isArray(ctx.result?.items)\n ? ctx.result.items\n : null;\n if (items) {\n for (const item of items) {\n const record = readRecord(item);\n if (record) {\n assignIntervalStates(record);\n }\n }\n }\n return;\n }\n\n const createdId = typeof ctx.result === 'string' ? ctx.result : undefined;\n if (\n !createdId ||\n !dialogService ||\n !toastService ||\n !entityStorage ||\n !identifierService ||\n !sessionService ||\n !translateService ||\n suppressPrompt\n ) {\n return;\n }\n\n if (ctx.locals.get(WORK_ORDER_PROMPT_SCHEDULED_KEY)) {\n return;\n }\n ctx.locals.set(WORK_ORDER_PROMPT_SCHEDULED_KEY, true);\n\n await runMaintenancePlanWorkOrderPrompt({\n createdId,\n planEntity: ctx.entityName,\n createPayload,\n dialogService,\n backend,\n entityStorage,\n identifierService,\n sessionService,\n toastService,\n translateService,\n });\n },\n};\n\n//#endregion\n","//#region ---- Constants ----\n\n/** Answer keys pre-filled from asset.code (readonly in viewer). */\nexport const WORK_ORDER_CHECKLIST_ASSET_CODE_KEYS = [\n 'mm_f920_asset_no',\n 'mm_prestart_plant_item',\n] as const;\n\n/** Answer keys pre-filled from asset.serialNumber (readonly in viewer). */\nexport const WORK_ORDER_CHECKLIST_ASSET_SERIAL_KEYS = [\n 'mm_f920_registration_number',\n 'mm_prestart_serial_number',\n] as const;\n\n/** All asset-driven prefill keys across maintenance checklists. */\nexport const WORK_ORDER_CHECKLIST_ASSET_PREFILL_KEYS = [\n ...WORK_ORDER_CHECKLIST_ASSET_CODE_KEYS,\n ...WORK_ORDER_CHECKLIST_ASSET_SERIAL_KEYS,\n] as const;\n\nexport type WorkOrderChecklistAssetPrefillKey = (typeof WORK_ORDER_CHECKLIST_ASSET_PREFILL_KEYS)[number];\n\n//#endregion\n\n//#region ---- Helpers ----\n\n/**\n * Builds checklist answer prefill from asset identifiers for maintenance questionnaires.\n */\nexport function buildWorkOrderChecklistAssetPrefillAnswers(asset: {\n code?: string | null;\n serialNumber?: string | null;\n}): Partial<Record<WorkOrderChecklistAssetPrefillKey, string>> {\n const code = typeof asset.code === 'string' ? asset.code.trim() : '';\n const serialNumber = typeof asset.serialNumber === 'string' ? asset.serialNumber.trim() : '';\n\n const answers: Partial<Record<WorkOrderChecklistAssetPrefillKey, string>> = {};\n if (code) {\n for (const key of WORK_ORDER_CHECKLIST_ASSET_CODE_KEYS) {\n answers[key] = code;\n }\n }\n if (serialNumber) {\n for (const key of WORK_ORDER_CHECKLIST_ASSET_SERIAL_KEYS) {\n answers[key] = serialNumber;\n }\n }\n return answers;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommandMiddleware } from '@acorex-platform/framework-client/runtime';\nimport { inject } from '@angular/core';\nimport { defaultTo, get, isEmpty, isString } from 'lodash';\n\nimport { RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n buildWorkOrderChecklistAssetPrefillAnswers,\n WORK_ORDER_CHECKLIST_ASSET_PREFILL_KEYS,\n} from './work-order-checklist-prefill.constants';\n\n//#endregion\n\n//#region ---- Types ----\n\nconst WORK_ORDER_SUBJECT_TYPE = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n\ninterface FillAssessmentCaseCommandInput {\n caseId?: string;\n sessionId?: string;\n prefillAnswers?: Record<string, unknown>;\n readonlyAnswerKeys?: string[];\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * Pre-fills PD-F920 asset header answers when a work-order checklist is opened from the task board.\n */\nexport const workOrderChecklistFillMiddleware: AXPCommandMiddleware<FillAssessmentCaseCommandInput, void> = async (\n context,\n next,\n) => {\n const entityService = inject(AXPEntityService);\n const input = context.input;\n const caseId = resolveText(get(input, 'caseId'));\n if (!caseId) {\n return next(context);\n }\n const assessmentCase = await entityService\n .withEntity('AssessmentManagement', 'AssessmentCase')\n .data()\n .byKey(caseId);\n\n const subjectType = resolveText(get(assessmentCase, 'subjectRef.type'));\n const workOrderId = resolveText(get(assessmentCase, 'subjectRef.id'));\n if (subjectType !== WORK_ORDER_SUBJECT_TYPE || !workOrderId) {\n return next(context);\n }\n\n const workOrder = await entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .byKey(workOrderId);\n\n const assetId = resolveText(get(workOrder, 'assetId'));\n if (!assetId) {\n return next(context);\n }\n\n const asset = (await entityService.withEntity('AssetManagement', 'Asset').data().byKey(assetId)) as {\n code?: string;\n serialNumber?: string;\n } | null;\n\n const prefillAnswers = buildWorkOrderChecklistAssetPrefillAnswers({\n code: asset?.code ?? null,\n serialNumber: asset?.serialNumber ?? null,\n });\n\n if (isEmpty(prefillAnswers)) {\n return next(context);\n }\n\n const sessionId = resolveText(get(input, 'sessionId'));\n if (sessionId) {\n const session = await entityService.withEntity('AssessmentManagement', 'AssessmentSession').data().byKey(sessionId);\n const existingAnswers = defaultTo(get(session, 'answers'), {}) as Record<string, unknown>;\n const { merged, changed } = mergeMissingAnswers(existingAnswers, prefillAnswers);\n if (changed) {\n await entityService\n .withEntity('AssessmentManagement', 'AssessmentSession')\n .data()\n .update(sessionId, { answers: merged } as never);\n }\n }\n\n return next({\n ...context,\n input: {\n ...input,\n prefillAnswers: {\n ...prefillAnswers,\n ...defaultTo(get(input, 'prefillAnswers'), {}),\n },\n readonlyAnswerKeys: [\n ...WORK_ORDER_CHECKLIST_ASSET_PREFILL_KEYS,\n ...defaultTo(get(input, 'readonlyAnswerKeys'), []),\n ],\n },\n });\n};\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n}\n\nfunction mergeMissingAnswers(\n existing: Record<string, unknown>,\n prefill: Record<string, unknown>,\n): { merged: Record<string, unknown>; changed: boolean } {\n const merged = { ...existing };\n let changed = false;\n\n for (const [key, value] of Object.entries(prefill)) {\n if (isEmpty(merged[key]) && !isEmpty(value)) {\n merged[key] = value;\n changed = true;\n }\n }\n\n return { merged, changed };\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPDebugService } from '@acorex-platform/framework-client/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommandMiddleware, AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { inject } from '@angular/core';\nimport { defaultTo, get, isString } from 'lodash';\n\nimport { AXMWorkOrderStatus, AXMMaintenanceManagementCommandKeys, RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport type { AXMMaintenanceManagementWorkOrderEntityModel } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nconst WORK_ORDER_SUBJECT_TYPE = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n\ninterface FillAssessmentCaseCommandInput {\n caseId?: string;\n sessionId?: string;\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * After a work-order checklist is submitted, ensures WorkReport draft, assessment reference,\n * and work-order in-progress status are persisted even when the workflow backend chain does not run.\n */\nexport const workOrderChecklistPostSubmitMiddleware: AXPCommandMiddleware<\n FillAssessmentCaseCommandInput,\n void\n> = async (context, next) => {\n const entityService = inject(AXPEntityService);\n const commandService = inject(AXPCommandService);\n const sessionService = inject(AXPSessionService);\n\n const result = await next(context);\n try {\n await applyWorkOrderChecklistPostSubmitEffects(context.input, result, {\n entityService,\n commandService,\n sessionService,\n });\n } catch (error: unknown) {\n AXPDebugService.instance?.error(\n 'maintenance-management',\n 'work-order-checklist-post-submit',\n 'Post-submit middleware failed; assessment fill result preserved',\n () => ({\n caseId: get(context.input, 'caseId'),\n sessionId: get(context.input, 'sessionId'),\n success: result?.success,\n outcome: get(result, 'metadata.outcome'),\n error: error instanceof Error ? error.message : String(error),\n }),\n );\n }\n return result;\n};\n\ninterface WorkOrderChecklistPostSubmitServices {\n entityService: AXPEntityService;\n commandService: AXPCommandService;\n sessionService: AXPSessionService;\n}\n\n//#endregion\n\n//#region ---- Post-submit effects ----\n\nasync function applyWorkOrderChecklistPostSubmitEffects(\n input: FillAssessmentCaseCommandInput,\n result: AXPRuntimeCommandResult<void> | null | undefined,\n services: WorkOrderChecklistPostSubmitServices,\n): Promise<void> {\n if (!result?.success) {\n return;\n }\n\n const caseId = resolveText(get(input, 'caseId'));\n if (!caseId) {\n return;\n }\n\n const submitted = await isWorkOrderChecklistSubmitted(input, result, caseId, services.entityService);\n if (!submitted) {\n return;\n }\n\n const { entityService, commandService, sessionService } = services;\n\n const assessmentCase = await entityService\n .withEntity('AssessmentManagement', 'AssessmentCase')\n .data()\n .byKey(caseId);\n\n const subjectType = resolveText(get(assessmentCase, 'subjectRef.type'));\n const workOrderId = resolveText(get(assessmentCase, 'subjectRef.id'));\n if (subjectType !== WORK_ORDER_SUBJECT_TYPE || !workOrderId) {\n return;\n }\n\n const workOrder = (await entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .byKey(workOrderId)) as AXMMaintenanceManagementWorkOrderEntityModel | null;\n\n if (!workOrder?.id) {\n return;\n }\n\n const performedById = await resolveEmployeeIdByPersonId(\n entityService,\n resolveText(workOrder.assignedToId),\n );\n const completedById = resolveText(sessionService.user?.id);\n const activityKeys = AXMMaintenanceManagementCommandKeys.WorkflowActivity;\n\n const draftResult = await commandService.execute(activityKeys.CreateOrGetWorkReportDraft, {\n workOrderId,\n performedById: performedById || null,\n });\n\n const workReportId = resolveText(get(draftResult, 'data.workReportId'));\n\n await commandService.execute(activityKeys.RecordWorkReportAssessment, {\n workOrderId,\n workReportId: workReportId || null,\n performedById: performedById || null,\n assessmentCaseId: caseId,\n completedById: completedById || null,\n });\n\n const shouldSetInProgress =\n workOrder.statusId === AXMWorkOrderStatus.Planned ||\n workOrder.statusId === AXMWorkOrderStatus.Scheduled ||\n workOrder.statusId === AXMWorkOrderStatus.Assigned;\n\n if (shouldSetInProgress) {\n await commandService.execute(activityKeys.UpdateWorkOrderInProgress, { workOrderId });\n }\n}\n\nasync function isWorkOrderChecklistSubmitted(\n input: FillAssessmentCaseCommandInput,\n result: AXPRuntimeCommandResult<void> | null | undefined,\n caseId: string,\n entityService: AXPEntityService,\n): Promise<boolean> {\n const outcome = resolveText(get(result, 'metadata.outcome')).toLowerCase();\n if (outcome === 'submitted') {\n return true;\n }\n const sessionId = resolveText(get(input, 'sessionId'));\n if (sessionId) {\n const session = await entityService\n .withEntity('AssessmentManagement', 'AssessmentSession')\n .data()\n .byKey(sessionId);\n if (resolveText(get(session, 'statusId')).toLowerCase() === 'submitted') {\n return true;\n }\n }\n\n const page = await entityService\n .withEntity('AssessmentManagement', 'AssessmentSession')\n .data()\n .query({\n skip: 0,\n take: 1,\n sort: [{ field: 'lastSavedAt', direction: 'desc' }],\n filter: {\n logic: 'and',\n filters: [{ field: 'caseId', operator: { type: 'equal' }, value: caseId }],\n },\n } as never);\n\n const latest = defaultTo(get(page, 'items[0]'), null) as { statusId?: string } | null;\n return resolveText(latest?.statusId).toLowerCase() === 'submitted';\n}\n\nasync function resolveEmployeeIdByPersonId(\n entityService: AXPEntityService,\n personId: string,\n): Promise<string> {\n if (!personId) {\n return '';\n }\n\n const page = await entityService\n .withEntity('HumanCapitalManagement', 'Employee')\n .data()\n .query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{ field: 'personId', operator: { type: 'equal' }, value: personId }],\n },\n } as never);\n\n const employee = defaultTo(get(page, 'items[0]'), null) as { id?: string } | null;\n return resolveText(employee?.id);\n}\n\nfunction resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { isEmpty, isNil } from 'lodash';\nimport { inject } from '@angular/core';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPEntityStorageMiddleware } from '@acorex-platform/framework-client/layout/entity';\nimport { AXMWorkOrderSourceType, RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Middleware ----\n\nconst workOrderEntityName = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n\n/**\n * Applies create defaults for work orders: `sourceType` (manual when unset) and `requestedById` (current user).\n */\nexport const workOrderSourceTypeMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create'],\n order: 10,\n },\n execute: async (ctx, next) => {\n if (ctx.entityName !== workOrderEntityName || !ctx.data || typeof ctx.data !== 'object') {\n await next();\n return;\n }\n\n const data = ctx.data as Record<string, unknown>;\n if (isNil(data['sourceType']) || data['sourceType'] === '') {\n data['sourceType'] = AXMWorkOrderSourceType.Manual;\n }\n\n const sessionService = inject(AXPSessionService, { optional: true });\n const currentUserId = sessionService?.user?.id;\n if (!isEmpty(currentUserId)) {\n data['requestedById'] = currentUserId;\n }\n\n await next();\n },\n};\n\n//#endregion\n","//#region ---- Middleware Exports ----\n\nexport { assetCreateMaintenanceOfferMiddleware } from './asset-create-maintenance-offer.middleware';\nexport { failureRegisterCreateWorkOrderMiddleware } from './failure-register-create-work-order.middleware';\nexport { maintenancePlanCreateWorkOrderMiddleware } from './maintenance-plan-create-work-order.middleware';\nexport { workOrderChecklistFillMiddleware } from './work-order-checklist-fill.middleware';\nexport { workOrderChecklistPostSubmitMiddleware } from './work-order-checklist-post-submit.middleware';\nexport { workOrderSourceTypeMiddleware } from './work-order-source-type.middleware';\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXPCatalogScopeDefinition, AXPCatalogScopeDefinitionProvider } from '@acorex-platform/framework-client/core';\nimport { Injectable } from '@angular/core';\nimport { MM_CATALOG_SCOPE_MN } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst QUESTIONNAIRE = 'AssessmentManagement.Questionnaire';\nconst QUESTION_BANK_ITEM = 'AssessmentManagement.QuestionBankItem';\nconst WORKFLOW_DEFINITION = 'WorkflowManagement.WorkflowDefinition';\n\nconst MM_CATALOG_TARGETS = [QUESTIONNAIRE, QUESTION_BANK_ITEM, WORKFLOW_DEFINITION] as const;\n\n//#endregion\n\n//#region ---- Provider ----\n\n@Injectable()\nexport class AXMMaintenanceManagementCatalogScopeDefinitionProvider implements AXPCatalogScopeDefinitionProvider {\n async items(): Promise<AXPCatalogScopeDefinition[]> {\n return [\n {\n name: MM_CATALOG_SCOPE_MN,\n title: '@maintenance-management:catalog-scopes.mn.title',\n description: '@maintenance-management:catalog-scopes.mn.description',\n targets: [...MM_CATALOG_TARGETS],\n icon: 'fa-light fa-screwdriver-wrench',\n cssClass: 'warning-surface',\n order: 20,\n },\n ];\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n AXPExpressionEvaluatorScopeProvider,\n AXPExpressionEvaluatorScopeProviderContext,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPEntityAction, AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport type { AXMMaintenanceManagementMaintenanceTypeEntityModel } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport { inject } from '@angular/core';\nimport { isString } from 'lodash';\n\n//#endregion\n\n//#region ----- Provider -----\n\n/**\n * Expression-evaluator scope for the asset maintenance-plan \"Create\" dropdown.\n * Each item opens the plan form with that maintenance type already selected.\n */\nexport class AXMMaintenanceManagementMaintenancePlanCreateActionsExpressionEvaluatorScopeProvider\n implements AXPExpressionEvaluatorScopeProvider\n{\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ----- AXPExpressionEvaluatorScopeProvider -----\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope(RootConfig.module.name, {\n MaintenancePlanCreateActions: async (assetIdRaw?: unknown): Promise<AXPEntityAction[]> => {\n const assetId = isString(assetIdRaw) ? assetIdRaw.trim() : '';\n if (!assetId) {\n return [];\n }\n\n try {\n const assetContext = await this.loadAssetContext(assetId);\n if (!assetContext) {\n return [];\n }\n\n const types = await this.loadMaintenanceTypes(assetContext.maintenanceTypeIds);\n const locale = this.translation.getActiveLang();\n const sorted = [...types].sort((left, right) => {\n const leftTitle = resolveMultiLanguageString(left.title, locale).trim() || left.id;\n const rightTitle = resolveMultiLanguageString(right.title, locale).trim() || right.id;\n return leftTitle.localeCompare(rightTitle, locale, { sensitivity: 'base' });\n });\n\n return sorted.map((row) => this.buildAction(row, locale, assetContext));\n } catch (error: unknown) {\n console.error(\n `${RootConfig.module.name}.MaintenancePlanCreateActions failed:`,\n error instanceof Error ? error.message : error,\n );\n return [];\n }\n },\n });\n }\n\n //#endregion\n\n //#region ----- Helpers -----\n\n private async loadAssetContext(assetId: string): Promise<{\n id: string;\n title: unknown;\n assetTypeId: string;\n maintenanceTypeIds: string[];\n supportedIntervalKinds: string[];\n } | null> {\n const asset = (await this.entityService.withEntity('AssetManagement', 'Asset').data().byKey(assetId)) as {\n id?: string;\n title?: unknown;\n assetTypeId?: string;\n } | null;\n const assetTypeId = asset?.assetTypeId?.trim();\n if (!asset?.id || !assetTypeId) {\n return null;\n }\n\n const assetType = (await this.entityService\n .withEntity('AssetManagement', 'AssetType')\n .data()\n .byKey(assetTypeId)) as { maintenanceTypeIds?: string[]; supportedIntervalKinds?: string[] } | null;\n const maintenanceTypeIds = (assetType?.maintenanceTypeIds ?? []).filter(\n (id) => isString(id) && id.trim().length > 0,\n );\n if (maintenanceTypeIds.length === 0) {\n return null;\n }\n\n return {\n id: asset.id,\n title: asset.title,\n assetTypeId,\n maintenanceTypeIds,\n supportedIntervalKinds: (assetType?.supportedIntervalKinds ?? []).filter(\n (kind) => isString(kind) && kind.trim().length > 0,\n ),\n };\n }\n\n private async loadMaintenanceTypes(\n maintenanceTypeIds: string[],\n ): Promise<AXMMaintenanceManagementMaintenanceTypeEntityModel[]> {\n const page = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.maintenanceType.name)\n .data()\n .query({\n skip: 0,\n take: maintenanceTypeIds.length,\n filter: {\n field: 'id',\n operator: { type: 'in' },\n value: maintenanceTypeIds,\n },\n });\n\n return (page.items ?? []) as AXMMaintenanceManagementMaintenanceTypeEntityModel[];\n }\n\n private buildAction(\n row: AXMMaintenanceManagementMaintenanceTypeEntityModel,\n locale: string,\n asset: {\n id: string;\n title: unknown;\n assetTypeId: string;\n maintenanceTypeIds: string[];\n supportedIntervalKinds: string[];\n },\n ): AXPEntityAction {\n const title = resolveMultiLanguageString(row.title, locale).trim() || row.id;\n\n return {\n name: `create-maintenance-plan-${row.id}`,\n title,\n icon: 'fa-light fa-screwdriver-wrench',\n color: 'default',\n command: {\n name: 'Entity:Create',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n assetId: asset.id,\n asset: {\n id: asset.id,\n title: asset.title,\n assetTypeId: asset.assetTypeId,\n assetType: {\n maintenanceTypeIds: asset.maintenanceTypeIds,\n supportedIntervalKinds: asset.supportedIntervalKinds,\n },\n },\n maintenanceTypeId: row.id,\n maintenanceType: {\n id: row.id,\n title: row.title,\n },\n },\n },\n },\n },\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n };\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntityAction, AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { isString } from 'lodash';\n\nimport { AXMWorkOrderSourceType, RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n type EntityStorageBackend,\n queryWorkflowTemplatesForAsset,\n resolveDisplayLabel,\n} from '../../middlewares/maintenance-generation.utils';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveAssetId(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n}\n\n//#endregion\n\n/**\n * Expression-evaluator scope for work-order \"Create\" dropdown items (workflow-enabled maintenance templates).\n */\nexport class AXMMaintenanceManagementWorkOrderExpressionEvaluatorScopeProvider\n implements AXPExpressionEvaluatorScopeProvider\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- AXPExpressionEvaluatorScopeProvider ----\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope(RootConfig.module.name, {\n /**\n * Loads maintenance templates with workflows for the asset behind the current list context.\n * Resolves asset → assetType.maintenanceTypeIds → templates (assetType + maintenanceType + workflow).\n */\n WorkOrderCreateActions: async (assetIdRaw?: unknown): Promise<AXPEntityAction[]> => {\n const assetId = resolveAssetId(assetIdRaw);\n if (!assetId) {\n return [];\n }\n\n try {\n const locale = this.translation.getActiveLang() as 'en-US' | 'fa-IR';\n const backend = this.createStorageBackend();\n const assetContext = await this.loadAssetMaintenanceContext(backend, assetId);\n if (!assetContext) {\n return [];\n }\n\n const templateEntityName = `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`;\n const templates = await queryWorkflowTemplatesForAsset(backend, templateEntityName, assetId);\n\n const sorted = [...templates].sort((a, b) => {\n const ta = resolveDisplayLabel(a.title, a.code ?? a.id, locale);\n const tb = resolveDisplayLabel(b.title, b.code ?? b.id, locale);\n return ta.localeCompare(tb, locale, { sensitivity: 'base' });\n });\n\n const { asset, assetTypeId, maintenanceTypeIds } = assetContext;\n\n return sorted.map((template) => ({\n name: `create-work-order-${template.id}`,\n title: resolveDisplayLabel(template.title, template.code ?? template.id, locale),\n icon: 'fa-light fa-clipboard-list',\n color: 'default',\n command: {\n name: 'Entity:Create',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n assetId: asset.id,\n asset: {\n id: asset.id,\n title: asset.title,\n assetTypeId,\n assetType: { maintenanceTypeIds },\n },\n maintenanceTypeId: template.maintenanceTypeId,\n maintenanceTemplateId: template.id,\n maintenanceTemplate: {\n id: template.id,\n title: template.title,\n metadataIds: template.metadataIds,\n workflowConfig: template.workflowConfig,\n },\n needShutdown: template.needShutdown ?? false,\n needPermission: template.needPermission ?? false,\n estimatedHours:\n typeof template.estimatedMinutes === 'number' && template.estimatedMinutes > 0\n ? Math.round((template.estimatedMinutes / 60) * 100) / 100\n : undefined,\n sourceType: AXMWorkOrderSourceType.Manual,\n autoGeneratedWorkOrder: false,\n },\n },\n },\n },\n priority: 'primary',\n type: 'info',\n scope: AXPEntityCommandScope.TypeLevel,\n })) satisfies AXPEntityAction[];\n } catch (error: unknown) {\n console.error(\n `${RootConfig.module.name}.WorkOrderCreateActions failed:`,\n error instanceof Error ? error.message : error,\n );\n return [];\n }\n },\n });\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private createStorageBackend(): EntityStorageBackend {\n return {\n getOne: async (entityName, id) => {\n const [module, entity] = entityName.split('.');\n return this.entityService.withEntity(module, entity).data().byKey(id);\n },\n insertOne: async () => null,\n query: async (entityName, request) => {\n const [module, entity] = entityName.split('.');\n return this.entityService.withEntity(module, entity).data().query(request as never);\n },\n };\n }\n\n private async loadAssetMaintenanceContext(backend: EntityStorageBackend, assetId: string) {\n const asset = (await backend.getOne('AssetManagement.Asset', assetId)) as {\n id?: string;\n title?: unknown;\n assetTypeId?: string;\n } | null;\n\n const assetTypeId = asset?.assetTypeId?.trim();\n if (!asset?.id || !assetTypeId) {\n return null;\n }\n\n const assetType = (await backend.getOne('AssetManagement.AssetType', assetTypeId)) as {\n maintenanceTypeIds?: string[];\n } | null;\n const maintenanceTypeIds = (assetType?.maintenanceTypeIds ?? []).filter((id) => isString(id) && id.trim());\n if (maintenanceTypeIds.length === 0) {\n return null;\n }\n\n return {\n asset: { id: asset.id, title: asset.title, assetTypeId },\n assetTypeId,\n maintenanceTypeIds,\n };\n }\n\n //#endregion\n}\n","//#region ----- Imports -----\n\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\nimport { AXM_MAINTENANCE_INTERVAL_WIDGET } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ----- Widget config -----\n\nexport const AXMMaintenanceIntervalWidget: AXPWidgetConfig = {\n name: AXM_MAINTENANCE_INTERVAL_WIDGET,\n title: '@maintenance-management:maintenance-interval.title',\n description: '@maintenance-management:maintenance-interval.description',\n type: 'editor',\n designer: { needLabel: true },\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-calendar-clock',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./maintenance-interval-widget-view.component').then(\n (c) => c.AXMMaintenanceIntervalWidgetViewComponent,\n ),\n },\n edit: {\n component: () =>\n import('./maintenance-interval-widget-edit.component').then(\n (c) => c.AXMMaintenanceIntervalWidgetEditComponent,\n ),\n },\n designer: {\n component: () =>\n import('./maintenance-interval-widget-edit.component').then(\n (c) => c.AXMMaintenanceIntervalWidgetEditComponent,\n ),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\n\nimport { AXMMaintenanceIntervalWidget } from './maintenance-interval-widget.config';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXMMaintenanceIntervalWidgetProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMMaintenanceIntervalWidget];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ---- Widget config ----\n\nexport const AXMWorkOrderWorkflowColumnWidget: AXPWidgetConfig = {\n name: 'work-order-workflow-column',\n title: '@maintenance-management:widgets.work-order-workflow-column.title',\n description: '@maintenance-management:widgets.work-order-workflow-column.description',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-diagram-project',\n properties: [],\n components: {\n column: {\n component: () =>\n import('./work-order-workflow-column.component').then((c) => c.AXMWorkOrderWorkflowColumnComponent),\n },\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ---- Widget config ----\n\nexport const AXMWorkOrderWorkReportColumnWidget: AXPWidgetConfig = {\n name: 'work-order-work-report-column',\n title: '@maintenance-management:widgets.work-order-work-report-column.title',\n description: '@maintenance-management:widgets.work-order-work-report-column.description',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-file-lines',\n properties: [],\n components: {\n column: {\n component: () =>\n import('./work-order-work-report-column.component').then((c) => c.AXMWorkOrderWorkReportColumnComponent),\n },\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\n\nimport { AXMWorkOrderWorkflowColumnWidget } from './work-order-workflow-column.widget.config';\nimport { AXMWorkOrderWorkReportColumnWidget } from './work-order-work-report-column.widget.config';\n\n//#endregion\n\n//#region ---- Provider ----\n\n@Injectable()\nexport class AXMWorkOrderWorkflowColumnWidgetProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMWorkOrderWorkflowColumnWidget, AXMWorkOrderWorkReportColumnWidget];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ---- Widget config ----\n\nexport const AXMWorkReportChecklistResultsWidget: AXPWidgetConfig = {\n name: 'work-report-checklist-results',\n title: '@maintenance-management:widgets.work-report-checklist-results.title',\n description: '@maintenance-management:widgets.work-report-checklist-results.description',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-list-check',\n properties: [],\n components: {\n view: {\n component: () =>\n import('./work-report-checklist-results-view.component').then(\n (c) => c.AXMWorkReportChecklistResultsViewComponent,\n ),\n },\n edit: {\n component: () =>\n import('./work-report-checklist-results-view.component').then(\n (c) => c.AXMWorkReportChecklistResultsViewComponent,\n ),\n },\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\n\nimport { AXMWorkReportChecklistResultsWidget } from './work-report-checklist-results.widget.config';\n\n//#endregion\n\n//#region ---- Provider ----\n\n@Injectable()\nexport class AXMWorkReportWidgetProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMWorkReportChecklistResultsWidget];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport {\n AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n provideLazyProvider,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';\nimport { provideCommandSetups, provideCommandMiddleware } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\n\nimport { AXMMaintenanceManagementCommandKeys } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n assetCreateMaintenanceOfferMiddleware,\n failureRegisterCreateWorkOrderMiddleware,\n maintenancePlanCreateWorkOrderMiddleware,\n workOrderChecklistFillMiddleware,\n workOrderChecklistPostSubmitMiddleware,\n workOrderSourceTypeMiddleware,\n} from './middlewares';\nimport { AXMMaintenanceManagementCatalogScopeDefinitionProvider } from './catalog-scope-definition.provider';\nimport { AXMMaintenanceManagementMaintenancePlanCreateActionsExpressionEvaluatorScopeProvider } from './features/shared/maintenance-plan-create-actions-expression-evaluator-scope.provider';\nimport { AXMMaintenanceManagementWorkOrderExpressionEvaluatorScopeProvider } from './features/shared/work-order-expression-evaluator-scope.provider';\nimport { AXMMaintenanceIntervalWidgetProvider } from './features/maintenance-interval/maintenance-interval-widget.provider';\nimport { AXMWorkOrderWorkflowColumnWidgetProvider } from './features/work-order/widgets/work-order-workflow-column-widget.provider';\nimport { AXMWorkReportWidgetProvider } from './features/work-report/widgets/work-report-widget.provider';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [\n ],\n providers: [\n\n {\n provide: AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n useClass: AXMMaintenanceManagementCatalogScopeDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMMaintenanceManagementWorkOrderExpressionEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMMaintenanceManagementMaintenancePlanCreateActionsExpressionEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMMaintenanceIntervalWidgetProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMWorkReportWidgetProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMWorkOrderWorkflowColumnWidgetProvider,\n multi: true,\n },\n // Provider references (now using tokens)\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () =>\n import('./permission-definition.provider').then((m) => m.AXMMaintenanceManagementPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () =>\n import('./menu.provider').then((m) => m.AXMMaintenanceManagementMenuProvider),\n ),\n provideLazyProvider(AXP_SEARCH_PROVIDER, () =>\n import('./search-command.provider').then((m) => m.AXMMaintenanceManagementSearchCommandProvider),\n ),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () =>\n import('./features/failure-register-status.provider').then(\n (m) => m.AXMMaintenanceManagementFailureRegisterStatusProvider,\n ),\n ),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () =>\n import('./features/work-order-status.provider').then(\n (m) => m.AXMMaintenanceManagementWorkOrderStatusProvider,\n ),\n ),\n provideCommandMiddleware([\n {\n target: 'AssessmentManagement.AssessmentCase:Fill',\n middleware: workOrderChecklistPostSubmitMiddleware,\n },\n {\n target: 'AssessmentManagement.AssessmentCase:Fill',\n middleware: workOrderChecklistFillMiddleware,\n },\n ]),\n provideCommandSetups([\n {\n key: 'Entity:List',\n command: () => import('./features/commands/work-order-list-command').then((c) => c.WorkOrderListCommand),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkOrder.StartFlow,\n command: () =>\n import('./features/work-order/commands/start-work-order-flow.command').then(\n (c) => c.StartWorkOrderFlowCommand,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.ResolveWorkOrder,\n command: () =>\n import('./features/work-order/workflows/activities/resolve-work-order.activity').then(\n (c) => c.ResolveWorkOrderActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.ResolvePersonUserId,\n command: () =>\n import('./features/work-order/workflows/activities/resolve-person-user-id.activity').then(\n (c) => c.ResolvePersonUserIdActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.CreateOrGetWorkReportDraft,\n command: () =>\n import('./features/work-order/workflows/activities/create-or-get-work-report-draft.activity').then(\n (c) => c.CreateOrGetWorkReportDraftActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.UpdateWorkOrderInProgress,\n command: () =>\n import('./features/work-order/workflows/activities/update-work-order-in-progress.activity').then(\n (c) => c.UpdateWorkOrderInProgressActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.ValidateWorkOrderCompletion,\n command: () =>\n import('./features/work-order/workflows/activities/validate-work-order-completion.activity').then(\n (c) => c.ValidateWorkOrderCompletionActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.UpdateWorkReportOnCompletion,\n command: () =>\n import('./features/work-order/workflows/activities/update-work-report-on-completion.activity').then(\n (c) => c.UpdateWorkReportOnCompletionActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.RecordWorkReportAssessment,\n command: () =>\n import('./features/work-order/workflows/activities/record-work-report-assessment.activity').then(\n (c) => c.RecordWorkReportAssessmentActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkflowActivity.UpdateWorkOrderCompleted,\n command: () =>\n import('./features/work-order/workflows/activities/update-work-order-completed.activity').then(\n (c) => c.UpdateWorkOrderCompletedActivity,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkReport.FillCompletion,\n command: () =>\n import('./features/work-report/commands/fill-work-report-completion.command').then(\n (c) => c.FillWorkReportCompletionCommand,\n ),\n },\n {\n key: AXMMaintenanceManagementCommandKeys.WorkReport.OpenFromWorkOrder,\n command: () =>\n import('./features/work-report/commands/open-work-report-from-work-order.command').then(\n (c) => c.OpenWorkReportFromWorkOrderCommand,\n ),\n },\n ]),\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: assetCreateMaintenanceOfferMiddleware,\n multi: true,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: failureRegisterCreateWorkOrderMiddleware,\n multi: true,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: maintenancePlanCreateWorkOrderMiddleware,\n multi: true,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: workOrderSourceTypeMiddleware,\n multi: true,\n },\n ],\n})\nexport class AXMMaintenanceManagementModule {}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport {\n RootConfig,\n AXPAssetsMaintenancePermissionKeys\n} from '@acorex-platform/module-maintenance-management-client/contracts';\nimport { AXMMaintenanceManagementMenuKeys } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\nconst PLAN_EQUIPMENT_MENU_KEY = 'Configuration:Menu:PlantEquipment';\n\n/**\n * Maintenance Management Menu Provider.\n * Provides menu items for the Maintenance Management module with permission and feature checks.\n */\nexport class AXMMaintenanceManagementMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const keys = AXPAssetsMaintenancePermissionKeys;\n\n // Edition enables AssetManagement (module name), not MaintenanceManagement.\n // Keep operational + setup menus on the same feature gate as Asset Types.\n const operationalMenuPolicy = {\n features: ['AssetManagement'],\n permissions: [keys.MaintainMaintenance],\n };\n const configMenuPolicy = {\n features: ['AssetManagement'],\n permissions: [keys.Setup],\n };\n\n context.find(AXPCommonMenuKeys.PlantEquipment).addItems([\n {\n name: AXMMaintenanceManagementMenuKeys.FailureRegisters,\n text: RootConfig.entities.failureRegister.titlePlural,\n icon: RootConfig.entities.failureRegister.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureRegister.name),\n priority: 12,\n policy: operationalMenuPolicy,\n },\n ]);\n\n const planEquipmentMenu = context.find(PLAN_EQUIPMENT_MENU_KEY);\n if (!planEquipmentMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: PLAN_EQUIPMENT_MENU_KEY,\n priority: 9000,\n text: '@general:menus.plan-equipment.title',\n icon: module.icon,\n },\n ]);\n }\n\n context.find(PLAN_EQUIPMENT_MENU_KEY).addItems([\n {\n name: AXMMaintenanceManagementMenuKeys.MaintenanceTypes,\n text: RootConfig.entities.maintenanceType.titlePlural,\n icon: RootConfig.entities.maintenanceType.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.maintenanceType.name),\n priority: 12,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.ActivityTypes,\n text: RootConfig.entities.activityType.titlePlural,\n icon: RootConfig.entities.activityType.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.activityType.name),\n priority: 13,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.Failures,\n text: '@maintenance-management:module.menus.failures.title',\n icon: RootConfig.entities.failureMode.icon,\n type: 'menu',\n priority: 14,\n policy: configMenuPolicy,\n children: [],\n },\n ]);\n\n // Nest taxonomy items under Failures. A type:'group' parent with sibling leaves\n // looks empty / is easy to miss; empty parents without children are also filtered.\n context.find(AXMMaintenanceManagementMenuKeys.Failures).addItems([\n {\n name: AXMMaintenanceManagementMenuKeys.FailureTypes,\n text: RootConfig.entities.failureType.titlePlural,\n icon: RootConfig.entities.failureType.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureType.name),\n priority: 1,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.FailureModes,\n text: RootConfig.entities.failureMode.titlePlural,\n icon: RootConfig.entities.failureMode.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureMode.name),\n priority: 2,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.FailureDetections,\n text: RootConfig.entities.failureDetection.titlePlural,\n icon: RootConfig.entities.failureDetection.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureDetection.name),\n priority: 3,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.FailureCauses,\n text: RootConfig.entities.failureCause.titlePlural,\n icon: RootConfig.entities.failureCause.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureCause.name),\n priority: 4,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.FailureMechanisms,\n text: RootConfig.entities.failureMechanism.titlePlural,\n icon: RootConfig.entities.failureMechanism.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureMechanism.name),\n priority: 5,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.FailureEffects,\n text: RootConfig.entities.failureEffect.titlePlural,\n icon: RootConfig.entities.failureEffect.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureEffect.name),\n priority: 6,\n policy: configMenuPolicy,\n },\n {\n name: AXMMaintenanceManagementMenuKeys.FailureSeverities,\n text: RootConfig.entities.failureSeverity.titlePlural,\n icon: RootConfig.entities.failureSeverity.icon,\n path: this.entityService.createPath(module.name, RootConfig.entities.failureSeverity.name),\n priority: 7,\n policy: configMenuPolicy,\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPAssetsMaintenancePermissionKeys\n} from '@acorex-platform/module-maintenance-management-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ----- Permission Definition Provider -----\n\n/**\n * Registers maintenance capabilities into the shared Assets & Maintenance group.\n */\n@Injectable()\nexport class AXMMaintenanceManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPAssetsMaintenancePermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:assets-maintenance.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.AssetsMaintenance.Root, `${G}.assets-maintenance.title`, `${G}.assets-maintenance.description`, { order: 70 });\n\n context\n .addGroup(\n groups.AssetsMaintenance.Maintenance,\n `${G}.assets-maintenance-maintenance.title`,\n `${G}.assets-maintenance-maintenance.description`,\n { parent: groups.AssetsMaintenance.Root, order: 20 },\n )\n .addPermission(\n keys.MaintainMaintenance,\n `${P}.maintain-maintenance.title`,\n `${P}.maintain-maintenance.description`,\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Search Command Provider ----\n\nexport class AXMMaintenanceManagementSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-maintenance-type',\n group: 'command',\n title: RootConfig.entities.maintenanceType.title,\n icon: RootConfig.entities.maintenanceType.icon,\n description: RootConfig.entities.maintenanceType.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.maintenanceType.name}`,\n {\n name: RootConfig.entities.maintenanceType.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.maintenanceType.title,\n },\n ),\n },\n },\n {\n id: 'create-maintenance-template',\n group: 'command',\n title: RootConfig.entities.maintenanceTemplate.title,\n icon: RootConfig.entities.maintenanceTemplate.icon,\n description: RootConfig.entities.maintenanceTemplate.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`,\n {\n name: RootConfig.entities.maintenanceTemplate.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.maintenanceTemplate.title,\n },\n ),\n },\n },\n {\n id: 'create-maintenance-plan',\n group: 'command',\n title: RootConfig.entities.maintenancePlan.title,\n icon: RootConfig.entities.maintenancePlan.icon,\n description: RootConfig.entities.maintenancePlan.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.maintenancePlan.name}`,\n {\n name: RootConfig.entities.maintenancePlan.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.maintenancePlan.title,\n },\n ),\n },\n },\n {\n id: 'create-work-report',\n group: 'command',\n title: RootConfig.entities.workReport.title,\n icon: RootConfig.entities.workReport.icon,\n description: RootConfig.entities.workReport.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.workReport.name}`,\n {\n name: RootConfig.entities.workReport.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.workReport.title,\n },\n ),\n },\n },\n {\n id: 'create-activity-type-resource',\n group: 'command',\n title: RootConfig.entities.activityTypeResource.title,\n icon: RootConfig.entities.activityTypeResource.icon,\n description: RootConfig.entities.activityTypeResource.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.activityTypeResource.name}`,\n {\n name: RootConfig.entities.activityTypeResource.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.activityTypeResource.title,\n }\n ),\n },\n },\n {\n id: 'create-failure-mode',\n group: 'command',\n title: RootConfig.entities.failureMode.title,\n icon: RootConfig.entities.failureMode.icon,\n description: RootConfig.entities.failureMode.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.failureMode.name}`,\n {\n name: RootConfig.entities.failureMode.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.failureMode.title,\n }\n ),\n },\n },\n {\n id: 'create-failure-cause',\n group: 'command',\n title: RootConfig.entities.failureCause.title,\n icon: RootConfig.entities.failureCause.icon,\n description: RootConfig.entities.failureCause.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.failureCause.name}`,\n { name: RootConfig.entities.failureCause.name, module: RootConfig.module.name, title: RootConfig.entities.failureCause.title }\n ),\n },\n },\n {\n id: 'create-failure-mechanism',\n group: 'command',\n title: RootConfig.entities.failureMechanism.title,\n icon: RootConfig.entities.failureMechanism.icon,\n description: RootConfig.entities.failureMechanism.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.failureMechanism.name}`,\n {\n name: RootConfig.entities.failureMechanism.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.failureMechanism.title,\n }\n ),\n },\n },\n {\n id: 'create-failure-detection',\n group: 'command',\n title: RootConfig.entities.failureDetection.title,\n icon: RootConfig.entities.failureDetection.icon,\n description: RootConfig.entities.failureDetection.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.failureDetection.name}`,\n {\n name: RootConfig.entities.failureDetection.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.failureDetection.title,\n }\n ),\n },\n },\n {\n id: 'create-failure-type',\n group: 'command',\n title: RootConfig.entities.failureType.title,\n icon: RootConfig.entities.failureType.icon,\n description: RootConfig.entities.failureType.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.failureType.name}`,\n {\n name: RootConfig.entities.failureType.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.failureType.title,\n }\n ),\n },\n },\n ];\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXMAssetManagementCommandKeys } from '@acorex-platform/module-asset-management-client/contracts';\nimport type { AXPMultiLanguageString, AXPWorkflowDefinition } from '@acorex-platform/framework-shared/core';\n\nimport { AXMMaintenanceManagementCommandKeys } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Factory config ----\n\nexport interface WorkOrderExecutionWorkflowConfig {\n name: string;\n title: AXPMultiLanguageString;\n description: AXPMultiLanguageString;\n startTaskTitle: string;\n inProgressTaskTitle: string;\n}\n\n//#endregion\n\n//#region ---- Expression helpers ----\n\nconst WFM_EXPR_ASSIGNED_USER = 'context.eval(\"variables.assignedUserId\")';\nconst WFM_EXPR_WORK_ORDER_ID = 'context.eval(\"inputs.workOrderId\")';\nconst WFM_EXPR_ASSET_ID = 'context.eval(\"inputs.assetId\")';\nconst WFM_EXPR_MAINTENANCE_TYPE_ID = 'context.eval(\"inputs.maintenanceTypeId\")';\n\nconst wfmExpr = (expression: string): string => `{{ ${expression} }}`;\n\nconst workOrderTaskContext = {\n workOrderId: wfmExpr(WFM_EXPR_WORK_ORDER_ID),\n workOrderNo: '{{ inputs.workOrderNo }}',\n assetId: wfmExpr(WFM_EXPR_ASSET_ID),\n assetDisplayName: '{{ inputs.assetDisplayName }}',\n maintenanceTypeId: '{{ inputs.maintenanceTypeId }}',\n maintenanceTypeName: '{{ inputs.maintenanceTypeName }}',\n maintenancePlanId: '{{ inputs.maintenancePlanId }}',\n failureRegisterId: '{{ inputs.failureRegisterId }}',\n sourceType: '{{ inputs.sourceType }}',\n dueDate: '{{ inputs.dueDate }}',\n entityType: 'MaintenanceManagement.WorkOrder',\n};\n\nconst startWorkAction = {\n name: 'start-work',\n title: 'Start work',\n icon: 'fa-light fa-play',\n color: 'primary',\n command: { name: 'start-work' },\n};\n\nconst completeWorkAction = {\n name: 'complete-work',\n title: 'Complete work',\n icon: 'fa-light fa-check',\n color: 'success',\n command: { name: 'complete-work' },\n};\n\n//#endregion\n\n/**\n * Executes an existing work order: assignee task board → start work → in progress → complete work → completed.\n * Approval/sign-off is intentionally excluded (separate workflow).\n */\nexport function createWorkOrderExecutionWorkflowDefinition(\n config: WorkOrderExecutionWorkflowConfig,\n): AXPWorkflowDefinition {\n const { name, title, description, startTaskTitle, inProgressTaskTitle } = config;\n const activityKeys = AXMMaintenanceManagementCommandKeys.WorkflowActivity;\n const assetActivityKey = AXMAssetManagementCommandKeys.WorkflowActivity.RecalculateOperationalStatus;\n\n return {\n schemaVersion: 'acorex-platform-workflow/v1',\n name,\n title,\n description,\n variables: [\n {\n name: 'assignedUserId',\n title: 'Assigned user',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'assignedPersonId',\n title: 'Assigned person',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'assetStatusTarget',\n title: 'Asset status target',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'workStartedAt',\n title: 'Work started at',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'workCompletedAt',\n title: 'Work completed at',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n ],\n inputs: [\n {\n name: 'workOrderId',\n title: 'Work order ID',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'workOrderNo',\n title: 'Work order number',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'assetId',\n title: 'Asset ID',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'assetDisplayName',\n title: 'Asset display name',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'assignedToId',\n title: 'Assigned person ID',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'assignedToDisplayName',\n title: 'Assigned person display name',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'maintenanceTypeId',\n title: 'Maintenance type ID',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'maintenanceTypeName',\n title: 'Maintenance type name',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'maintenancePlanId',\n title: 'Maintenance plan ID',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'failureRegisterId',\n title: 'Failure register ID',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'sourceType',\n title: 'Source type',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n {\n name: 'dueDate',\n title: 'Due date',\n dataType: 'string',\n interface: { type: 'text-editor', options: {} },\n },\n ],\n outputs: [],\n extensions: {},\n graph: {\n startActivityId: 'resolveWorkOrder',\n activities: [\n {\n id: 'resolveWorkOrder',\n name: activityKeys.ResolveWorkOrder,\n title: 'Resolve work order',\n inputs: {\n workOrderId: '{{ inputs.workOrderId }}',\n assignedToId: '{{ inputs.assignedToId }}',\n },\n outputToVariables: {\n assignedPersonId: 'assignedToId',\n },\n },\n {\n id: 'resolveAssignedUser',\n name: activityKeys.ResolvePersonUserId,\n title: 'Resolve assigned user',\n inputs: {\n personId: '{{ variables.assignedPersonId || inputs.assignedToId }}',\n },\n outputToVariables: { assignedUserId: 'userId' },\n },\n {\n id: 'showAssignedUserRequiredToast',\n name: 'workflow-activity:show-toast',\n title: 'Assigned user required',\n inputs: {\n message: 'Assigned user is required before starting work order execution.',\n type: 'warning',\n },\n },\n {\n id: 'createWorkOrderTask',\n name: 'workflow-activity:human-task',\n title: startTaskTitle,\n inputs: {\n title: 'Work order: {{ inputs.workOrderNo }}',\n description: 'Start the assigned maintenance work when you are ready.',\n assignedUserIds: wfmExpr(WFM_EXPR_ASSIGNED_USER),\n dueDate: '{{ inputs.dueDate }}',\n context: workOrderTaskContext,\n actions: { suffix: [startWorkAction] },\n },\n },\n {\n id: 'updateWorkOrderInProgress',\n name: activityKeys.UpdateWorkOrderInProgress,\n title: 'Work order — in progress',\n inputs: {\n workOrderId: wfmExpr(WFM_EXPR_WORK_ORDER_ID),\n },\n outputToVariables: { workStartedAt: 'startedAt' },\n },\n {\n id: 'recalculateAssetStatusOnStart',\n name: assetActivityKey,\n title: 'Recalculate asset status (work started)',\n inputs: {\n assetId: wfmExpr(WFM_EXPR_ASSET_ID),\n trigger: 'work-started',\n workOrderId: wfmExpr(WFM_EXPR_WORK_ORDER_ID),\n maintenanceTypeId: wfmExpr(WFM_EXPR_MAINTENANCE_TYPE_ID),\n },\n outputToVariables: { assetStatusTarget: 'statusId' },\n },\n {\n id: 'workInProgressTask',\n name: 'workflow-activity:human-task',\n title: inProgressTaskTitle,\n inputs: {\n title: 'Work order: {{ inputs.workOrderNo }}',\n description: 'Perform the maintenance work, then mark it complete.',\n assignedUserIds: wfmExpr(WFM_EXPR_ASSIGNED_USER),\n dueDate: '{{ inputs.dueDate }}',\n context: workOrderTaskContext,\n actions: { suffix: [completeWorkAction] },\n },\n },\n {\n id: 'showWorkCompletionValidationFailedToast',\n name: 'workflow-activity:show-toast',\n title: 'Work completion validation failed',\n inputs: {\n message: 'Work order cannot be completed yet. Ensure work is in progress and requirements are met.',\n type: 'warning',\n },\n },\n {\n id: 'validateWorkCompletion',\n name: activityKeys.ValidateWorkOrderCompletion,\n title: 'Validate work completion',\n inputs: {\n workOrderId: wfmExpr(WFM_EXPR_WORK_ORDER_ID),\n },\n },\n {\n id: 'updateWorkOrderCompleted',\n name: activityKeys.UpdateWorkOrderCompleted,\n title: 'Work order — completed',\n inputs: {\n workOrderId: wfmExpr(WFM_EXPR_WORK_ORDER_ID),\n },\n outputToVariables: { workCompletedAt: 'completedAt' },\n },\n {\n id: 'recalculateAssetStatusOnComplete',\n name: assetActivityKey,\n title: 'Recalculate asset status (work completed)',\n inputs: {\n assetId: wfmExpr(WFM_EXPR_ASSET_ID),\n trigger: 'work-completed',\n workOrderId: wfmExpr(WFM_EXPR_WORK_ORDER_ID),\n maintenanceTypeId: wfmExpr(WFM_EXPR_MAINTENANCE_TYPE_ID),\n },\n },\n ],\n connections: [\n { source: { activtyName: 'resolveWorkOrder', port: 'Done' }, target: { activtyName: 'resolveAssignedUser' } },\n {\n source: { activtyName: 'resolveWorkOrder', port: 'Blocked' },\n target: { activtyName: 'showAssignedUserRequiredToast' },\n },\n {\n source: { activtyName: 'resolveWorkOrder', port: 'NotFound' },\n target: { activtyName: 'showAssignedUserRequiredToast' },\n },\n {\n source: { activtyName: 'resolveAssignedUser', port: 'Done' },\n target: { activtyName: 'createWorkOrderTask' },\n },\n {\n source: { activtyName: 'createWorkOrderTask', port: 'start-work' },\n target: { activtyName: 'updateWorkOrderInProgress' },\n },\n {\n source: { activtyName: 'updateWorkOrderInProgress', port: 'Done' },\n target: { activtyName: 'recalculateAssetStatusOnStart' },\n },\n {\n source: { activtyName: 'recalculateAssetStatusOnStart', port: 'Done' },\n target: { activtyName: 'workInProgressTask' },\n },\n {\n source: { activtyName: 'workInProgressTask', port: 'complete-work' },\n target: { activtyName: 'validateWorkCompletion' },\n },\n {\n source: { activtyName: 'validateWorkCompletion', port: 'Done' },\n target: { activtyName: 'updateWorkOrderCompleted' },\n },\n {\n source: { activtyName: 'validateWorkCompletion', port: 'Failed' },\n target: { activtyName: 'showWorkCompletionValidationFailedToast' },\n },\n {\n source: { activtyName: 'showWorkCompletionValidationFailedToast', port: 'Done' },\n target: { activtyName: 'workInProgressTask' },\n },\n {\n source: { activtyName: 'updateWorkOrderCompleted', port: 'Done' },\n target: { activtyName: 'recalculateAssetStatusOnComplete' },\n },\n ],\n },\n };\n}\n\nexport const workOrderExecutionWorkflowName = 'work-order-execution';\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { createMultiLanguageString } from '@acorex/core/translation';\nimport type { AXPWorkflowDefinition } from '@acorex-platform/framework-shared/core';\n\nimport {\n createWorkOrderExecutionWorkflowDefinition,\n workOrderExecutionWorkflowName,\n} from './work-order-execution-workflow.shared';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst M = createMultiLanguageString;\n\n//#endregion\n\n//#region ---- Definition export ----\n\n/** Published workflow graph for seeding `WorkflowManagement.WorkflowDefinition`. */\nexport const workOrderExecutionWorkflowDefinition: AXPWorkflowDefinition = createWorkOrderExecutionWorkflowDefinition({\n name: workOrderExecutionWorkflowName,\n title: M('Work order execution', 'اجرای دستور کار'),\n description: M(\n 'Assignee task board, start work, asset status recalculation, complete work. Approval is a separate workflow.',\n 'کارتابل مسئول، شروع کار، محاسبه وضعیت دارایی، تکمیل کار. تأیید در گردش کار جداگانه انجام میشود.',\n ),\n startTaskTitle: 'Start work — work order',\n inProgressTaskTitle: 'Complete work — work order',\n});\n\nexport { workOrderExecutionWorkflowName };\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["I18N","ASSET_ENTITY","ASSET_TYPE_ENTITY","WORK_ORDER_SUBJECT_TYPE","resolveText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEO,MAAM,uCAAuC,GAAG;AAEvD;;ACyDA;AAEA;AAEA,MAAMA,MAAI,GAAG,8CAA8C;AAE3D,MAAM,UAAU,GAAiC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;AAEvH,MAAM,cAAc,GAAuC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;AAE7G,MAAM,UAAU,GAA+C;IAC7D,QAAQ,EAAE,CAAA,EAAGA,MAAI,CAAA,eAAA,CAAiB;IAClC,IAAI,EAAE,CAAA,EAAGA,MAAI,CAAA,WAAA,CAAa;IAC1B,QAAQ,EAAE,CAAA,EAAGA,MAAI,CAAA,eAAA,CAAiB;IAClC,iBAAiB,EAAE,CAAA,EAAGA,MAAI,CAAA,sBAAA,CAAwB;IAClD,iBAAiB,EAAE,CAAA,EAAGA,MAAI,CAAA,sBAAA,CAAwB;CACnD;AAED,MAAM,UAAU,GAAoD;IAClE,QAAQ,EAAE,CAAA,EAAGA,MAAI,CAAA,oBAAA,CAAsB;IACvC,IAAI,EAAE,CAAA,EAAGA,MAAI,CAAA,gBAAA,CAAkB;IAC/B,QAAQ,EAAE,CAAA,EAAGA,MAAI,CAAA,oBAAA,CAAsB;IACvC,OAAO,EAAE,CAAA,EAAGA,MAAI,CAAA,mBAAA,CAAqB;CACtC;AAED,MAAM,eAAe,GAA+C;AAClE,IAAA,CAAC,0BAA0B,CAAC,SAAS,GAAG,CAAA,EAAGA,MAAI,CAAA,gBAAA,CAAkB;AACjE,IAAA,CAAC,0BAA0B,CAAC,IAAI,GAAG,CAAA,EAAGA,MAAI,CAAA,WAAA,CAAa;AACvD,IAAA,CAAC,0BAA0B,CAAC,IAAI,GAAG,CAAA,EAAGA,MAAI,CAAA,WAAA,CAAa;AACvD,IAAA,CAAC,0BAA0B,CAAC,SAAS,GAAG,CAAA,EAAGA,MAAI,CAAA,gBAAA,CAAkB;CAClE;AAED,MAAM,wBAAwB,GAA4C;IACxE,MAAM,EAAE,CAAA,EAAGA,MAAI,CAAA,uBAAA,CAAyB;IACxC,KAAK,EAAE,CAAA,EAAGA,MAAI,CAAA,sBAAA,CAAwB;IACtC,MAAM,EAAE,CAAA,EAAGA,MAAI,CAAA,uBAAA,CAAyB;IACxC,OAAO,EAAE,CAAA,EAAGA,MAAI,CAAA,wBAAA,CAA0B;IAC1C,MAAM,EAAE,CAAA,EAAGA,MAAI,CAAA,uBAAA,CAAyB;CACzC;AAED,SAAS,cAAc,CAAC,KAAc,EAAA;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3F;AAEA;AACA,SAAS,gBAAgB,CAAC,QAAiB,EAAA;IACzC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE;AAClE,QAAA,MAAM,IAAI,GAAI,QAA+B,CAAC,IAAI;AAClD,QAAA,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,IAAI;QACb;IACF;AACA,IAAA,OAAO,OAAO;AAChB;AAEA,SAAS,sBAAsB,CAAC,IAA6B,EAAA;AAC3D,IAAA,MAAM,MAAM,GAAG;QACb,IAAI;AACJ,QAAA,kBAAkB,EAAE,IAAI;AACxB,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,cAAc,EAAE,KAAK;KACb;IAEV,QAAQ,IAAI;AACV,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;AACvD,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE;AAChF,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;AACnF,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE;AACvF,QAAA,KAAK,QAAQ;YACX,OAAO;AACL,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,IAAI,EAAE;aAC1F;;AAEP;AAEA;AACA,SAAS,qBAAqB,GAAA;IAC5B,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,QAAQ,EAAE,CAAC;QACX,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;AACtD,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAChC;AACH;AAEA,SAAS,gBAAgB,CACvB,QAAgC,EAChC,IAA6B,EAAA;AAE7B,IAAA,MAAM,iBAAiB,GAAI,QAAqC,CAAC,UAAU;;AAE3E,IAAA,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;QACzC,OAAO;AACL,YAAA,GAAG,QAAQ;YACX,IAAI;AACJ,YAAA,UAAU,EAAE,IAAuD;SACpE;IACH;IACA,OAAO;AACL,QAAA,GAAG,QAAQ;QACX,IAAI;AACJ,QAAA,UAAU,EAAE,EAAE;KACf;AACH;AAEA,SAAS,MAAM,CAAC,KAAc,EAAA;AAC5B,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,YAAY,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;AAClG;AAEA,SAAS,YAAY,CAAC,IAAa,EAAE,KAAmC,EAAA;AACtE,IAAA,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,GAAG,iCAAiC,EAAE,GAAG,IAAI;IAC5E,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC;AAC7C;AAEA,SAAS,QAAQ,CAAC,KAAwB,EAAA;AACxC,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7C;AAEA,SAAS,YAAY,CAAC,KAAc,EAAA;AAClC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B;AACA,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,IAAI,OAAQ,KAAyB,CAAC,EAAE,KAAK,QAAQ,EAAE;QAC5G,OAAQ,KAAwB,CAAC,EAAE;IACrC;AACA,IAAA,OAAO,EAAE;AACX;AAEA;AAEA;MAoBa,+BAA+B,CAAA;;;AA4E1C,IAAA,WAAA,GAAA;;QAzES,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAoB,EAAE;mGAAC;QACrD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAkD,SAAS;kFAAC;QACzE,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;qFAAC;;;QAMvB,IAAA,CAAA,WAAW,GAAG,MAAM,EAAgC;;;AAM1C,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAA,EAAGA,MAAI,CAAA,MAAA,CAAQ;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAA,EAAGA,MAAI,CAAA,MAAA,CAAQ;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAA,EAAGA,MAAI,CAAA,MAAA,CAAQ;AAC1B,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAA,EAAGA,MAAI,CAAA,sBAAA,CAAwB;AACnD,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAA,EAAGA,MAAI,CAAA,oBAAA,CAAsB;QACpD,IAAA,CAAA,YAAY,GAAG,kCAAkC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAgC;AAC9D,YAAA,EAAE,EAAE,EAAE,0BAA0B,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE;AACzG,YAAA,EAAE,EAAE,EAAE,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;SAChG;AACkB,QAAA,IAAA,CAAA,iBAAiB,GAAgC;YAClE,EAAE,EAAE,EAAE,kCAAkC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA,EAAGA,MAAI,CAAA,kBAAA,CAAoB,EAAE;YACjF,EAAE,EAAE,EAAE,kCAAkC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA,EAAGA,MAAI,CAAA,kBAAA,CAAoB,EAAE;SAClF;QACkB,IAAA,CAAA,iBAAiB,GAAgC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AAChG,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC;AACrC,SAAA,CAAC,CAAC;;;AAMc,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAA8B,gCAAgC,EAAE;kFAAC;QACxF,IAAA,CAAA,WAAW,GAAwC,IAAI;QACvD,IAAA,CAAA,gBAAgB,GAAG,EAAE;;;AAMV,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAgC,MAAK;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ;YACtC,OAAO,QAAQ,GAAI,QAA8C,GAAG,IAAI;QAC1E,CAAC;0FAAC;AAEiB,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC;iGAAC;AAE9E,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;6FAAC;AAEtF,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAA+B,MAAK;AACxE,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;AACtC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,iCAAiC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CACpG;AACD,YAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACjH,CAAC;qFAAC;QAEiB,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAC5C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;6FACtE;QAEkB,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY;iGAAC;QAOjF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;AACtC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC;YACxC,IACE,IAAI,CAAC,WAAW;AAChB,gBAAA,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;AACxC,gBAAA,YAAY,KAAK,IAAI,CAAC,gBAAgB,EACtC;gBACA;YACF;AACA,YAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY;YACpC,MAAM,IAAI,GAAG,qCAAqC,CAAC,QAAQ,EAAE,SAAS,CAAC;AACvE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACpB,MAAM,KAAK,GAAG,iCAAiC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM;AACvE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;YACxB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;IACJ;;;IAMU,SAAS,CAAC,IAAgC,EAAE,KAA0B,EAAA;QAC9E,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC/C;QACF;QACA,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,YAAA,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,KAAK,CAAC;kBACb,qBAAqB;AACxB,kBAAE,KAAK,CAAC,QAAQ;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YAC7D;QACF;AACA,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YAC/C;QACF;AACA,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YACpC;QACF;QACA,IAAI,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,KAAK;AACR,YAAA,MAAM,EAAE;gBACN,GAAG,KAAK,CAAC,MAAM;AACf,gBAAA,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;AAC3C,aAAA;AACF,SAAA,CAAC;IACJ;IAEU,UAAU,CAAC,IAA6B,EAAE,KAA0B,EAAA;QAC5E,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC/C;QACF;QACA,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI;AACrG,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC5C;QACF;QACA,IAAI,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,KAAK;AACR,YAAA,MAAM,EAAE;gBACN,GAAG,KAAK,CAAC,MAAM;AACf,gBAAA,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE;AAC5C,aAAA;AACF,SAAA,CAAC;IACJ;AAEU,IAAA,cAAc,CAAC,KAA0B,EAAA;QACjD,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC/C;QACF;QACA,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,mCAAmC,CAAC,UAAU,EAAE,IAAkC,CAAC,EAAE;YACxF;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;YACvC;QACF;QACA,IAAI,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,KAAK;AACR,YAAA,MAAM,EAAE;gBACN,GAAG,KAAK,CAAC,MAAM;AACf,gBAAA,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAkC,EAAE;AACjF,aAAA;AACF,SAAA,CAAC;IACJ;AAEU,IAAA,MAAM,CAAC,KAA0B,EAAA;QACzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC/C;QACF;QACA,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;YACvB;QACF;QACA,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IACjC;AAEU,IAAA,UAAU,CAAC,KAAoC,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,KAAK;AACpG,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;YAC3C;QACF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAA0D,EAAE,CAAC;IACjG;AAEU,IAAA,cAAc,CAAC,KAA0B,EAAA;QACjD,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC/C;QACF;QACA,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACzB;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAoD;QAC1E,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAClD;QACF;QACA,IAAI,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,KAAK;AACR,YAAA,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAuD;AAChG,SAAA,CAAC;IACJ;AAEU,IAAA,cAAc,CAAC,KAA0B,EAAA;QACjD,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC/C;QACF;QACA,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AACvC,QAAA,MAAM,YAAY,GAChB,KAAK,KAAK,kCAAkC,CAAC;cACzC,kCAAkC,CAAC;AACrC,cAAE,kCAAkC,CAAC,GAAG;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,EAAE;YACvC;QACF;QACA,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC;IACzC;;;IAMQ,aAAa,GAAA;QACnB,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC;IAC3E;AAEQ,IAAA,SAAS,CACf,IAAgC,EAChC,KAAkC,EAClC,MAAwE,EAAA;QAExE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,OAAO;gBACL,IAAI;AACJ,gBAAA,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK,CAAC,eAAe;AAC9B,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,QAAQ,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;aACpE;QACH;AACA,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,OAAO;gBACL,IAAI;AACJ,gBAAA,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK,CAAC,WAAW;AAC1B,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,QAAQ,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;aAChE;QACH;AACA,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YACpC,OAAO;gBACL,IAAI;AACJ,gBAAA,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1B,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,QAAQ,EAAE,IAAI;aACf;QACH;QACA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAChC,OAAO;YACL,IAAI;AACJ,YAAA,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;AAClD,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,IAAI,KAAK,iBAAiB,GAAG,CAAC,GAAG,CAAC;YAC5C,MAAM,EAAE,KAAK,CAAC,IAAI;AAClB,YAAA,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC,YAAA,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;SAC5D;IACH;AAEQ,IAAA,MAAM,CAAC,KAAkC,EAAA;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,MAAM,MAAM,GAAG,iCAAiC,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC,MAAM;AACpF,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM;QACzB,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/B;8GAzTW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7N5C,u3LAmJA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED8DI,WAAW,8VACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,iBAAiB,wPACjB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,qBAAqB,uXACrB,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC1B,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EATnB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAaA,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAlB3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,eAAA,EAEnB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,SAAS;wBACT,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;wBAChB,iBAAiB;wBACjB,gBAAgB;wBAChB,iBAAiB;wBACjB,qBAAqB;wBACrB,0BAA0B;wBAC1B,mBAAmB;AACpB,qBAAA,EAAA,IAAA,EACK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,QAAA,EAAA,u3LAAA,EAAA;;;AE3N1B;AAeA;AAEA;AAEO,MAAM,6BAA6B,GAAG,uBAAuB;AAC7D,MAAM,qBAAqB,GAAG,eAAe;AAiHpD;AAEA;AAEA,MAAM,uBAAuB,GAAG,MAAM;AAEhC,SAAU,YAAY,CAAC,KAAc,EAAA;AACzC,IAAA,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAc,CAAC;AACxD;AAEA,SAAS,qBAAqB,CAAC,KAAc,EAAA;AAC3C,IAAA,OAAO,0BAA0B,CAAC,KAAK,CAAC;AAC1C;AAEA;;AAEG;AACG,SAAU,4BAA4B,CAC1C,KAAuB,EACvB,QAAgB,EAAA;IAEhB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;IACjD;AACA,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IAC3C;AACA,IAAA,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAChC,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ;QACjE,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;QAC3D,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACrC;IACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;AACjD;AAEA;;AAEG;AACG,SAAU,mBAAmB,CACjC,KAAuB,EACvB,QAAgB,EAChB,SAA4B,OAAO,EAAA;IAEnC,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,QAAQ;IACjB;AACA,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,QAAA,OAAO,KAAK;IACd;IACA,OAAO,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,QAAQ;AAC9D;AAEA,SAAS,yBAAyB,CAChC,IAAsB,EACtB,YAAoB,EACpB,KAAuB,EACvB,aAAqB,EAAA;IAErB,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,EAAE,YAAY,CAAC;IAC/D,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,EAAE,aAAa,CAAC;IAElE,OAAO;QACL,OAAO,EAAE,CAAA,EAAG,MAAM,CAAC,OAAO,CAAC,CAAA,GAAA,EAAM,OAAO,CAAC,OAAO,CAAC,CAAA,CAAE;QACnD,OAAO,EAAE,CAAA,EAAG,MAAM,CAAC,OAAO,CAAC,CAAA,GAAA,EAAM,OAAO,CAAC,OAAO,CAAC,CAAA,CAAE;KACpD;AACH;AAEA,SAAS,MAAM,CAAC,KAAuC,EAAA;AACrD,IAAA,IAAI,KAAK,YAAY,IAAI,EAAE;QACzB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9E;IACA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,QAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM;IAC5D;AACA,IAAA,OAAO,SAAS;AAClB;AAEA;AACA,SAAS,qBAAqB,CAAC,KAAuC,EAAA;AACpE,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAClC,IAAA,OAAO,QAAQ;AACjB;AAEA,SAAS,WAAW,CAAC,IAAU,EAAA;AAC7B,IAAA,OAAO,IAAI,CAAC,WAAW,EAAE;AAC3B;AAEA,SAAS,iBAAiB,CAAC,QAAqC,EAAA;IAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClC,IACE,IAAI,KAAK,QAAQ;AACjB,QAAA,IAAI,KAAK,OAAO;AAChB,QAAA,IAAI,KAAK,QAAQ;AACjB,QAAA,IAAI,KAAK,SAAS;QAClB,IAAI,KAAK,QAAQ,EACjB;AACA,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC9C,QAAQ,UAAU;AAChB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,QAAQ;AACjB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,OAAO;AAChB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,QAAQ;AACjB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS;AAClB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,QAAQ;AACjB,QAAA;AACE,YAAA,OAAO,OAAO;;AAEpB;AAEA,SAAS,uBAAuB,CAAC,QAAqC,EAAA;IACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1C,IAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;AAC1D;AAEA;;AAEG;AACG,SAAU,yBAAyB,CACvC,QAAiD,EACjD,aAAA,GAAsB,IAAI,IAAI,EAAE,EAAA;IAEhC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,qBAAqB,CAAC;AACtD,IAAA,IAAI,SAAS,KAAK,UAAU,EAAE;AAC5B,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,SAAS,KAAK,KAAK,EAAE;QACvB,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC1C;IAEA,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;IACzE,IAAI,eAAe,EAAE;AACnB,QAAA,OAAO,eAAe;IACxB;AAEA,IAAA,OAAO,SAAS;AAClB;AAEA,SAAS,mBAAmB,CAC1B,MAAY,EACZ,IAA6B,EAC7B,QAAgB,EAChB,IAAY,EAAA;IAEZ,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACzC,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,QAAQ;IAE9B,QAAQ,IAAI;AACV,QAAA,KAAK,QAAQ;YACX,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;YAC3C;AACF,QAAA,KAAK,OAAO;YACV,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;YACzC;AACF,QAAA,KAAK,QAAQ;AACX,YAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;YAC7C;AACF,QAAA,KAAK,SAAS;YACZ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;YAC3C;AACF,QAAA,KAAK,QAAQ;YACX,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC;YACjD;;AAGJ,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,6BAA6B,CACpC,cAAoB,EACpB,cAAuB,EAAA;IAEvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE;AACpD,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AAC9C,IAAA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,IAAA,OAAO,WAAW,CAAC,GAAG,CAAC;AACzB;AAEA;;;;;;AAMG;AACG,SAAU,+BAA+B,CAC7C,QAAkD,EAClD,aAAA,GAAsB,IAAI,IAAI,EAAE,EAAA;AAEhC,IAAA,MAAM,QAAQ,GAAG,mCAAmC,CAAC,QAAQ,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjE,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACxC,IAAA,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC;AAClD,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;AAEtE,IAAA,IAAI,OAAO,KAAK,OAAO,EAAE;QACvB,OAAO,CAAC,MAAM,CAAC;IACjB;AAEA,IAAA,IAAI,OAAO,KAAK,kBAAkB,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC;AAClF,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtG;AAEA,IAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;QACxB,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,MAAM,CAAC;QACjB;QAEA,MAAM,MAAM,GAAW,EAAE;AACzB,QAAA,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,uBAAuB,EAAE,IAAI,IAAI,CAAC,EAAE;AAC5D,YAAA,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;YACpE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;gBAC5C;YACF;AACA,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACzB;AAEA,QAAA,OAAO,MAAM;IACf;IAEA,OAAO,CAAC,MAAM,CAAC;AACjB;AAEM,SAAU,2BAA2B,CACzC,QAAkD,EAClD,OAA2D,EAAA;IAE3D,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,IAAI,EAAE;IAC1D,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,EAAE,aAAa,CAAC;AACvE,IAAA,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc;AAE9C,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,CAAC,EAAE,CAAC;IACb;AAEA,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,KAAI;QACnC,MAAM,YAAY,GAAG,6BAA6B,CAAC,cAAc,EAAE,cAAc,CAAC;QAClF,OAAO;AACL,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,IAAI,YAAY,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;SAC1C;AACH,IAAA,CAAC,CAAC;AACJ;AAEA;;AAEG;AACG,SAAU,mCAAmC,CACjD,QAAkD,EAClD,aAAA,GAAsB,IAAI,IAAI,EAAE,EAAA;IAEhC,OAAO,2BAA2B,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM;AACxE;AAEM,SAAU,qBAAqB,CACnC,QAAuC,EACvC,aAAA,GAAsB,IAAI,IAAI,EAAE,EAAA;IAEhC,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,EAAE,aAAa,CAAC;AACvE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,IAAA,OAAO,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,SAAS;AAC/C;AAEA;AACO,MAAM,gCAAgC,GAAG,2BAA2B;AAE3E;;;;AAIG;AACI,eAAe,sBAAsB,CAC1C,iBAAuC,EACvC,cAAiC,EACjC,MAAc,EAAA;AAEd,IAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AAC9C,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE;AACnC,QAAA,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,EAAE;AACtC,KAAA,CAAC;IACF,OAAO,MAAM,CAAC,IAAI;AACpB;SAEgB,2BAA2B,CACzC,KAAgB,EAChB,QAAiC,EACjC,OAA2F,EAAA;IAE3F,OAAO;AACL,QAAA,IAAI,OAAO,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QAChD,KAAK,EAAE,yBAAyB,CAC9B,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,IAAI,IAAI,UAAU,EAC3B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,IAAI,OAAO,CACtB;QACD,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,qBAAqB,EAAE,QAAQ,CAAC,EAAE;AAClC,QAAA,cAAc,EAAE;YACd,YAAY,EAAE,kCAAkC,CAAC,GAAG;AACpD,YAAA,QAAQ,EAAE;AACR,gBAAA;AACE,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI;AAC7B,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;AACvE,wBAAA,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAChC,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,QAAQ,CAAC;AACvB,cAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC;AACvD,cAAE,SAAS;AACb,QAAA,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc;AACzC,QAAA,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY;AACrC,QAAA,IAAI,OAAO,EAAE,iBAAiB,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAClE,IAAI,OAAO,EAAE;AACX,cAAE,EAAE,CAAC,gCAAgC,GAAG,IAAI;cAC1C,EAAE,CAAC;KACR;AACH;AAEO,eAAe,0BAA0B,CAC9C,OAA6B,EAC7B,kBAA0B,EAC1B,OAAgC,EAAA;AAEhC,IAAA,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;AAChB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC7B,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,MAAM,MAAM,IAAI,MAAM;AACnB,SAAA,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE;AACrC,SAAA,KAAK,CAAC,MAAM,IAAI,CAAC,CAAmC;IAEvD,OAAO,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;AAClD;AAEA,SAAS,iBAAiB,CAAC,KAAc,EAAA;AACvC,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;QAC5B,OAAO,OAAO,IAAI,SAAS;IAC7B;AAEA,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAY;AACtC,QAAA,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;AAChB,YAAA,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE;YACzB,OAAO,OAAO,IAAI,SAAS;QAC7B;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;AAEA;;AAEG;AACG,SAAU,wBAAwB,CAAC,IAAyB,EAAA;IAChE,OAAO;AACL,QAAA,GAAG,IAAI;QACP,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO;QACxD,iBAAiB,EAAE,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,iBAAiB;QACtF,qBAAqB,EAAE,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,qBAAqB;QAClG,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY;AACvE,QAAA,UAAU,EACR,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU;KAChG;AACH;AAEA;;;AAGG;SACa,gCAAgC,CAC9C,aAAqD,EACrD,MAAkC,EAClC,EAAU,EAAA;AAEV,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE;AAC7B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,MAAM,GAAwB;AAClC,QAAA,IAAI,aAAa,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,QAAA,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;KACrB;AAED,IAAA,OAAQ,MAA6C,CAAC,gCAAgC,CAAC;IAEvF,IAAI,CAAC,aAAa,EAAE;AAClB,QAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC;IACzC;AAEA,IAAA,MAAM,aAAa,GAAG,CAAsC,GAAM,KAAU;AAC1E,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC;AACtC,QAAA,MAAM,WAAW,GACf,WAAW,KAAK,SAAS;AACzB,YAAA,WAAW,KAAK,IAAI;AACpB,aAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAChE,IAAI,WAAW,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE;AACpE,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW;QAC3B;AACF,IAAA,CAAC;IAED,aAAa,CAAC,SAAS,CAAC;IACxB,aAAa,CAAC,mBAAmB,CAAC;IAClC,aAAa,CAAC,uBAAuB,CAAC;IACtC,aAAa,CAAC,gBAAgB,CAAC;IAC/B,aAAa,CAAC,OAAO,CAAC;IACtB,aAAa,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,gBAAgB,CAAC;IAC/B,aAAa,CAAC,cAAc,CAAC;IAC7B,aAAa,CAAC,cAAc,CAAC;IAC7B,aAAa,CAAC,YAAY,CAAC;IAC3B,aAAa,CAAC,YAAY,CAAC;IAC3B,aAAa,CAAC,UAAU,CAAC;IACzB,aAAa,CAAC,gBAAgB,CAAC;AAE/B,IAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC;AACzC;AAEA;;AAEG;AACG,SAAU,qBAAqB,CAAC,IAAyB,EAAA;AAC7D,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;IACvE,OAAO,UAAU,IAAI,SAAS;AAChC;AAEA;;AAEG;AACG,SAAU,yBAAyB,CAAC,IAAyB,EAAA;AACjE,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc;IAC/B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AAC7B,QAAA,OAAO,GAAG;IACZ;AACA,IAAA,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AACjB,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AACxC,YAAA,OAAO,MAAM;QACf;IACF;AACA,IAAA,OAAO,SAAS;AAClB;AAEA,MAAM,eAAe,GAAG,iCAAiC;AAEzD;;AAEG;AACI,eAAe,iCAAiC,CACrD,OAA6B,EAC7B,IAAyB,EAAA;IAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;IAC5C,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,QAAQ,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAG7E;AAER,IAAA,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IAC3E,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;IAC5F,OAAO;AACL,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,UAAU,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE;KACrE;AACH;AAEA;;AAEG;AACI,eAAe,6BAA6B,CACjD,OAA6B,EAC7B,IAAyB,EAAA;IAEzB,MAAM,UAAU,GAAG,MAAM,iCAAiC,CAAC,OAAO,EAAE,IAAI,CAAC;AACzE,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAC9C,IAAA,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAEtD,OAAO;AACL,QAAA,GAAG,UAAU;AACb,QAAA,IAAI,UAAU,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,cAAc,KAAK,SAAS,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;KAC5D;AACH;SAEgB,wCAAwC,CACtD,eAAoC,EACpC,QAAiC,EACjC,WAAmB,EAAA;AAEnB,IAAA,MAAM,KAAK,GAAG,4BAA4B,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC;IAEvF,OAAO;QACL,WAAW;QACX,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,qBAAqB,EAAE,QAAQ,CAAC,EAAE;QAClC,iBAAiB,EAAE,eAAe,CAAC,EAAE;QACrC,UAAU,EAAE,eAAe,CAAC,UAAU;QACtC,KAAK;QACL,WAAW,EAAE,eAAe,CAAC,WAAW;AACxC,QAAA,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc;AACzC,QAAA,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY;QACrC,QAAQ,EAAE,kBAAkB,CAAC,OAAO;QACpC,UAAU,EAAE,sBAAsB,CAAC,eAAe;AAClD,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,SAAS,EAAE,KAAK;KACjB;AACH;SAEgB,6BAA6B,CAC3C,IAAyB,EACzB,WAAmB,EACnB,OAOC,EAAA;AAED,IAAA,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;AACjF,IAAA,MAAM,UAAU,GACd,OAAO,EAAE,UAAU;AACnB,QAAA,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/C,aAAa,EAAE,OAAO,EAAE,aAAa;AACrC,YAAA,cAAc,EAAE,yBAAyB,CAAC,IAAI,CAAC;SAChD,CAAC,CAAC,CAAC,CAAC;AAEP,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,qBAAqB,CAAC,IAAI,CAAC;IACnE,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,yBAAyB,CAAC,IAAI,CAAC;IAE/E,OAAO;QACL,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,iBAAiB,EAAE,IAAI,CAAC,EAAE;QAC1B,KAAK;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,UAAU,EAAE,cAAc;AAC1C,QAAA,IAAI,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE;AAC9C,cAAE,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY;cACvC,EAAE,CAAC;QACP,IAAI,MAAM,CAAC;AACT,cAAE;gBACE,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,gBAAA,IAAI,MAAM,CAAC,UAAU,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC;AAChE;cACD,EAAE,CAAC;AACP,QAAA,IAAI,UAAU,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,cAAc,KAAK,SAAS,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;AAC3D,QAAA,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;AACrC,QAAA,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY;AACjC,QAAA,IAAI,OAAO,EAAE,sBAAsB,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC5E,QAAQ,EAAE,kBAAkB,CAAC,OAAO;AACpC,QAAA,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,sBAAsB,CAAC,eAAe;AACzE,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,SAAS,EAAE,KAAK;KACjB;AACH;AAEA;;AAEG;AACG,SAAU,8BAA8B,CAC5C,IAAyB,EACzB,OAMC,EAAA;IAED,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,IAAI,EAAE;AAC1D,IAAA,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC;AACtD,IAAA,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE;QACnE,aAAa;QACb,cAAc;AACf,KAAA,CAAC;IACF,MAAM,mBAAmB,GAAG,OAAO,EAAE,sBAAsB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW;AAEnG,IAAA,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,KACxC,6BAA6B,CAAC,IAAI,EAAE,EAAE,EAAE;QACtC,sBAAsB,EAAE,OAAO,EAAE,sBAAsB;QACvD,aAAa;QACb,UAAU;QACV,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,eAAe,EAAE,OAAO,EAAE,eAAe;QACzC,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;AAClD,KAAA,CAAC,CACH;AACH;AAEA;;AAEG;AACI,eAAe,wBAAwB,CAC5C,aAAmG,EACnG,iBAAuC,EACvC,cAAiC,EACjC,mBAA2B,EAC3B,IAAyB,EACzB,OAKC,EAAA;AAED,IAAA,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC;IACnD,MAAM,eAAe,GAAG,OAAO,EAAE,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE;AAElH,IAAA,MAAM,QAAQ,GAAG,8BAA8B,CAAC,YAAY,EAAE;QAC5D,sBAAsB,EAAE,OAAO,EAAE,sBAAsB;QACvD,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,eAAe;AACf,QAAA,mBAAmB,EAAE,KAAK;AAC3B,KAAA,CAAC;IACF,IAAI,YAAY,GAAG,CAAC;AAEpB,IAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,CAAC;AAC1G,QAAA,MAAM,aAAa,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC;QAC/E,YAAY,IAAI,CAAC;IACnB;AAEA,IAAA,OAAO,YAAY;AACrB;AAEM,SAAU,qCAAqC,CACnD,eAAoC,EACpC,QAAiC,EAAA;AAEjC,IAAA,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,iBAAiB,CAAC;AACjF;AAEM,SAAU,0BAA0B,CAAC,IAAyB,EAAA;AAClE,IAAA,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC;AACjD,IAAA,OAAO,CAAC,EACN,UAAU,CAAC,OAAO;AAClB,QAAA,UAAU,CAAC,iBAAiB;QAC5B,UAAU,CAAC,qBAAqB,CACjC;AACH;AAEA,SAAS,yBAAyB,CAAC,GAAY,EAAA;IAC7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,QAAA,OAAO,KAAK;IACd;IACA,MAAM,SAAS,GAAG,GAA8B;AAChD,IAAA,OAAO,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ;AAC5F;AAEO,eAAe,sCAAsC,CAC1D,OAA6B,EAC7B,kBAA0B,EAC1B,WAAmB,EAAA;IAEnB,MAAM,MAAM,GAAG,MAAM;SAClB,KAAK,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;AACzE,gBAAA,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACxE,aAAA;AACF,SAAA;KACF;AACA,SAAA,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAEzC,IAAA,MAAM,KAAK,GAAc,MAAM,CAAC,KAAK,IAAI,EAAE;AAC3C,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC;AAChD;AAEA,MAAMC,cAAY,GAAG,uBAAuB;AAC5C,MAAMC,mBAAiB,GAAG,2BAA2B;AAE/C,SAAU,2BAA2B,CAAC,QAAiC,EAAA;AAC3E,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc;AACtC,IAAA,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;AAC1E,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,MAAM,CAAC,OAAO,KAAK,KAAK;AACjC;AAEA;;AAEG;AACI,eAAe,8BAA8B,CAClD,OAA6B,EAC7B,kBAA0B,EAC1B,OAAe,EAAA;AAEf,IAAA,MAAM,cAAc,GAAG,OAAO,EAAE,IAAI,EAAE;IACtC,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,MAAM,CAACD,cAAY,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAqB;IACxG,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;AAC9C,IAAA,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,SAAS,IAAI,MAAM,OAAO,CAAC,MAAM,CAACC,mBAAiB,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAEjF;IACR,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,kBAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAC1G,IAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAG,MAAM;SAClB,KAAK,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;AACzE,gBAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;AACpF,aAAA;AACF,SAAA;KACF;AACA,SAAA,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAEzC,IAAA,MAAM,QAAQ,GAAc,MAAM,CAAC,KAAK,IAAI,EAAE;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC;AACxD,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAC1E;AAEO,eAAe,mBAAmB,CACvC,OAA6B,EAC7B,mBAA2B,EAC3B,MAAc,EAAA;IAEd,MAAM,MAAM,GAAG,MAAM;SAClB,KAAK,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,YAAA,KAAK,EAAE,MAAM;AACd,SAAA;KACF;AACA,SAAA,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAEzC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AACnE;AAEO,eAAe,iCAAiC,CACrD,OAA6B,EAC7B,mBAA2B,EAC3B,MAAc,EAAA;IAEd,MAAM,MAAM,GAAG,MAAM;SAClB,KAAK,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,YAAA,KAAK,EAAE,MAAM;AACd,SAAA;KACF;AACA,SAAA,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAE9B,IAAA,OAAO,MAAM,CAAC,KAAK,IAAI,CAAC;AAC1B;AAEO,eAAe,iCAAiC,CACrD,OAA6B,EAC7B,mBAA2B,EAC3B,MAAc,EACd,cAAsB,EAAA;IAEtB,MAAM,MAAM,GAAG,MAAM;SAClB,KAAK,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;AAC1E,gBAAA,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;AAChF,aAAA;AACF,SAAA;KACF;AACA,SAAA,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAEzC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AACnE;AAEA;;;AAGG;AACG,SAAU,4CAA4C,CAC1D,IAAyB,EACzB,kBAA+C,EAC/C,aAAA,GAAsB,IAAI,IAAI,EAAE,EAAA;IAEhC,MAAM,QAAQ,GAAG,mCAAmC,CAAC,IAAI,CAAC,cAAc,CAAC;IACzE,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,qBAAqB,CAAC;AACtD,IAAA,IAAI,SAAS,KAAK,UAAU,EAAE;AAC5B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC;IAC9G,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACxC,IAAA,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC;AAClD,IAAA,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;AAEtE,IAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;QACxB,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC5E,QAAA,IAAI,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;AACtD,YAAA,OAAO,IAAI;QACb;IACF;AAEA,IAAA,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC;IACtD,MAAM,YAAY,GAAG,6BAA6B,CAAC,SAAS,EAAE,cAAc,CAAC;IAE7E,OAAO;AACL,QAAA,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC;AACtC,QAAA,IAAI,YAAY,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;KAC1C;AACH;AAEA;;ACzgCA;AA4BA;AAEA;AAEA,MAAMD,cAAY,GAAG,uBAAuB;AAW5C,eAAe,yBAAyB,CACtC,aAA8B,EAC9B,gBAAsC,EACtC,aAAqB,EACrB,UAAkB,EAAA;IAElB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACjD,gFAAgF,CACjF;IACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACnD,kFAAkF,EAClF,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CACjD;IACD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAC1D,6FAA6F,CAC9F;IACD,MAAM,uBAAuB,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACnE,wGAAwG,CACzG;IACD,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,+BAA+B,CAAC;AAE1F,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;QAC7B,IAAI,OAAO,GAAG,KAAK;AACnB,QAAA,MAAM,MAAM,GAAG,CAAC,KAAoC,KAAI;YACtD,IAAI,OAAO,EAAE;gBACX;YACF;YACA,OAAO,GAAG,IAAI;YACd,OAAO,CAAC,KAAK,CAAC;AAChB,QAAA,CAAC;AAED,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;YAChC,KAAK;YACL,OAAO;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,YAAY;AACzB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,MAAK;wBACZ,MAAM,CAAC,KAAK,EAAE;wBACd,MAAM,CAAC,IAAI,CAAC;oBACd,CAAC;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,MAAK;wBACZ,MAAM,CAAC,KAAK,EAAE;wBACd,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;oBACxD,CAAC;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,MAAK;wBACZ,MAAM,CAAC,KAAK,EAAE;wBACd,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;oBACvD,CAAC;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ;AAEA;AAEA;AAEA;;;AAGG;AACI,MAAM,qCAAqC,GAA+B;AAC/E,IAAA,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,QAAQ,CAAC;AACf,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;AAC3B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/D,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAgC;AACpD,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAgC;AAC3G,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEpE,QAAA,IAAI,GAAG,CAAC,UAAU,KAAKA,cAAY,EAAE;YACnC,MAAM,IAAI,EAAE;YACZ;QACF;QAEA,MAAM,IAAI,EAAE;AAEZ,QAAA,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS;AACzE,QAAA,IACE,CAAC,SAAS;AACV,YAAA,CAAC,aAAa;AACd,YAAA,CAAC,YAAY;AACb,YAAA,CAAC,gBAAgB;AACjB,YAAA,CAAC,aAAa;AACd,YAAA,CAAC,iBAAiB;YAClB,CAAC,cAAc,EACf;YACA;QACF;QAEA,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,MAAM,CAACA,cAAY,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAqB;AACnG,QAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;YACvB;QACF;AAEA,QAAA,MAAM,cAAc,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAClG,QAAA,MAAM,UAAU,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;AAC1F,QAAA,MAAM,eAAe,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAEzF,QAAA,MAAM,SAAS,GAAG,MAAM,sCAAsC,CAC5D,OAAO,EACP,cAAc,EACd,KAAK,CAAC,WAAW,CAClB;AACD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B;QACF;AAEA,QAAA,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;AAC5E,QAAA,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,aAAa,EACb,gBAAgB,EAChB,SAAS,CAAC,MAAM,EAChB,UAAU,CACX;AACD,QAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YACxB;QACF;QAEA,MAAM,YAAY,GAA0B,EAAE;AAE9C,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAC/B,gBAAA,MAAM,MAAM,IAAI,MAAM;AACnB,qBAAA,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;AAClC,qBAAA,KAAK,CAAC,MAAM,IAAI,CAAC,CAAmC;AACvD,gBAAA,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE;oBAC9B;gBACF;AACA,gBAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;YACjC;AAEA,YAAA,IAAI;;gBAEF,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAC3C,iBAAiB,EACjB,cAAc,EACd,6BAA6B,CAC9B;AACD,gBAAA,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC/D,oBAAA,uBAAuB,EAAE,IAAI;AAC7B,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,iBAAiB,EAAE,IAAI;AACxB,iBAAA,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;AACrE,gBAAA,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS;gBACtE,IAAI,CAAC,cAAc,EAAE;oBACnB;gBACF;gBAEA,MAAM,UAAU,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAA+B;AACrH,gBAAA,MAAM,IAAI,GAAG,gCAAgC,CAC3C,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EACtC,UAAU,EACV,cAAc,CACf;gBACD,IAAI,IAAI,EAAE;AACR,oBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB;YACF;YAAE,OAAO,KAAK,EAAE;gBACd,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACtD,qGAAqG,CACtG;AACD,gBAAA,MAAM,YAAY,GAChB,KAAK,YAAY;sBACb,KAAK,CAAC;sBACN,MAAM,gBAAgB,CAAC,cAAc,CACnC,uGAAuG,CACxG;AACP,gBAAA,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;gBAChF;YACF;QACF;QAEA,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YACzD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACxD,8FAA8F,CAC/F;YACD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAC1D,gGAAgG,EAChG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,CAC3C;AACD,YAAA,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;YACrF;QACF;QAEA,IAAI,cAAc,GAAG,CAAC;AACtB,QAAA,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE;AAChC,QAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AAC/B,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;gBACrC;YACF;AACA,YAAA,cAAc,IAAI,MAAM,wBAAwB,CAC9C,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,IAAI,EACJ;AACE,gBAAA,sBAAsB,EAAE,IAAI;gBAC5B,aAAa;gBACb,UAAU,EAAE,sBAAsB,CAAC,WAAW;gBAC9C,OAAO;AACR,aAAA,CACF;QACH;QAEA,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACxD,6FAA6F,CAC9F;QACD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAC1D,+FAA+F,EAC/F,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,CAC/D;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACvF,CAAC;CACF;AAED;;ACzRA;AA2BA;AACA,MAAM,YAAY,GAAG,uBAAuB;AAC5C,MAAM,iBAAiB,GAAG,2BAA2B;AAErD,MAAMD,MAAI,GAAG,oEAAoE;AAiBjF;AAEA;AAEA,SAAS,2BAA2B,CAAC,KAAc,EAAA;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,QAAA,OAAO,EAAE;IACX;IAEA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAmB,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3F;AAEA;;AAEG;AACH,eAAe,8BAA8B,CAAC,OAA6B,EAAE,OAAe,EAAA;IAC1F,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAqB;IACjG,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,aAAa,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC;AACtF,IAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,QAAA,OAAO,aAAa;IACtB;AAEA,IAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACtB,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,SAAS,IAAI,MAAM;AACtB,SAAA,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,WAAW;AAC3C,SAAA,KAAK,CAAC,MAAM,IAAI,CAAC,CAAyB;AAC7C,IAAA,OAAO,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,CAAC;AACnE;AAEA;AAEA;AAEA;;;AAGG;AACI,MAAM,wCAAwC,GAA+B;AAClF,IAAA,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,QAAQ,CAAC;AACf,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;;AAE3B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/D,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACrF,QAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnF,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAgC;AACpD,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAgC;AAC3G,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEpE,QAAA,MAAM,qBAAqB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;AACrG,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,qBAAqB,EAAE;YAC5C,MAAM,IAAI,EAAE;YACZ;QACF;QAEA,MAAM,IAAI,EAAE;AAEZ,QAAA,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS;QACzE,IAAI,CAAC,SAAS,EAAE;YACd;QACF;;AAGA,QAAA,IACE,CAAC,aAAa;AACd,YAAA,CAAC,YAAY;AACb,YAAA,CAAC,gBAAgB;AACjB,YAAA,CAAC,cAAc;AACf,YAAA,CAAC,kBAAkB;AACnB,YAAA,CAAC,aAAa;AACd,YAAA,CAAC,iBAAiB;YAClB,CAAC,cAAc,EACf;YACA;QACF;QAEA,MAAM,EAAE,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAA+B;AAC5G,QAAA,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;YAChB;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CACzC,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,gBAAgB,CAAC,EAC9D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,kBAAkB,CAAC,EAChE,SAAS,EACT,YAAY,EACZ,KAAK,EACL,QAAQ,CACT;AACD,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;YAC3B;QACF;QAEA,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,OAAO,CACjD,UAAU,CAAC,MAAM,CAAC,IAAI,EACtB,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAC7C;QACD,IAAI,CAAC,cAAc,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,qBAAA,CAAuB,CAAC;gBAC5E,OAAO,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,4BAAA,CAA8B,CAAC;AACtF,aAAA,CAAC;YACF;QACF;QAEA,MAAM,kBAAkB,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;AACpF,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,2BAAA,CAA6B,CAAC;gBAClF,OAAO,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,6BAAA,CAA+B,CAAC;AACvF,aAAA,CAAC;YACF;QACF;QAEA,MAAM,aAAa,GACjB,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,GAAG,cAAc,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;AAEjH,QAAA,MAAM,eAAe,GAA6B;AAChD,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACxB,YAAA,KAAK,EAAE,kBAAkB;SAC1B;AAED,QAAA,MAAM,kBAAkB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACtG,QAAA,MAAM,mBAAmB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAE7F,QAAA,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC;AACnD,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,OAAO,EAAE;gBACP,MAAM;gBACN,OAAO;gBACP,mBAAmB;gBACnB,gBAAgB;gBAChB,cAAc;gBACd,gBAAgB;gBAChB,UAAU;gBACV,kBAAkB;AACnB,aAAA;AACD,YAAA,OAAO,EAAE,eAAe;AACzB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;YAClC;QACF;QAEA,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAA4B;QAC3E,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;QAChG,IAAI,CAAC,QAAQ,EAAE;YACb,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,qBAAA,CAAuB,CAAC;gBAC5E,OAAO,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,sBAAA,CAAwB,CAAC;AAChF,aAAA,CAAC;YACF;QACF;QAEA,IAAI,CAAC,qCAAqC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;YACxD,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,mBAAA,CAAqB,CAAC;gBAC1E,OAAO,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,qBAAA,CAAuB,CAAC;AAC/E,aAAA,CAAC;YACF;QACF;QAEA,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,CAAC;AAE1G,QAAA,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAC1C,mBAAmB,EACnB,wCAAwC,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CACpE;AACD,QAAA,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS;QAEnE,IAAI,CAAC,WAAW,EAAE;YAChB,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,uBAAA,CAAyB,CAAC;gBAC9E,OAAO,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,yBAAA,CAA2B,CAAC;AACnF,aAAA,CAAC;YACF;QACF;QAEA,YAAY,CAAC,IAAI,CAAC;AAChB,YAAA,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,cAAA,CAAgB,CAAC;YACrE,OAAO,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAGA,MAAI,CAAA,gBAAA,CAAkB,CAAC;AAC1E,SAAA,CAAC;IACJ,CAAC;CACF;AAED;;AC/PA;AA8BA;AAEA;AAEA;AACA,MAAM,+BAA+B,GAAG,0CAA0C;AAElF,MAAM,IAAI,GAAG,oEAAoE;AAqBjF;AAEA;AAEA;;;AAGG;AACH,eAAe,iCAAiC,CAAC,IAAwC,EAAA;IACvF,MAAM,EACJ,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,GAAG,IAAI;IAER,MAAM,UAAU,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAA+B;IAChH,MAAM,IAAI,GAAG,gCAAgC,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC;IACnF,IAAI,CAAC,IAAI,EAAE;QACT;IACF;IAEA,MAAM,qBAAqB,GAAG,mCAAmC,CAAC,IAAI,CAAC,cAAc,CAAC;IACtF,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,cAAA,CAAgB,CAAC;AACnF,IAAA,MAAM,cAAc,GAClB,qBAAqB,KAAK;UACtB,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB;UAC9D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,iBAAA,CAAmB,EAAE;AAChE,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACzC,SAAA,CAAC;AAER,IAAA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CACzC,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,QAAQ,CACT;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B;IACF;AAEA,IAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,aAAa,CAAC,KAAK,CACvB,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,mBAAA,CAAqB,CAAC,EACnE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,qBAAA,CAAuB,CAAC,EACrE,SAAS,CACV;QACD;IACF;AAEA,IAAA,MAAM,eAAe,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AACzF,IAAA,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE;QAChE,MAAM,aAAa,CAAC,KAAK,CACvB,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,aAAA,CAAe,CAAC,EAC7D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB,CAAC,EAC/D,SAAS,CACV;QACD;IACF;AAEA,IAAA,IAAI;AACF,QAAA,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACnD,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,IAAI,EACJ,EAAE,OAAO,EAAE,CACZ;AAED,QAAA,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,MAAM,aAAa,CAAC,KAAK,CACvB,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,YAAA,CAAc,CAAC,EAC5D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,aAAA,CAAe,CAAC,EAC7D,QAAQ,CACT;YACD;QACF;AAEA,QAAA,MAAM,cAAc,GAClB,cAAc,KAAK;cACf,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB;cAC9D,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,iBAAA,CAAmB,EAAE;AAChE,gBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;AAClC,aAAA,CAAC;QACR,YAAY,CAAC,IAAI,CAAC;AAChB,YAAA,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,cAAA,CAAgB,CAAC;AACrE,YAAA,OAAO,EAAE,cAAc;AACxB,SAAA,CAAC;IACJ;IAAE,OAAO,KAAK,EAAE;QACd,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAA,aAAA,CAAe,CAAC;AACtH,QAAA,MAAM,aAAa,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC5G;AACF;AAEA;AAEA;AAEA;;;AAGG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE5D,SAAS,UAAU,CAAC,KAAc,EAAA;AAChC,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/D,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,KAAgC;AACzC;AAEA,SAAS,oBAAoB,CAAC,MAA+B,EAAA;IAC3D,MAAM,CAAC,gBAAgB,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACpF;AAEO,MAAM,wCAAwC,GAA+B;AAClF,IAAA,MAAM,EAAE;AACN,QAAA,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;AAC1F,QAAA,MAAM,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAA,CAAE;AAC/E,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;AAC3B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/D,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAgC;AACpD,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAgC;AAC3G,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpE,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEzE,QAAA,MAAM,qBAAqB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;AACrG,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,qBAAqB,EAAE;YAC5C,MAAM,IAAI,EAAE;YACZ;QACF;QAEA,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,MAAM,YAAY,GAAG,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,KAAK,IAAI,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,CAAC;AAChH,YAAA,IAAI,IAAI,IAAI,YAAY,EAAE;gBACxB,MAAM,QAAQ,GAAG,gCAAgC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzE,gBAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAClB,MAAM,KAAK,GAAG,qCAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnE,oBAAA,MAAM,IAAI,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACrF;AACA,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,MAAM;YAC1C;QACF;AAEA,QAAA,MAAM,cAAc,GAClB,GAAG,CAAC,IAAI;AACR,YAAA,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;AAC3B,YAAA,GAAG,CAAC,IAAgC,CAAC,gCAAgC,CAAC,KAAK,IAAI;QAElF,MAAM,aAAa,GACjB,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,GAAI,GAAG,CAAC,IAAuC,GAAG,SAAS;QAErG,MAAM,IAAI,EAAE;AAEZ,QAAA,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE;AACvB,YAAA,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE;gBACvB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrC,IAAI,MAAM,EAAE;oBACV,oBAAoB,CAAC,MAAM,CAAC;gBAC9B;gBACA;YACF;YAEA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;kBAClC,GAAG,CAAC;kBACJ,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK;AAC/B,sBAAE,GAAG,CAAC,MAAM,CAAC;sBACX,IAAI;YACV,IAAI,KAAK,EAAE;AACT,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,oBAAA,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC/B,IAAI,MAAM,EAAE;wBACV,oBAAoB,CAAC,MAAM,CAAC;oBAC9B;gBACF;YACF;YACA;QACF;AAEA,QAAA,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS;AACzE,QAAA,IACE,CAAC,SAAS;AACV,YAAA,CAAC,aAAa;AACd,YAAA,CAAC,YAAY;AACb,YAAA,CAAC,aAAa;AACd,YAAA,CAAC,iBAAiB;AAClB,YAAA,CAAC,cAAc;AACf,YAAA,CAAC,gBAAgB;AACjB,YAAA,cAAc,EACd;YACA;QACF;QAEA,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE;YACnD;QACF;QACA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC;AAErD,QAAA,MAAM,iCAAiC,CAAC;YACtC,SAAS;YACT,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa;YACb,aAAa;YACb,OAAO;YACP,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,YAAY;YACZ,gBAAgB;AACjB,SAAA,CAAC;IACJ,CAAC;CACF;AAED;;AC9RA;AAEA;AACO,MAAM,oCAAoC,GAAG;IAClD,kBAAkB;IAClB,wBAAwB;CAChB;AAEV;AACO,MAAM,sCAAsC,GAAG;IACpD,6BAA6B;IAC7B,2BAA2B;CACnB;AAEV;AACO,MAAM,uCAAuC,GAAG;AACrD,IAAA,GAAG,oCAAoC;AACvC,IAAA,GAAG,sCAAsC;CACjC;AAIV;AAEA;AAEA;;AAEG;AACG,SAAU,0CAA0C,CAAC,KAG1D,EAAA;IACC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;IACpE,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE;IAE5F,MAAM,OAAO,GAA+D,EAAE;IAC9E,IAAI,IAAI,EAAE;AACR,QAAA,KAAK,MAAM,GAAG,IAAI,oCAAoC,EAAE;AACtD,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;QACrB;IACF;IACA,IAAI,YAAY,EAAE;AAChB,QAAA,KAAK,MAAM,GAAG,IAAI,sCAAsC,EAAE;AACxD,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY;QAC7B;IACF;AACA,IAAA,OAAO,OAAO;AAChB;AAEA;;AClDA;AAaA;AAEA;AAEA,MAAMG,yBAAuB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AASjG;AAEA;AAEA;;AAEG;AACI,MAAM,gCAAgC,GAA+D,OAC1G,OAAO,EACP,IAAI,KACF;AACF,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9C,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;IAC3B,MAAM,MAAM,GAAGC,aAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB;IACA,MAAM,cAAc,GAAG,MAAM;AAC1B,SAAA,UAAU,CAAC,sBAAsB,EAAE,gBAAgB;AACnD,SAAA,IAAI;SACJ,KAAK,CAAC,MAAM,CAAC;IAEhB,MAAM,WAAW,GAAGA,aAAW,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACvE,MAAM,WAAW,GAAGA,aAAW,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AACrE,IAAA,IAAI,WAAW,KAAKD,yBAAuB,IAAI,CAAC,WAAW,EAAE;AAC3D,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB;IAEA,MAAM,SAAS,GAAG,MAAM;AACrB,SAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,SAAA,IAAI;SACJ,KAAK,CAAC,WAAW,CAAC;IAErB,MAAM,OAAO,GAAGC,aAAW,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB;IAEA,MAAM,KAAK,IAAI,MAAM,aAAa,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAGvF;IAER,MAAM,cAAc,GAAG,0CAA0C,CAAC;AAChE,QAAA,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;AACzB,QAAA,YAAY,EAAE,KAAK,EAAE,YAAY,IAAI,IAAI;AAC1C,KAAA,CAAC;AAEF,IAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;AAC3B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB;IAEA,MAAM,SAAS,GAAGA,aAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,SAAS,EAAE;AACb,QAAA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;AACnH,QAAA,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,CAA4B;AACzF,QAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,cAAc,CAAC;QAChF,IAAI,OAAO,EAAE;AACX,YAAA,MAAM;AACH,iBAAA,UAAU,CAAC,sBAAsB,EAAE,mBAAmB;AACtD,iBAAA,IAAI;iBACJ,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAW,CAAC;QACpD;IACF;AAEA,IAAA,OAAO,IAAI,CAAC;AACV,QAAA,GAAG,OAAO;AACV,QAAA,KAAK,EAAE;AACL,YAAA,GAAG,KAAK;AACR,YAAA,cAAc,EAAE;AACd,gBAAA,GAAG,cAAc;gBACjB,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC;AAC/C,aAAA;AACD,YAAA,kBAAkB,EAAE;AAClB,gBAAA,GAAG,uCAAuC;gBAC1C,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,EAAE,CAAC;AACnD,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AACJ,CAAC;AAED;AAEA;AAEA,SAASA,aAAW,CAAC,KAAc,EAAA;AACjC,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,EAAE;IACX;AACA,IAAA,OAAO,KAAK,CAAC,IAAI,EAAE;AACrB;AAEA,SAAS,mBAAmB,CAC1B,QAAiC,EACjC,OAAgC,EAAA;AAEhC,IAAA,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE;IAC9B,IAAI,OAAO,GAAG,KAAK;AAEnB,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClD,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC3C,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;YACnB,OAAO,GAAG,IAAI;QAChB;IACF;AAEA,IAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AAC5B;AAEA;;ACvIA;AAaA;AAEA;AAEA,MAAM,uBAAuB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAOjG;AAEA;AAEA;;;AAGG;AACI,MAAM,sCAAsC,GAG/C,OAAO,OAAO,EAAE,IAAI,KAAI;AAC1B,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChD,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEhD,IAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAClC,IAAA,IAAI;AACF,QAAA,MAAM,wCAAwC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;YACpE,aAAa;YACb,cAAc;YACd,cAAc;AACf,SAAA,CAAC;IACJ;IAAE,OAAO,KAAc,EAAE;AACvB,QAAA,eAAe,CAAC,QAAQ,EAAE,KAAK,CAC7B,wBAAwB,EACxB,kCAAkC,EAClC,iEAAiE,EACjE,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YACpC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;YAC1C,OAAO,EAAE,MAAM,EAAE,OAAO;AACxB,YAAA,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;AACxC,YAAA,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9D,SAAA,CAAC,CACH;IACH;AACA,IAAA,OAAO,MAAM;AACf,CAAC;AAQD;AAEA;AAEA,eAAe,wCAAwC,CACrD,KAAqC,EACrC,MAAwD,EACxD,QAA8C,EAAA;AAE9C,IAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;QACpB;IACF;IAEA,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE;QACX;IACF;AAEA,IAAA,MAAM,SAAS,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IACpG,IAAI,CAAC,SAAS,EAAE;QACd;IACF;IAEA,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,QAAQ;IAElE,MAAM,cAAc,GAAG,MAAM;AAC1B,SAAA,UAAU,CAAC,sBAAsB,EAAE,gBAAgB;AACnD,SAAA,IAAI;SACJ,KAAK,CAAC,MAAM,CAAC;IAEhB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AACrE,IAAA,IAAI,WAAW,KAAK,uBAAuB,IAAI,CAAC,WAAW,EAAE;QAC3D;IACF;AAEA,IAAA,MAAM,SAAS,IAAI,MAAM;AACtB,SAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,SAAA,IAAI;AACJ,SAAA,KAAK,CAAC,WAAW,CAAC,CAAwD;AAE7E,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE;QAClB;IACF;AAEA,IAAA,MAAM,aAAa,GAAG,MAAM,2BAA2B,CACrD,aAAa,EACb,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CACpC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,mCAAmC,CAAC,gBAAgB;IAEzE,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,EAAE;QACxF,WAAW;QACX,aAAa,EAAE,aAAa,IAAI,IAAI;AACrC,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAEvE,IAAA,MAAM,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,EAAE;QACpE,WAAW;QACX,YAAY,EAAE,YAAY,IAAI,IAAI;QAClC,aAAa,EAAE,aAAa,IAAI,IAAI;AACpC,QAAA,gBAAgB,EAAE,MAAM;QACxB,aAAa,EAAE,aAAa,IAAI,IAAI;AACrC,KAAA,CAAC;IAEF,MAAM,mBAAmB,GACvB,SAAS,CAAC,QAAQ,KAAK,kBAAkB,CAAC,OAAO;AACjD,QAAA,SAAS,CAAC,QAAQ,KAAK,kBAAkB,CAAC,SAAS;AACnD,QAAA,SAAS,CAAC,QAAQ,KAAK,kBAAkB,CAAC,QAAQ;IAEpD,IAAI,mBAAmB,EAAE;AACvB,QAAA,MAAM,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,yBAAyB,EAAE,EAAE,WAAW,EAAE,CAAC;IACvF;AACF;AAEA,eAAe,6BAA6B,CAC1C,KAAqC,EACrC,MAAwD,EACxD,MAAc,EACd,aAA+B,EAAA;AAE/B,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE;AAC1E,IAAA,IAAI,OAAO,KAAK,WAAW,EAAE;AAC3B,QAAA,OAAO,IAAI;IACb;IACA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,SAAS,EAAE;QACb,MAAM,OAAO,GAAG,MAAM;AACnB,aAAA,UAAU,CAAC,sBAAsB,EAAE,mBAAmB;AACtD,aAAA,IAAI;aACJ,KAAK,CAAC,SAAS,CAAC;AACnB,QAAA,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE;AACvE,YAAA,OAAO,IAAI;QACb;IACF;IAEA,MAAM,IAAI,GAAG,MAAM;AAChB,SAAA,UAAU,CAAC,sBAAsB,EAAE,mBAAmB;AACtD,SAAA,IAAI;AACJ,SAAA,KAAK,CAAC;AACL,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACnD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3E,SAAA;AACO,KAAA,CAAC;AAEb,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,CAAiC;IACrF,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW;AACpE;AAEA,eAAe,2BAA2B,CACxC,aAA+B,EAC/B,QAAgB,EAAA;IAEhB,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,IAAI,GAAG,MAAM;AAChB,SAAA,UAAU,CAAC,wBAAwB,EAAE,UAAU;AAC/C,SAAA,IAAI;AACJ,SAAA,KAAK,CAAC;AACL,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC/E,SAAA;AACO,KAAA,CAAC;AAEb,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,CAA2B;AACjF,IAAA,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;AAClC;AAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,EAAE;IACX;AACA,IAAA,OAAO,KAAK,CAAC,IAAI,EAAE;AACrB;AAEA;;ACxNA;AAQA;AAEA;AAEA,MAAM,mBAAmB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAE7F;;AAEG;AACI,MAAM,6BAA6B,GAA+B;AACvE,IAAA,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,QAAQ,CAAC;AACf,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;AAC3B,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,mBAAmB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YACvF,MAAM,IAAI,EAAE;YACZ;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B;AAChD,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE;AAC1D,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,sBAAsB,CAAC,MAAM;QACpD;AAEA,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpE,QAAA,MAAM,aAAa,GAAG,cAAc,EAAE,IAAI,EAAE,EAAE;AAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,aAAa;QACvC;QAEA,MAAM,IAAI,EAAE;IACd,CAAC;CACF;AAED;;AC3CA;AASA;;ACHA;AAEA;AAEA,MAAM,aAAa,GAAG,oCAAoC;AAC1D,MAAM,kBAAkB,GAAG,uCAAuC;AAClE,MAAM,mBAAmB,GAAG,uCAAuC;AAEnE,MAAM,kBAAkB,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,CAAU;AAE5F;AAEA;MAGa,sDAAsD,CAAA;AACjE,IAAA,MAAM,KAAK,GAAA;QACT,OAAO;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,KAAK,EAAE,iDAAiD;AACxD,gBAAA,WAAW,EAAE,uDAAuD;AACpE,gBAAA,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC;AAChC,gBAAA,IAAI,EAAE,gCAAgC;AACtC,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,KAAK,EAAE,EAAE;AACV,aAAA;SACF;IACH;8GAbW,sDAAsD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtD,sDAAsD,EAAA,CAAA,CAAA;;2FAAtD,sDAAsD,EAAA,UAAA,EAAA,CAAA;kBADlE;;;ACpBD;AAcA;AAEA;AAEA;;;AAGG;MACU,oFAAoF,CAAA;AAAjG,IAAA,WAAA,GAAA;;AAKmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;;IAyJ7D;;;IAnJE,MAAM,OAAO,CAAC,OAAmD,EAAA;QAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;AACvC,YAAA,4BAA4B,EAAE,OAAO,UAAoB,KAAgC;AACvF,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;gBAC7D,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,OAAO,EAAE;gBACX;AAEA,gBAAA,IAAI;oBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBACzD,IAAI,CAAC,YAAY,EAAE;AACjB,wBAAA,OAAO,EAAE;oBACX;oBAEA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,kBAAkB,CAAC;oBAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AAC/C,oBAAA,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC7C,wBAAA,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE;AAClF,wBAAA,MAAM,UAAU,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE;AACrF,wBAAA,OAAO,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC7E,oBAAA,CAAC,CAAC;oBAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;gBACzE;gBAAE,OAAO,KAAc,EAAE;oBACvB,OAAO,CAAC,KAAK,CACX,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,qCAAA,CAAuC,EAChE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAC/C;AACD,oBAAA,OAAO,EAAE;gBACX;YACF,CAAC;AACF,SAAA,CAAC;IACJ;;;IAMQ,MAAM,gBAAgB,CAAC,OAAe,EAAA;QAO5C,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAI5F;QACR,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;QAC9C,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,SAAS,IAAI,MAAM,IAAI,CAAC;AAC3B,aAAA,UAAU,CAAC,iBAAiB,EAAE,WAAW;AACzC,aAAA,IAAI;AACJ,aAAA,KAAK,CAAC,WAAW,CAAC,CAAgF;AACrG,QAAA,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,kBAAkB,IAAI,EAAE,EAAE,MAAM,CACrE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC7C;AACD,QAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;QAEA,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW;YACX,kBAAkB;AAClB,YAAA,sBAAsB,EAAE,CAAC,SAAS,EAAE,sBAAsB,IAAI,EAAE,EAAE,MAAM,CACtE,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACnD;SACF;IACH;IAEQ,MAAM,oBAAoB,CAChC,kBAA4B,EAAA;AAE5B,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;AACrB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI;AACJ,aAAA,KAAK,CAAC;AACL,YAAA,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,kBAAkB,CAAC,MAAM;AAC/B,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACxB,gBAAA,KAAK,EAAE,kBAAkB;AAC1B,aAAA;AACF,SAAA,CAAC;AAEJ,QAAA,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE;IAC1B;AAEQ,IAAA,WAAW,CACjB,GAAuD,EACvD,MAAc,EACd,KAMC,EAAA;AAED,QAAA,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE;QAE5E,OAAO;AACL,YAAA,IAAI,EAAE,CAAA,wBAAA,EAA2B,GAAG,CAAC,EAAE,CAAA,CAAE;YACzC,KAAK;AACL,YAAA,IAAI,EAAE,gCAAgC;AACtC,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,OAAO,EAAE;AACP,oBAAA,OAAO,EAAE;AACP,wBAAA,QAAQ,EAAE,KAAK;AACf,wBAAA,eAAe,EAAE,IAAI;AACrB,wBAAA,IAAI,EAAE;4BACJ,OAAO,EAAE,KAAK,CAAC,EAAE;AACjB,4BAAA,KAAK,EAAE;gCACL,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,gCAAA,SAAS,EAAE;oCACT,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;oCAC5C,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;AACrD,iCAAA;AACF,6BAAA;4BACD,iBAAiB,EAAE,GAAG,CAAC,EAAE;AACzB,4BAAA,eAAe,EAAE;gCACf,EAAE,EAAE,GAAG,CAAC,EAAE;gCACV,KAAK,EAAE,GAAG,CAAC,KAAK;AACjB,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,qBAAqB,CAAC,SAAS;SACvC;IACH;AAGD;AAED;;ACvLA;AAgBA;AAEA;AAEA,SAAS,cAAc,CAAC,KAAc,EAAA;AACpC,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,EAAE;IACX;AACA,IAAA,OAAO,KAAK,CAAC,IAAI,EAAE;AACrB;AAEA;AAEA;;AAEG;MACU,iEAAiE,CAAA;AAA9E,IAAA,WAAA,GAAA;;AAKmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;;IAyI7D;;;IAnIE,MAAM,OAAO,CAAC,OAAmD,EAAA;QAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;AACvC;;;AAGG;AACH,YAAA,sBAAsB,EAAE,OAAO,UAAoB,KAAgC;AACjF,gBAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC;gBAC1C,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,OAAO,EAAE;gBACX;AAEA,gBAAA,IAAI;oBACF,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAuB;AACpE,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE;oBAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC;oBAC7E,IAAI,CAAC,YAAY,EAAE;AACjB,wBAAA,OAAO,EAAE;oBACX;AAEA,oBAAA,MAAM,kBAAkB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE;oBACtG,MAAM,SAAS,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC;AAE5F,oBAAA,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC1C,wBAAA,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC;AAC/D,wBAAA,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC;AAC/D,wBAAA,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC9D,oBAAA,CAAC,CAAC;oBAEF,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,YAAY;oBAE/D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM;AAC/B,wBAAA,IAAI,EAAE,CAAA,kBAAA,EAAqB,QAAQ,CAAC,EAAE,CAAA,CAAE;AACxC,wBAAA,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;AAChF,wBAAA,IAAI,EAAE,4BAA4B;AAClC,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,eAAe;AACrB,4BAAA,OAAO,EAAE;AACP,gCAAA,OAAO,EAAE;AACP,oCAAA,QAAQ,EAAE,KAAK;AACf,oCAAA,eAAe,EAAE,IAAI;AACrB,oCAAA,IAAI,EAAE;wCACJ,OAAO,EAAE,KAAK,CAAC,EAAE;AACjB,wCAAA,KAAK,EAAE;4CACL,EAAE,EAAE,KAAK,CAAC,EAAE;4CACZ,KAAK,EAAE,KAAK,CAAC,KAAK;4CAClB,WAAW;4CACX,SAAS,EAAE,EAAE,kBAAkB,EAAE;AAClC,yCAAA;wCACD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;wCAC7C,qBAAqB,EAAE,QAAQ,CAAC,EAAE;AAClC,wCAAA,mBAAmB,EAAE;4CACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;4CACf,KAAK,EAAE,QAAQ,CAAC,KAAK;4CACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;4CACjC,cAAc,EAAE,QAAQ,CAAC,cAAc;AACxC,yCAAA;AACD,wCAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,KAAK;AAC5C,wCAAA,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,KAAK;AAChD,wCAAA,cAAc,EACZ,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,GAAG;AAC3E,8CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,IAAI,GAAG,CAAC,GAAG;AACvD,8CAAE,SAAS;wCACf,UAAU,EAAE,sBAAsB,CAAC,MAAM;AACzC,wCAAA,sBAAsB,EAAE,KAAK;AAC9B,qCAAA;AACF,iCAAA;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,qBAAqB,CAAC,SAAS;AACvC,qBAAA,CAAC,CAA6B;gBACjC;gBAAE,OAAO,KAAc,EAAE;oBACvB,OAAO,CAAC,KAAK,CACX,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,+BAAA,CAAiC,EAC1D,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAC/C;AACD,oBAAA,OAAO,EAAE;gBACX;YACF,CAAC;AACF,SAAA,CAAC;IACJ;;;IAMQ,oBAAoB,GAAA;QAC1B,OAAO;AACL,YAAA,MAAM,EAAE,OAAO,UAAU,EAAE,EAAE,KAAI;AAC/B,gBAAA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9C,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,CAAC;AACD,YAAA,SAAS,EAAE,YAAY,IAAI;AAC3B,YAAA,KAAK,EAAE,OAAO,UAAU,EAAE,OAAO,KAAI;AACnC,gBAAA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9C,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAgB,CAAC;YACrF,CAAC;SACF;IACH;AAEQ,IAAA,MAAM,2BAA2B,CAAC,OAA6B,EAAE,OAAe,EAAA;AACtF,QAAA,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAI7D;QAER,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;QAC9C,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,SAAS,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAEzE;QACR,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,kBAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAC1G,QAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;QAEA,OAAO;AACL,YAAA,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE;YACxD,WAAW;YACX,kBAAkB;SACnB;IACH;AAGD;;AC/KD;AAMA;AAEA;AAEO,MAAM,4BAA4B,GAAoB;AAC3D,IAAA,IAAI,EAAE,+BAA+B;AACrC,IAAA,KAAK,EAAE,oDAAoD;AAC3D,IAAA,WAAW,EAAE,0DAA0D;AACvE,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;AAC7B,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,MAAM,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACzC,IAAA,IAAI,EAAE,4BAA4B;AAClC,IAAA,UAAU,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;AACvD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,MACT,OAAO,gHAA8C,CAAC,CAAC,IAAI,CACzD,CAAC,CAAC,KAAK,CAAC,CAAC,yCAAyC,CACnD;AACJ,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,MACT,OAAO,gHAA8C,CAAC,CAAC,IAAI,CACzD,CAAC,CAAC,KAAK,CAAC,CAAC,yCAAyC,CACnD;AACJ,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,MACT,OAAO,gHAA8C,CAAC,CAAC,IAAI,CACzD,CAAC,CAAC,KAAK,CAAC,CAAC,yCAAyC,CACnD;AACJ,SAAA;AACF,KAAA;CACF;AAED;;ACnCA;AAEA;MAGa,oCAAoC,CAAA;IAC/C,UAAU,GAAA;QACR,OAAO,CAAC,4BAA4B,CAAC;IACvC;8GAHW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApC,oCAAoC,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD;;;ACXD;AAIA;AAEA;AAEO,MAAM,gCAAgC,GAAoB;AAC/D,IAAA,IAAI,EAAE,4BAA4B;AAClC,IAAA,KAAK,EAAE,kEAAkE;AACzE,IAAA,WAAW,EAAE,wEAAwE;AACrF,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,MAAM,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACzC,IAAA,IAAI,EAAE,6BAA6B;AACnC,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,MACT,OAAO,0GAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAAC;AACtG,SAAA;AACF,KAAA;CACF;AAED;;ACzBA;AAIA;AAEA;AAEO,MAAM,kCAAkC,GAAoB;AACjE,IAAA,IAAI,EAAE,+BAA+B;AACrC,IAAA,KAAK,EAAE,qEAAqE;AAC5E,IAAA,WAAW,EAAE,2EAA2E;AACxF,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,MAAM,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACzC,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,MACT,OAAO,6GAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAAC;AAC3G,SAAA;AACF,KAAA;CACF;AAED;;ACjBA;AAEA;MAGa,wCAAwC,CAAA;IACnD,UAAU,GAAA;AACR,QAAA,OAAO,CAAC,gCAAgC,EAAE,kCAAkC,CAAC;IAC/E;8GAHW,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxC,wCAAwC,EAAA,CAAA,CAAA;;2FAAxC,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBADpD;;;ACZD;AAIA;AAEA;AAEO,MAAM,mCAAmC,GAAoB;AAClE,IAAA,IAAI,EAAE,+BAA+B;AACrC,IAAA,KAAK,EAAE,qEAAqE;AAC5E,IAAA,WAAW,EAAE,2EAA2E;AACxF,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,MAAM,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACzC,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,MACT,OAAO,kHAAgD,CAAC,CAAC,IAAI,CAC3D,CAAC,CAAC,KAAK,CAAC,CAAC,0CAA0C,CACpD;AACJ,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,MACT,OAAO,kHAAgD,CAAC,CAAC,IAAI,CAC3D,CAAC,CAAC,KAAK,CAAC,CAAC,0CAA0C,CACpD;AACJ,SAAA;AACF,KAAA;CACF;AAED;;AC1BA;AAEA;MAGa,2BAA2B,CAAA;IACtC,UAAU,GAAA;QACR,OAAO,CAAC,mCAAmC,CAAC;IAC9C;8GAHW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACXD;AA8BA;AAEA;MA4Ka,8BAA8B,CAAA;8GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAA9B,8BAA8B,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,SAAA,EAvK9B;AAET,YAAA;AACE,gBAAA,OAAO,EAAE,qCAAqC;AAC9C,gBAAA,QAAQ,EAAE,sDAAsD;AAChE,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uCAAuC;AAChD,gBAAA,QAAQ,EAAE,iEAAiE;AAC3E,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uCAAuC;AAChD,gBAAA,QAAQ,EAAE,oFAAoF;AAC9F,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,oCAAoC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,2BAA2B;AACrC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,wCAAwC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;;YAED,mBAAmB,CAAC,kCAAkC,EAAE,MACtD,6EAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oDAAoD,CAAC,CAC/G;YACD,mBAAmB,CAAC,iBAAiB,EAAE,MACrC,6DAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAAC,CAC9E;YACD,mBAAmB,CAAC,mBAAmB,EAAE,MACvC,sEAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6CAA6C,CAAC,CACjG;YACD,mBAAmB,CAAC,oBAAoB,EAAE,MACxC,OAAO,sGAA6C,CAAC,CAAC,IAAI,CACxD,CAAC,CAAC,KAAK,CAAC,CAAC,qDAAqD,CAC/D,CACF;YACD,mBAAmB,CAAC,oBAAoB,EAAE,MACxC,OAAO,gGAAuC,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,KAAK,CAAC,CAAC,+CAA+C,CACzD,CACF;AACD,YAAA,wBAAwB,CAAC;AACvB,gBAAA;AACE,oBAAA,MAAM,EAAE,0CAA0C;AAClD,oBAAA,UAAU,EAAE,sCAAsC;AACnD,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,0CAA0C;AAClD,oBAAA,UAAU,EAAE,gCAAgC;AAC7C,iBAAA;aACF,CAAC;AACF,YAAA,oBAAoB,CAAC;AACnB,gBAAA;AACE,oBAAA,GAAG,EAAE,aAAa;AAClB,oBAAA,OAAO,EAAE,MAAM,OAAO,6FAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC;AACzG,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,SAAS,CAAC,SAAS;AAC5D,oBAAA,OAAO,EAAE,MACP,OAAO,mGAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CACnC;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,gBAAgB;AAC1E,oBAAA,OAAO,EAAE,MACP,OAAO,iGAAwE,CAAC,CAAC,IAAI,CACnF,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAClC;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,mBAAmB;AAC7E,oBAAA,OAAO,EAAE,MACP,OAAO,qGAA4E,CAAC,CAAC,IAAI,CACvF,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CACrC;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,0BAA0B;AACpF,oBAAA,OAAO,EAAE,MACP,OAAO,8GAAqF,CAAC,CAAC,IAAI,CAChG,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,yBAAyB;AACnF,oBAAA,OAAO,EAAE,MACP,OAAO,4GAAmF,CAAC,CAAC,IAAI,CAC9F,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAC3C;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,2BAA2B;AACrF,oBAAA,OAAO,EAAE,MACP,OAAO,6GAAoF,CAAC,CAAC,IAAI,CAC/F,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAC7C;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,4BAA4B;AACtF,oBAAA,OAAO,EAAE,MACP,OAAO,+GAAsF,CAAC,CAAC,IAAI,CACjG,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAC9C;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,0BAA0B;AACpF,oBAAA,OAAO,EAAE,MACP,OAAO,4GAAmF,CAAC,CAAC,IAAI,CAC9F,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,wBAAwB;AAClF,oBAAA,OAAO,EAAE,MACP,OAAO,0GAAiF,CAAC,CAAC,IAAI,CAC5F,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAC1C;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,UAAU,CAAC,cAAc;AAClE,oBAAA,OAAO,EAAE,MACP,OAAO,yGAAqE,CAAC,CAAC,IAAI,CAChF,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,mCAAmC,CAAC,UAAU,CAAC,iBAAiB;AACrE,oBAAA,OAAO,EAAE,MACP,OAAO,8GAA0E,CAAC,CAAC,IAAI,CACrF,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;aACF,CAAC;AACF,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,QAAQ,EAAE,qCAAqC;AAC/C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,QAAQ,EAAE,wCAAwC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,QAAQ,EAAE,wCAAwC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,QAAQ,EAAE,6BAA6B;AACvC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,CAAA,CAAA;;2FAEU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBA1K1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,SAAS,EAAE;AAET,wBAAA;AACE,4BAAA,OAAO,EAAE,qCAAqC;AAC9C,4BAAA,QAAQ,EAAE,sDAAsD;AAChE,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uCAAuC;AAChD,4BAAA,QAAQ,EAAE,iEAAiE;AAC3E,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uCAAuC;AAChD,4BAAA,QAAQ,EAAE,oFAAoF;AAC9F,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,QAAQ,EAAE,oCAAoC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,QAAQ,EAAE,2BAA2B;AACrC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,QAAQ,EAAE,wCAAwC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;;wBAED,mBAAmB,CAAC,kCAAkC,EAAE,MACtD,6EAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oDAAoD,CAAC,CAC/G;wBACD,mBAAmB,CAAC,iBAAiB,EAAE,MACrC,6DAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAAC,CAC9E;wBACD,mBAAmB,CAAC,mBAAmB,EAAE,MACvC,sEAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6CAA6C,CAAC,CACjG;wBACD,mBAAmB,CAAC,oBAAoB,EAAE,MACxC,OAAO,sGAA6C,CAAC,CAAC,IAAI,CACxD,CAAC,CAAC,KAAK,CAAC,CAAC,qDAAqD,CAC/D,CACF;wBACD,mBAAmB,CAAC,oBAAoB,EAAE,MACxC,OAAO,gGAAuC,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,KAAK,CAAC,CAAC,+CAA+C,CACzD,CACF;AACD,wBAAA,wBAAwB,CAAC;AACvB,4BAAA;AACE,gCAAA,MAAM,EAAE,0CAA0C;AAClD,gCAAA,UAAU,EAAE,sCAAsC;AACnD,6BAAA;AACD,4BAAA;AACE,gCAAA,MAAM,EAAE,0CAA0C;AAClD,gCAAA,UAAU,EAAE,gCAAgC;AAC7C,6BAAA;yBACF,CAAC;AACF,wBAAA,oBAAoB,CAAC;AACnB,4BAAA;AACE,gCAAA,GAAG,EAAE,aAAa;AAClB,gCAAA,OAAO,EAAE,MAAM,OAAO,6FAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC;AACzG,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,SAAS,CAAC,SAAS;AAC5D,gCAAA,OAAO,EAAE,MACP,OAAO,mGAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CACnC;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,gBAAgB;AAC1E,gCAAA,OAAO,EAAE,MACP,OAAO,iGAAwE,CAAC,CAAC,IAAI,CACnF,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAClC;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,mBAAmB;AAC7E,gCAAA,OAAO,EAAE,MACP,OAAO,qGAA4E,CAAC,CAAC,IAAI,CACvF,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CACrC;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,0BAA0B;AACpF,gCAAA,OAAO,EAAE,MACP,OAAO,8GAAqF,CAAC,CAAC,IAAI,CAChG,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,yBAAyB;AACnF,gCAAA,OAAO,EAAE,MACP,OAAO,4GAAmF,CAAC,CAAC,IAAI,CAC9F,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAC3C;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,2BAA2B;AACrF,gCAAA,OAAO,EAAE,MACP,OAAO,6GAAoF,CAAC,CAAC,IAAI,CAC/F,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAC7C;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,4BAA4B;AACtF,gCAAA,OAAO,EAAE,MACP,OAAO,+GAAsF,CAAC,CAAC,IAAI,CACjG,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAC9C;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,0BAA0B;AACpF,gCAAA,OAAO,EAAE,MACP,OAAO,4GAAmF,CAAC,CAAC,IAAI,CAC9F,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,gBAAgB,CAAC,wBAAwB;AAClF,gCAAA,OAAO,EAAE,MACP,OAAO,0GAAiF,CAAC,CAAC,IAAI,CAC5F,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAC1C;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,UAAU,CAAC,cAAc;AAClE,gCAAA,OAAO,EAAE,MACP,OAAO,yGAAqE,CAAC,CAAC,IAAI,CAChF,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,6BAAA;AACD,4BAAA;AACE,gCAAA,GAAG,EAAE,mCAAmC,CAAC,UAAU,CAAC,iBAAiB;AACrE,gCAAA,OAAO,EAAE,MACP,OAAO,8GAA0E,CAAC,CAAC,IAAI,CACrF,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,6BAAA;yBACF,CAAC;AACF,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,QAAQ,EAAE,qCAAqC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,QAAQ,EAAE,wCAAwC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,QAAQ,EAAE,wCAAwC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,QAAQ,EAAE,6BAA6B;AACvC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;;;AC3MD;AAcA;AAEA;AAEA,MAAM,uBAAuB,GAAG,mCAAmC;AAEnE;;;AAGG;MACU,oCAAoC,CAAA;AAAjD,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAiI3D;IA/HE,MAAM,OAAO,CAAC,OAA+B,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;QAChC,MAAM,IAAI,GAAG,kCAAkC;;;AAI/C,QAAA,MAAM,qBAAqB,GAAG;YAC5B,QAAQ,EAAE,CAAC,iBAAiB,CAAC;AAC7B,YAAA,WAAW,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACxC;AACD,QAAA,MAAM,gBAAgB,GAAG;YACvB,QAAQ,EAAE,CAAC,iBAAiB,CAAC;AAC7B,YAAA,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B;QAED,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC;AACtD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,gBAAgB;AACvD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW;AACrD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;AAC1F,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,MAAM,EAAE,qBAAqB;AAC9B,aAAA;AACF,SAAA,CAAC;QAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAC/D,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC;AACrD,gBAAA;AACE,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,IAAI,EAAE,qCAAqC;oBAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,iBAAA;AACF,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC;AAC7C,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,gBAAgB;AACvD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW;AACrD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;AAC1F,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,aAAa;AACpD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW;AAClD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AAC3C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;AACvF,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,QAAQ;AAC/C,gBAAA,IAAI,EAAE,qDAAqD;AAC3D,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,MAAM,EAAE,gBAAgB;AACxB,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACF,SAAA,CAAC;;;QAIF,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AAC/D,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,YAAY;AACnD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW;AACjD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;AACtF,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,YAAY;AACnD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW;AACjD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;AACtF,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,iBAAiB;AACxD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW;AACtD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC/C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3F,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,aAAa;AACpD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW;AAClD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AAC3C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;AACvF,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,iBAAiB;AACxD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW;AACtD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC/C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3F,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,cAAc;AACrD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW;AACnD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI;AAC5C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;AACxF,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,gCAAgC,CAAC,iBAAiB;AACxD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW;AACrD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;AAC1F,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA;AACF,SAAA,CAAC;IACJ;AACD;AAED;;;;;;;AC7IA;AAEA;AAEA;;AAEG;MAEU,oDAAoD,CAAA;IAC/D,MAAM,MAAM,CAAC,OAA+C,EAAA;QAC1D,MAAM,IAAI,GAAG,kCAAkC;QAC/C,MAAM,MAAM,GAAG,4BAA4B;QAC3C,MAAM,CAAC,GAAG,wCAAwC;QAClD,MAAM,CAAC,GAAG,2BAA2B;QAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA,EAAG,CAAC,2BAA2B,EAAE,CAAA,EAAG,CAAC,CAAA,+BAAA,CAAiC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAEtI;AACG,aAAA,QAAQ,CACP,MAAM,CAAC,iBAAiB,CAAC,WAAW,EACpC,CAAA,EAAG,CAAC,CAAA,qCAAA,CAAuC,EAC3C,CAAA,EAAG,CAAC,CAAA,2CAAA,CAA6C,EACjD,EAAE,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AAErD,aAAA,aAAa,CACZ,IAAI,CAAC,mBAAmB,EACxB,CAAA,EAAG,CAAC,CAAA,2BAAA,CAA6B,EACjC,CAAA,EAAG,CAAC,CAAA,iCAAA,CAAmC;AAExC,aAAA,aAAa;AACb,aAAA,QAAQ,EAAE;IACf;8GAvBW,oDAAoD,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApD,oDAAoD,EAAA,CAAA,CAAA;;2FAApD,oDAAoD,EAAA,UAAA,EAAA,CAAA;kBADhE;;;;;;;;ACtBD;AAKA;AAEA;AAEM,MAAO,6CAA8C,SAAQ,wBAAwB,CAAA;AAA3F,IAAA,WAAA,GAAA;;AACE,QAAA,IAAA,CAAA,QAAQ,GAAsB;AAC5B,YAAA;AACE,gBAAA,EAAE,EAAE,yBAAyB;AAC7B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;AAChD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW;AAC5D,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,EACvE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;qBACjD,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,6BAA6B;AACjC,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;AACpD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI;AAClD,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW;AAChE,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAC3E;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI;AAClD,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;qBACrD,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,yBAAyB;AAC7B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;AAChD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW;AAC5D,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,EACvE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC9C,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;qBACjD,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;AACzC,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW;AACvD,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAClE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;AACzC,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK;qBAC5C,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,+BAA+B;AACnC,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK;AACrD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI;AACnD,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,WAAW;AACjE,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAC5E;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI;AACnD,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK;qBACtD,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,qBAAqB;AACzB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK;AAC5C,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW;AACxD,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EACnE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK;qBAC7C,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,sBAAsB;AAC1B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK;AAC7C,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AAC3C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW;AACzD,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,0BAA0B,CACjC,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,EACpE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAC/H;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,0BAA0B;AAC9B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK;AACjD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC/C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW;AAC7D,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACxE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC/C,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK;qBAClD,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,0BAA0B;AAC9B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK;AACjD,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC/C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW;AAC7D,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACxE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC/C,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK;qBAClD,CACF;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,qBAAqB;AACzB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK;AAC5C,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,gBAAA,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW;AACxD,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,OAAO,EAAE,0BAA0B,CACjC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EACnE;AACE,wBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,wBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,wBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK;qBAC7C,CACF;AACF,iBAAA;AACF,aAAA;SACF;IACH;AAAC;AAED;;;;;;;AC9LA;AAmBA;AAEA;AAEA,MAAM,sBAAsB,GAAG,0CAA0C;AACzE,MAAM,sBAAsB,GAAG,oCAAoC;AACnE,MAAM,iBAAiB,GAAG,gCAAgC;AAC1D,MAAM,4BAA4B,GAAG,0CAA0C;AAE/E,MAAM,OAAO,GAAG,CAAC,UAAkB,KAAa,CAAA,GAAA,EAAM,UAAU,CAAA,GAAA,CAAK;AAErE,MAAM,oBAAoB,GAAG;AAC3B,IAAA,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC5C,IAAA,WAAW,EAAE,0BAA0B;AACvC,IAAA,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACnC,IAAA,gBAAgB,EAAE,+BAA+B;AACjD,IAAA,iBAAiB,EAAE,gCAAgC;AACnD,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,iBAAiB,EAAE,gCAAgC;AACnD,IAAA,iBAAiB,EAAE,gCAAgC;AACnD,IAAA,UAAU,EAAE,yBAAyB;AACrC,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,UAAU,EAAE,iCAAiC;CAC9C;AAED,MAAM,eAAe,GAAG;AACtB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;CAChC;AAED,MAAM,kBAAkB,GAAG;AACzB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,IAAI,EAAE,mBAAmB;AACzB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;CACnC;AAED;AAEA;;;AAGG;AACG,SAAU,0CAA0C,CACxD,MAAwC,EAAA;AAExC,IAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,MAAM;AAChF,IAAA,MAAM,YAAY,GAAG,mCAAmC,CAAC,gBAAgB;AACzE,IAAA,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,gBAAgB,CAAC,4BAA4B;IAEpG,OAAO;AACL,QAAA,aAAa,EAAE,6BAA6B;QAC5C,IAAI;QACJ,KAAK;QACL,WAAW;AACX,QAAA,SAAS,EAAE;AACT,YAAA;AACE,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,KAAK,EAAE,mBAAmB;AAC1B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACF,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA;AACE,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,mBAAmB;AAC1B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,KAAK,EAAE,oBAAoB;AAC3B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,KAAK,EAAE,oBAAoB;AAC3B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,uBAAuB;AAC7B,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AAChD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,KAAK,EAAE;AACL,YAAA,eAAe,EAAE,kBAAkB;AACnC,YAAA,UAAU,EAAE;AACV,gBAAA;AACE,oBAAA,EAAE,EAAE,kBAAkB;oBACtB,IAAI,EAAE,YAAY,CAAC,gBAAgB;AACnC,oBAAA,KAAK,EAAE,oBAAoB;AAC3B,oBAAA,MAAM,EAAE;AACN,wBAAA,WAAW,EAAE,0BAA0B;AACvC,wBAAA,YAAY,EAAE,2BAA2B;AAC1C,qBAAA;AACD,oBAAA,iBAAiB,EAAE;AACjB,wBAAA,gBAAgB,EAAE,cAAc;AACjC,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,qBAAqB;oBACzB,IAAI,EAAE,YAAY,CAAC,mBAAmB;AACtC,oBAAA,KAAK,EAAE,uBAAuB;AAC9B,oBAAA,MAAM,EAAE;AACN,wBAAA,QAAQ,EAAE,yDAAyD;AACpE,qBAAA;AACD,oBAAA,iBAAiB,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE;AAChD,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,+BAA+B;AACnC,oBAAA,IAAI,EAAE,8BAA8B;AACpC,oBAAA,KAAK,EAAE,wBAAwB;AAC/B,oBAAA,MAAM,EAAE;AACN,wBAAA,OAAO,EAAE,iEAAiE;AAC1E,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,qBAAqB;AACzB,oBAAA,IAAI,EAAE,8BAA8B;AACpC,oBAAA,KAAK,EAAE,cAAc;AACrB,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,sCAAsC;AAC7C,wBAAA,WAAW,EAAE,yDAAyD;AACtE,wBAAA,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAChD,wBAAA,OAAO,EAAE,sBAAsB;AAC/B,wBAAA,OAAO,EAAE,oBAAoB;AAC7B,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;AACvC,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,2BAA2B;oBAC/B,IAAI,EAAE,YAAY,CAAC,yBAAyB;AAC5C,oBAAA,KAAK,EAAE,0BAA0B;AACjC,oBAAA,MAAM,EAAE;AACN,wBAAA,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC7C,qBAAA;AACD,oBAAA,iBAAiB,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE;AAClD,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,+BAA+B;AACnC,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,KAAK,EAAE,yCAAyC;AAChD,oBAAA,MAAM,EAAE;AACN,wBAAA,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACnC,wBAAA,OAAO,EAAE,cAAc;AACvB,wBAAA,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC5C,wBAAA,iBAAiB,EAAE,OAAO,CAAC,4BAA4B,CAAC;AACzD,qBAAA;AACD,oBAAA,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE;AACrD,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,oBAAoB;AACxB,oBAAA,IAAI,EAAE,8BAA8B;AACpC,oBAAA,KAAK,EAAE,mBAAmB;AAC1B,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,sCAAsC;AAC7C,wBAAA,WAAW,EAAE,sDAAsD;AACnE,wBAAA,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAChD,wBAAA,OAAO,EAAE,sBAAsB;AAC/B,wBAAA,OAAO,EAAE,oBAAoB;AAC7B,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE;AAC1C,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,yCAAyC;AAC7C,oBAAA,IAAI,EAAE,8BAA8B;AACpC,oBAAA,KAAK,EAAE,mCAAmC;AAC1C,oBAAA,MAAM,EAAE;AACN,wBAAA,OAAO,EAAE,0FAA0F;AACnG,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,wBAAwB;oBAC5B,IAAI,EAAE,YAAY,CAAC,2BAA2B;AAC9C,oBAAA,KAAK,EAAE,0BAA0B;AACjC,oBAAA,MAAM,EAAE;AACN,wBAAA,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC7C,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,0BAA0B;oBAC9B,IAAI,EAAE,YAAY,CAAC,wBAAwB;AAC3C,oBAAA,KAAK,EAAE,wBAAwB;AAC/B,oBAAA,MAAM,EAAE;AACN,wBAAA,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC7C,qBAAA;AACD,oBAAA,iBAAiB,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE;AACtD,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,kCAAkC;AACtC,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,KAAK,EAAE,2CAA2C;AAClD,oBAAA,MAAM,EAAE;AACN,wBAAA,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACnC,wBAAA,OAAO,EAAE,gBAAgB;AACzB,wBAAA,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC;AAC5C,wBAAA,iBAAiB,EAAE,OAAO,CAAC,4BAA4B,CAAC;AACzD,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE;AAC7G,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;AAC5D,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;AACzD,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE;AAC7D,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;AACzD,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5D,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;AAC/C,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE;AAClE,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE;AACrD,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE,IAAI,EAAE,MAAM,EAAE;AAClE,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;AACzD,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,MAAM,EAAE;AACtE,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;AAC9C,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE;AACpE,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE;AAClD,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE;AAC/D,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;AACpD,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjE,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE;AACnE,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,IAAI,EAAE,MAAM,EAAE;AAChF,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;AAC9C,iBAAA;AACD,gBAAA;oBACE,MAAM,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,MAAM,EAAE;AACjE,oBAAA,MAAM,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE;AAC5D,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AACH;AAEO,MAAM,8BAA8B,GAAG;AAE9C;;ACrWA;AAUA;AAEA;AAEA,MAAM,CAAC,GAAG,yBAAyB;AAEnC;AAEA;AAEA;AACO,MAAM,oCAAoC,GAA0B,0CAA0C,CAAC;AACpH,IAAA,IAAI,EAAE,8BAA8B;AACpC,IAAA,KAAK,EAAE,CAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;AACnD,IAAA,WAAW,EAAE,CAAC,CACZ,8GAA8G,EAC9G,kGAAkG,CACnG;AACD,IAAA,cAAc,EAAE,yBAAyB;AACzC,IAAA,mBAAmB,EAAE,4BAA4B;AAClD,CAAA;AAID;;AClCA;;AAEG;;"}
|