@acorex/platform 18.2.2 → 18.2.3

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.
Files changed (311) hide show
  1. package/common/lib/app/operators.d.ts +1 -0
  2. package/common/lib/common.module.d.ts +6 -7
  3. package/common/lib/data/filter-middleware.service.d.ts +28 -0
  4. package/common/lib/data/index.d.ts +3 -1
  5. package/common/lib/data/operators.service.d.ts +14 -0
  6. package/common/lib/layout/index.d.ts +0 -2
  7. package/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.d.ts +0 -2
  8. package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +1 -0
  9. package/common/lib/schema/widgets/email/email-widget-edit.component.d.ts +0 -2
  10. package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +0 -2
  11. package/common/lib/schema/widgets/text/text-widget-edit.component.d.ts +0 -2
  12. package/common/lib/settings/setting-definition.provider.d.ts +6 -6
  13. package/common/lib/settings/settings.types.d.ts +18 -9
  14. package/esm2022/common/lib/app/operators.mjs +16 -1
  15. package/esm2022/common/lib/common.module.mjs +23 -12
  16. package/esm2022/common/lib/data/filter-middleware.service.mjs +53 -0
  17. package/esm2022/common/lib/data/index.mjs +4 -2
  18. package/esm2022/common/lib/data/operators.service.mjs +15 -0
  19. package/esm2022/common/lib/layout/index.mjs +1 -3
  20. package/esm2022/common/lib/layout/menu/menu.service.mjs +2 -2
  21. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +7 -8
  22. package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +47 -25
  23. package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +6 -7
  24. package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +6 -7
  25. package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +6 -7
  26. package/esm2022/common/lib/settings/setting-definition.provider.mjs +141 -187
  27. package/esm2022/common/lib/settings/settings.types.mjs +2 -7
  28. package/esm2022/common/lib/utils/data-generator.mjs +1 -1
  29. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  30. package/esm2022/layout/builder/lib/builder/widget.types.mjs +11 -6
  31. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +2 -7
  32. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +8 -6
  33. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +4 -3
  34. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +9 -7
  35. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +4 -3
  36. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +3 -3
  37. package/esm2022/layout/entity/lib/entity.module.mjs +12 -1
  38. package/esm2022/layout/setting/acorex-platform-layout-setting.mjs +5 -0
  39. package/esm2022/layout/setting/index.mjs +2 -0
  40. package/esm2022/layout/setting/lib/setting.viewmodel.mjs +50 -0
  41. package/esm2022/layouts/lib/admin/admin.module.mjs +17 -5
  42. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +3 -3
  43. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +4 -3
  44. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +8 -23
  45. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
  46. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +4 -5
  47. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +4 -8
  48. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +12 -10
  49. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +3 -3
  50. package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +1 -3
  51. package/esm2022/themes/default/index.mjs +2 -1
  52. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +18 -24
  53. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +6 -9
  54. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
  55. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -8
  56. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +6 -8
  57. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +11 -38
  58. package/esm2022/themes/default/lib/layouts/setting-layout/convert-setting-data.mjs +49 -0
  59. package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +3 -0
  60. package/esm2022/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.mjs +104 -0
  61. package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.mjs +44 -0
  62. package/esm2022/themes/shared/lib/services/theme.service.mjs +183 -19
  63. package/esm2022/widgets/lib/properties/layout.props.mjs +13 -13
  64. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.mjs +20 -0
  65. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.mjs +18 -0
  66. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +24 -0
  67. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.mjs +20 -0
  68. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.mjs +19 -0
  69. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.mjs +22 -0
  70. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +31 -0
  71. package/esm2022/widgets/lib/widgets/advance/cron-job/index.mjs +8 -0
  72. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +4 -9
  73. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +2 -9
  74. package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +6 -7
  75. package/esm2022/widgets/lib/widgets.module.mjs +5 -2
  76. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs} +3 -4
  77. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs.map → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs.map} +1 -1
  78. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs → acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs} +4 -5
  79. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs.map +1 -0
  80. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs → acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs} +3 -4
  81. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs.map +1 -0
  82. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs} +4 -5
  83. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs.map → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs.map} +1 -1
  84. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs → acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs} +4 -5
  85. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs.map +1 -0
  86. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs} +4 -5
  87. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs.map → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs.map} +1 -1
  88. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs → acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs} +4 -5
  89. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs.map +1 -0
  90. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs → acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs} +10 -13
  91. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs.map +1 -0
  92. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs → acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs} +49 -28
  93. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs.map +1 -0
  94. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs} +4 -5
  95. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs.map → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs.map} +1 -1
  96. package/fesm2022/{acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs → acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs} +4 -5
  97. package/fesm2022/acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs.map +1 -0
  98. package/fesm2022/{acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs → acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs} +9 -11
  99. package/fesm2022/acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs.map +1 -0
  100. package/fesm2022/{acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs} +4 -5
  101. package/fesm2022/{acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs.map → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs.map} +1 -1
  102. package/fesm2022/{acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs → acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs} +4 -5
  103. package/fesm2022/acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs.map +1 -0
  104. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs} +4 -5
  105. package/fesm2022/{acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs.map → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs.map} +1 -1
  106. package/fesm2022/{acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs → acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs} +4 -5
  107. package/fesm2022/acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs.map +1 -0
  108. package/fesm2022/{acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs} +4 -5
  109. package/fesm2022/{acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs.map → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs.map} +1 -1
  110. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs} +3 -4
  111. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs.map → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs.map} +1 -1
  112. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs → acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs} +4 -5
  113. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs.map +1 -0
  114. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs} +3 -4
  115. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs.map → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs.map} +1 -1
  116. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs → acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs} +4 -5
  117. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs.map +1 -0
  118. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs → acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs} +4 -5
  119. package/fesm2022/acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs.map +1 -0
  120. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs} +4 -5
  121. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs.map → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs.map} +1 -1
  122. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs → acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs} +3 -4
  123. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs.map +1 -0
  124. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs → acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs} +4 -5
  125. package/fesm2022/acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs.map +1 -0
  126. package/fesm2022/{acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs → acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs} +4 -5
  127. package/fesm2022/acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs.map +1 -0
  128. package/fesm2022/{acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs → acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs} +4 -5
  129. package/fesm2022/acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs.map +1 -0
  130. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs → acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs} +4 -5
  131. package/fesm2022/acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs.map +1 -0
  132. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs → acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs} +4 -5
  133. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs.map +1 -0
  134. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs} +4 -5
  135. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs.map → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs.map} +1 -1
  136. package/fesm2022/{acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs → acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs} +4 -5
  137. package/fesm2022/acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs.map +1 -0
  138. package/fesm2022/{acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs → acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs} +4 -5
  139. package/fesm2022/acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs.map +1 -0
  140. package/fesm2022/{acorex-platform-common-number-widget-view.component-ROrdklif.mjs → acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs} +4 -5
  141. package/fesm2022/acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs.map +1 -0
  142. package/fesm2022/{acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs} +4 -5
  143. package/fesm2022/{acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs.map → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs.map} +1 -1
  144. package/fesm2022/{acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs → acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs} +4 -5
  145. package/fesm2022/acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs.map +1 -0
  146. package/fesm2022/{acorex-platform-common-password-widget-view.component-rpjAeimk.mjs → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs} +4 -4
  147. package/fesm2022/{acorex-platform-common-password-widget-view.component-rpjAeimk.mjs.map → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs.map} +1 -1
  148. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs} +4 -5
  149. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs.map → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs.map} +1 -1
  150. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs → acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs} +8 -10
  151. package/fesm2022/acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs.map +1 -0
  152. package/fesm2022/{acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs} +4 -5
  153. package/fesm2022/{acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs.map → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs.map} +1 -1
  154. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs} +4 -5
  155. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs.map → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs.map} +1 -1
  156. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs → acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs} +4 -5
  157. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs.map +1 -0
  158. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs → acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs} +4 -5
  159. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs.map +1 -0
  160. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs} +4 -5
  161. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs.map → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs.map} +1 -1
  162. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs → acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs} +4 -5
  163. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs.map +1 -0
  164. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs → acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs} +3 -4
  165. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs.map +1 -0
  166. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs → acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs} +4 -5
  167. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs.map +1 -0
  168. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs} +3 -4
  169. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs.map} +1 -1
  170. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs → acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs} +4 -5
  171. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs.map +1 -0
  172. package/fesm2022/{acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs → acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs} +4 -5
  173. package/fesm2022/acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs.map +1 -0
  174. package/fesm2022/{acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs} +4 -5
  175. package/fesm2022/{acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs.map → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs.map} +1 -1
  176. package/fesm2022/{acorex-platform-common-text-widget-edit.component-feJTTnye.mjs → acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs} +9 -12
  177. package/fesm2022/acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs.map +1 -0
  178. package/fesm2022/{acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs} +4 -5
  179. package/fesm2022/{acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs.map → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs.map} +1 -1
  180. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs} +4 -5
  181. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs.map → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs.map} +1 -1
  182. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs → acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs} +4 -5
  183. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs.map +1 -0
  184. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs} +4 -5
  185. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs.map → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs.map} +1 -1
  186. package/fesm2022/acorex-platform-common.mjs +835 -974
  187. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  188. package/fesm2022/acorex-platform-layout-builder.mjs +10 -4
  189. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  190. package/fesm2022/acorex-platform-layout-designer.mjs +1 -6
  191. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  192. package/fesm2022/acorex-platform-layout-entity.mjs +28 -13
  193. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  194. package/fesm2022/acorex-platform-layout-setting.mjs +57 -0
  195. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -0
  196. package/fesm2022/acorex-platform-layouts.mjs +37 -46
  197. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  198. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs} +6 -6
  199. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs.map} +1 -1
  200. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs +301 -0
  201. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs.map +1 -0
  202. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs} +6 -6
  203. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs.map} +1 -1
  204. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs +148 -0
  205. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs.map +1 -0
  206. package/fesm2022/acorex-platform-themes-default.mjs +219 -77
  207. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  208. package/fesm2022/acorex-platform-themes-shared.mjs +184 -20
  209. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  210. package/fesm2022/{acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs → acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs} +2 -1
  211. package/fesm2022/{acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs.map → acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs.map} +1 -1
  212. package/fesm2022/acorex-platform-widgets.mjs +180 -34
  213. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  214. package/layout/builder/lib/builder/widget.types.d.ts +1 -2
  215. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +1 -0
  216. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +2 -2
  217. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -0
  218. package/layout/setting/README.md +4 -0
  219. package/layout/setting/index.d.ts +1 -0
  220. package/layout/setting/lib/setting.viewmodel.d.ts +13 -0
  221. package/layouts/lib/admin/admin.module.d.ts +6 -3
  222. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +42 -9
  223. package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
  224. package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +0 -2
  225. package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +4 -2
  226. package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +0 -1
  227. package/package.json +18 -18
  228. package/themes/default/index.d.ts +1 -0
  229. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +43 -8
  230. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +42 -4
  231. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
  232. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +42 -3
  233. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +42 -2
  234. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +42 -11
  235. package/themes/default/lib/layouts/setting-layout/convert-setting-data.d.ts +21 -0
  236. package/themes/default/lib/layouts/setting-layout/index.d.ts +2 -0
  237. package/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.d.ts +24 -0
  238. package/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.d.ts +20 -0
  239. package/themes/shared/lib/components/theme-slot.component.d.ts +31 -5
  240. package/themes/shared/lib/services/theme.service.d.ts +45 -5
  241. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +6 -0
  242. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +6 -0
  243. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +8 -0
  244. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +6 -0
  245. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +6 -0
  246. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +7 -0
  247. package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +7 -0
  248. package/widgets/lib/widgets/advance/cron-job/index.d.ts +7 -0
  249. package/common/lib/layout/layout.service.d.ts +0 -19
  250. package/common/lib/layout/theme/store/admin-layout.actions.d.ts +0 -7
  251. package/common/lib/layout/theme/store/admin-layout.effects.d.ts +0 -9
  252. package/common/lib/layout/theme/store/admin-layout.reducers.d.ts +0 -19
  253. package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +0 -4
  254. package/common/lib/layout/theme/store/admin-layout.state.d.ts +0 -11
  255. package/common/lib/layout/theme/store/index.d.ts +0 -5
  256. package/esm2022/common/lib/layout/layout.service.mjs +0 -79
  257. package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +0 -11
  258. package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +0 -21
  259. package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +0 -64
  260. package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +0 -7
  261. package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +0 -13
  262. package/esm2022/common/lib/layout/theme/store/index.mjs +0 -6
  263. package/esm2022/mocks/acorex-platform-mocks.mjs +0 -5
  264. package/esm2022/mocks/index.mjs +0 -7
  265. package/esm2022/mocks/lib/mocks.module.mjs +0 -15
  266. package/esm2022/mocks/lib/services/mocker.service.mjs +0 -114
  267. package/esm2022/mocks/lib/storage/storage.mock.service.mjs +0 -183
  268. package/fesm2022/acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs.map +0 -1
  269. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs.map +0 -1
  270. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs.map +0 -1
  271. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs.map +0 -1
  272. package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs.map +0 -1
  273. package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs.map +0 -1
  274. package/fesm2022/acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs.map +0 -1
  275. package/fesm2022/acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs.map +0 -1
  276. package/fesm2022/acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs.map +0 -1
  277. package/fesm2022/acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs.map +0 -1
  278. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs.map +0 -1
  279. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs.map +0 -1
  280. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs.map +0 -1
  281. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs.map +0 -1
  282. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs.map +0 -1
  283. package/fesm2022/acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs.map +0 -1
  284. package/fesm2022/acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs.map +0 -1
  285. package/fesm2022/acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs.map +0 -1
  286. package/fesm2022/acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs.map +0 -1
  287. package/fesm2022/acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs.map +0 -1
  288. package/fesm2022/acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs.map +0 -1
  289. package/fesm2022/acorex-platform-common-number-widget-view.component-ROrdklif.mjs.map +0 -1
  290. package/fesm2022/acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs.map +0 -1
  291. package/fesm2022/acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs.map +0 -1
  292. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs.map +0 -1
  293. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs.map +0 -1
  294. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs.map +0 -1
  295. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs.map +0 -1
  296. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs.map +0 -1
  297. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs.map +0 -1
  298. package/fesm2022/acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs.map +0 -1
  299. package/fesm2022/acorex-platform-common-text-widget-edit.component-feJTTnye.mjs.map +0 -1
  300. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs.map +0 -1
  301. package/fesm2022/acorex-platform-mocks.mjs +0 -319
  302. package/fesm2022/acorex-platform-mocks.mjs.map +0 -1
  303. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs +0 -306
  304. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs.map +0 -1
  305. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs +0 -150
  306. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs.map +0 -1
  307. package/mocks/README.md +0 -3
  308. package/mocks/index.d.ts +0 -3
  309. package/mocks/lib/mocks.module.d.ts +0 -7
  310. package/mocks/lib/services/mocker.service.d.ts +0 -29
  311. package/mocks/lib/storage/storage.mock.service.d.ts +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-common.mjs","sources":["../../../../libs/platform/common/src/lib/app/app-startup.service.ts","../../../../libs/platform/common/src/lib/app/application.types.ts","../../../../libs/platform/common/src/lib/app/operators.ts","../../../../libs/platform/common/src/lib/data/data-provider.types.ts","../../../../libs/platform/common/src/lib/utils/clipboard-service.ts","../../../../libs/platform/common/src/lib/utils/data-generator.ts","../../../../libs/platform/common/src/lib/utils/pdf.service.ts","../../../../libs/platform/common/src/lib/data/dexie-storage.service.ts","../../../../libs/platform/common/src/lib/data/entity-storage-service.ts","../../../../libs/platform/common/src/lib/data/entity-data-seeder.ts","../../../../libs/platform/common/src/lib/errors/error-handler-registry.service.ts","../../../../libs/platform/common/src/lib/errors/global-error-handler.ts","../../../../libs/platform/common/src/lib/layout/grid-layout/grid-layout.directive.ts","../../../../libs/platform/common/src/lib/layout/layout.service.ts","../../../../libs/platform/common/src/lib/layout/sticky.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-registery.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-loader.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.types.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.html","../../../../libs/platform/common/src/lib/layout/menu/menu.provider.ts","../../../../libs/platform/common/src/lib/store/common.actions.ts","../../../../libs/platform/common/src/lib/settings/settings.types.ts","../../../../libs/platform/common/src/lib/settings/setting-definition.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.service.ts","../../../../libs/platform/common/src/lib/store/common.effects.ts","../../../../libs/platform/common/src/lib/layout/menu/menu.service.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/footer-text-slot.component.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/navbar-slot.component.ts","../../../../libs/platform/common/src/lib/layout/theme/store/admin-layout.actions.ts","../../../../libs/platform/common/src/lib/layout/theme/store/admin-layout.effects.ts","../../../../libs/platform/common/src/lib/layout/theme/store/admin-layout.state.ts","../../../../libs/platform/common/src/lib/layout/theme/store/admin-layout.reducers.ts","../../../../libs/platform/common/src/lib/layout/theme/store/admin-layout.selectors.ts","../../../../libs/platform/common/src/lib/workflows/common.workflow.ts","../../../../libs/platform/common/src/lib/workflows/error-handler.ts","../../../../libs/platform/common/src/lib/common.module.ts","../../../../libs/platform/common/src/lib/configs/app.config.ts","../../../../libs/platform/common/src/lib/configs/config.types.ts","../../../../libs/platform/common/src/lib/schema/schema-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-token.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-column-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-filter-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-base.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-renderer.ts","../../../../libs/platform/common/src/lib/schema/schema.module.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.class.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.loader.ts","../../../../libs/platform/common/src/lib/schema/entity/entity-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widgets/common-widgets.module.ts","../../../../libs/platform/common/src/acorex-platform-common.ts"],"sourcesContent":["import { APP_INITIALIZER, Injectable, Provider } from '@angular/core';\n\nexport interface AXPStartUpTask {\n name: string;\n statusText: string;\n run: () => Promise<void>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPAppStartUpService {\n private tasks: AXPStartUpTask[] = [];\n\n registerTask(task: AXPStartUpTask) {\n this.tasks.push(task);\n }\n\n async runAllTasks() {\n for (const task of this.tasks) {\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n\n private updateStatus(status: string) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n}\n\nfunction initAppFactory(appInitService: AXPAppStartUpService) {\n return () => appInitService.runAllTasks();\n}\n\nexport const AXPAppStartUpProvider: Provider = {\n provide: APP_INITIALIZER,\n useFactory: initAppFactory,\n deps: [AXPAppStartUpService],\n multi: true,\n};\n","import { AXDataSourceOperator, AXStyleColorType } from '@acorex/components/common';\nimport { AXPOptionsData, AXPValidationRules } from '@acorex/platform/core';\nimport { AXPWidgetTypesMap } from '@acorex/platform/layout/builder';\nimport { kebabCase } from 'lodash-es';\nimport { AXPGridLayoutOptions } from '../layout';\n\nexport interface AXEntityPropertyWidget {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path: string;\n id?: string;\n formula?: string;\n children?: AXEntityPropertyWidget[];\n mode: 'view' | 'edit' | 'designer';\n options?: Record<string, any>;\n triggers?: { event: string; action: string; disabled?: boolean }[];\n}\n\nexport enum AXPRelationshipKind {\n Association,\n Composition,\n Aggregation,\n}\n\nexport enum AXPRelationshipCardinality {\n OneToOne,\n OneToMany,\n ManyToMany,\n}\n\nexport interface AXPRelationship {\n id: string;\n from: string;\n to: string;\n kind: AXPRelationshipKind;\n cardinality: AXPRelationshipCardinality;\n}\n\nexport enum AXPEntityCommandScope {\n TypeLevel = 'typeLevel',\n Selected = 'selected',\n Individual = 'individual',\n Section = 'section',\n}\n\nexport enum AXPEntityQueryType {\n Single = 'single',\n List = 'list',\n}\n\nexport interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {\n label?: {\n visible?: boolean;\n };\n order?: number;\n}\n\nexport interface AXPEntityPropertyGroup {\n id: string;\n title: string;\n description?: string;\n permissions?: string[];\n}\n\nexport interface AXPEntityPropertyView {\n name: string;\n permissions?: string[];\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView {}\n\nexport interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {\n defaultValue?: any;\n}\n\nexport interface AXPEntitySectionView {\n id: string;\n description?: string;\n order?: number;\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityProperty {\n name: string;\n title: string;\n description?: string;\n groupId?: string;\n reference?: {\n relationId: string;\n };\n schema: {\n dataType: string;\n nullable?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n unique?: {\n enabled: boolean;\n };\n interface?: Partial<AXEntityPropertyWidget>;\n };\n options?: {\n filter?: {\n advance?: {\n enabled?: boolean;\n widget?: AXPOptionsData;\n };\n inline?: {\n enabled?: boolean;\n };\n };\n sort?: {\n enabled?: boolean;\n };\n };\n validations?: AXPValidationRules;\n}\n\nexport interface AXPEntityTableColumn {\n name: string;\n title?: string;\n sort?: {\n enabled?: boolean;\n dir?: 'asc' | 'desc';\n };\n options?: {\n visible?: boolean;\n width?: string;\n dataPath?: string;\n [name: string]: any;\n };\n}\n\nexport interface AXPEntityCommand {\n execute: string | Function; // As runnable expression\n permissions?: string[];\n}\n\nexport interface AXPEntityQuery {\n execute: string | Function; // As runnable expression\n type: AXPEntityQueryType;\n}\n\nexport interface AXPEntityHistory {}\n\nexport interface AXPEntityAction {\n permissions?: string[];\n command: string;\n title: string;\n type: 'create' | 'update' | 'delete' | 'print' | 'confirm' | 'report' | 'info' | 'view';\n priority: 'primary' | 'secondary';\n color?: 'primary' | 'danger' | 'success' | 'warning';\n separated?: boolean;\n icon?: string;\n scope: AXPEntityCommandScope;\n}\n\nexport interface AXPEntity {\n module: string;\n name: string;\n source: string;\n title: string;\n formats: {\n individual: string;\n plural: string;\n lookup?: string;\n };\n relatedEntities?: AXPRelatedEntity[];\n groups?: AXPEntityPropertyGroup[];\n properties: AXPEntityProperty[];\n columns?: AXPEntityTableColumn[];\n commands?: {\n create: AXPEntityCommand | undefined;\n update?: AXPEntityCommand | undefined;\n delete?: AXPEntityCommand | undefined;\n [name: string]: AXPEntityCommand | undefined;\n };\n queries: {\n byKey: AXPEntityQuery;\n list?: AXPEntityQuery;\n lookup?: AXPEntityQuery;\n history?: AXPEntityQuery;\n comments?: AXPEntityQuery;\n [name: string]: AXPEntityQuery | undefined;\n };\n validations?: AXPValidationRules;\n interfaces?: {\n master?: {\n single?: AXPEntityMasterSingleLayoutView;\n list?: AXPEntityMasterListView;\n create?: AXPEntityMasterCreateLayoutView;\n update?: AXPEntityMasterUpdateLayoutView;\n };\n detail?: {\n list?: AXPEntityDetailListView;\n };\n };\n}\n\nexport function getEntityInfo(entity: AXPEntity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\n\nexport interface AXPRelatedEntity {\n entity: string;\n title?: string;\n columns?: string[];\n conditions?: AXPQueryFilter[];\n // sorts?: AXPQuerySort[];\n}\n\nexport interface AXPAggregate {\n id: string;\n name: string;\n title: string;\n entities: AXPEntity[];\n}\n\nexport interface AXPModule {\n name: string;\n title: string;\n aggregates: AXPAggregate[];\n relationships?: AXPRelationship[];\n}\n\nexport interface AXPApplication {\n name: string;\n title: string;\n modules: AXPModule[];\n}\n\nexport interface AXPEntityMasterLayoutView {\n title?: string;\n sections: AXPEntitySectionView[];\n properties?: AXPEntityPropertyView[];\n}\nexport interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {\n steps?: {\n id: string;\n title: string;\n description?: string;\n };\n}\n\nexport interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {}\n\nexport interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {\n title: string;\n description?: string;\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPEntityMasterListView {\n title?: string;\n description?: string;\n actions?: AXPEntityAction[];\n views: AXPQueryView[];\n}\n\nexport interface AXPEntityDetailListView {\n title?: string;\n description?: string;\n columns: AXPEntityTableColumn[];\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPQueryView {\n name: string;\n fixed: boolean;\n title: string;\n columns: string[];\n conditions: AXPQueryFilter[];\n sorts: AXPQuerySort[];\n}\n\nexport interface AXPQueryFilter {\n name: string; // entity property name\n operator: AXDataSourceOperator;\n value: any;\n}\n\nexport interface AXPQuerySort {\n name: string; // entity property name\n dir: 'asc' | 'desc';\n}\n\nexport function resolveActionLook(tr: AXPEntityAction): { icon: string; color: AXStyleColorType } {\n switch (tr.type) {\n case 'create':\n return { color: 'primary', icon: 'fa-solid fa-add' };\n case 'view':\n return { color: 'primary', icon: 'fa-solid fa-eye' };\n case 'info':\n return { color: 'primary', icon: 'fa-solid fa-info' };\n case 'delete':\n return { color: 'danger', icon: 'fa-solid fa-trash' };\n case 'print':\n return { color: 'secondary', icon: 'fa-solid fa-print' };\n case 'confirm':\n return { color: 'success', icon: 'fa-solid fa-check' };\n default:\n return { color: 'primary', icon: '' };\n }\n}\n","export interface AXPFilterOperator {\n name: string;\n title: string;\n hasValue: boolean;\n}\n\nexport const EQ_OPER: AXPFilterOperator = { name: 'equal', title: 'Equal', hasValue: true };\nexport const NOT_EQ_OPER: AXPFilterOperator = { name: 'notEqual', title: 'Not Equal', hasValue: true };\nexport const GT_OPER: AXPFilterOperator = { name: 'greaterThan', title: 'Greater Than', hasValue: true };\nexport const LT_OPER: AXPFilterOperator = { name: 'lessThan', title: 'Less Than', hasValue: true };\nexport const GTE_OPER: AXPFilterOperator = {\n name: 'greaterThanOrEqual',\n title: 'Greater Than or Equal',\n hasValue: true,\n};\nexport const LTE_OPER: AXPFilterOperator = { name: 'lessThanOrEqual', title: 'Less Than or Equal', hasValue: true };\nexport const CONTAINS_OPER: AXPFilterOperator = { name: 'contains', title: 'Contains', hasValue: true };\nexport const NOT_CONTAINS_OPER: AXPFilterOperator = { name: 'notContains', title: 'Does Not Contain', hasValue: true };\nexport const STARTS_WITH_OPER: AXPFilterOperator = { name: 'startsWith', title: 'Starts With', hasValue: true };\nexport const ENDS_WITH_OPER: AXPFilterOperator = { name: 'endsWith', title: 'Ends With', hasValue: true };\nexport const IS_EMPTY_OPER: AXPFilterOperator = { name: 'isEmpty', title: 'Is Empty', hasValue: false };\nexport const IS_NOT_EMPTY_OPER: AXPFilterOperator = { name: 'isNotEmpty', title: 'Is Not Empty', hasValue: false };\nexport const BETWEEN_OPER: AXPFilterOperator = { name: 'between', title: 'Between', hasValue: true };\n\nexport const STRING_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const NUMBER_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n BETWEEN_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const BOOLEAN_OPERATORS = [EQ_OPER];\n\nexport const DATE_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n","export abstract class AXPDataProvider {\n abstract insertOne(entity: any, entityItem: any): Promise<any>;\n abstract insertMany(entity: any, entityList: any): Promise<any>;\n abstract getOne(entity: any, id: string): Promise<any>;\n abstract getMany(entity: any, params?: any): Promise<any>;\n abstract updateOne(entity: any, id?: string, data?: { [key: string]: any }): Promise<any>;\n abstract deleteOne(entity: any, id: string): Promise<any>;\n abstract getFirst(entity: any): Promise<any>;\n abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;\n abstract updateFile(id:string,file: File, title: string, customUrl?: string): Promise<string>;\n abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;\n abstract viewFile(id: string, name: string): Promise<Blob>;\n abstract downloadFile(id: string, name: string): Promise<Blob>;\n}\n","import { AXToastService } from '@acorex/components/toast';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPClipBoardService {\n private toast = inject(AXToastService);\n\n public copy(title: string, value: string) {\n const copyText = document.createElement('input');\n copyText.type = 'text';\n copyText.select();\n copyText.setSelectionRange(0, 99999); // For mobile devices\n copyText.remove();\n navigator.clipboard.writeText(value);\n this.toast.success(`${title} copied!`);\n }\n\n}","export class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0]\n if (args.length == 2) {\n min = args[0]\n max = args[1]\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: any[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n\n static array<T>(length: number = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: any[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items: T[] = args[0];\n const count: number = args[1] ?? 1\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(): string {\n const color = Math.floor(Math.random() * 16777215).toString(16);\n return `#${color.padStart(6, '0')}`;\n }\n\n static alphanumeric(length: number = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: any[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n } else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['New York', 'Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n\n\n\n\n}\n","// AXPPdfService\nimport { inject, Injectable, RendererFactory2 } from '@angular/core';\n\nexport enum AXPPdfPageSize {\n A4 = 'a4',\n A5 = 'a5',\n Letter = 'letter',\n Legal = 'legal',\n Custom = 'custom' // Handle custom sizes\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPPdfService {\n private renderer = inject(RendererFactory2).createRenderer(null, null);\n\n async generatePdfBlob(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<string> {\n const { jsPDF } = await import('jspdf');\n const html2canvas = (await import('html2canvas')).default;\n\n const element = typeof div === 'string' ? document.getElementById(div) : div;\n\n if (!element) {\n console.error('Element not found.');\n return Promise.reject('Element not found.');\n }\n\n const { pageSize = AXPPdfPageSize.A4 } = options;\n let pdf;\n\n if (typeof pageSize === 'string' && pageSize !== AXPPdfPageSize.Custom) {\n pdf = new jsPDF({\n orientation: 'portrait',\n format: pageSize\n });\n } else if (typeof pageSize !== 'string') {\n const { width, height } = pageSize;\n pdf = new jsPDF({\n orientation: 'portrait',\n unit: 'pt',\n format: [width, height]\n });\n } else {\n return Promise.reject(\"Invalid page size.\");\n }\n\n const canvas = await html2canvas(element);\n const imageData = canvas.toDataURL('image/png');\n const imgProps = pdf.getImageProperties(imageData);\n const pdfWidth = pdf.internal.pageSize.getWidth();\n const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\n\n pdf.addImage(imageData, 'PNG', 0, 0, pdfWidth, pdfHeight);\n return pdf.output('bloburl') as any as string;\n }\n\n async printPdf(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<void> {\n const blobUrl = await this.generatePdfBlob(div, options).catch(err => {\n console.error('Failed to generate PDF', err);\n return null;\n });\n\n if (!blobUrl) return;\n\n const iframe = this.renderer.createElement('iframe');\n this.renderer.setStyle(iframe, 'display', 'none');\n this.renderer.appendChild(document.body, iframe);\n\n iframe.src = blobUrl;\n iframe.onload = () => {\n setTimeout(() => {\n iframe.contentWindow.print();\n }, 1000);\n };\n\n // Add a button or some UI element that allows the user to manually signal they are done printing\n // const finishButton = this.renderer.createElement('button');\n // this.renderer.setProperty(finishButton, 'innerText', 'Finish Printing');\n // this.renderer.listen(finishButton, 'click', () => {\n // this.renderer.removeChild(document.body, iframe);\n // this.renderer.removeChild(document.body, finishButton);\n // });\n // this.renderer.appendChild(document.body, finishButton);\n }\n}\n","import { applyFilterArray, applySortArray } from '@acorex/platform/core';\nimport Dexie from 'dexie';\nimport { AXPDataGenerator } from '../utils';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\nimport { AXPEntityStorageService } from './entity-storage-service';\n\nexport class AXPDexieEntityStorageService extends Dexie implements AXPEntityStorageService<string, any> {\n constructor() {\n super('ACoreXPlatform');\n this.version(1).stores({\n 'entity-store': '++id, entityName, [entityName+id]',\n });\n }\n\n get dbName(): string {\n return 'ACoreXPlatform';\n }\n\n async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n const exists = await this.table('entity-store').where({ entityName }).count();\n if (exists === 0) {\n await this.table('entity-store').bulkAdd(collection.map((item) => ({ ...item, entityName })));\n }\n }\n\n async getOne<T = any>(entityName: string, id: string): Promise<T> {\n return await this.table('entity-store').where({ entityName, id: id }).first();\n }\n\n async updateOne<T = any>(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<T> {\n await this.table('entity-store').where({ entityName, id: id }).modify(keyValue);\n return await this.getOne(entityName, id);\n }\n\n async deleteOne(entityName: string, id: string): Promise<void> {\n await this.table('entity-store').where({ entityName, id: id }).delete();\n }\n\n async insertOne<T = any>(entityName: string, entity: T): Promise<string> {\n const uuid = AXPDataGenerator.uuid();\n await this.table('entity-store').add({ ...entity, id: uuid, entityName });\n return uuid;\n }\n\n async getAll<T = any>(entityName: string): Promise<T[]> {\n return await this.table('entity-store').where({ entityName }).toArray();\n }\n\n async query<T = any>(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<T>> {\n let result = await this.table('entity-store').where({ entityName }).toArray();\n\n if (request.sort && request.sort.length) {\n result = applySortArray(result, request.sort);\n }\n result = applyFilterArray(result, request.filter ? [request.filter] : []);\n\n return Promise.resolve({\n total: result.length,\n items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),\n });\n }\n}\n\n// export class AXPDexieTableStorageService extends Dexie implements AXPEntityStorageService {\n// private schemaUpdateLock: Promise<void> = Promise.resolve();\n\n// constructor() {\n// super('ACoreXPlatform');\n// // Initial empty version\n// //this.version(1).stores({});\n// }\n\n// // Function to change the schema dynamically\n// private async changeSchema(schemaChanges: { [tableName: string]: string | null }): Promise<void> {\n// // Acquire schema update lock to ensure no other operations are performed while schema is changing\n// this.schemaUpdateLock = this.schemaUpdateLock.then(async () => {\n// console.log('Attempting schema change with:', schemaChanges);\n\n// try {\n// this.close();\n\n// const newDb = new Dexie(this.name);\n\n// // Extract current schema in Dexie format\n// const currentSchema = this.tables.reduce((result, { name, schema }) => {\n// result[name] = [schema.primKey.src, ...schema.indexes.map((idx) => idx.src)].join(',');\n// return result;\n// }, {} as { [tableName: string]: string });\n\n// console.log('Current Schema:', currentSchema);\n\n// // Define current schema version\n\n// newDb.version(this.verno + 10).stores(currentSchema);\n\n// // Define new schema version with schema changes\n// const nextVersion = this.verno + 1;\n// newDb.version(nextVersion).stores(schemaChanges);\n// await newDb.open();\n\n// // Reassign updated db instance\n// Object.assign(this, newDb);\n// console.log(`Schema updated. Current version: ${this.verno}`);\n// } catch (error) {\n// console.error('Error during schema change:', error);\n// throw error;\n// }\n// });\n\n// // Wait for schema change lock to complete\n// await this.schemaUpdateLock;\n// }\n\n// private async ensureInitialized(entityName: string): Promise<void> {\n// if (this.tables.findIndex((table) => table.name === entityName) == -1) {\n// const schemaChanges: { [tableName: string]: string } = {};\n// schemaChanges[entityName] = '++id';\n// await this.changeSchema(schemaChanges);\n// }\n// }\n\n// get dbName(): string {\n// return 'ACoreXPlatform';\n// }\n\n// private async getTable<T>(entityName: string) {\n// await this.ensureInitialized(entityName);\n// return this.table<T, number>(entityName);\n// }\n\n// async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// const exists = await table.count();\n// if (exists === 0) {\n// await table.bulkAdd(collection);\n// }\n// }\n\n// async getOne<T = any>(entityName: string, id: string): Promise<T> {\n// const table = await this.getTable<T>(entityName);\n// return (await table.where({ id: parseInt(id) }).first()) as T;\n// }\n\n// async updateOne(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.update(parseInt(id), keyValue);\n// }\n\n// async deleteOne(entityName: string, id: string): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.delete(parseInt(id));\n// }\n\n// async insertOne<T = any>(entityName: string, entity: T): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// await table.add(entity);\n// }\n\n// async getAll<T = any>(entityName: string): Promise<T[]> {\n// const table = await this.getTable<T>(entityName);\n// return await table.toArray();\n// }\n// }\n","import { inject } from '@angular/core';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\n\nexport interface AXPEntityModel<Id> {\n id?: Id;\n}\n\nexport abstract class AXPEntityStorageService<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get dbName(): string;\n\n abstract initial(entityName: string, collection: T[]): Promise<void>;\n\n abstract getOne(entityName: string, id: K): Promise<RGetSingle>;\n\n abstract updateOne(entityName: string, id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(entityName: string, id: K): Promise<void>;\n\n abstract insertOne(entityName: string, entity: RCreate): Promise<K>;\n\n abstract getAll(entityName: string): Promise<RGetList[]>;\n\n abstract query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport abstract class AXPEntityDataProvider<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get entityName(): string;\n\n abstract initial(collection: T[]): Promise<void>;\n\n abstract getOne(id: K): Promise<RGetSingle>;\n\n abstract getAll(): Promise<RGetList[]>;\n\n abstract updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(id: K): Promise<void>;\n\n abstract insertOne(entity: RCreate): Promise<K>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXPEntityDataProviderImpl<\n K = any,\n T extends AXPEntityModel<K> = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> implements AXPEntityDataProvider<K, T, RCreate, RGetSingle, RGetList> {\n constructor(\n private storageService: AXPEntityStorageService<K, T, RCreate, RGetSingle, RGetList>,\n public entityName: string\n ) { }\n\n async initial(collection: T[]): Promise<void> {\n await this.storageService.initial(this.entityName, collection);\n }\n\n getOne(id: K): Promise<RGetSingle> {\n return this.storageService.getOne(this.entityName, id);\n }\n\n getAll(): Promise<RGetList[]> {\n return this.storageService.getAll(this.entityName);\n }\n\n query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>> {\n return this.storageService.query(this.entityName, request);\n }\n\n updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle> {\n return this.storageService.updateOne(this.entityName, id, keyValue);\n }\n\n deleteOne(id: K): Promise<void> {\n return this.storageService.deleteOne(this.entityName, id);\n }\n\n insertOne(entity: RCreate): Promise<K> {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\n\nexport abstract class AXMEntityCrudService<\n Id = string,\n T = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract insertOne(request: RCreate): Promise<Id>;\n\n abstract getOne(id: Id): Promise<RGetSingle>;\n\n abstract deleteOne(id: Id): Promise<void>;\n\n abstract updateOne(id: Id, values: { [key: string]: any }): Promise<void>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXMEntityCrudServiceImpl<\n Id,\n T extends AXPEntityModel<Id>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n private _storageService = inject(AXPEntityStorageService);\n private _entityDataProvider = new AXPEntityDataProviderImpl<Id, T, RCreate, RGetSingle, RGetList>(\n this._storageService,\n this.entityName\n );\n\n constructor(private entityName: string) { }\n\n async insertOne(request: RCreate): Promise<Id> {\n return this._entityDataProvider.insertOne(request);\n }\n\n async getOne(id: Id): Promise<RGetSingle> {\n return this._entityDataProvider.getOne(id);\n }\n\n async deleteOne(id: Id): Promise<void> {\n return this._entityDataProvider.deleteOne(id);\n }\n\n async updateOne(id: Id, values: { [key: string]: any }): Promise<RGetSingle> {\n return this._entityDataProvider.updateOne(id, values);\n }\n\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<RGetList>> {\n return this._entityDataProvider.query(request);\n }\n\n // get entityDataProvider() {\n // return this._entityDataProvider;\n // }\n\n get storageService() {\n return this._storageService;\n }\n}\n","import { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPDataSeeder {\n seed(): Promise<void>;\n}\n\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken<AXPDataSeeder>('AXP_DATA_SEEDER_TOKEN');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDataSeederService {\n private loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n\n async seed(): Promise<void> {\n if (Array.isArray(this.loader)) {\n for (const loader of this.loader) {\n await loader.seed();\n }\n } else {\n await this.loader?.seed();\n }\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandler } from \"./error-handler.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPErrorHandlerRegistryService {\n private errorHandlers: AXPErrorHandler[] = [];\n\n constructor(private injector: Injector) {\n }\n\n register(...plugins: (new () => AXPErrorHandler)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const handler = childInjector.get(t);\n if (handler) {\n this.errorHandlers.push(handler);\n }\n })\n }\n\n\n public get handlers(): AXPErrorHandler[] {\n return this.errorHandlers;\n }\n}","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandlerRegistryService } from \"./error-handler-registry.service\";\n\n@Injectable({ providedIn: 'root' })\nexport class AXPGlobalErrorHandler extends ErrorHandler {\n\n\n\n constructor(private injector: Injector, private registry: AXPErrorHandlerRegistryService) {\n super()\n }\n\n override handleError(error: Error) {\n const handleErrorRecursively = (index: number, error: any) => {\n const errorHandlers = this.registry.handlers;\n if (index < errorHandlers.length) {\n errorHandlers[index].handleError(error, (err) => {\n handleErrorRecursively(index + 1, err);\n });\n } else {\n super.handleError(error); // Fallback to default handler\n }\n };\n if (error.message?.startsWith('NG0100')) {\n //ignore it\n return\n }\n handleErrorRecursively(0, error);\n }\n}\n","// src/app/directives/grid-layout.directive.ts\n\nimport { Directive, Input, ElementRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\nimport { AXPGridLayoutOptions, AXPGridLayoutPositions } from './grid-layout.types';\n\n@Directive({\n selector: '[gridLayout]',\n standalone: true,\n})\nexport class AXPGridLayoutDirective implements OnChanges {\n @Input('gridLayout') options: AXPGridLayoutOptions;\n\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n\n private applyTailwindClasses(): void {\n // Clear existing grid classes\n this.clearClasses();\n\n // Apply new grid classes based on the input options\n this.setClasses(this.options.positions?.default, '');\n this.setClasses(this.options.positions?.md, 'md:');\n this.setClasses(this.options.positions?.lg, 'lg:');\n this.setClasses(this.options.positions?.xl, 'xl:');\n this.setClasses(this.options.positions?.xxl, '2xl:');\n }\n\n private setClasses(positions: AXPGridLayoutPositions | undefined, prefix: string): void {\n if (positions == null) return;\n\n const colStart = positions.colStart ? `${prefix}ax-col-start-${positions.colStart}` : '';\n const colEnd = positions.colEnd ? `${prefix}ax-col-end-${positions.colEnd}` : '';\n const colSpan = positions.colSpan ? `${prefix}ax-col-span-${positions.colSpan}` : '';\n const rowStart = positions.rowStart ? `${prefix}ax-row-start-${positions.rowStart}` : '';\n const rowEnd = positions.rowEnd ? `${prefix}ax-row-end-${positions.rowEnd}` : '';\n const rowSpan = positions.rowSpan ? `${prefix}ax-row-span-${positions.rowSpan}` : '';\n const order = positions.order ? `${prefix}ax-order-${positions.order}` : ''; // Handling order\n\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n\n private clearClasses(): void {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className: string) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, timer } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPLayoutService {\n private minimumDisplayTime = 500; // milliseconds\n\n // \n private navigationLoadingSubject = new BehaviorSubject<boolean>(false);\n private navigationLoadingTaskCount = 0;\n private navigationLoadingStateActive = false;\n\n public get navigationLoading$(): Observable<boolean> {\n return this.navigationLoadingSubject.asObservable();\n }\n\n setNavigationLoading(value: boolean) {\n if (value) {\n this.navigationLoadingTaskCount++;\n this.updateNavigationLoadingState(true);\n } else {\n if (this.navigationLoadingTaskCount > 0) {\n this.navigationLoadingTaskCount--;\n }\n if (this.navigationLoadingTaskCount === 0) {\n // Start timer to keep loading state for minimum display time\n timer(this.minimumDisplayTime).subscribe(() => {\n if (this.navigationLoadingTaskCount === 0) {\n this.updateNavigationLoadingState(false);\n }\n });\n }\n }\n }\n\n private updateNavigationLoadingState(state: boolean) {\n if (state !== this.navigationLoadingStateActive) {\n this.navigationLoadingStateActive = state;\n this.navigationLoadingSubject.next(state);\n }\n }\n\n\n // \n\n\n private overlayLoadingSubject = new BehaviorSubject<boolean>(false);\n private overlayLoadingTaskCount = 0;\n private overlayLoadingStateActive = false;\n\n public get overlayLoading$(): Observable<boolean> {\n return this.overlayLoadingSubject.asObservable();\n }\n\n setOverlayLoading(value: boolean) {\n if (value) {\n this.overlayLoadingTaskCount++;\n this.updateOverlayLoadingState(true);\n } else {\n if (this.overlayLoadingTaskCount > 0) {\n this.overlayLoadingTaskCount--;\n }\n if (this.overlayLoadingTaskCount === 0) {\n // Start timer to keep loading state for minimum display time\n timer(this.minimumDisplayTime).subscribe(() => {\n if (this.overlayLoadingTaskCount === 0) {\n this.updateOverlayLoadingState(false);\n }\n });\n }\n }\n }\n\n private updateOverlayLoadingState(state: boolean) {\n if (state !== this.overlayLoadingStateActive) {\n this.overlayLoadingStateActive = state;\n this.overlayLoadingSubject.next(state);\n }\n }\n}","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[axpSticky]',\n exportAs: 'axpSticky',\n standalone: true\n})\nexport class AXPStickyDirective {\n\n @Input('axpSticky')\n stickyClass!: string;\n\n @Input('stickyOffset')\n stickyOffset: number = 100;\n\n\n @Output()\n public isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _isSticky: boolean = false;\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(v: boolean) {\n this._isSticky = v;\n this.isStickyChange.emit(v);\n }\n\n private topOffset!: number;\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n\n\n constructor(private element: ElementRef<HTMLDivElement>, private renderer: Renderer2, private zone: NgZone, private cdr: ChangeDetectorRef) { }\n\n\n ngAfterViewInit() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n }\n else {\n this.parentElement = document.querySelector(this.stickyParent) as HTMLElement || window;\n }\n this.targetElement = document.querySelector(this.stickyTarget) as HTMLElement || this.element.nativeElement;\n this.topOffset = this.targetElement.offsetTop;\n this.parentElement.addEventListener('scroll', this.onParentScroll.bind(this));\n }\n\n private onParentScroll = (): void => {\n this.zone.runOutsideAngular(() => {\n const scrollPosition = this.parentElement === window ?\n window.scrollY :\n (this.parentElement as HTMLElement).scrollTop + this.targetElement.offsetTop;\n\n if (scrollPosition - this.stickyOffset >= this.topOffset && !this.isSticky) {\n this.stickyClass.split(' ').forEach(c => {\n this.renderer.addClass(this.targetElement, c);\n })\n this.isSticky = true;\n this.cdr.markForCheck();\n } else if (scrollPosition <= this.topOffset && this.isSticky) {\n this.stickyClass.split(' ').forEach(c => {\n this.renderer.removeClass(this.targetElement, c);\n });\n this.isSticky = false;\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPComponentSlotConfig } from \"./component-slot.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPComponentSlotRegistryService {\n\n private registry = new Map<string, AXPComponentSlotConfig[]>();\n\n register(slotName: string, config: AXPComponentSlotConfig) {\n let configs = this.registry.get(slotName) || [];\n\n // Check if the component is already registered in this slot\n const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);\n\n if (!isDuplicate) {\n configs = [...configs, config]; // Add the new configuration\n this.registry.set(slotName, configs);\n }\n }\n\n get(slotName: string): AXPComponentSlotConfig[] {\n return this.registry.get(slotName) || [];\n }\n}","import { Injectable, Injector, Type, ViewContainerRef, runInInjectionContext } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPComponentSlotLoaderService {\n constructor(private registryService: AXPComponentSlotRegistryService, private injector: Injector) {}\n\n loadComponent(slotName: string, viewContainerRef: ViewContainerRef) {\n const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);\n if (configs) {\n viewContainerRef.clear();\n configs.forEach(async (config) => {\n let component!: Type<any> | null | undefined;\n let options: { [key: string]: unknown } = {};\n if (typeof config.loadComponent === 'function') {\n // If component is a function\n runInInjectionContext(this.injector, () => {\n component = config.loadComponent?.();\n });\n } else if (config.component) {\n // If component is a Type\n component = config.component;\n }\n //\n if (typeof config.options === 'function') {\n // If options is a function\n runInInjectionContext(this.injector, () => {\n const fun = config.options as Function;\n options = fun();\n });\n } else if (config.options) {\n // If options is a object\n options = config.options;\n }\n //\n if (component != null) {\n const componentRef = viewContainerRef.createComponent(component);\n Object.assign(componentRef.instance, options);\n }\n });\n }\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { AXPComponentSlotLoaderService } from './component-slot-loader.service';\n\n@Directive({\n selector: 'axp-component-slot',\n})\nexport class AXPComponentSlotDirective implements OnInit {\n @Input()\n name!: string;\n\n constructor(private dynamicLoaderService: AXPComponentSlotLoaderService, public viewContainerRef: ViewContainerRef) { }\n\n ngOnInit() {\n this.dynamicLoaderService.loadComponent(this.name, this.viewContainerRef);\n }\n}","import { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPComponentSlotModuleConfigs } from './component-slot.types';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport { AXPComponentSlotDirective } from './component-slot.directive';\n\n@NgModule({\n declarations: [AXPComponentSlotDirective],\n exports: [AXPComponentSlotDirective]\n})\nexport class AXPComponentSlotModule {\n\n static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n\n static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPComponentSlotModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n\n}\n","import { Type } from '@angular/core';\n\nexport interface AXPLogoConfig {}\nexport class AXPTextLogoConfig implements AXPLogoConfig {\n constructor(public text: string) {}\n}\nexport class AXPImageUrlLogoConfig implements AXPLogoConfig {\n constructor(public url: string) {}\n}\nexport class AXPFontIconLogoConfig implements AXPLogoConfig {\n constructor(public iconClass: Type<any>) {}\n}\n\nexport class AXPComponentLogoConfig implements AXPLogoConfig {\n constructor(public component: Type<any>) {}\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\n\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AXPComponentLogoConfig, AXPFontIconLogoConfig, AXPImageUrlLogoConfig, AXPTextLogoConfig } from './logo.types';\n\n@Component({\n selector: 'axp-logo',\n templateUrl: `logo.component.html`,\n standalone: true,\n imports: [CommonModule, AXImageModule, AXDecoratorModule],\n host: { 'class': 'ax-flex ax-justify-center' }\n})\nexport class AXPLogoComponent {\n\n @Input()\n source!: any;\n\n protected logoType!: string;\n\n ngOnInit(): void {\n switch (true) {\n case this.source instanceof AXPTextLogoConfig:\n this.logoType = 'text';\n break;\n case this.source instanceof AXPImageUrlLogoConfig:\n this.logoType = 'url';\n break;\n case this.source instanceof AXPFontIconLogoConfig:\n this.logoType = 'iconClass';\n break;\n case this.source instanceof AXPComponentLogoConfig:\n this.logoType = 'component';\n break;\n default:\n break;\n }\n }\n}\n","@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXPMenuFinderResult, AXPMenuItem, AXPMenuProviderContext } from './menu.types';\n\nexport interface AXPMenuProvider {\n provide(context: AXPMenuProviderContext): Promise<void>;\n}\n\nexport const AXP_MENU_PROVIDER = new InjectionToken<AXPMenuProvider[]>('AXP_MENU_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPMenuProviderService {\n\n private providers = inject(AXP_MENU_PROVIDER, { optional: true });\n private cache: AXPMenuItem[] | null = null;\n private pendingInserts: Array<{ target: string; newItems: AXPMenuItem[]; position: 'before' | 'after' }> = [];\n private pendingRemovals: string[] = [];\n private pendingUpdates: Array<{ target: string; updatedItem: Partial<AXPMenuItem> }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPMenuItem[] }> = [];\n\n async items(): Promise<AXPMenuItem[]> {\n // Return cached items if available\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPMenuItem[] = [];\n const context = this.createMenuProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n\n // Apply pending operations\n this.applyPendingOperations(items);\n\n // Cache the computed items\n this.cache = items;\n return items;\n }\n\n private createMenuProviderContext(items: AXPMenuItem[]): AXPMenuProviderContext {\n return {\n addItems: (newItems: AXPMenuItem[]) => {\n items.push(...newItems);\n },\n find: (target: string): AXPMenuFinderResult => {\n return {\n insert: (newItems: AXPMenuItem[], position: 'before' | 'after') => {\n this.pendingInserts.push({ target, newItems, position });\n },\n remove: () => {\n this.pendingRemovals.push(target);\n },\n update: (updatedItem: Partial<AXPMenuItem>) => {\n this.pendingUpdates.push({ target, updatedItem });\n },\n addItems: (newItems: AXPMenuItem[]) => {\n this.pendingAdditions.push({ target, newItems });\n }\n };\n }\n };\n }\n\n private applyPendingOperations(items: AXPMenuItem[]): void {\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, appending items.`);\n items.push(...newItems);\n } else {\n const index = parentItems.indexOf(foundItem);\n const insertPosition = position === 'before' ? index : index + 1;\n parentItems.splice(insertPosition, 0, ...newItems);\n }\n }\n\n for (const target of this.pendingRemovals) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to remove.`);\n } else {\n const index = parentItems.indexOf(foundItem);\n parentItems.splice(index, 1);\n }\n }\n\n for (const { target, updatedItem } of this.pendingUpdates) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to update.`);\n } else {\n Object.assign(foundItem, updatedItem);\n }\n }\n\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to add items to.`);\n } else {\n if (!foundItem.children) {\n foundItem.children = [];\n }\n foundItem.children.push(...newItems);\n }\n }\n\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n\n private findItemWithParent(items: AXPMenuItem[], target: string, parentItems: AXPMenuItem[] = items): { foundItem: AXPMenuItem | null, parentItems: AXPMenuItem[] } {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n\n if (item.children) {\n const result = this.findItemWithParent(item.children, target, item.children);\n if (result.foundItem) {\n return result;\n }\n }\n }\n return { foundItem: null, parentItems: items };\n }\n\n // Method to clear the cache, if needed (e.g., when providers change)\n clearCache(): void {\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n}\n","import { NavigationExtras } from '@angular/router';\nimport { createAction, props } from '@ngrx/store';\n\nexport const AXPNavigateAction = createAction(\n '[Navigate] Action',\n props<{ payload: { commands: string | any[]; extras?: NavigationExtras } }>()\n);\nexport const AXPSignOutAction = createAction('[SignOut] Action');\nexport const AXPSignInAction = createAction('[SignIn] Action');\n","// Enum to distinguish between single settings and groups\nexport enum AXPSettingDefinitionItemType {\n Single = 'single',\n Group = 'group',\n}\n\n// Interface for a single setting's value\nexport interface AXPSettingValue {\n key: string;\n value: any;\n}\n\n// Interface for a single setting definition\nexport interface AXPSettingDefinition {\n name: string;\n title: string;\n description?: string;\n dataType: string;\n scope: string;\n isRequired: boolean;\n isInherited: boolean;\n isEncrypted: boolean;\n type: AXPSettingDefinitionItemType.Single; // Discriminant property\n}\n\n// Interface for a group of settings, which can contain nested groups and singles\nexport interface AXPSettingDefinitionGroup {\n name: string;\n title: string;\n description?: string;\n groups: AXPSettingDefinitionGroup[];\n singles: AXPSettingDefinition[];\n type: AXPSettingDefinitionItemType.Group; // Discriminant property\n}\n\n// Union type to represent either a single setting or a group\nexport type AXPSettingDefinitionItem = AXPSettingDefinition | AXPSettingDefinitionGroup;\n\n// Interface for operations that can be performed on a setting item\nexport interface AXPSettingDefinitionFinderResult {\n insertGroup(item: AXPSettingDefinitionGroup, position: 'before' | 'after'): void;\n insertSingle(item: AXPSettingDefinition, position: 'before' | 'after'): void;\n insertSingles(items: AXPSettingDefinition[], position: 'before' | 'after'): void;\n addItems(items: AXPSettingDefinitionItem[]): void;\n addChildSingleAt(item: AXPSettingDefinition, index: number): void;\n addChildSingleFirst(item: AXPSettingDefinition): void;\n addChildSingleLast(item: AXPSettingDefinition): void;\n addChildGroupAt(item: AXPSettingDefinitionGroup, index: number): void;\n addChildGroupFirst(item: AXPSettingDefinitionGroup): void;\n addChildGroupLast(item: AXPSettingDefinitionGroup): void;\n}\n\n// Interface for the context in which setting providers operate\nexport interface AXPSettingDefinitionProviderContext {\n addItems(items: AXPSettingDefinitionItem[]): void;\n addItem(item: AXPSettingDefinitionItem): void;\n addGroup(group: AXPSettingDefinitionGroup): void;\n find(target: string): AXPSettingDefinitionFinderResult;\n}\n","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport {\n AXPSettingDefinition,\n AXPSettingDefinitionFinderResult,\n AXPSettingDefinitionGroup,\n AXPSettingDefinitionItem,\n AXPSettingDefinitionItemType,\n AXPSettingDefinitionProviderContext,\n} from './settings.types';\n\n// Interface for setting providers\nexport interface AXPSettingDefinitionProvider {\n provide(context: AXPSettingDefinitionProviderContext): Promise<void>;\n}\n\n// Injection token for setting providers\nexport const AXP_SETTING_PROVIDER = new InjectionToken<AXPSettingDefinitionProvider[]>('AXP_SETTING_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPSettingProviderService {\n private providers = inject(AXP_SETTING_PROVIDER, { optional: true });\n private cache: AXPSettingDefinitionItem[] | null = null;\n private pendingInserts: Array<{\n target: string;\n newItems: AXPSettingDefinitionItem[];\n position: 'before' | 'after';\n }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPSettingDefinitionItem[] }> = [];\n\n // Retrieve all setting items, applying any pending operations\n async items(): Promise<AXPSettingDefinitionItem[]> {\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPSettingDefinitionItem[] = [];\n const context = this.createProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n\n this.applyPendingOperations(items);\n this.cache = items;\n return items;\n }\n\n // Create the provider context with methods to add items and find existing ones\n private createProviderContext(items: AXPSettingDefinitionItem[]): AXPSettingDefinitionProviderContext {\n return {\n addItems: (newItems: AXPSettingDefinitionItem[]) => {\n items.push(...newItems);\n },\n addItem: (item: AXPSettingDefinitionItem) => {\n items.push(item);\n },\n addGroup: (group: AXPSettingDefinitionGroup) => {\n items.push(group);\n },\n find: (target: string): AXPSettingDefinitionFinderResult => {\n return {\n insertGroup: (item, position) => {\n this.pendingInserts.push({ target, newItems: [item], position });\n },\n insertSingle: (item, position) => {\n this.pendingInserts.push({ target, newItems: [item], position });\n },\n insertSingles: (items, position) => {\n this.pendingInserts.push({ target, newItems: items, position });\n },\n addItems: (items) => {\n this.pendingAdditions.push({ target, newItems: items });\n },\n addChildSingleAt: (item, index) => {\n const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n if (index >= 0 && index <= group.singles.length) {\n group.singles.splice(index, 0, item);\n } else {\n console.warn(`Index \"${index}\" is out of bounds for singles.`);\n }\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding a child single.`);\n }\n },\n addChildSingleFirst: (item) => {\n const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n group.singles.unshift(item);\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding a child single.`);\n }\n },\n addChildSingleLast: (item) => {\n const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n group.singles.push(item);\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding a child single.`);\n }\n },\n addChildGroupAt: (item, index) => {\n const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n if (index >= 0 && index <= group.groups.length) {\n group.groups.splice(index, 0, item);\n } else {\n console.warn(`Index \"${index}\" is out of bounds for groups.`);\n }\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding a child group.`);\n }\n },\n addChildGroupFirst: (item) => {\n const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n group.groups.unshift(item);\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding a child group.`);\n }\n },\n addChildGroupLast: (item) => {\n const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n group.groups.push(item);\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding a child group.`);\n }\n },\n };\n },\n };\n }\n\n private applyPendingOperations(items: AXPSettingDefinitionItem[]): void {\n // Process pending insertions\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem, parentItems } = foundItemInfo;\n const index = parentItems.indexOf(foundItem);\n const insertIndex = position === 'before' ? index : index + 1;\n parentItems.splice(insertIndex, 0, ...newItems);\n } else {\n console.warn(`Target \"${target}\" not found for insertion.`);\n }\n }\n\n // Process pending additions\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n if (foundItemInfo && foundItemInfo.foundItem) {\n const { foundItem } = foundItemInfo;\n if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n const group = foundItem as AXPSettingDefinitionGroup;\n group.groups.push(\n ...(newItems.filter(\n (item) => item.type === AXPSettingDefinitionItemType.Group\n ) as AXPSettingDefinitionGroup[])\n );\n group.singles.push(\n ...(newItems.filter((item) => item.type === AXPSettingDefinitionItemType.Single) as AXPSettingDefinition[])\n );\n } else {\n console.warn(`Target \"${target}\" is not a group; cannot add items.`);\n }\n } else {\n console.warn(`Target \"${target}\" not found for adding items.`);\n }\n }\n\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingAdditions = [];\n }\n\n private findItemWithParent(\n items: AXPSettingDefinitionItem[],\n target: string,\n parentItems: AXPSettingDefinitionItem[] = items\n ): { foundItem: AXPSettingDefinitionItem; parentItems: AXPSettingDefinitionItem[] } | null {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n\n if (item.type === AXPSettingDefinitionItemType.Group) {\n const group = item as AXPSettingDefinitionGroup;\n\n // Search within child groups\n const groupResult = this.findItemWithParent(group.groups, target, group.groups);\n if (groupResult) {\n return groupResult;\n }\n\n // Search within child singles\n const singleResult = this.findItemWithParent(group.singles, target, group.singles);\n if (singleResult) {\n return singleResult;\n }\n }\n }\n return null;\n }\n}\n","import { AXPSettingValue } from \"./settings.types\";\nimport { InjectionToken } from \"@angular/core\";\n\nexport interface AXPSettingsProvider {\n load(): Promise<AXPSettingValue[]>\n set(key: string, value: any): Promise<void>\n}\n\n\nexport const AXP_SETTINGS_PROVIDER = new InjectionToken<AXPSettingsProvider>('AXP_SETTINGS_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPSettingsProviderDefault();\n }\n});\n\n\nclass AXPSettingsProviderDefault implements AXPSettingsProvider {\n private readonly cache: Map<string, any> = new Map();\n private localStorageKey: string = 'AXP_SETTINGS';\n\n async load(): Promise<AXPSettingValue[]> {\n // Load settings from localStorage as a single key\n const storedSettings = localStorage.getItem(this.localStorageKey);\n if (storedSettings) {\n const parsedSettings: Record<string, any> = JSON.parse(storedSettings);\n Object.entries(parsedSettings).forEach(([key, value]) => {\n this.cache.set(key, value);\n });\n return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));\n }\n return Promise.resolve([]);\n }\n\n async set(key: string, value: any): Promise<void> {\n this.cache.set(key, value)\n // Save to localStorage as a single key\n const settingsObject: Record<string, AXPSettingValue> = {};\n this.cache.forEach((val, k) => {\n settingsObject[k] = val;\n });\n localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXP_SETTINGS_PROVIDER, AXPSettingsProvider } from './settings.provider';\nimport { AXPSettingValue } from './settings.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSettingsService {\n private readonly settingsProvider = inject<AXPSettingsProvider>(AXP_SETTINGS_PROVIDER);\n private settingsCache: Map<string, any> = new Map<string, any>();\n\n public readonly changed = new Subject<AXPSettingValue>();\n\n async load(): Promise<AXPSettingValue[]> {\n try {\n const settingsList = await this.settingsProvider.load();\n this.settingsCache.clear();\n settingsList.forEach((setting) => {\n this.settingsCache.set(setting.key, setting.value);\n });\n return settingsList;\n } catch (error) {\n console.error('Error loading settings', error);\n throw error; // Re-throw or handle it appropriately\n }\n }\n\n async get<T = any>(key: string): Promise<T> {\n if (this.settingsCache.size == 0) {\n await this.load();\n }\n return cloneDeep(this.settingsCache.get(key)) as T;\n }\n\n async set<T = any>(key: string, value: T): Promise<void> {\n if (this.settingsCache.has(key)) {\n this.settingsCache.set(key, value);\n await this.settingsProvider.set(key, value);\n this.changed.next({ key, value });\n } else {\n console.warn(`Setting with key \"${key}\" not found.`);\n this.settingsCache.set(key, value);\n this.set(key, value);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { of, switchMap } from 'rxjs';\nimport { AXPSettingsService } from '../settings';\nimport { AXPNavigateAction } from './common.actions';\n\n@Injectable()\nexport class AXPCommonEffects {\n constructor(private actions$: Actions, private router: Router, private settingService: AXPSettingsService) {}\n\n command$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AXPNavigateAction),\n switchMap((action) => {\n if (Array.isArray(action.payload.commands))\n this.router.navigate(action.payload.commands, action.payload.extras);\n else {\n if (action.payload.commands.toLowerCase().startsWith('http'))\n window.open(action.payload.commands, '_blank');\n else this.router.navigate([action.payload.commands], action.payload.extras);\n }\n return of();\n })\n ),\n { dispatch: false }\n );\n}\n","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { AXPMenuItem } from './menu.types';\nimport { AXPMenuProviderService } from './menu.provider';\nimport { Store } from '@ngrx/store';\nimport { AXPAdminLayoutState } from '../theme/store';\nimport { AXPNavigateAction } from '../../store';\n\nexport const AXPMenuService = signalStore(\n { providedIn: 'root' },\n\n // Initial State\n withState((router = inject(Router)) => {\n return {\n items: [] as AXPMenuItem[],\n selectedMenuItem: {\n item: null as AXPMenuItem | null,\n isFullMatch: false\n },\n };\n }),\n\n // Methods for State Management\n withMethods((store, router = inject(Router), globalStore = inject(Store<AXPAdminLayoutState>)) => {\n\n\n return {\n\n setMenuItems(items: AXPMenuItem[]): void {\n patchState(store, { items: items });\n },\n\n selectMenuItemByRoute(path: string): void {\n const findItem = (items: AXPMenuItem[]): { item: AXPMenuItem | null, isPartialMatch: boolean } => {\n for (const item of items) {\n // Recursively search children first\n if (item.children) {\n const foundChild = findItem(item.children);\n if (foundChild.item) {\n return foundChild;\n }\n }\n if (item.path) {\n // Check if the item path matches the current path\n const matchResult = pathsMatch(item.path, path);\n if (matchResult.isMatch) {\n return { item, isPartialMatch: matchResult.isPartial };\n }\n }\n }\n return { item: null, isPartialMatch: false };\n };\n\n const pathsMatch = (itemPath: string, currentPath: string): { isMatch: boolean, isPartial: boolean } => {\n // Split both paths into segments\n const itemSegments = itemPath.split('/').filter(segment => segment.length > 0);\n const pathSegments = currentPath.split('/').filter(segment => segment.length > 0);\n\n // Determine the minimum number of segments to compare\n const minLength = Math.min(itemSegments.length, pathSegments.length);\n\n // Compare segments until we find a mismatch\n let commonBaseLength = 0;\n for (let i = 0; i < minLength; i++) {\n if (itemSegments[i] === pathSegments[i]) {\n commonBaseLength++;\n } else {\n break; // Stop at the first mismatch\n }\n }\n\n // Determine if we have a common base of at least 5 segments\n const isPartialMatch = commonBaseLength >= 5 && commonBaseLength < itemSegments.length;\n const isExactMatch = commonBaseLength === itemSegments.length && itemSegments.length === pathSegments.length;\n\n return {\n isMatch: isPartialMatch || isExactMatch,\n isPartial: isPartialMatch && !isExactMatch,\n };\n };\n\n const items = store.items();\n const { item, isPartialMatch } = findItem(items);\n patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });\n },\n\n executeCommand(item: AXPMenuItem): void {\n if (item.command) {\n globalStore.dispatch(item.command);\n } else if (item.path) {\n globalStore.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));\n }\n patchState(store, { selectedMenuItem: { item, isFullMatch: true } });\n },\n\n isItemOpen(item: AXPMenuItem): boolean {\n const selectedItem = store.selectedMenuItem();\n if (!selectedItem) {\n return false;\n }\n\n const findParent = (currentItem: AXPMenuItem, targetItem: AXPMenuItem): boolean => {\n if (currentItem.children?.includes(targetItem)) {\n return true;\n }\n return currentItem.children?.some(child => findParent(child, targetItem)) ?? false;\n };\n\n return item === selectedItem?.item || findParent(item, selectedItem.item!);\n }\n };\n }),\n withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({\n onInit() {\n (async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n })();\n },\n onDestroy() {\n\n },\n }))\n);","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <small class=\"ax-text-sm ax-text-neutral-400\" [innerHTML]=\"text\"></small>\n `,\n standalone: true\n})\nexport class AXPFooterTextSlotComponent {\n @Input()\n public text!: string;\n}","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport { AXPMenuItem } from '../../../menu';\n\n@Component({\n template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n <a *ngFor=\"let link of items\" (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n </div>\n `,\n standalone: true,\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXPNavBarSlotComponent {\n @Input()\n public items!: AXPMenuItem[];\n\n private store = inject(Store)\n\n protected handleCommand(action?: Action) {\n if (action)\n this.store.dispatch(action)\n }\n}","import { createAction } from \"@ngrx/store\";\n\nexport const AXPWindowResizeAction = createAction('[Layout] Resize');\n//\nexport const AXPLayoutRootDrawerClose = createAction('[Root Drawer] Close');\nexport const AXPLayoutRootDrawerToggle = createAction('[Root Drawer] Toggle');\nexport const AXPLayoutChildDrawerClose = createAction('[Child Drawer] Close');\nexport const AXPLayoutChildDrawerToggle = createAction('[Child Drawer] Toggle');\n//\n\nexport const AXPLoadingShowAction = createAction('[Theme] Loading Show');\nexport const AXPLoadingHideAction = createAction('[Theme] Loading Hide');","import { Injectable, inject } from \"@angular/core\";\nimport { AXPlatform } from \"@acorex/core/platform\";\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\nimport { Store } from \"@ngrx/store\";\nimport { debounceTime, fromEvent, map, mergeMap, of, withLatestFrom } from \"rxjs\";\nimport { AXPWindowResizeAction } from \"./admin-layout.actions\";\nimport { AXPSettingsService } from \"../../../settings\";\n\n@Injectable()\nexport class AXPLayoutEffects {\n\n private settingService = inject(AXPSettingsService);\n private actions$ = inject(Actions);\n private store$ = inject(Store);\n\n resize$ = createEffect(() =>\n fromEvent(window, 'resize').pipe(\n debounceTime(300),\n map(() => AXPWindowResizeAction()),\n )\n );\n}\n","import { AXPlatform } from '@acorex/core/platform';\n\nconst platform = new AXPlatform();\n\nexport interface AXPAdminLayoutState {\n screen: {\n small: boolean;\n };\n drawer: {\n root: boolean;\n child: boolean;\n };\n loading: boolean;\n}\n\nexport const initialState: AXPAdminLayoutState = {\n screen: {\n small: platform.is('SM') || platform.is('MD'),\n },\n drawer: {\n root: !(platform.is('SM') || platform.is('MD')),\n child: !(platform.is('SM') || platform.is('MD')),\n },\n loading: false,\n};\n","import { AXPlatform } from '@acorex/core/platform';\nimport { createFeature, createReducer, on } from '@ngrx/store';\nimport { AXPNavigateAction } from '../../../store';\nimport {\n AXPLayoutChildDrawerClose,\n AXPLayoutChildDrawerToggle,\n AXPLayoutRootDrawerClose,\n AXPLayoutRootDrawerToggle,\n AXPLoadingHideAction,\n AXPLoadingShowAction,\n AXPWindowResizeAction,\n} from './admin-layout.actions';\nimport { initialState } from './admin-layout.state';\n\nconst platform = new AXPlatform();\n// const platform = inject(AXPlatform);\n\nexport const AXPLayoutFeature = createFeature({\n name: 'layout',\n reducer: createReducer(\n initialState,\n // close drawers on navigatin\n on(AXPNavigateAction, (state, action) => ({\n ...state,\n drawer: {\n ...state.drawer,\n root: platform.is('SM') ? false : state.drawer.root,\n child: platform.is('SM') ? false : state.drawer.child,\n },\n })),\n // toggle root drawers\n on(AXPLayoutRootDrawerToggle, (state, action) => ({\n ...state,\n drawer: {\n ...state.drawer,\n root: !state.drawer.root,\n child: !state.drawer.root && platform.is('SM') ? false : state.drawer.child,\n },\n })),\n // close root drawers\n on(AXPLayoutRootDrawerClose, (state) => ({\n ...state,\n drawer: { ...state.drawer, root: false },\n })),\n // toggle second level child drawers\n on(AXPLayoutChildDrawerToggle, (state) => ({\n ...state,\n drawer: { ...state.drawer, child: !state.drawer.child },\n })),\n // close second level child drawers\n on(AXPLayoutChildDrawerClose, (state) => ({\n ...state,\n drawer: { ...state.drawer, child: false },\n })),\n // close drawers on window resize event\n on(AXPWindowResizeAction, (state) => ({\n ...state,\n screen: { small: platform.is('SM') || platform.is('MD') },\n drawer: {\n ...state.drawer,\n root: platform.is('SM') || platform.is('MD') ? false : state.drawer.root,\n child: platform.is('SM') || platform.is('MD') ? false : state.drawer.child,\n },\n })),\n // Admin Root layout loading\n on(AXPLoadingShowAction, (state) => ({\n ...state,\n loading: true,\n })),\n on(AXPLoadingHideAction, (state) => ({\n ...state,\n loading: false,\n }))\n ),\n});\n\nexport const { name, reducer, selectLayoutState } = AXPLayoutFeature;\n","import { createSelector } from \"@ngrx/store\";\nimport { selectLayoutState } from \"./admin-layout.reducers\";\n\nexport const getRootDrawer = () => createSelector(\n selectLayoutState,\n (value) => value.drawer.root\n);\n\nexport const getChildDrawer = () => createSelector(\n selectLayoutState,\n (value) => value.drawer.child\n);\n\nexport const isSmallScreen = () => createSelector(\n selectLayoutState,\n (value) => value.screen.small\n);\n\n\n\nexport const isLoading = () => createSelector(\n selectLayoutState,\n (value) => value.loading\n);","import { AXStyleColorType } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\n//TODO Loading, Redirect, Drawer, Show toast\n\nexport const AXPRedirectEvent = createWorkFlowEvent<{ url: string }>('Redirect Event Fired');\n\n@Injectable()\nexport class AXPWorkflowNavigateAction extends AXPWorkflowAction {\n private router = inject(Router);\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n if (Array.isArray(payload.commands)) {\n this.router.navigate(payload.commands, payload.extras);\n }\n else {\n if (payload.commands.toLowerCase().startsWith('http') || payload.target == \"blank\") {\n window.open(payload.commands, '_blank');\n }\n else this.router.navigate([payload.commands], payload.extras);\n }\n }\n}\n\n@Injectable()\nexport class AXPDialogConfirmAction extends AXPWorkflowAction {\n private dialogService = inject(AXDialogService);\n private translationService = inject(AXTranslationService);\n\n title!: string;\n message!: string;\n type!: AXStyleColorType;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n context.setOutput('result', false);\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync(this.title),\n await this.translationService.translateAsync(this.message),\n (await this.translationService.translateAsync(this.type)) as AXStyleColorType\n );\n context.setOutput('result', dialogResult.result);\n }\n}\n\n@Injectable()\nexport class AXPToastAction extends AXPWorkflowAction {\n private toastService = inject(AXToastService);\n private translationService = inject(AXTranslationService);\n\n color!: AXStyleColorType;\n title!: string;\n content!: string;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n this.toastService.show({\n color: this.color,\n title: await this.translationService.translateAsync(this.title),\n content: await this.translationService.translateAsync(this.content),\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n}\n","import { Injectable, NgZone, inject, isDevMode } from \"@angular/core\";\nimport { AXDialogService } from \"@acorex/components/dialog\";\nimport { AXPWorkflowError } from \"@acorex/platform/workflow\";\nimport { AXPErrorHandler } from \"../errors\";\n\n@Injectable()\nexport class AXMWorkflowErrorHandler implements AXPErrorHandler {\n private dialog = inject(AXDialogService);\n\n\n handleError(error: any, next: (error: any) => void): void {\n if (error instanceof AXPWorkflowError) {\n this.dialog.alert(\"Somthing is wrong!\", error.inner ? error.inner.message : error.message, 'danger');\n next(error);\n } else {\n next(error);\n }\n }\n}","import { AXPopupModule } from '@acorex/components/popup';\nimport { AXToastModule } from '@acorex/components/toast';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { ErrorHandler, Inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { AXPAppStartUpProvider, AXPAppStartUpService } from './app/app-startup.service';\nimport { AXPDataSeederService } from './data';\nimport { AXPErrorHandler, AXPErrorHandlerRegistryService, AXPGlobalErrorHandler } from './errors';\nimport { AXPLayoutEffects, AXPLayoutFeature } from './layout';\nimport { AXPSettingsService } from './settings';\nimport { AXPCommonEffects } from './store';\nimport { AXPDialogConfirmAction, AXPToastAction } from './workflows';\n\nexport interface AXPCommonModuleConfigs {\n errorHandlers: (new () => AXPErrorHandler)[];\n}\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([AXPCommonEffects, AXPLayoutEffects]),\n StoreModule.forFeature(AXPLayoutFeature),\n AXPWorkflowModule.forChild({\n actions: {\n navigate: AXPDialogConfirmAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule,\n ],\n exports: [RouterModule],\n providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n ],\n})\nexport class AXPCommonModule {\n static forRoot(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(\n @Inject('AXPCommonModuleFactory') instances: any[],\n appInitService: AXPAppStartUpService,\n settingsService: AXPSettingsService,\n seederService: AXPDataSeederService\n ) {\n instances.forEach((f) => {\n f();\n });\n\n // appInitService.registerTask({\n // name: 'Modules',\n // statusText: 'Initializing Modules ...',\n // run: () =>\n // new Promise<void>((resolve) => {\n // setTimeout(() => {\n // resolve();\n // }, 250);\n // }),\n // });\n //\n appInitService.registerTask({\n name: 'Settings',\n statusText: 'Loading Settings ...',\n run: async () => {\n await settingsService.load();\n }\n });\n //\n //\n appInitService.registerTask({\n name: 'Seeder',\n statusText: 'Seed Data ...',\n run: async () => {\n await seederService.seed();\n },\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLogoConfig, AXPTextLogoConfig } from '../layout/logo/logo.types';\n\nexport const ENVIRONMENT = new InjectionToken<any>('ENVIRONMENT');\n\nexport const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken<AXPPlatformConfigs>('AXP_PLATFORM_CONFIG_TOKEN', {\n providedIn: 'root',\n factory: () => {\n return AXPPlatformDefaultConfigs;\n },\n});\n\nexport interface AXPPlatformConfigs {\n title?: string;\n copyright?: string;\n logo?: {\n dark?: AXPLogoConfig;\n light?: AXPLogoConfig;\n colored?: AXPLogoConfig;\n };\n useLocalData: boolean;\n network?: {\n timeOut?: number;\n };\n}\n\nexport const AXPPlatformDefaultConfigs: AXPPlatformConfigs = {\n copyright: 'ACoreX @ 2023',\n title: 'ACoreX Platform',\n logo: {\n dark: new AXPTextLogoConfig('ACoreX'),\n light: new AXPTextLogoConfig('ACoreX'),\n colored: new AXPTextLogoConfig('ACoreX'),\n },\n useLocalData: false,\n network: {\n timeOut: 5000,\n }\n};\n\nexport function configPlatform(config: Partial<AXPPlatformConfigs> = AXPPlatformDefaultConfigs): AXPPlatformConfigs {\n return merge(AXPPlatformDefaultConfigs, config);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const AXP_ROOT_CONFIG_TOKEN = new InjectionToken<AXPRootConfigs>('AXP_ROOT_CONFIG_TOKEN');\n\nexport interface AXPRootConfigs {\n baseUrl: string;\n}","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPSchemaConfig } from './schema.types';\n\ntype DeepPartial<Thing> = Thing extends Function\n ? Thing\n : Thing extends Array<infer InferredArrayMember>\n ? DeepPartialArray<InferredArrayMember>\n : Thing extends object\n ? DeepPartialObject<Thing>\n : Thing | undefined;\n\ninterface DeepPartialArray<Thing> extends Array<DeepPartial<Thing>> {}\n\ntype DeepPartialObject<Thing> = {\n [Key in keyof Thing]?: DeepPartial<Thing[Key]>;\n};\n\ntype AXPSchemaOverride = Omit<DeepPartialObject<AXPSchemaConfig>, 'name'> & { name: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSchemaRegistryService {\n private types: Map<string, AXPSchemaConfig> = new Map();\n\n register(schema: AXPSchemaConfig) {\n this.types.set(schema.name, schema);\n }\n\n extend(parentName: string, schema: AXPSchemaOverride) {\n const parentSchema = this.resolve(parentName);\n const newSchema = merge({}, parentSchema, schema);\n newSchema.name = schema.name;\n this.register(newSchema);\n }\n\n resolve(name: string): AXPSchemaConfig | undefined {\n const schema = this.types.get(name);\n if (!schema) {\n throw new Error(`Parent schema with name ${schema} does not exist.`);\n }\n return schema;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\nexport interface AXPWidgetProperty {\n name: string;\n description?: string,\n formats: AXPDisplayFormat;\n validationRules?: AXPValidationRules\n canEdit: boolean;\n}\nexport interface AXPWidgetTokenType {\n schema: AXPSchemaConfig;\n prop: AXPWidgetProperty;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetTokenType>('AXP_WIDGET_TOKEN');\n\n","import { AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject } from '@angular/core';\nimport { assign, cloneDeep, merge } from 'lodash-es';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n @if(component && widgetInjector && row?.data) {\n <ng-container *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"></ng-container>\n }\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [{ provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['width', 'caption', 'headerTemplate', 'allowSorting', 'fixed'],\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n mergedOptions: any = {};\n\n // @ViewChild(TemplateRef)\n // private _template!: TemplateRef<unknown>;\n\n // get template(): TemplateRef<unknown> {\n // return this._template;\n // }\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.dataField}`;\n }\n\n @Input()\n options?: { [key: string]: any };\n\n @Input()\n dataField!: string;\n\n @Input()\n displayFormat!: string | undefined;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n if (schema?.component?.column) this.component = await schema?.component?.column.component();\n this.mergedOptions = merge(cloneDeep(schema?.component.column?.options), this.options) || {};\n const tokenValue = {\n prop: {\n name: this.dataField,\n formats: { default: this.displayFormat },\n },\n schema: schema,\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.mergedOptions.width ?? '200px';\n this.allowResizing = this.mergedOptions.allowResizing || false;\n this.cdr.markForCheck();\n }\n\n getInputs(data: any) {\n return assign(this.mergedOptions, { context: data });\n }\n}\n","import { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Injector,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, isEqual, merge } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetFilterBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-filter-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n})\nexport class AXPWidgetFilterRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n protected isLoading = true;\n\n @Output()\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n operatorChange: EventEmitter<any> = new EventEmitter<any>();\n\n private _value: any;\n @Input()\n public get value(): any {\n return this._value;\n }\n\n public set value(v: any) {\n this._value = v;\n this.updateValue();\n this.valueChange.emit(v);\n }\n\n private _operator: any;\n @Input()\n public get operator(): any {\n return this._operator;\n }\n\n public set operator(op: any) {\n this._operator = op;\n this.updateOperator();\n this.operatorChange.emit(op);\n }\n\n @Input()\n prop!: any;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetFilterBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.filter?.options),\n schema?.component?.filter?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component.filter?.component) {\n var com = await schema.component.filter?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance) {\n this.instance.value = this.value;\n }\n }\n\n private updateOperator() {\n if (this.instance) {\n this.instance.operator = this.operator;\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetFilterBase;\n // console.log(this.schemaName, this.instance);\n assign(this.instance, this.options);\n this.updateValue();\n this.updateOperator();\n this.instance.valueChange.subscribe((v) => {\n if (!isEqual(v, this.value)) {\n this.value = v;\n }\n });\n this.instance.operatorChange.subscribe((op) => {\n if (!isEqual(op, this.operator)) {\n this.operator = op;\n }\n });\n }\n}\n","import { AXFormatService } from '@acorex/core/format';\nimport { ChangeDetectorRef, EventEmitter, Injectable, Input, Output, inject } from '@angular/core';\nimport { cloneDeep, get, merge } from 'lodash-es';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPWidgetProperty, AXP_WIDGET_TOKEN } from './widget-token';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\n@Injectable()\nexport abstract class AXPWidgetBase<T = any> {\n protected cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n protected token = inject(AXP_WIDGET_TOKEN);\n protected formatService = inject(AXFormatService);\n\n public markForCheck = inject(ChangeDetectorRef).markForCheck;\n\n protected get schema(): AXPSchemaConfig {\n return this.token.schema;\n }\n\n protected get prop(): AXPWidgetProperty {\n return this.token.prop;\n }\n\n protected get rawValue(): any {\n return get(this.context, this.token.prop.name);\n }\n\n\n // protected get multiple(): boolean {\n // return this.token.prop.multiple ?? false;\n // }\n\n protected get formats(): AXPDisplayFormat {\n return merge(cloneDeep(this.schema.formats), this.token.prop.formats);\n }\n\n private _context!: T;\n @Input()\n public get context(): T {\n return this._context;\n }\n public set context(v: T) {\n this._context = v;\n this.render();\n this.cdr.markForCheck();\n }\n\n protected render(): void { }\n\n protected setOption(name: string, value: any) {\n\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetEditBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n\n protected get validations(): AXPValidationRules {\n const merged = [...(this.schema.validationRules ?? []), ...(this.token.prop.validationRules ?? [])];\n return merged;\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetFilterBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n operatorChange: EventEmitter<string> = new EventEmitter<string>();\n\n private _operator!: string;\n @Input()\n public get operator(): string {\n return this._operator;\n }\n public set operator(op: string) {\n this._operator = op;\n this.operatorChange.emit(op);\n this.render();\n this.cdr.markForCheck();\n }\n\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Injector,\n Input,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, get, merge, set } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetEditBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full lg:ax-w-[50%] ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n private subscriber = inject(AXUnsubscriber);\n\n private _context: any;\n @Input()\n public get context(): any {\n return this._context;\n }\n\n public set context(v: any) {\n this._context = v;\n if (this.instance) {\n this.instance.context = v;\n }\n this.updateValue();\n }\n\n @Input()\n prop!: any;\n\n @Input()\n mode: 'view' | 'edit' = 'view';\n\n protected isLoading = true;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n //TODO: move to better place\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetBase | AXPWidgetEditBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.[this.mode]?.options),\n schema?.component?.[this.mode]?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component[this.mode]?.component) {\n var com = await schema.component[this.mode]?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance && this.context && this.instance instanceof AXPWidgetEditBase) {\n this.instance.value = get(this.context, this.prop.name);\n }\n }\n\n private updateProps() {\n if (this.instance) {\n assign(this.instance, this.options);\n }\n }\n\n private attachReferenceField(v: any) {\n if (this.options['reference']) {\n const valueField = this.prop.component?.common?.options?.valueField || 'id';\n const referenceField = this.options['referenceField'];\n\n if (referenceField) {\n if (Array.isArray(v)) {\n this.context[referenceField] = v.map((item: any) => item[valueField]);\n } else {\n this.context[referenceField] = v?.[valueField];\n }\n } else {\n this.context[`${this.prop.name}Id`] = v?.[valueField];\n }\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetBase;\n this.instance.context = this.context;\n this.updateProps();\n this.updateValue();\n if (this.instance instanceof AXPWidgetEditBase) {\n this.attachReferenceField(this.instance.value);\n this.instance.valueChange.pipe(this.subscriber.takeUntilDestroy).subscribe((v) => {\n this.attachReferenceField(v);\n set(this.context, this.prop.name, v);\n });\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget/widget-column-renderer';\nimport { AXPWidgetFilterRendererComponent } from './widget/widget-filter-renderer';\nimport { AXPWidgetRendererComponent } from './widget/widget-renderer';\n\n@NgModule({\n imports: [PortalModule, AXSkeletonModule, CommonModule],\n exports: [AXPWidgetRendererComponent, AXPWidgetFilterRendererComponent, AXPWidgetColumnRendererComponent],\n declarations: [AXPWidgetRendererComponent, AXPWidgetColumnRendererComponent, AXPWidgetFilterRendererComponent],\n providers: [],\n})\nexport class AXPSchemaModule {}\n","import { AXDataSourceConfig } from '@acorex/components/common';\nimport { AXPValidationRules } from '@acorex/platform/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { AXPEntity } from '../../app';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPDisplayFormat } from '../formats';\n\nexport interface AXPLayoutGridPositions {\n start?: number;\n span?: number;\n}\n\nexport interface AXPEntityPropertyLayoutOptions {\n positions: {\n default?: AXPLayoutGridPositions;\n sm?: AXPLayoutGridPositions;\n md?: AXPLayoutGridPositions;\n lg?: AXPLayoutGridPositions;\n xl?: AXPLayoutGridPositions;\n xxl?: AXPLayoutGridPositions;\n };\n}\n\nexport interface AXPEntityPropertyConfig {\n name: string;\n title: string;\n description?: string;\n schema: string;\n layout?: AXPEntityPropertyLayoutOptions;\n canEdit: boolean;\n canInsert: boolean;\n canFilter?: boolean;\n canInlineFilter?: boolean;\n canSort?: boolean;\n visible?: boolean | string;\n formats?: AXPDisplayFormat;\n validationRules?: AXPValidationRules;\n component?: {\n common?: {\n options: AXPComponentOptions;\n };\n view?: {\n options: AXPComponentOptions;\n };\n edit?: {\n options: AXPComponentOptions;\n };\n filter?: {\n options: AXPComponentOptions;\n };\n column?: {\n options: AXPComponentOptions;\n };\n };\n}\n\nexport interface AXPEntityConfig {\n newStruct?: AXPEntity;\n area?: string;\n module: string;\n name: string;\n title: string;\n formats?: AXPDisplayFormat;\n properties: AXPEntityPropertyConfig[];\n dataSource: AXDataSourceConfig;\n editOptions?: {\n create?: boolean;\n update?: boolean;\n delete?: boolean;\n import?: boolean;\n };\n views: {\n list?: AXPEntityListConfig;\n lookup?: any;\n quickView?: AXPEntityViewConfig;\n detailView?: AXPEntityViewConfig;\n createView?: AXPEntityViewConfig;\n };\n commands?: {\n create?: (values: { [key: string]: any }) => Promise<any>;\n delete?: (id: string) => Promise<any>;\n update?: (id: string, values: { [key: string]: any }) => Promise<any>;\n };\n actions?: {\n [key: string]: {\n title: string;\n execute: (...args: any[]) => Promise<any> | string;\n permissions?: string[];\n target: 'selected' | 'single' | 'entity';\n priority: 'primary' | 'secondary';\n type: 'create' | 'update' | 'delete';\n options?: any;\n };\n };\n}\n\nexport interface AXPEntityViewRootSectionConfig {\n properties: string[];\n sections?: AXPEntityViewChildSectionConfig[];\n}\n\nexport interface AXPEntityViewChildSectionConfig extends AXPEntityViewRootSectionConfig {\n title: string;\n name: string;\n description?: string;\n options?: {\n showPropTitle: boolean;\n };\n}\n\nexport interface AXPEntityViewConfig {\n root: AXPEntityViewRootSectionConfig;\n action?: (e: AXPEntityConfig) => void;\n}\n\nexport interface AXPEntityListConfig {\n title: string;\n views: AXPEntityListViewConfig[];\n}\n\nexport interface AXPEntityListViewConfig {\n fixed: boolean;\n title: string;\n name: string;\n columns: AXPEntityListDisplayColumnConfig[];\n conditions: AXPEntityListConditionConfig[];\n inlineConditions?: AXPEntityListConditionConfig[];\n sorts: AXPEntityListSortConfig[];\n}\n\nexport const AXPEntityListViewConfigEmpty: AXPEntityListViewConfig = {\n fixed: false,\n columns: [],\n conditions: [],\n sorts: [],\n name: 'empty',\n title: 'Empty',\n};\n\nexport interface AXPEntityListColumnConfig {\n name: string;\n title: string;\n schema: string;\n}\n\nexport interface AXPEntityListDisplayColumnConfig {\n name: string;\n visible: boolean;\n schema: string;\n title: string;\n displayFormat?: string;\n sortOptions: {\n enabled?: boolean;\n property: string;\n };\n filterOptions: {\n enabled?: boolean;\n property: string;\n };\n tooltipOptions?: {\n template: any;\n };\n options?: {\n [key: string]: any;\n };\n}\n\nexport interface AXPEntityListConditionConfig {\n name: string;\n operator: string;\n value: any;\n}\n\nexport interface AXPEntityListSortConfig {\n name: string;\n dir: 'asc' | 'desc';\n}\n\nexport function convertPropertyToColumn(property: AXPEntityPropertyConfig): AXPEntityListDisplayColumnConfig {\n return {\n //TODO: merge format function\n schema: property.schema,\n name: property.name,\n title: property.title,\n visible: true,\n displayFormat: property.formats?.list ?? property.formats?.default,\n sortOptions: {\n enabled: property.canSort,\n property: property.name,\n },\n filterOptions: {\n enabled: property.canFilter,\n property: property.name,\n },\n options: merge(cloneDeep(property.component?.common?.options), property.component?.column?.options),\n };\n}\n\nexport function convertPropertiesToColumns(\n ...propertis: AXPEntityPropertyConfig[]\n): AXPEntityListDisplayColumnConfig[] {\n return propertis.map((p) => convertPropertyToColumn(p));\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\n\nexport interface AXPEntityLoader {\n get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null>;\n}\n\nexport class AXEntityLoaderDefault implements AXPEntityLoader {\n async get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null> {\n return null;\n }\n}\n\nexport const AXP_ENTITY_LOADER = new InjectionToken<AXPEntityLoader>(\n 'AXP_ENTITY_LOADER',\n {\n providedIn: 'root',\n factory: () => {\n return new AXEntityLoaderDefault();\n },\n }\n);","import { Injectable, inject } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\nimport { AXP_ENTITY_LOADER } from \"./entity.loader\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPEntityRegistryService {\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n private entities = new Map<string, AXPEntityConfig>();\n\n // Entity loader service for dynamically loading entity configurations.\n private loader = inject(AXP_ENTITY_LOADER); // Assuming AXPEntityLoader is the correct type\n\n\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n * \n * @param config The configuration object of the entity to be registered.\n */\n register(config: AXPEntityConfig): void {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName: string, entityName: string): Promise<AXPEntityConfig> {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n\n if (!config) {\n try {\n config = await this.loader.get(moduleName, entityName);\n if (config) {\n this.register(config);\n }\n } catch (error) {\n console.error(`Error loading entity '${key}':`, error);\n throw error; // Rethrow to allow error handling by caller\n }\n\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n\n return config;\n }\n\n /**\n * Creates a unique key for an entity based on its module and name.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n private createEntityKey(moduleName: string, entityName: string): string {\n return `${moduleName}.${entityName}`;\n }\n}\n","import { AXToastModule } from '@acorex/components/toast';\nimport { NgModule } from '@angular/core';\nimport { BETWEEN_OPER, DATE_OPERATORS, EQ_OPER, NUMBER_OPERATORS, STRING_OPERATORS } from '../../app';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\n\nexport const widgetSchemas = {\n //*Sharing schema list with other modules\n text: 'text',\n largetext: 'largetext',\n number: 'number',\n currency: 'currency',\n phone: 'phone',\n email: 'email',\n dateTime: 'dateTime',\n date: 'date',\n time: 'time',\n toggle: 'toggle',\n checkbox: 'checkbox',\n password: 'password',\n file: 'file',\n lookup: 'lookup',\n selectionList: 'selection-list',\n richText: 'rich-text',\n map: 'map',\n avatar: 'avatar',\n messenger: 'messenger',\n gallery: 'gallery',\n signaturePad: 'signature-pad',\n};\n\n@NgModule({\n imports: [AXToastModule],\n exports: [],\n declarations: [],\n providers: [],\n})\nexport class AXPCommonWidgetModule {\n constructor(service: AXPSchemaRegistryService) {\n //text\n service.register({\n component: {\n view: {\n component: () => import('./text/text-widget-view.component').then((c) => c.AXPTextWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./text/text-widget-edit.component').then((c) => c.AXPTextWidgetEditComponent),\n },\n column: {\n component: () => import('./text/text-widget-column.component').then((c) => c.AXPTextWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.text,\n dataType: 'string',\n });\n service.extend('text', {\n name: widgetSchemas.largetext,\n component: {\n edit: {\n component: () =>\n import('./text/largetext-widget-edit.component').then((c) => c.AXPLargeTextWidgetEditComponent),\n },\n column: {\n options: {\n width: '400px',\n },\n },\n },\n });\n //\n service.register({\n component: {\n view: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/number-widget-filter.component').then(\n (c) => c.AXPNumberWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./number/number-widget-edit.component').then((c) => c.AXPNumberWidgetEditComponent),\n },\n column: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.number,\n filterOptions: {\n operators: [...NUMBER_OPERATORS],\n default: BETWEEN_OPER,\n },\n dataType: 'number',\n });\n service.extend('number', {\n name: widgetSchemas.currency,\n formats: {\n default: 'EN-GB',\n },\n component: {\n edit: {\n options: {\n clearButton: false,\n },\n },\n },\n });\n //phone\n service.register({\n component: {\n view: {\n component: () => import('./phone/phone-widget-view.component').then((c) => c.AXPPhoneWidgetViewComponent),\n },\n column: {\n component: () => import('./phone/phone-widget-column.component').then((c) => c.AXPPhoneWidgetColumnComponent),\n options: { allowResizing: true },\n },\n edit: {\n component: () => import('./phone/phone-widget-edit.component').then((c) => c.AXPPhoneWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n name: widgetSchemas.phone,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n //email\n service.register({\n component: {\n view: {\n component: () => import('./email/email-widget-view.component').then((c) => c.AXPEmailWidgetViewComponent),\n },\n edit: {\n component: () => import('./email/email-widget-edit.component').then((c) => c.AXPEmailWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n column: {\n component: () => import('./email/email-widget-column.component').then((c) => c.AXPEmailWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.email,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n // dateTime\n service.register({\n component: {\n view: {\n component: () =>\n import('./dateTime/dateTime-widget-view.component').then((c) => c.AXPDateTimeWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./dateTime/dateTime-widget-edit.component').then((c) => c.AXPDateTimeWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./dateTime/dateTime-widget-filter.component').then((c) => c.AXPDateTimeWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./dateTime/dateTime-widget-column.component').then((c) => c.AXPDateTimeWidgetColumnComponent),\n options: {\n width: '200px',\n allowResizing: true,\n },\n },\n },\n formats: {\n default: 'date',\n },\n filterOptions: {\n operators: [...DATE_OPERATORS],\n default: BETWEEN_OPER,\n },\n name: widgetSchemas.dateTime,\n dataType: 'date',\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.date,\n formats: {\n default: 'date',\n },\n component: {\n column: {\n options: {\n width: '120px',\n },\n },\n },\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.time,\n formats: {\n default: 'time',\n },\n component: {\n column: {\n options: {\n width: '80px',\n },\n },\n },\n });\n //toggle\n service.register({\n component: {\n view: {\n component: () => import('./toggle/toggle-widget-view.component').then((c) => c.AXPToggleWidgetViewComponent),\n },\n edit: {\n component: () => import('./toggle/toggle-widget-edit.component').then((c) => c.AXPToggleWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./toggle/toggle-widget-column.component').then((c) => c.AXPToggleWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.toggle,\n dataType: 'boolean',\n });\n //checkbox\n service.register({\n component: {\n view: {\n component: () =>\n import('./checkbox/checkbox-widget-view.component').then((c) => c.AXPCheckboxWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./checkbox/checkbox-widget-edit.component').then((c) => c.AXPCheckboxWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./checkbox/checkbox-widget-column.component').then((c) => c.AXPCheckboxWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.checkbox,\n dataType: 'boolean',\n });\n //password\n service.register({\n component: {\n view: {\n component: () =>\n import('./password/password-widget-view.component').then((c) => c.AXPPasswordWidgetViewComponent),\n },\n column: {\n component: () =>\n import('./password/password-widget-column.component').then((c) => c.AXPPasswordWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () =>\n import('./password/password-widget-edit.component').then((c) => c.AXPPasswordWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.password,\n dataType: 'string',\n });\n //file\n service.register({\n component: {\n view: {\n component: () => import('./file/file-widget-view.component').then((c) => c.AXPFileWidgetViewComponent),\n },\n column: {\n component: () => import('./file/file-widget-column.component').then((c) => c.AXPFileWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () => import('./file/file-widget-edit.component').then((c) => c.AXPFileWidgetEditComponent),\n },\n filter: {\n component: () => import('./file/file-widget-filter.component').then((c) => c.AXPFileWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.file,\n dataType: 'object',\n });\n // look up\n service.register({\n component: {\n view: {\n component: () => import('./lookup/lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup/lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./lookup/lookup-widget-filter.component').then((c) => c.AXPLookupWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./lookup/lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.lookup,\n dataType: 'object',\n });\n // selection list\n service.register({\n component: {\n view: {\n component: () =>\n import('./selection-list/selection-list-widget-view.component').then(\n (c) => c.AXPSelectionListWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./selection-list/selection-list-widget-edit.component').then(\n (c) => c.AXPSelectionListWidgetEditComponent\n ),\n },\n column: {\n component: () =>\n import('./selection-list/selection-list-widget-column.component').then(\n (c) => c.AXPSelectionListWidgetColumnComponent\n ),\n options: {\n allowResizing: true,\n },\n },\n filter: {\n component: () =>\n import('./selection-list/selection-list-widget-filter.component').then(\n (c) => c.AXPSelectionListWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.selectionList,\n dataType: 'object',\n });\n // rich text\n service.register({\n component: {\n view: {\n component: () =>\n import('./rich-text/rich-text-widget-view.component').then((c) => c.AXPRichTextWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./rich-text/rich-text-widget-edit.component').then((c) => c.AXPRichTextWidgetEditComponent),\n options: {\n allowResizing: true,\n },\n },\n column: {\n component: () =>\n import('./rich-text/rich-text-widget-column.component').then((c) => c.AXPRichTextWidgetColumnComponent),\n options: {\n width: '400px',\n },\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.richText,\n dataType: 'object',\n });\n // map\n service.register({\n component: {\n view: {\n component: () => import('./map/map-widget-view.component').then((c) => c.AXPMapWidgetViewComponent),\n },\n edit: {\n component: () => import('./map/map-widget-edit.component').then((c) => c.AXPMapWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.map,\n dataType: 'object',\n });\n // avatar\n service.register({\n component: {\n view: {\n component: () => import('./avatar/avatar-widget-view.component').then((c) => c.AXPAvatarWidgetViewComponent),\n },\n edit: {\n component: () => import('./avatar/avatar-widget-edit.component').then((c) => c.AXPAvatarWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.avatar,\n dataType: 'object',\n });\n // messenger\n service.register({\n component: {\n view: {\n component: () =>\n import('./messenger/messenger-widget-view.component').then((c) => c.AXPMessengerWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./messenger/messenger-widget-edit.component').then((c) => c.AXPMessengerWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./messenger/messenger-widget-column.component').then((c) => c.AXPMessengerWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.messenger,\n dataType: 'object',\n });\n //\n // gallery\n service.register({\n component: {\n view: {\n component: () =>\n import('./gallery/gallery-widget-view.component').then((c) => c.AXPGalleryWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./gallery/gallery-widget-edit.component').then((c) => c.AXPGalleryWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./gallery/gallery-widget-filter.component').then((c) => c.AXPGalleryWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.gallery,\n dataType: 'object',\n });\n // signature-pad\n service.register({\n component: {\n view: {\n component: () =>\n import('./signature-pad/signature-pad-widget-view.component').then(\n (c) => c.AXPSignaturePadWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./signature-pad/signature-pad-widget-edit.component').then(\n (c) => c.AXPSignaturePadWidgetEditComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.signaturePad,\n dataType: 'object',\n });\n //\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPErrorHandlerRegistryService","i1.AXPComponentSlotRegistryService","i1.AXPComponentSlotLoaderService","i3","i1","i2","i3.AXPSettingsService","platform","i1.AXPAppStartUpService","i2.AXPSettingsService","i3.AXPDataSeederService","i1.AXPSchemaRegistryService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWa,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;QAIU,IAAK,CAAA,KAAA,GAAqB,EAAE;AAmBrC;AAjBC,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGvB,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,YAAA,MAAM,IAAI,CAAC,GAAG,EAAE;;;AAIZ,IAAA,YAAY,CAAC,MAAc,EAAA;QACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC;QAC1D,IAAI,WAAW,EAAE;AACf,YAAA,WAAW,CAAC,SAAS,GAAG,MAAM;;;8GAjBvB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;AAuBD,SAAS,cAAc,CAAC,cAAoC,EAAA;AAC1D,IAAA,OAAO,MAAM,cAAc,CAAC,WAAW,EAAE;AAC3C;AAEa,MAAA,qBAAqB,GAAa;AAC7C,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,UAAU,EAAE,cAAc;IAC1B,IAAI,EAAE,CAAC,oBAAoB,CAAC;AAC5B,IAAA,KAAK,EAAE,IAAI;;;ICxBD;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACX,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACX,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACb,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,0BAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,0BAAA,CAAA,0BAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT,IAAA,0BAAA,CAAA,0BAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACZ,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,GAIrC,EAAA,CAAA,CAAA;IAUW;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,GAKhC,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA;AAwJK,SAAU,aAAa,CAAC,MAAiB,EAAA;IAC7C,OAAO;QACL,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAI,CAAA,EAAA,MAAM,CAAC,IAAI,CAAE,CAAA;AACzC,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9B,SAAA;KACF;AACH;AAqFM,SAAU,iBAAiB,CAAC,EAAmB,EAAA;AACnD,IAAA,QAAQ,EAAE,CAAC,IAAI;AACb,QAAA,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;AACtD,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;AACtD,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACvD,QAAA,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE;AACvD,QAAA,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;AAC1D,QAAA,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE;AACxD,QAAA;YACE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;;AAE3C;;ACjTa,MAAA,OAAO,GAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI;AAC5E,MAAA,WAAW,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI;AACvF,MAAA,OAAO,GAAsB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI;AACzF,MAAA,OAAO,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI;AACnF,MAAA,QAAQ,GAAsB;AACzC,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,KAAK,EAAE,uBAAuB;AAC9B,IAAA,QAAQ,EAAE,IAAI;;AAEH,MAAA,QAAQ,GAAsB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI;AACpG,MAAA,aAAa,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI;AACxF,MAAA,iBAAiB,GAAsB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI;AACvG,MAAA,gBAAgB,GAAsB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI;AAChG,MAAA,cAAc,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI;AAC1F,MAAA,aAAa,GAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK;AACxF,MAAA,iBAAiB,GAAsB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK;AACnG,MAAA,YAAY,GAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI;AAErF,MAAA,gBAAgB,GAAG;IAC9B,OAAO;IACP,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,iBAAiB;;AAGN,MAAA,gBAAgB,GAAG;IAC9B,OAAO;IACP,WAAW;IACX,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,iBAAiB;;AAGN,MAAA,iBAAiB,GAAG,CAAC,OAAO;AAE5B,MAAA,cAAc,GAAG;IAC5B,OAAO;IACP,WAAW;IACX,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,iBAAiB;;;MCzDG,eAAe,CAAA;AAapC;;MCPY,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAYzC;IAVU,IAAI,CAAC,KAAa,EAAE,KAAa,EAAA;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAChD,QAAA,QAAQ,CAAC,IAAI,GAAG,MAAM;QACtB,QAAQ,CAAC,MAAM,EAAE;QACjB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,QAAQ,CAAC,MAAM,EAAE;AACjB,QAAA,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAG,EAAA,KAAK,CAAU,QAAA,CAAA,CAAC;;8GAVjC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCLY,gBAAgB,CAAA;AACzB,IAAA,OAAO,IAAI,GAAA;QACP,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,KAAI;AACpE,YAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;AACvC,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG;AAC1D,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7B,SAAC,CAAC;;AAKN,IAAA,OAAO,MAAM,CAAC,GAAG,IAAc,EAAA;QAC3B,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,GAAG,GAAG,GAAG;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;AAChB,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAClB,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACb,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEjB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;;AAM5D,IAAA,OAAO,IAAI,CAAC,GAAG,IAAW,EAAA;QACtB,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE;AAEpB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;;AACZ,aAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAA,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACf,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;;AAGjB,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE;AACjC,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE;AAC7B,QAAA,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,CAAC;;AAItE,IAAA,OAAO,KAAK,CAAI,MAAiB,GAAA,CAAC,EAAE,SAAkB,EAAA;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;;AAK5C,IAAA,OAAO,IAAI,CAAI,GAAG,IAAW,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;;AAEzC,QAAA,MAAM,KAAK,GAAQ,IAAI,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;;;AAI/C,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;;;AAIrD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE5D,QAAA,OAAO,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;;AAG9E,IAAA,OAAO,MAAM,CAAC,MAAA,GAAiB,EAAE,EAAA;QAC7B,MAAM,KAAK,GAAG,gEAAgE;AAC9E,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;AAGxG,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG;;AAG/B,IAAA,OAAO,IAAI,CAAI,KAAA,GAAa,EAAE,EAAA;AAC1B,QAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;;AAGzF,IAAA,OAAO,KAAK,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAA,CAAA,EAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE;;AAGvC,IAAA,OAAO,YAAY,CAAC,MAAA,GAAiB,EAAE,EAAA;QACnC,MAAM,KAAK,GAAG,gEAAgE;AAC9E,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;AAExG,IAAA,OAAO,QAAQ,CAAC,MAAA,GAAiB,EAAE,EAAA;QAC/B,MAAM,KAAK,GAAG,sDAAsD;AACpE,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;AAIxG,IAAA,OAAO,KAAK,GAAA;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1C,QAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,YAAY,CAAI,CAAA,EAAA,UAAU,EAAE;;AAGtD,IAAA,OAAO,SAAS,GAAA;QACZ,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;AACpG,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGhC,IAAA,OAAO,QAAQ,GAAA;QACX,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;AACnH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;AAK/B,IAAA,OAAO,KAAK,CAAC,GAAG,IAAW,EAAA;QACvB,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE;AAExE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACtC,OAAO,CAAA,EAAG,SAAS,CAAA,EAAG,SAAS,CAAA,EAAG,QAAQ,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;;aAClE;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;YAC9C,OAAO,CAAA,EAAG,SAAS,CAAA,EAAG,SAAS,CAAA,EAAG,QAAQ,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;;;AAI7E,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC;AACxF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAO,IAAI,GAAA;AACP,QAAA,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;AACxG,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG5B,IAAA,OAAO,KAAK,GAAA;QACR,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG5B,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACpF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,OAAO,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,MAAM,CAAK,EAAA,EAAA,IAAI,CAAK,EAAA,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,CAAK,EAAA,EAAA,OAAO,EAAE;;AAM/E;;ACtKD;IAGY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;IACf,cAAiB,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;AACrB,CAAC,EANW,cAAc,KAAd,cAAc,GAMzB,EAAA,CAAA,CAAA;MAKY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AAsEzE;AApEG,IAAA,MAAM,eAAe,CAAC,GAAyB,EAAE,UAA6E,EAAE,EAAA;QAC5H,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,OAAO,CAAC;QACvC,MAAM,WAAW,GAAG,CAAC,MAAM,OAAO,aAAa,CAAC,EAAE,OAAO;AAEzD,QAAA,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG;QAE5E,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC;AACnC,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;;QAG/C,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,GAAG,OAAO;AAChD,QAAA,IAAI,GAAG;QAEP,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,cAAc,CAAC,MAAM,EAAE;YACpE,GAAG,GAAG,IAAI,KAAK,CAAC;AACZ,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;;AACC,aAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACrC,YAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ;YAClC,GAAG,GAAG,IAAI,KAAK,CAAC;AACZ,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM;AACzB,aAAA,CAAC;;aACC;AACH,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;;AAG/C,QAAA,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACjD,QAAA,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK;AAE/D,QAAA,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC;AACzD,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAkB;;AAGjD,IAAA,MAAM,QAAQ,CAAC,GAAyB,EAAE,UAA6E,EAAE,EAAA;AACrH,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,IAAG;AACjE,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC5C,YAAA,OAAO,IAAI;AACf,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AAEhD,QAAA,MAAM,CAAC,GAAG,GAAG,OAAO;AACpB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;YACjB,UAAU,CAAC,MAAK;AACZ,gBAAA,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;aAC/B,EAAE,IAAI,CAAC;AACZ,SAAC;;;;;;;;;;8GA5DI,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;2FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACPK,MAAO,4BAA6B,SAAQ,KAAK,CAAA;AACrD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,gBAAgB,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrB,YAAA,cAAc,EAAE,mCAAmC;AACpD,SAAA,CAAC;;AAGJ,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,gBAAgB;;AAGzB,IAAA,MAAM,OAAO,CAAU,UAAkB,EAAE,UAAe,EAAA;AACxD,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE;AAC7E,QAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;;;AAIjG,IAAA,MAAM,MAAM,CAAU,UAAkB,EAAE,EAAU,EAAA;QAClD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE;;AAG/E,IAAA,MAAM,SAAS,CAAU,UAAkB,EAAE,EAAU,EAAE,QAAgC,EAAA;QACvF,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;;AAG1C,IAAA,MAAM,SAAS,CAAC,UAAkB,EAAE,EAAU,EAAA;QAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;;AAGzE,IAAA,MAAM,SAAS,CAAU,UAAkB,EAAE,MAAS,EAAA;AACpD,QAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACzE,QAAA,OAAO,IAAI;;IAGb,MAAM,MAAM,CAAU,UAAkB,EAAA;AACtC,QAAA,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;;AAGzE,IAAA,MAAM,KAAK,CAAU,UAAkB,EAAE,OAAwB,EAAA;AAC/D,QAAA,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;QAE7E,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YACvC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;;QAE/C,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEzE,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC7E,SAAA,CAAC;;AAEL;AAED;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;MC3JsB,uBAAuB,CAAA;AAsB5C;MAEqB,qBAAqB,CAAA;AAsB1C;MAEY,yBAAyB,CAAA;IAOpC,WACU,CAAA,cAA4E,EAC7E,UAAkB,EAAA;QADjB,IAAc,CAAA,cAAA,GAAd,cAAc;QACf,IAAU,CAAA,UAAA,GAAV,UAAU;;IAGnB,MAAM,OAAO,CAAC,UAAe,EAAA;AAC3B,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;;AAGhE,IAAA,MAAM,CAAC,EAAK,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;;IAGxD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGpD,IAAA,KAAK,CAAC,OAAwB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;;IAG5D,SAAS,CAAC,EAAK,EAAE,QAAgC,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC;;AAGrE,IAAA,SAAS,CAAC,EAAK,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;;AAG3D,IAAA,SAAS,CAAC,MAAe,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;;AAEhE;MAEqB,oBAAoB,CAAA;AAgBzC;MAEY,wBAAwB,CAAA;AAanC,IAAA,WAAA,CAAoB,UAAkB,EAAA;QAAlB,IAAU,CAAA,UAAA,GAAV,UAAU;AANtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,yBAAyB,CACzD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,CAChB;;IAID,MAAM,SAAS,CAAC,OAAgB,EAAA;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC;;IAGpD,MAAM,MAAM,CAAC,EAAM,EAAA;QACjB,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;;IAG5C,MAAM,SAAS,CAAC,EAAM,EAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;;AAG/C,IAAA,MAAM,SAAS,CAAC,EAAM,EAAE,MAA8B,EAAA;QACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;;AAGvD,IAAA,MAAM,KAAK,CAAC,OAAA,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAA;QAC3D,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;;;;;AAOhD,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;;AAE9B;;MCtJY,qBAAqB,GAAG,IAAI,cAAc,CAAgB,uBAAuB;MAGjF,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;QAEU,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAWnE;AATC,IAAA,MAAM,IAAI,GAAA;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9B,YAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAChC,gBAAA,MAAM,MAAM,CAAC,IAAI,EAAE;;;aAEhB;AACL,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;;;8GATlB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCFrB,8BAA8B,CAAA;AAGvC,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAFpB,IAAa,CAAA,aAAA,GAAsB,EAAE;;IAK7C,QAAQ,CAAC,GAAG,OAAsC,EAAA;AAC9C,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;AAChB,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;;AAExC,SAAC,CAAC;;AAIN,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;;8GAlBpB,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF3B,MAAM,EAAA,CAAA,CAAA;;2FAET,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACDK,MAAO,qBAAsB,SAAQ,YAAY,CAAA;IAInD,WAAoB,CAAA,QAAkB,EAAU,QAAwC,EAAA;AACpF,QAAA,KAAK,EAAE;QADS,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAoB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAI/C,IAAA,WAAW,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,KAAU,KAAI;AACzD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC5C,YAAA,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE;gBAC9B,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,KAAI;AAC5C,oBAAA,sBAAsB,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AAC1C,iBAAC,CAAC;;iBACC;AACH,gBAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;AAEjC,SAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;;YAErC;;AAEJ,QAAA,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC;;8GAvB3B,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACHlC;MASa,sBAAsB,CAAA;IAIjC,WAAoB,CAAA,EAAc,EAAU,QAAmB,EAAA;QAA3C,IAAE,CAAA,EAAA,GAAF,EAAE;QAAsB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAEpD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,oBAAoB,EAAE;;;IAIvB,oBAAoB,GAAA;;QAE1B,IAAI,CAAC,YAAY,EAAE;;AAGnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC;;IAG9C,UAAU,CAAC,SAA6C,EAAE,MAAc,EAAA;QAC9E,IAAI,SAAS,IAAI,IAAI;YAAE;AAEvB,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAgB,aAAA,EAAA,SAAS,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACxF,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAc,WAAA,EAAA,SAAS,CAAC,MAAM,CAAA,CAAE,GAAG,EAAE;AAChF,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAe,YAAA,EAAA,SAAS,CAAC,OAAO,CAAA,CAAE,GAAG,EAAE;AACpF,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAgB,aAAA,EAAA,SAAS,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACxF,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAc,WAAA,EAAA,SAAS,CAAC,MAAM,CAAA,CAAE,GAAG,EAAE;AAChF,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAe,YAAA,EAAA,SAAS,CAAC,OAAO,CAAA,CAAE,GAAG,EAAE;QACpF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,CAAG,EAAA,MAAM,YAAY,SAAS,CAAC,KAAK,CAAE,CAAA,GAAG,EAAE,CAAC;AAE5E,QAAA,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC1E,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC;;AAEtD,SAAC,CAAC;;IAGI,YAAY,GAAA;AAClB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;AACjE,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;YAC3C,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAC3G,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;;AAE/D,SAAC,CAAC;;8GAhDO,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;uGAEsB,OAAO,EAAA,CAAA;sBAA3B,KAAK;uBAAC,YAAY;;;MCNR,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,kBAAkB,GAAG,GAAG,CAAC;;AAGzB,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;QAC9D,IAA0B,CAAA,0BAAA,GAAG,CAAC;QAC9B,IAA4B,CAAA,4BAAA,GAAG,KAAK;;AAoCpC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;QAC3D,IAAuB,CAAA,uBAAA,GAAG,CAAC;QAC3B,IAAyB,CAAA,yBAAA,GAAG,KAAK;AA+B5C;AAnEG,IAAA,IAAW,kBAAkB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE;;AAGvD,IAAA,oBAAoB,CAAC,KAAc,EAAA;QAC/B,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;;aACpC;AACH,YAAA,IAAI,IAAI,CAAC,0BAA0B,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,0BAA0B,EAAE;;AAErC,YAAA,IAAI,IAAI,CAAC,0BAA0B,KAAK,CAAC,EAAE;;gBAEvC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1C,oBAAA,IAAI,IAAI,CAAC,0BAA0B,KAAK,CAAC,EAAE;AACvC,wBAAA,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC;;AAEhD,iBAAC,CAAC;;;;AAKN,IAAA,4BAA4B,CAAC,KAAc,EAAA;AAC/C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,4BAA4B,EAAE;AAC7C,YAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK;AACzC,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAYjD,IAAA,IAAW,eAAe,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE;;AAGpD,IAAA,iBAAiB,CAAC,KAAc,EAAA;QAC5B,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;;aACjC;AACH,YAAA,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,uBAAuB,EAAE;;AAElC,YAAA,IAAI,IAAI,CAAC,uBAAuB,KAAK,CAAC,EAAE;;gBAEpC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1C,oBAAA,IAAI,IAAI,CAAC,uBAAuB,KAAK,CAAC,EAAE;AACpC,wBAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;;AAE7C,iBAAC,CAAC;;;;AAKN,IAAA,yBAAyB,CAAC,KAAc,EAAA;AAC5C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,yBAAyB,EAAE;AAC1C,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK;AACtC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;;;8GAxErC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCIrB,kBAAkB,CAAA;AAa3B,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;;IAEzB,IAAW,QAAQ,CAAC,CAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;;AAW/B,IAAA,WAAA,CAAoB,OAAmC,EAAU,QAAmB,EAAU,IAAY,EAAU,GAAsB,EAAA;QAAtH,IAAO,CAAA,OAAA,GAAP,OAAO;QAAsC,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAqB,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAkB,IAAG,CAAA,GAAA,GAAH,GAAG;QAvBvH,IAAY,CAAA,YAAA,GAAW,GAAG;AAInB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW;QAElE,IAAS,CAAA,SAAA,GAAY,KAAK;QAgC1B,IAAc,CAAA,cAAA,GAAG,MAAW;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;gBAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,KAAK,MAAM;oBAChD,MAAM,CAAC,OAAO;oBACb,IAAI,CAAC,aAA6B,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;AAEhF,gBAAA,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxE,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACjD,qBAAC,CAAC;AACF,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;qBACpB,IAAI,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC1D,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACpD,qBAAC,CAAC;AACF,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAE/B,aAAC,CAAC;AACN,SAAC;;IAhCD,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,YAAY,YAAY,WAAW,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY;;aAErC;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAgB,IAAI,MAAM;;AAE3F,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa;QAC3G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;AAC7C,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAyBjF,WAAW,GAAA;QACP,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;8GAnEhE,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,WAAA,EAAA,aAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE;AACf,iBAAA;4JAIG,WAAW,EAAA,CAAA;sBADV,KAAK;uBAAC,WAAW;gBAIlB,YAAY,EAAA,CAAA;sBADX,KAAK;uBAAC,cAAc;gBAKd,cAAc,EAAA,CAAA;sBADpB;gBAgBQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;MC3BQ,+BAA+B,CAAA;AAH5C,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAoC;AAiBjE;IAfG,QAAQ,CAAC,QAAgB,EAAE,MAA8B,EAAA;AACrD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;;AAG/C,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;QAEvF,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;;;AAI5C,IAAA,GAAG,CAAC,QAAgB,EAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;;8GAjBnC,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAET,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCEY,6BAA6B,CAAA;IACxC,WAAoB,CAAA,eAAgD,EAAU,QAAkB,EAAA;QAA5E,IAAe,CAAA,eAAA,GAAf,eAAe;QAA2C,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAEtF,aAAa,CAAC,QAAgB,EAAE,gBAAkC,EAAA;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClF,IAAI,OAAO,EAAE;YACX,gBAAgB,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAI;AAC/B,gBAAA,IAAI,SAAwC;gBAC5C,IAAI,OAAO,GAA+B,EAAE;AAC5C,gBAAA,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE;;AAE9C,oBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACxC,wBAAA,SAAS,GAAG,MAAM,CAAC,aAAa,IAAI;AACtC,qBAAC,CAAC;;AACG,qBAAA,IAAI,MAAM,CAAC,SAAS,EAAE;;AAE3B,oBAAA,SAAS,GAAG,MAAM,CAAC,SAAS;;;AAG9B,gBAAA,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE;;AAExC,oBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACxC,wBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAmB;wBACtC,OAAO,GAAG,GAAG,EAAE;AACjB,qBAAC,CAAC;;AACG,qBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;;AAEzB,oBAAA,OAAO,GAAG,MAAM,CAAC,OAAO;;;AAG1B,gBAAA,IAAI,SAAS,IAAI,IAAI,EAAE;oBACrB,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC;oBAChE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;;AAEjD,aAAC,CAAC;;;8GAnCK,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,+BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCAY,yBAAyB,CAAA;IAIlC,WAAoB,CAAA,oBAAmD,EAAS,gBAAkC,EAAA;QAA9F,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;QAAwC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;IAEhG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC;;8GAPpE,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AACjC,iBAAA;8HAGG,IAAI,EAAA,CAAA;sBADH;;;MCEQ,sBAAsB,CAAA;IAE/B,OAAO,OAAO,CAAC,OAAuC,EAAA;QAClD,OAAO;AACH,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,+BAA+B;AACxC,oBAAA,UAAU,EAAE,CAAC,QAAyC,KAAK,MAAK;wBAC5D,IAAI,OAAO,EAAE;AACT,4BAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChD,gCAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AACd,oCAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,iCAAC,CAAC;;;qBAGb;oBACD,IAAI,EAAE,CAAC,+BAA+B,CAAC;AACvC,oBAAA,KAAK,EAAE;AACV;AACJ;SACJ;;IAGL,OAAO,QAAQ,CAAC,OAAuC,EAAA;QACnD,OAAO;AACH,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,+BAA+B;AACxC,oBAAA,UAAU,EAAE,CAAC,QAAyC,KAAK,MAAK;wBAC5D,IAAI,OAAO,EAAE;AACT,4BAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChD,gCAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AACd,oCAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,iCAAC,CAAC;;;qBAGb;oBACD,IAAI,EAAE,CAAC,+BAA+B,CAAC;AACvC,oBAAA,KAAK,EAAE;AACV;AAEJ;SACJ;;AAGL;;AAEG;AACH,IAAA,WAAA,CAAiE,SAAgB,EAAA;AAC7E,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAG;AACnB,YAAA,CAAC,EAAE;AACP,SAAC,CAAC;;AArDG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAkDC,+BAA+B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAlDtD,sBAAsB,EAAA,YAAA,EAAA,CAHhB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAC9B,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAE1B,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB;AACtC,iBAAA;;0BAmDgB;;0BAAY,MAAM;2BAAC,+BAA+B;;;MCxDtD,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CAAmB,IAAY,EAAA;QAAZ,IAAI,CAAA,IAAA,GAAJ,IAAI;;AACxB;MACY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAmB,GAAW,EAAA;QAAX,IAAG,CAAA,GAAA,GAAH,GAAG;;AACvB;MACY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAmB,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAC7B;MAEY,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAmB,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAC7B;;MCDY,gBAAgB,CAAA;IAO3B,QAAQ,GAAA;QACN,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,iBAAiB;AAC3C,gBAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;gBACtB;AACF,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,qBAAqB;AAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;gBACrB;AACF,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,qBAAqB;AAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;gBAC3B;AACF,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,sBAAsB;AAChD,gBAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;gBAC3B;AACF,YAAA;gBACE;;;8GAtBK,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,yJCd7B,mWAWC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAW,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,iMAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG7C,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAER,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,CAAC,EACnD,IAAA,EAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAA,QAAA,EAAA,mWAAA,EAAA;8BAK9C,MAAM,EAAA,CAAA;sBADL;;;METU,iBAAiB,GAAG,IAAI,cAAc,CAAoB,mBAAmB;MAG7E,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAGY,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzD,IAAK,CAAA,KAAA,GAAyB,IAAI;QAClC,IAAc,CAAA,cAAA,GAAqF,EAAE;QACrG,IAAe,CAAA,eAAA,GAAa,EAAE;QAC9B,IAAc,CAAA,cAAA,GAAiE,EAAE;QACjF,IAAgB,CAAA,gBAAA,GAAuD,EAAE;AAgIpF;AA9HG,IAAA,MAAM,KAAK,GAAA;;AAEP,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK;;QAGrB,MAAM,KAAK,GAAkB,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAErD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACnC,gBAAA,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;;;;AAKvC,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;;AAGlC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,OAAO,KAAK;;AAGR,IAAA,yBAAyB,CAAC,KAAoB,EAAA;QAClD,OAAO;AACH,YAAA,QAAQ,EAAE,CAAC,QAAuB,KAAI;AAClC,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;aAC1B;AACD,YAAA,IAAI,EAAE,CAAC,MAAc,KAAyB;gBAC1C,OAAO;AACH,oBAAA,MAAM,EAAE,CAAC,QAAuB,EAAE,QAA4B,KAAI;AAC9D,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;qBAC3D;oBACD,MAAM,EAAE,MAAK;AACT,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;qBACpC;AACD,oBAAA,MAAM,EAAE,CAAC,WAAiC,KAAI;wBAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;qBACpD;AACD,oBAAA,QAAQ,EAAE,CAAC,QAAuB,KAAI;wBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;iBAEvD;;SAER;;AAGG,IAAA,sBAAsB,CAAC,KAAoB,EAAA;AAC/C,QAAA,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa;YAChD,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,6BAAA,CAA+B,CAAC;AAC9D,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;;iBACpB;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,gBAAA,MAAM,cAAc,GAAG,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;gBAChE,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;;;AAI1D,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa;YAChD,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,+BAAA,CAAiC,CAAC;;iBAC7D;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,gBAAA,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;;QAIpC,KAAK,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;YACnC,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,+BAAA,CAAiC,CAAC;;iBAC7D;AACH,gBAAA,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;;;QAI7C,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;YACnC,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,qCAAA,CAAuC,CAAC;;iBACnE;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrB,oBAAA,SAAS,CAAC,QAAQ,GAAG,EAAE;;gBAE3B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;;;;AAK5C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAGtB,IAAA,kBAAkB,CAAC,KAAoB,EAAE,MAAc,EAAE,cAA6B,KAAK,EAAA;AAC/F,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACtB,gBAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;;AAG3C,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5E,gBAAA,IAAI,MAAM,CAAC,SAAS,EAAE;AAClB,oBAAA,OAAO,MAAM;;;;QAIzB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;;;IAIlD,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;8GArIrB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACNrB,MAAA,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,EACnB,KAAK,EAAwE;MAElE,gBAAgB,GAAG,YAAY,CAAC,kBAAkB;MAClD,eAAe,GAAG,YAAY,CAAC,iBAAiB;;ACR7D;IACY;AAAZ,CAAA,UAAY,4BAA4B,EAAA;AACtC,IAAA,4BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,4BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAHW,4BAA4B,KAA5B,4BAA4B,GAGvC,EAAA,CAAA,CAAA;;ACWD;MACa,oBAAoB,GAAG,IAAI,cAAc,CAAiC,sBAAsB;MAGhG,yBAAyB,CAAA;AADtC,IAAA,WAAA,GAAA;QAEU,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5D,IAAK,CAAA,KAAA,GAAsC,IAAI;QAC/C,IAAc,CAAA,cAAA,GAIjB,EAAE;QACC,IAAgB,CAAA,gBAAA,GAAoE,EAAE;AAuN/F;;AApNC,IAAA,MAAM,KAAK,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK;;QAGnB,MAAM,KAAK,GAA+B,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAEjD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACjC,YAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACrC,gBAAA,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;;;AAInC,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,OAAO,KAAK;;;AAIN,IAAA,qBAAqB,CAAC,KAAiC,EAAA;QAC7D,OAAO;AACL,YAAA,QAAQ,EAAE,CAAC,QAAoC,KAAI;AACjD,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;aACxB;AACD,YAAA,OAAO,EAAE,CAAC,IAA8B,KAAI;AAC1C,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aACjB;AACD,YAAA,QAAQ,EAAE,CAAC,KAAgC,KAAI;AAC7C,gBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAClB;AACD,YAAA,IAAI,EAAE,CAAC,MAAc,KAAsC;gBACzD,OAAO;AACL,oBAAA,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAI;AAC9B,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;qBACjE;AACD,oBAAA,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAI;AAC/B,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;qBACjE;AACD,oBAAA,aAAa,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAI;AACjC,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;qBAChE;AACD,oBAAA,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClB,wBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;qBACxD;AACD,oBAAA,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,KAAI;AAChC,wBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,4BAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;4BACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gCACzD,MAAM,KAAK,GAAG,SAAsC;AACpD,gCAAA,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;oCAC/C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;;qCAC/B;AACL,oCAAA,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;;;iCAE3D;AACL,gCAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,4CAAA,CAA8C,CAAC;;;6BAE1E;AACL,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,sCAAA,CAAwC,CAAC;;qBAE1E;AACD,oBAAA,mBAAmB,EAAE,CAAC,IAAI,KAAI;AAC5B,wBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,4BAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;4BACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gCACzD,MAAM,KAAK,GAAG,SAAsC;AACpD,gCAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;iCACtB;AACL,gCAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,4CAAA,CAA8C,CAAC;;;6BAE1E;AACL,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,sCAAA,CAAwC,CAAC;;qBAE1E;AACD,oBAAA,kBAAkB,EAAE,CAAC,IAAI,KAAI;AAC3B,wBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,4BAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;4BACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gCACzD,MAAM,KAAK,GAAG,SAAsC;AACpD,gCAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;iCACnB;AACL,gCAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,4CAAA,CAA8C,CAAC;;;6BAE1E;AACL,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,sCAAA,CAAwC,CAAC;;qBAE1E;AACD,oBAAA,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,KAAI;AAC/B,wBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,4BAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;4BACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gCACzD,MAAM,KAAK,GAAG,SAAsC;AACpD,gCAAA,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;oCAC9C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;;qCAC9B;AACL,oCAAA,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,CAAA,8BAAA,CAAgC,CAAC;;;iCAE1D;AACL,gCAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,2CAAA,CAA6C,CAAC;;;6BAEzE;AACL,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,qCAAA,CAAuC,CAAC;;qBAEzE;AACD,oBAAA,kBAAkB,EAAE,CAAC,IAAI,KAAI;AAC3B,wBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,4BAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;4BACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gCACzD,MAAM,KAAK,GAAG,SAAsC;AACpD,gCAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;;iCACrB;AACL,gCAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,2CAAA,CAA6C,CAAC;;;6BAEzE;AACL,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,qCAAA,CAAuC,CAAC;;qBAEzE;AACD,oBAAA,iBAAiB,EAAE,CAAC,IAAI,KAAI;AAC1B,wBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,4BAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;4BACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gCACzD,MAAM,KAAK,GAAG,SAAsC;AACpD,gCAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;iCAClB;AACL,gCAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,2CAAA,CAA6C,CAAC;;;6BAEzE;AACL,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,qCAAA,CAAuC,CAAC;;qBAEzE;iBACF;aACF;SACF;;AAGK,IAAA,sBAAsB,CAAC,KAAiC,EAAA;;AAE9D,QAAA,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YAChE,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,gBAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa;gBAChD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,gBAAA,MAAM,WAAW,GAAG,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;gBAC7D,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;;iBAC1C;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,0BAAA,CAA4B,CAAC;;;;QAK/D,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE;AAC5C,gBAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;gBACnC,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;oBACzD,MAAM,KAAK,GAAG,SAAsC;oBACpD,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,GAAI,QAAQ,CAAC,MAAM,CACjB,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,CAC3B,CAClC;oBACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAChB,GAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,4BAA4B,CAAC,MAAM,CAA4B,CAC5G;;qBACI;AACL,oBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,mCAAA,CAAqC,CAAC;;;iBAEjE;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,6BAAA,CAA+B,CAAC;;;;AAKlE,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAGpB,IAAA,kBAAkB,CACxB,KAAiC,EACjC,MAAc,EACd,cAA0C,KAAK,EAAA;AAE/C,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,gBAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;;YAGzC,IAAI,IAAI,CAAC,IAAI,KAAK,4BAA4B,CAAC,KAAK,EAAE;gBACpD,MAAM,KAAK,GAAG,IAAiC;;AAG/C,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;gBAC/E,IAAI,WAAW,EAAE;AACf,oBAAA,OAAO,WAAW;;;AAIpB,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;gBAClF,IAAI,YAAY,EAAE;AAChB,oBAAA,OAAO,YAAY;;;;AAIzB,QAAA,OAAO,IAAI;;8GA7NF,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADZ,MAAM,EAAA,CAAA,CAAA;;2FACnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCTrB,qBAAqB,GAAG,IAAI,cAAc,CAAsB,uBAAuB,EAAE;AAClG,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACV,OAAO,IAAI,0BAA0B,EAAE;;AAE9C,CAAA;AAGD,MAAM,0BAA0B,CAAA;AAAhC,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,KAAK,GAAqB,IAAI,GAAG,EAAE;QAC5C,IAAe,CAAA,eAAA,GAAW,cAAc;;AAEhD,IAAA,MAAM,IAAI,GAAA;;QAEN,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACjE,IAAI,cAAc,EAAE;YAChB,MAAM,cAAc,GAAwB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACtE,YAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,aAAC,CAAC;AACF,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAEnG,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;;AAG9B,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;;QAE1B,MAAM,cAAc,GAAoC,EAAE;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AAC1B,YAAA,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG;AAC3B,SAAC,CAAC;AACF,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;;AAEjF;;MClCY,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAsB,qBAAqB,CAAC;AAC9E,QAAA,IAAA,CAAA,aAAa,GAAqB,IAAI,GAAG,EAAe;AAEhD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAmB;AAkCzD;AAhCC,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACvD,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC/B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AACpD,aAAC,CAAC;AACF,YAAA,OAAO,YAAY;;QACnB,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;YAC9C,MAAM,KAAK,CAAC;;;IAIhB,MAAM,GAAG,CAAU,GAAW,EAAA;QAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE;;QAEnB,OAAO,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAM;;AAGpD,IAAA,MAAM,GAAG,CAAU,GAAW,EAAE,KAAQ,EAAA;QACtC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;YAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;;aAC5B;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAA,YAAA,CAAc,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;;;8GAnCb,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCAY,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,QAAiB,EAAU,MAAc,EAAU,cAAkC,EAAA;QAArF,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAmB,IAAM,CAAA,MAAA,GAAN,MAAM;QAAkB,IAAc,CAAA,cAAA,GAAd,cAAc;QAErF,IAAQ,CAAA,QAAA,GAAG,YAAY,CACrB,MACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,iBAAiB,CAAC,EACzB,SAAS,CAAC,CAAC,MAAM,KAAI;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACjE;AACH,gBAAA,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAC3C,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;;YAE7E,OAAO,EAAE,EAAE;SACZ,CAAC,CACH,EACH,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB;;8GAnBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;ACEY,MAAA,cAAc,GAAG,WAAW,CACrC,EAAE,UAAU,EAAE,MAAM,EAAE;AAEtB;AACA,SAAS,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAI;IAClC,OAAO;AACH,QAAA,KAAK,EAAE,EAAmB;AAC1B,QAAA,gBAAgB,EAAE;AACd,YAAA,IAAI,EAAE,IAA0B;AAChC,YAAA,WAAW,EAAE;AAChB,SAAA;KACJ;AACL,CAAC,CAAC;AAEF;AACA,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,WAAA,GAAc,MAAM,EAAC,KAA0B,EAAC,KAAI;IAG7F,OAAO;AAEH,QAAA,YAAY,CAAC,KAAoB,EAAA;YAC7B,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACtC;AAED,QAAA,qBAAqB,CAAC,IAAY,EAAA;AAC9B,YAAA,MAAM,QAAQ,GAAG,CAAC,KAAoB,KAA2D;AAC7F,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;;AAEtB,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,wBAAA,IAAI,UAAU,CAAC,IAAI,EAAE;AACjB,4BAAA,OAAO,UAAU;;;AAGzB,oBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;;wBAEX,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C,wBAAA,IAAI,WAAW,CAAC,OAAO,EAAE;4BACrB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,SAAS,EAAE;;;;gBAIlE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;AAChD,aAAC;AAED,YAAA,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,WAAmB,KAA8C;;gBAEnG,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9E,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;;AAGjF,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;;gBAGpE,IAAI,gBAAgB,GAAG,CAAC;AACxB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;oBAChC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE;AACrC,wBAAA,gBAAgB,EAAE;;yBACf;AACH,wBAAA,MAAM;;;;gBAKd,MAAM,cAAc,GAAG,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM;AACtF,gBAAA,MAAM,YAAY,GAAG,gBAAgB,KAAK,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;gBAE5G,OAAO;oBACH,OAAO,EAAE,cAAc,IAAI,YAAY;AACvC,oBAAA,SAAS,EAAE,cAAc,IAAI,CAAC,YAAY;iBAC7C;AACL,aAAC;AAED,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;AAChD,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;SAClF;AAED,QAAA,cAAc,CAAC,IAAiB,EAAA;AAC5B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;AAC/B,iBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AAClB,gBAAA,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;AAEjF,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;SACvE;AAED,QAAA,UAAU,CAAC,IAAiB,EAAA;AACxB,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,EAAE;YAC7C,IAAI,CAAC,YAAY,EAAE;AACf,gBAAA,OAAO,KAAK;;AAGhB,YAAA,MAAM,UAAU,GAAG,CAAC,WAAwB,EAAE,UAAuB,KAAa;gBAC9E,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC5C,oBAAA,OAAO,IAAI;;AAEf,gBAAA,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,KAAK;AACtF,aAAC;AAED,YAAA,OAAO,IAAI,KAAK,YAAY,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAK,CAAC;;KAEjF;AACL,CAAC,CAAC,EACF,SAAS,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM;IACxE,MAAM,GAAA;QACF,CAAC,YAAW;AACR,YAAA,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE;YAC/C,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACtC,GAAG;KACP;IACD,SAAS,GAAA;KAER;CACJ,CAAC,CAAC;;MCnHM,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAL3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;AAEP,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGQ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;AAEP,IAAA,CAAA;AACH,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAGQ,IAAI,EAAA,CAAA;sBADV;;;MCMU,sBAAsB,CAAA;AAVnC,IAAA,WAAA,GAAA;AAcY,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAMhC;AAJa,IAAA,aAAa,CAAC,MAAe,EAAA;AACnC,QAAA,IAAI,MAAM;AACN,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;;8GAR1B,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EATrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;;;;AAIT,IAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,aAAa,EAAE,iBAAiB,CAAC;AACpC,iBAAA;8BAGU,KAAK,EAAA,CAAA;sBADX;;;MCdQ,qBAAqB,GAAG,YAAY,CAAC,iBAAiB;AACnE;MACa,wBAAwB,GAAG,YAAY,CAAC,qBAAqB;MAC7D,yBAAyB,GAAG,YAAY,CAAC,sBAAsB;MAC/D,yBAAyB,GAAG,YAAY,CAAC,sBAAsB;MAC/D,0BAA0B,GAAG,YAAY,CAAC,uBAAuB;AAC9E;MAEa,oBAAoB,GAAG,YAAY,CAAC,sBAAsB;MAC1D,oBAAoB,GAAG,YAAY,CAAC,sBAAsB;;MCF1D,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AAGY,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC3C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAE9B,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,MACnB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC5B,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAM,qBAAqB,EAAE,CAAC,CACrC,CACJ;AACJ;8GAZY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;ACND,MAAMC,UAAQ,GAAG,IAAI,UAAU,EAAE;AAapB,MAAA,YAAY,GAAwB;AAC/C,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAEA,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAIA,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;AAC9C,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,EAAEA,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAIA,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,KAAK,EAAE,EAAEA,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAIA,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjD,KAAA;AACD,IAAA,OAAO,EAAE,KAAK;;;ACThB,MAAM,QAAQ,GAAG,IAAI,UAAU,EAAE;AACjC;AAEO,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC5C,IAAA,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa,CACpB,YAAY;;IAEZ,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,MAAM;AACxC,QAAA,GAAG,KAAK;AACR,QAAA,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;AACf,YAAA,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AACnD,YAAA,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AACtD,SAAA;AACF,KAAA,CAAC,CAAC;;IAEH,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,MAAM;AAChD,QAAA,GAAG,KAAK;AACR,QAAA,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;AACf,YAAA,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YACxB,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC5E,SAAA;AACF,KAAA,CAAC,CAAC;;IAEH,EAAE,CAAC,wBAAwB,EAAE,CAAC,KAAK,MAAM;AACvC,QAAA,GAAG,KAAK;QACR,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AACzC,KAAA,CAAC,CAAC;;IAEH,EAAE,CAAC,0BAA0B,EAAE,CAAC,KAAK,MAAM;AACzC,QAAA,GAAG,KAAK;AACR,QAAA,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AACxD,KAAA,CAAC,CAAC;;IAEH,EAAE,CAAC,yBAAyB,EAAE,CAAC,KAAK,MAAM;AACxC,QAAA,GAAG,KAAK;QACR,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,KAAA,CAAC,CAAC;;IAEH,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,MAAM;AACpC,QAAA,GAAG,KAAK;AACR,QAAA,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzD,QAAA,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;YACf,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;YACxE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC3E,SAAA;AACF,KAAA,CAAC,CAAC;;IAEH,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,MAAM;AACnC,QAAA,GAAG,KAAK;AACR,QAAA,OAAO,EAAE,IAAI;KACd,CAAC,CAAC,EACH,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,MAAM;AACnC,QAAA,GAAG,KAAK;AACR,QAAA,OAAO,EAAE,KAAK;AACf,KAAA,CAAC,CAAC,CACJ;AACF,CAAA;AAEY,MAAA,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG;;MCzEvC,aAAa,GAAG,MAAM,cAAc,CAC7C,iBAAiB,EACjB,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI;MAGnB,cAAc,GAAG,MAAM,cAAc,CAC9C,iBAAiB,EACjB,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK;MAGpB,aAAa,GAAG,MAAM,cAAc,CAC7C,iBAAiB,EACjB,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK;MAKpB,SAAS,GAAG,MAAM,cAAc,CACzC,iBAAiB,EACjB,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO;;ACd5B;MAEa,gBAAgB,GAAG,mBAAmB,CAAkB,sBAAsB;AAGrF,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;AADhE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAahC;IAZC,MAAM,OAAO,CAAC,OAA2B,EAAA;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;;aAEnD;AACH,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE;gBAClF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;;;AAEpC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;;;8GAXtD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;AAkBK,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;AAD7D,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACvC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAe1D;IATC,MAAM,OAAO,CAAC,OAA2B,EAAA;AACvC,QAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CACnD,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EACxD,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EACzD;QACD,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC;;8GAfvC,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;AAqBK,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AADrD,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAgB1D;IAVC,MAAM,OAAO,CAAC,OAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACnE,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,eAAe,EAAE,IAAI;AACtB,SAAA,CAAC;;8GAhBO,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAd,cAAc,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;MC3CY,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AAW3C;IARG,WAAW,CAAC,KAAU,EAAE,IAA0B,EAAA;AAC9C,QAAA,IAAI,KAAK,YAAY,gBAAgB,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;YACpG,IAAI,CAAC,KAAK,CAAC;;aACR;YACH,IAAI,CAAC,KAAK,CAAC;;;8GATV,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;MCuCY,eAAe,CAAA;IAC1B,OAAO,OAAO,CAAC,OAAgC,EAAA;QAC7C,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC;AACjC,gBAAA;AACE,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,CAAC,QAAwC,KAAK,MAAK;AAC7D,wBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;qBACrD;oBACD,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;IAGH,OAAO,QAAQ,CAAC,OAAgC,EAAA;QAC9C,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC;AACjC,gBAAA;AACE,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,CAAC,QAAwC,KAAK,MAAK;AAC7D,wBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;qBACrD;oBACD,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;AAGH;;AAEG;AACH,IAAA,WAAA,CACoC,SAAgB,EAClD,cAAoC,EACpC,eAAmC,EACnC,aAAmC,EAAA;AAEnC,QAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACtB,YAAA,CAAC,EAAE;AACL,SAAC,CAAC;;;;;;;;;;;;QAaF,cAAc,CAAC,YAAY,CAAC;AAC1B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,UAAU,EAAE,sBAAsB;YAClC,GAAG,EAAE,YAAW;AACd,gBAAA,MAAM,eAAe,CAAC,IAAI,EAAE;;AAE/B,SAAA,CAAC;;;QAGF,cAAc,CAAC,YAAY,CAAC;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,UAAU,EAAE,eAAe;YAC3B,GAAG,EAAE,YAAW;AACd,gBAAA,MAAM,aAAa,CAAC,IAAI,EAAE;aAC3B;AACF,SAAA,CAAC;;AA1EO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAuChB,wBAAwB,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAvCvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,sFAbxB,aAAa;YACb,gBAAgB;AAChB,YAAA,aAAa,aAEL,YAAY,CAAA,EAAA,CAAA,CAAA;AASX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EARf,SAAA,EAAA;YACT,qBAAqB;AACrB,YAAA;AACE,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,QAAQ,EAAE,qBAAqB;AAChC,aAAA;SACF,EApBC,OAAA,EAAA,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC9D,YAAA,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;YACxC,iBAAiB,CAAC,QAAQ,CAAC;AACzB,gBAAA,OAAO,EAAE;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,oBAAoB,EAAE,sBAAsB;AAC5C,oBAAA,YAAY,EAAE,cAAc;AAC7B,iBAAA;aACF,CAAC;YACF,aAAa;YACb,gBAAgB;AAChB,YAAA,aAAa,EAEL,YAAY,CAAA,EAAA,CAAA,CAAA;;2FASX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAxB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC9D,wBAAA,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;wBACxC,iBAAiB,CAAC,QAAQ,CAAC;AACzB,4BAAA,OAAO,EAAE;AACP,gCAAA,QAAQ,EAAE,sBAAsB;AAChC,gCAAA,oBAAoB,EAAE,sBAAsB;AAC5C,gCAAA,YAAY,EAAE,cAAc;AAC7B,6BAAA;yBACF,CAAC;wBACF,aAAa;wBACb,gBAAgB;wBAChB,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,SAAS,EAAE;wBACT,qBAAqB;AACrB,wBAAA;AACE,4BAAA,OAAO,EAAE,YAAY;AACrB,4BAAA,QAAQ,EAAE,qBAAqB;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA;;0BAwCI,MAAM;2BAAC,wBAAwB;;;MC/EvB,WAAW,GAAG,IAAI,cAAc,CAAM,aAAa;MAEnD,yBAAyB,GAAG,IAAI,cAAc,CAAqB,2BAA2B,EAAE;AAC3G,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACZ,QAAA,OAAO,yBAAyB;KACjC;AACF,CAAA;AAgBY,MAAA,yBAAyB,GAAuB;AAC3D,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC;AACrC,QAAA,KAAK,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC;AACtC,QAAA,OAAO,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC;AACzC,KAAA;AACD,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,IAAI;AACd;;AAGa,SAAA,cAAc,CAAC,MAAA,GAAsC,yBAAyB,EAAA;AAC5F,IAAA,OAAO,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC;AACjD;;MCzCa,qBAAqB,GAAG,IAAI,cAAc,CAAiB,uBAAuB;;MCqBlF,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,KAAK,GAAiC,IAAI,GAAG,EAAE;AAoBxD;AAlBC,IAAA,QAAQ,CAAC,MAAuB,EAAA;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;;IAGrC,MAAM,CAAC,UAAkB,EAAE,MAAyB,EAAA;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC;AACjD,QAAA,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAG1B,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAA,gBAAA,CAAkB,CAAC;;AAEtE,QAAA,OAAO,MAAM;;8GAnBJ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;2FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCLY,gBAAgB,GAAG,IAAI,cAAc,CAAqB,kBAAkB;;ACInF,MAAO,gCAAiC,SAAQ,0BAA0B,CAAA;AAfhF,IAAA,WAAA,GAAA;;AAgBU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;QAC1D,IAAa,CAAA,aAAA,GAAQ,EAAE;AAiEf,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAgCxC;AAnFC,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB;;AAS3D,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB;;AASvD,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB;;AAG3D,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI;;AAGb,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,CAAO,IAAA,EAAA,IAAI,CAAC,SAAS,EAAE;;AAahC,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;;AAQtB,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,IAAI,MAAM,EAAE,SAAS,EAAE,MAAM;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;QAC3F,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC5F,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,SAAS;AACpB,gBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AACzC,aAAA;AACD,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,OAAO;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,KAAK;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;8GAlG3C,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAJhC,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,EATzF,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKU,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAf5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;oBACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAkC,gCAAA,EAAE,CAAC;oBACnG,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,CAAC;AACxE,iBAAA;8BAaQ,cAAc,EAAA,CAAA;sBADpB;gBAIO,sBAAsB,EAAA,CAAA;sBAD7B,SAAS;uBAAC,QAAQ;gBAQZ,YAAY,EAAA,CAAA;sBADlB;gBAIO,oBAAoB,EAAA,CAAA;sBAD3B,SAAS;uBAAC,MAAM;gBAQV,cAAc,EAAA,CAAA;sBADpB;gBAIO,sBAAsB,EAAA,CAAA;sBAD7B,SAAS;uBAAC,QAAQ;gBAgBnB,OAAO,EAAA,CAAA;sBADN;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAKU,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,QAAQ;;;MClDJ,gCAAgC,CAAA;AAZ7C,IAAA,WAAA,GAAA;AAaU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;QAChD,IAAS,CAAA,SAAA,GAAG,IAAI;AAG1B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AAExD,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO;AAyCnD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE/B,IAAO,CAAA,OAAA,GAAwB,EAAE;AA8D1C;AAvGC,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAGpB,IAAW,KAAK,CAAC,CAAM,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;;AAI1B,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;;IAGvB,IAAW,QAAQ,CAAC,EAAO,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;QACnB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;AAO9B,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,UAAU,CAAC,YAAW;AACpB,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;AACrB,SAAC,CAAC;;AASI,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO;AACV,YAAA,KAAK,CACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CACnC,IAAI,EAAE;AACT,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;YAC3D,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;AACpD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAInB,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;;;IAI5B,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;;;AAIhC,IAAA,cAAc,CAAC,eAA2C,EAAA;QAClE,eAAe,GAAG,eAA8C;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAA+B;;QAE/D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YACxC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC;;AAElB,SAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,KAAI;YAC5C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEtB,SAAC,CAAC;;8GA/GO,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAVjC,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIU,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAZ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACtC,iBAAA;8BAMC,WAAW,EAAA,CAAA;sBADV;gBAGD,cAAc,EAAA,CAAA;sBADb;gBAKU,KAAK,EAAA,CAAA;sBADf;gBAaU,QAAQ,EAAA,CAAA;sBADlB;gBAYD,IAAI,EAAA,CAAA;sBADH;gBAKU,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,QAAQ;;;MC1DK,aAAa,CAAA;AADnC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAsB,MAAM,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AAE1C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY;AAuC7D;AArCC,IAAA,IAAc,MAAM,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;;AAG1B,IAAA,IAAc,IAAI,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;;AAGxB,IAAA,IAAc,QAAQ,GAAA;AACpB,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;AAQhD,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;AAIvE,IAAA,IACW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;;IAEtB,IAAW,OAAO,CAAC,CAAI,EAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;QACjB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGf,IAAA,MAAM;IAEN,SAAS,CAAC,IAAY,EAAE,KAAU,EAAA;;8GAzCxB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAb,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC;8BA+BY,OAAO,EAAA,CAAA;sBADjB;;AAkBG,MAAgB,iBAA2B,SAAQ,aAAgB,CAAA;AADzE,IAAA,WAAA,GAAA;;AAGE,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,YAAY,EAAK;AAkBrD;AAfC,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAW,KAAK,CAAC,CAAI,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAc,WAAW,GAAA;QACvB,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;AACnG,QAAA,OAAO,MAAM;;8GAlBK,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBADtC;8BAGC,WAAW,EAAA,CAAA;sBADV;gBAKU,KAAK,EAAA,CAAA;sBADf;;AAkBG,MAAgB,mBAA6B,SAAQ,aAAgB,CAAA;AAD3E,IAAA,WAAA,GAAA;;AAGE,QAAA,IAAA,CAAA,cAAc,GAAyB,IAAI,YAAY,EAAU;AAejE,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,YAAY,EAAK;AAarD;AAzBC,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAW,QAAQ,CAAC,EAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAOzB,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAW,KAAK,CAAC,CAAI,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GA5BL,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAnB,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;8BAGC,cAAc,EAAA,CAAA;sBADb;gBAKU,QAAQ,EAAA,CAAA;sBADlB;gBAYD,WAAW,EAAA,CAAA;sBADV;gBAKU,KAAK,EAAA,CAAA;sBADf;;;MCjEU,0BAA0B,CAAA;AAjBvC,IAAA,WAAA,GAAA;AAkBU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC;QAoB3C,IAAI,CAAA,IAAA,GAAoB,MAAM;QAEpB,IAAS,CAAA,SAAA,GAAG,IAAI;AAelB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE/B,IAAO,CAAA,OAAA,GAAwB,EAAE;AA2E1C;AAhHC,IAAA,IACW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;;IAGtB,IAAW,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC;;QAE3B,IAAI,CAAC,WAAW,EAAE;;AAYpB,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,UAAU,CAAC,YAAW;;AAEpB,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;AACrB,SAAC,CAAC;;AASI,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO;YACV,KAAK,CACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EACrD,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CACxC,IAAI,EAAE;AACT,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE;AAC/D,YAAA,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE;AACxD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAInB,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,YAAY,iBAAiB,EAAE;AAC/E,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;;IAInD,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAI/B,IAAA,oBAAoB,CAAC,CAAM,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC7B,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI;YAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAErD,IAAI,cAAc,EAAE;AAClB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;;qBAChE;oBACL,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;;;iBAE3C;AACL,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;;;;AAKjD,IAAA,cAAc,CAAC,eAA2C,EAAA;QAClE,eAAe,GAAG,eAA8C;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAyB;QACzD,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;QACpC,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,iBAAiB,EAAE;YAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9C,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/E,gBAAA,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC5B,gBAAA,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,aAAC,CAAC;;;8GAlHK,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAN1B,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACxB,aAAA;SACF,EAbS,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjBtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACrC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACxB,yBAAA;AACF,qBAAA;AACF,iBAAA;8BAOY,OAAO,EAAA,CAAA;sBADjB;gBAcD,IAAI,EAAA,CAAA;sBADH;gBAID,IAAI,EAAA,CAAA;sBADH;gBAOU,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,QAAQ;;;MC/CJ,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAHX,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAFnG,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAC5C,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAAA,EAAA,CAAA,CAAA;AAI7F,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EALhB,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAK3C,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC;AACvD,oBAAA,OAAO,EAAE,CAAC,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAAC;AACzG,oBAAA,YAAY,EAAE,CAAC,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAAC;AAC9G,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACqHY,MAAA,4BAA4B,GAA4B;AACnE,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,KAAK,EAAE,OAAO;;AA0CV,SAAU,uBAAuB,CAAC,QAAiC,EAAA;IACvE,OAAO;;QAEL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;AACrB,QAAA,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO;AAClE,QAAA,WAAW,EAAE;YACX,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,SAAA;AACD,QAAA,aAAa,EAAE;YACb,OAAO,EAAE,QAAQ,CAAC,SAAS;YAC3B,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,SAAA;QACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;KACpG;AACH;AAEgB,SAAA,0BAA0B,CACxC,GAAG,SAAoC,EAAA;AAEvC,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACzD;;MCnMa,qBAAqB,CAAA;AAC9B,IAAA,MAAM,GAAG,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC5C,QAAA,OAAO,IAAI;;AAElB;MAEY,iBAAiB,GAAG,IAAI,cAAc,CAC/C,mBAAmB,EACnB;AACI,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACV,OAAO,IAAI,qBAAqB,EAAE;KACrC;AACJ,CAAA;;MCbQ,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAA2B;;AAG7C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAyD9C;AAtDG;;;;;AAKG;AACH,IAAA,QAAQ,CAAC,MAAuB,EAAA;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;;AAGlC;;;;;;;;;AASG;AACH,IAAA,MAAM,OAAO,CAAC,UAAkB,EAAE,UAAkB,EAAA;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;AACxD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;QAE3C,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,IAAI;AACA,gBAAA,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;gBACtD,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;;;YAE3B,OAAO,KAAK,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,GAAG,CAAI,EAAA,CAAA,EAAE,KAAK,CAAC;gBACtD,MAAM,KAAK,CAAC;;YAGhB,IAAI,CAAC,MAAM,EAAE;AACT,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAA,CAAE,CAAC;;;AAItD,QAAA,OAAO,MAAM;;AAGjB;;;;;;AAMG;IACK,eAAe,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC1D,QAAA,OAAO,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE;;8GA5D/B,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFrB,MAAM,EAAA,CAAA,CAAA;;2FAET,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACDY,MAAA,aAAa,GAAG;;AAE3B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,aAAa,EAAE,gBAAgB;AAC/B,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,YAAY,EAAE,eAAe;;MASlB,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAY,OAAiC,EAAA;;QAE3C,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC1G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,aAAa,CAAC,SAAS;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AAClG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC5G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,YAAY;AACtB,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE;AACP,wBAAA,WAAW,EAAE,KAAK;AACnB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,qEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AAC7G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,KAAK;AACzB,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,qEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AAC7G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,KAAK;AACzB,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACxG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACvG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC;AAC9B,gBAAA,OAAO,EAAE,YAAY;AACtB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,MAAM;AACjB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,MAAM;AACd,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,uEAAwD,CAAC,CAAC,IAAI,CACnE,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACjG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,uEAAwD,CAAC,CAAC,IAAI,CACnE,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACvG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACvG,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC1G,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC3G,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AAClG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACjG,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,4EAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAC7C;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,4EAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAC7C;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,8EAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAC/C;AACH,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,8EAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAC/C;AACJ,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,aAAa;AACjC,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACtG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACrG,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,yEAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACzG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,iEAAiC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC;AACpG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,iEAAiC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC;AACpG,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,GAAG;AACvB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AACvG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,yEAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC;AAC1G,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,SAAS;AAC7B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;;QAGF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,qEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AACjG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,qEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AACjG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AACrG,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,OAAO;AAC3B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,2EAAqD,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,2EAAqD,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,YAAY;AAChC,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;;8GAxgBO,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,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,qBAAqB,YALtB,aAAa,CAAA,EAAA,CAAA,CAAA;AAKZ,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,qBAAqB,YALtB,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAKZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACnCD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-platform-common.mjs","sources":["../../../../libs/platform/common/src/lib/app/app-startup.service.ts","../../../../libs/platform/common/src/lib/app/application.types.ts","../../../../libs/platform/common/src/lib/app/operators.ts","../../../../libs/platform/common/src/lib/data/data-provider.types.ts","../../../../libs/platform/common/src/lib/utils/clipboard-service.ts","../../../../libs/platform/common/src/lib/utils/data-generator.ts","../../../../libs/platform/common/src/lib/utils/pdf.service.ts","../../../../libs/platform/common/src/lib/data/dexie-storage.service.ts","../../../../libs/platform/common/src/lib/data/entity-data-seeder.ts","../../../../libs/platform/common/src/lib/data/entity-storage-service.ts","../../../../libs/platform/common/src/lib/data/operators.service.ts","../../../../libs/platform/common/src/lib/data/filter-middleware.service.ts","../../../../libs/platform/common/src/lib/errors/error-handler-registry.service.ts","../../../../libs/platform/common/src/lib/errors/global-error-handler.ts","../../../../libs/platform/common/src/lib/settings/setting-definition.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.service.ts","../../../../libs/platform/common/src/lib/store/common.actions.ts","../../../../libs/platform/common/src/lib/store/common.effects.ts","../../../../libs/platform/common/src/lib/workflows/common.workflow.ts","../../../../libs/platform/common/src/lib/workflows/error-handler.ts","../../../../libs/platform/common/src/lib/common.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.types.ts","../../../../libs/platform/common/src/lib/configs/app.config.ts","../../../../libs/platform/common/src/lib/configs/config.types.ts","../../../../libs/platform/common/src/lib/layout/grid-layout/grid-layout.directive.ts","../../../../libs/platform/common/src/lib/layout/sticky.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-registery.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-loader.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.html","../../../../libs/platform/common/src/lib/layout/menu/menu.provider.ts","../../../../libs/platform/common/src/lib/layout/menu/menu.service.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/footer-text-slot.component.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/navbar-slot.component.ts","../../../../libs/platform/common/src/lib/schema/schema-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-token.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-column-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-filter-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-base.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-renderer.ts","../../../../libs/platform/common/src/lib/schema/schema.module.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.class.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.loader.ts","../../../../libs/platform/common/src/lib/schema/entity/entity-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widgets/common-widgets.module.ts","../../../../libs/platform/common/src/acorex-platform-common.ts"],"sourcesContent":["import { APP_INITIALIZER, Injectable, Provider } from '@angular/core';\n\nexport interface AXPStartUpTask {\n name: string;\n statusText: string;\n run: () => Promise<void>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPAppStartUpService {\n private tasks: AXPStartUpTask[] = [];\n\n registerTask(task: AXPStartUpTask) {\n this.tasks.push(task);\n }\n\n async runAllTasks() {\n for (const task of this.tasks) {\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n\n private updateStatus(status: string) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n}\n\nfunction initAppFactory(appInitService: AXPAppStartUpService) {\n return () => appInitService.runAllTasks();\n}\n\nexport const AXPAppStartUpProvider: Provider = {\n provide: APP_INITIALIZER,\n useFactory: initAppFactory,\n deps: [AXPAppStartUpService],\n multi: true,\n};\n","import { AXDataSourceOperator, AXStyleColorType } from '@acorex/components/common';\nimport { AXPOptionsData, AXPValidationRules } from '@acorex/platform/core';\nimport { AXPWidgetTypesMap } from '@acorex/platform/layout/builder';\nimport { kebabCase } from 'lodash-es';\nimport { AXPGridLayoutOptions } from '../layout';\n\nexport interface AXEntityPropertyWidget {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path: string;\n id?: string;\n formula?: string;\n children?: AXEntityPropertyWidget[];\n mode: 'view' | 'edit' | 'designer';\n options?: Record<string, any>;\n triggers?: { event: string; action: string; disabled?: boolean }[];\n}\n\nexport enum AXPRelationshipKind {\n Association,\n Composition,\n Aggregation,\n}\n\nexport enum AXPRelationshipCardinality {\n OneToOne,\n OneToMany,\n ManyToMany,\n}\n\nexport interface AXPRelationship {\n id: string;\n from: string;\n to: string;\n kind: AXPRelationshipKind;\n cardinality: AXPRelationshipCardinality;\n}\n\nexport enum AXPEntityCommandScope {\n TypeLevel = 'typeLevel',\n Selected = 'selected',\n Individual = 'individual',\n Section = 'section',\n}\n\nexport enum AXPEntityQueryType {\n Single = 'single',\n List = 'list',\n}\n\nexport interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {\n label?: {\n visible?: boolean;\n };\n order?: number;\n}\n\nexport interface AXPEntityPropertyGroup {\n id: string;\n title: string;\n description?: string;\n permissions?: string[];\n}\n\nexport interface AXPEntityPropertyView {\n name: string;\n permissions?: string[];\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView {}\n\nexport interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {\n defaultValue?: any;\n}\n\nexport interface AXPEntitySectionView {\n id: string;\n description?: string;\n order?: number;\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityProperty {\n name: string;\n title: string;\n description?: string;\n groupId?: string;\n reference?: {\n relationId: string;\n };\n schema: {\n dataType: string;\n nullable?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n unique?: {\n enabled: boolean;\n };\n interface?: Partial<AXEntityPropertyWidget>;\n };\n options?: {\n filter?: {\n advance?: {\n enabled?: boolean;\n widget?: AXPOptionsData;\n };\n inline?: {\n enabled?: boolean;\n };\n };\n sort?: {\n enabled?: boolean;\n };\n };\n validations?: AXPValidationRules;\n}\n\nexport interface AXPEntityTableColumn {\n name: string;\n title?: string;\n sort?: {\n enabled?: boolean;\n dir?: 'asc' | 'desc';\n };\n options?: {\n visible?: boolean;\n width?: string;\n dataPath?: string;\n [name: string]: any;\n };\n}\n\nexport interface AXPEntityCommand {\n execute: string | Function; // As runnable expression\n permissions?: string[];\n}\n\nexport interface AXPEntityQuery {\n execute: string | Function; // As runnable expression\n type: AXPEntityQueryType;\n}\n\nexport interface AXPEntityHistory {}\n\nexport interface AXPEntityAction {\n permissions?: string[];\n command: string;\n title: string;\n type: 'create' | 'update' | 'delete' | 'print' | 'confirm' | 'report' | 'info' | 'view';\n priority: 'primary' | 'secondary';\n color?: 'primary' | 'danger' | 'success' | 'warning';\n separated?: boolean;\n icon?: string;\n scope: AXPEntityCommandScope;\n}\n\nexport interface AXPEntity {\n module: string;\n name: string;\n source: string;\n title: string;\n formats: {\n individual: string;\n plural: string;\n lookup?: string;\n };\n relatedEntities?: AXPRelatedEntity[];\n groups?: AXPEntityPropertyGroup[];\n properties: AXPEntityProperty[];\n columns?: AXPEntityTableColumn[];\n commands?: {\n create: AXPEntityCommand | undefined;\n update?: AXPEntityCommand | undefined;\n delete?: AXPEntityCommand | undefined;\n [name: string]: AXPEntityCommand | undefined;\n };\n queries: {\n byKey: AXPEntityQuery;\n list?: AXPEntityQuery;\n lookup?: AXPEntityQuery;\n history?: AXPEntityQuery;\n comments?: AXPEntityQuery;\n [name: string]: AXPEntityQuery | undefined;\n };\n validations?: AXPValidationRules;\n interfaces?: {\n master?: {\n single?: AXPEntityMasterSingleLayoutView;\n list?: AXPEntityMasterListView;\n create?: AXPEntityMasterCreateLayoutView;\n update?: AXPEntityMasterUpdateLayoutView;\n };\n detail?: {\n list?: AXPEntityDetailListView;\n };\n };\n}\n\nexport function getEntityInfo(entity: AXPEntity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\n\nexport interface AXPRelatedEntity {\n entity: string;\n title?: string;\n columns?: string[];\n conditions?: AXPQueryFilter[];\n // sorts?: AXPQuerySort[];\n}\n\nexport interface AXPAggregate {\n id: string;\n name: string;\n title: string;\n entities: AXPEntity[];\n}\n\nexport interface AXPModule {\n name: string;\n title: string;\n aggregates: AXPAggregate[];\n relationships?: AXPRelationship[];\n}\n\nexport interface AXPApplication {\n name: string;\n title: string;\n modules: AXPModule[];\n}\n\nexport interface AXPEntityMasterLayoutView {\n title?: string;\n sections: AXPEntitySectionView[];\n properties?: AXPEntityPropertyView[];\n}\nexport interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {\n steps?: {\n id: string;\n title: string;\n description?: string;\n };\n}\n\nexport interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {}\n\nexport interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {\n title: string;\n description?: string;\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPEntityMasterListView {\n title?: string;\n description?: string;\n actions?: AXPEntityAction[];\n views: AXPQueryView[];\n}\n\nexport interface AXPEntityDetailListView {\n title?: string;\n description?: string;\n columns: AXPEntityTableColumn[];\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPQueryView {\n name: string;\n fixed: boolean;\n title: string;\n columns: string[];\n conditions: AXPQueryFilter[];\n sorts: AXPQuerySort[];\n}\n\nexport interface AXPQueryFilter {\n name: string; // entity property name\n operator: AXDataSourceOperator;\n value: any;\n}\n\nexport interface AXPQuerySort {\n name: string; // entity property name\n dir: 'asc' | 'desc';\n}\n\nexport function resolveActionLook(tr: AXPEntityAction): { icon: string; color: AXStyleColorType } {\n switch (tr.type) {\n case 'create':\n return { color: 'primary', icon: 'fa-solid fa-add' };\n case 'view':\n return { color: 'primary', icon: 'fa-solid fa-eye' };\n case 'info':\n return { color: 'primary', icon: 'fa-solid fa-info' };\n case 'delete':\n return { color: 'danger', icon: 'fa-solid fa-trash' };\n case 'print':\n return { color: 'secondary', icon: 'fa-solid fa-print' };\n case 'confirm':\n return { color: 'success', icon: 'fa-solid fa-check' };\n default:\n return { color: 'primary', icon: '' };\n }\n}\n","export interface AXPFilterOperator {\n name: string;\n title: string;\n hasValue: boolean;\n}\n\nexport const EQ_OPER: AXPFilterOperator = { name: 'equal', title: 'Equal', hasValue: true };\nexport const NOT_EQ_OPER: AXPFilterOperator = { name: 'notEqual', title: 'Not Equal', hasValue: true };\nexport const GT_OPER: AXPFilterOperator = { name: 'greaterThan', title: 'Greater Than', hasValue: true };\nexport const LT_OPER: AXPFilterOperator = { name: 'lessThan', title: 'Less Than', hasValue: true };\nexport const GTE_OPER: AXPFilterOperator = {\n name: 'greaterThanOrEqual',\n title: 'Greater Than or Equal',\n hasValue: true,\n};\nexport const LTE_OPER: AXPFilterOperator = { name: 'lessThanOrEqual', title: 'Less Than or Equal', hasValue: true };\nexport const CONTAINS_OPER: AXPFilterOperator = { name: 'contains', title: 'Contains', hasValue: true };\nexport const NOT_CONTAINS_OPER: AXPFilterOperator = { name: 'notContains', title: 'Does Not Contain', hasValue: true };\nexport const STARTS_WITH_OPER: AXPFilterOperator = { name: 'startsWith', title: 'Starts With', hasValue: true };\nexport const ENDS_WITH_OPER: AXPFilterOperator = { name: 'endsWith', title: 'Ends With', hasValue: true };\nexport const IS_EMPTY_OPER: AXPFilterOperator = { name: 'isEmpty', title: 'Is Empty', hasValue: false };\nexport const IS_NOT_EMPTY_OPER: AXPFilterOperator = { name: 'isNotEmpty', title: 'Is Not Empty', hasValue: false };\nexport const BETWEEN_OPER: AXPFilterOperator = { name: 'between', title: 'Between', hasValue: true };\n\nexport const STRING_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const NUMBER_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n BETWEEN_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const BOOLEAN_OPERATORS = [EQ_OPER];\n\nexport const DATE_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const ALL_DEFAULT_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n LT_OPER,\n GTE_OPER,\n LTE_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n BETWEEN_OPER,\n];\n","export abstract class AXPDataProvider {\n abstract insertOne(entity: any, entityItem: any): Promise<any>;\n abstract insertMany(entity: any, entityList: any): Promise<any>;\n abstract getOne(entity: any, id: string): Promise<any>;\n abstract getMany(entity: any, params?: any): Promise<any>;\n abstract updateOne(entity: any, id?: string, data?: { [key: string]: any }): Promise<any>;\n abstract deleteOne(entity: any, id: string): Promise<any>;\n abstract getFirst(entity: any): Promise<any>;\n abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;\n abstract updateFile(id:string,file: File, title: string, customUrl?: string): Promise<string>;\n abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;\n abstract viewFile(id: string, name: string): Promise<Blob>;\n abstract downloadFile(id: string, name: string): Promise<Blob>;\n}\n","import { AXToastService } from '@acorex/components/toast';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPClipBoardService {\n private toast = inject(AXToastService);\n\n public copy(title: string, value: string) {\n const copyText = document.createElement('input');\n copyText.type = 'text';\n copyText.select();\n copyText.setSelectionRange(0, 99999); // For mobile devices\n copyText.remove();\n navigator.clipboard.writeText(value);\n this.toast.success(`${title} copied!`);\n }\n\n}","export class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0]\n if (args.length == 2) {\n min = args[0]\n max = args[1]\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: any[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n\n static array<T>(length: number = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: any[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items: T[] = args[0];\n const count: number = args[1] ?? 1\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(): string {\n const color = Math.floor(Math.random() * 16777215).toString(16);\n return `#${color.padStart(6, '0')}`;\n }\n\n static alphanumeric(length: number = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: any[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n } else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['New York', 'Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n","// AXPPdfService\nimport { inject, Injectable, RendererFactory2 } from '@angular/core';\n\nexport enum AXPPdfPageSize {\n A4 = 'a4',\n A5 = 'a5',\n Letter = 'letter',\n Legal = 'legal',\n Custom = 'custom' // Handle custom sizes\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPPdfService {\n private renderer = inject(RendererFactory2).createRenderer(null, null);\n\n async generatePdfBlob(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<string> {\n const { jsPDF } = await import('jspdf');\n const html2canvas = (await import('html2canvas')).default;\n\n const element = typeof div === 'string' ? document.getElementById(div) : div;\n\n if (!element) {\n console.error('Element not found.');\n return Promise.reject('Element not found.');\n }\n\n const { pageSize = AXPPdfPageSize.A4 } = options;\n let pdf;\n\n if (typeof pageSize === 'string' && pageSize !== AXPPdfPageSize.Custom) {\n pdf = new jsPDF({\n orientation: 'portrait',\n format: pageSize\n });\n } else if (typeof pageSize !== 'string') {\n const { width, height } = pageSize;\n pdf = new jsPDF({\n orientation: 'portrait',\n unit: 'pt',\n format: [width, height]\n });\n } else {\n return Promise.reject(\"Invalid page size.\");\n }\n\n const canvas = await html2canvas(element);\n const imageData = canvas.toDataURL('image/png');\n const imgProps = pdf.getImageProperties(imageData);\n const pdfWidth = pdf.internal.pageSize.getWidth();\n const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\n\n pdf.addImage(imageData, 'PNG', 0, 0, pdfWidth, pdfHeight);\n return pdf.output('bloburl') as any as string;\n }\n\n async printPdf(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<void> {\n const blobUrl = await this.generatePdfBlob(div, options).catch(err => {\n console.error('Failed to generate PDF', err);\n return null;\n });\n\n if (!blobUrl) return;\n\n const iframe = this.renderer.createElement('iframe');\n this.renderer.setStyle(iframe, 'display', 'none');\n this.renderer.appendChild(document.body, iframe);\n\n iframe.src = blobUrl;\n iframe.onload = () => {\n setTimeout(() => {\n iframe.contentWindow.print();\n }, 1000);\n };\n\n // Add a button or some UI element that allows the user to manually signal they are done printing\n // const finishButton = this.renderer.createElement('button');\n // this.renderer.setProperty(finishButton, 'innerText', 'Finish Printing');\n // this.renderer.listen(finishButton, 'click', () => {\n // this.renderer.removeChild(document.body, iframe);\n // this.renderer.removeChild(document.body, finishButton);\n // });\n // this.renderer.appendChild(document.body, finishButton);\n }\n}\n","import { applyFilterArray, applySortArray } from '@acorex/platform/core';\nimport Dexie from 'dexie';\nimport { AXPDataGenerator } from '../utils';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\nimport { AXPEntityStorageService } from './entity-storage-service';\n\nexport class AXPDexieEntityStorageService extends Dexie implements AXPEntityStorageService<string, any> {\n constructor() {\n super('ACoreXPlatform');\n this.version(1).stores({\n 'entity-store': '++id, entityName, [entityName+id]',\n });\n }\n\n get dbName(): string {\n return 'ACoreXPlatform';\n }\n\n async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n const exists = await this.table('entity-store').where({ entityName }).count();\n if (exists === 0) {\n await this.table('entity-store').bulkAdd(collection.map((item) => ({ ...item, entityName })));\n }\n }\n\n async getOne<T = any>(entityName: string, id: string): Promise<T> {\n return await this.table('entity-store').where({ entityName, id: id }).first();\n }\n\n async updateOne<T = any>(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<T> {\n await this.table('entity-store').where({ entityName, id: id }).modify(keyValue);\n return await this.getOne(entityName, id);\n }\n\n async deleteOne(entityName: string, id: string): Promise<void> {\n await this.table('entity-store').where({ entityName, id: id }).delete();\n }\n\n async insertOne<T = any>(entityName: string, entity: T): Promise<string> {\n const uuid = AXPDataGenerator.uuid();\n await this.table('entity-store').add({ ...entity, id: uuid, entityName });\n return uuid;\n }\n\n async getAll<T = any>(entityName: string): Promise<T[]> {\n return await this.table('entity-store').where({ entityName }).toArray();\n }\n\n async query<T = any>(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<T>> {\n let result = await this.table('entity-store').where({ entityName }).toArray();\n\n if (request.sort && request.sort.length) {\n result = applySortArray(result, request.sort);\n }\n result = applyFilterArray(result, request.filter ? [request.filter] : []);\n\n return Promise.resolve({\n total: result.length,\n items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),\n });\n }\n}\n\n// export class AXPDexieTableStorageService extends Dexie implements AXPEntityStorageService {\n// private schemaUpdateLock: Promise<void> = Promise.resolve();\n\n// constructor() {\n// super('ACoreXPlatform');\n// // Initial empty version\n// //this.version(1).stores({});\n// }\n\n// // Function to change the schema dynamically\n// private async changeSchema(schemaChanges: { [tableName: string]: string | null }): Promise<void> {\n// // Acquire schema update lock to ensure no other operations are performed while schema is changing\n// this.schemaUpdateLock = this.schemaUpdateLock.then(async () => {\n// console.log('Attempting schema change with:', schemaChanges);\n\n// try {\n// this.close();\n\n// const newDb = new Dexie(this.name);\n\n// // Extract current schema in Dexie format\n// const currentSchema = this.tables.reduce((result, { name, schema }) => {\n// result[name] = [schema.primKey.src, ...schema.indexes.map((idx) => idx.src)].join(',');\n// return result;\n// }, {} as { [tableName: string]: string });\n\n// console.log('Current Schema:', currentSchema);\n\n// // Define current schema version\n\n// newDb.version(this.verno + 10).stores(currentSchema);\n\n// // Define new schema version with schema changes\n// const nextVersion = this.verno + 1;\n// newDb.version(nextVersion).stores(schemaChanges);\n// await newDb.open();\n\n// // Reassign updated db instance\n// Object.assign(this, newDb);\n// console.log(`Schema updated. Current version: ${this.verno}`);\n// } catch (error) {\n// console.error('Error during schema change:', error);\n// throw error;\n// }\n// });\n\n// // Wait for schema change lock to complete\n// await this.schemaUpdateLock;\n// }\n\n// private async ensureInitialized(entityName: string): Promise<void> {\n// if (this.tables.findIndex((table) => table.name === entityName) == -1) {\n// const schemaChanges: { [tableName: string]: string } = {};\n// schemaChanges[entityName] = '++id';\n// await this.changeSchema(schemaChanges);\n// }\n// }\n\n// get dbName(): string {\n// return 'ACoreXPlatform';\n// }\n\n// private async getTable<T>(entityName: string) {\n// await this.ensureInitialized(entityName);\n// return this.table<T, number>(entityName);\n// }\n\n// async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// const exists = await table.count();\n// if (exists === 0) {\n// await table.bulkAdd(collection);\n// }\n// }\n\n// async getOne<T = any>(entityName: string, id: string): Promise<T> {\n// const table = await this.getTable<T>(entityName);\n// return (await table.where({ id: parseInt(id) }).first()) as T;\n// }\n\n// async updateOne(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.update(parseInt(id), keyValue);\n// }\n\n// async deleteOne(entityName: string, id: string): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.delete(parseInt(id));\n// }\n\n// async insertOne<T = any>(entityName: string, entity: T): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// await table.add(entity);\n// }\n\n// async getAll<T = any>(entityName: string): Promise<T[]> {\n// const table = await this.getTable<T>(entityName);\n// return await table.toArray();\n// }\n// }\n","import { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPDataSeeder {\n seed(): Promise<void>;\n}\n\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken<AXPDataSeeder>('AXP_DATA_SEEDER_TOKEN');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDataSeederService {\n private loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n\n async seed(): Promise<void> {\n if (Array.isArray(this.loader)) {\n for (const loader of this.loader) {\n await loader.seed();\n }\n } else {\n await this.loader?.seed();\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\n\nexport interface AXPEntityModel<Id> {\n id?: Id;\n}\n\nexport abstract class AXPEntityStorageService<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get dbName(): string;\n\n abstract initial(entityName: string, collection: T[]): Promise<void>;\n\n abstract getOne(entityName: string, id: K): Promise<RGetSingle>;\n\n abstract updateOne(entityName: string, id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(entityName: string, id: K): Promise<void>;\n\n abstract insertOne(entityName: string, entity: RCreate): Promise<K>;\n\n abstract getAll(entityName: string): Promise<RGetList[]>;\n\n abstract query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport abstract class AXPEntityDataProvider<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get entityName(): string;\n\n abstract initial(collection: T[]): Promise<void>;\n\n abstract getOne(id: K): Promise<RGetSingle>;\n\n abstract getAll(): Promise<RGetList[]>;\n\n abstract updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(id: K): Promise<void>;\n\n abstract insertOne(entity: RCreate): Promise<K>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXPEntityDataProviderImpl<\n K = any,\n T extends AXPEntityModel<K> = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> implements AXPEntityDataProvider<K, T, RCreate, RGetSingle, RGetList> {\n constructor(\n private storageService: AXPEntityStorageService<K, T, RCreate, RGetSingle, RGetList>,\n public entityName: string\n ) { }\n\n async initial(collection: T[]): Promise<void> {\n await this.storageService.initial(this.entityName, collection);\n }\n\n getOne(id: K): Promise<RGetSingle> {\n return this.storageService.getOne(this.entityName, id);\n }\n\n getAll(): Promise<RGetList[]> {\n return this.storageService.getAll(this.entityName);\n }\n\n query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>> {\n return this.storageService.query(this.entityName, request);\n }\n\n updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle> {\n return this.storageService.updateOne(this.entityName, id, keyValue);\n }\n\n deleteOne(id: K): Promise<void> {\n return this.storageService.deleteOne(this.entityName, id);\n }\n\n insertOne(entity: RCreate): Promise<K> {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\n\nexport abstract class AXMEntityCrudService<\n Id = string,\n T = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract insertOne(request: RCreate): Promise<Id>;\n\n abstract getOne(id: Id): Promise<RGetSingle>;\n\n abstract deleteOne(id: Id): Promise<void>;\n\n abstract updateOne(id: Id, values: { [key: string]: any }): Promise<void>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXMEntityCrudServiceImpl<\n Id,\n T extends AXPEntityModel<Id>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n private _storageService = inject(AXPEntityStorageService);\n private _entityDataProvider = new AXPEntityDataProviderImpl<Id, T, RCreate, RGetSingle, RGetList>(\n this._storageService,\n this.entityName\n );\n\n constructor(private entityName: string) { }\n\n async insertOne(request: RCreate): Promise<Id> {\n return this._entityDataProvider.insertOne(request);\n }\n\n async getOne(id: Id): Promise<RGetSingle> {\n return this._entityDataProvider.getOne(id);\n }\n\n async deleteOne(id: Id): Promise<void> {\n return this._entityDataProvider.deleteOne(id);\n }\n\n async updateOne(id: Id, values: { [key: string]: any }): Promise<RGetSingle> {\n return this._entityDataProvider.updateOne(id, values);\n }\n\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<RGetList>> {\n return this._entityDataProvider.query(request);\n }\n\n // get entityDataProvider() {\n // return this._entityDataProvider;\n // }\n\n get storageService() {\n return this._storageService;\n }\n}\n","import { AXDataSourceOperator } from '@acorex/components/common';\nimport { Injectable } from '@angular/core';\n\nexport abstract class AXPCustomOperatorService {\n abstract getCustomOperators(): { [key: string]: AXDataSourceOperator };\n}\n\n@Injectable()\nexport class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {\n getCustomOperators(): { [key: string]: AXDataSourceOperator } {\n return {};\n }\n}\n","import { AXDataSourceFilterOption, AXDataSourceOperator } from '@acorex/components/common';\nimport { inject, Injectable } from '@angular/core';\nimport { ALL_DEFAULT_OPERATORS } from '../app';\nimport { AXPCustomOperatorService } from './operators.service';\n\nexport abstract class AXPFilterOperatorMiddlewareService {\n /**\n * Middleware to transform selected filters into corresponding operators.\n * @param filters Array of selected filters (e.g., user input).\n * @param customOperators Optional custom operators map to override default operators.\n * @returns Transformed filters based on custom or default operators.\n */\n abstract transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];\n\n /**\n * Helper method to transform a single filter. This handles recursion for nested filters.\n * @param filter A single filter object.\n * @returns Transformed filter.\n */\n abstract transformFilter(filters: AXDataSourceFilterOption): AXDataSourceFilterOption;\n\n abstract getOperator(key: string): AXDataSourceOperator;\n}\n\n@Injectable()\nexport class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {\n private customOperatorService = inject(AXPCustomOperatorService);\n\n private operators: { [key: string]: AXDataSourceOperator } = {\n ...this.getDefaultOperators(),\n ...this.customOperatorService.getCustomOperators(),\n };\n\n transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[] {\n return filters.map((filter) => this.transformFilter(filter));\n }\n\n transformFilter(filter: AXDataSourceFilterOption): AXDataSourceFilterOption {\n console.log(filter);\n const { operator, value, filters, field } = filter;\n // Find the operator (either default or custom)\n const filterOperator = this.operators[operator?.type] || null;\n\n // Start by transforming the filter itself\n const transformedFilter: AXDataSourceFilterOption = {\n ...filter, // Keep the original filter structure\n operator: filterOperator ? filterOperator : operator, // Add operator name\n };\n\n // If the filter contains nested filters, recursively transform them\n if (filters && filters.length > 0) {\n transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters\n }\n\n return transformedFilter;\n }\n\n getOperator(key: string) {\n return this.operators[key];\n }\n\n // Helper function to return the default operators\n private getDefaultOperators(): { [key: string]: AXDataSourceOperator } {\n return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {\n acc[operator.name] = {\n type: operator.name as any,\n };\n return acc;\n }, {} as { [key: string]: AXDataSourceOperator });\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandler } from \"./error-handler.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPErrorHandlerRegistryService {\n private errorHandlers: AXPErrorHandler[] = [];\n\n constructor(private injector: Injector) {\n }\n\n register(...plugins: (new () => AXPErrorHandler)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const handler = childInjector.get(t);\n if (handler) {\n this.errorHandlers.push(handler);\n }\n })\n }\n\n\n public get handlers(): AXPErrorHandler[] {\n return this.errorHandlers;\n }\n}","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandlerRegistryService } from \"./error-handler-registry.service\";\n\n@Injectable({ providedIn: 'root' })\nexport class AXPGlobalErrorHandler extends ErrorHandler {\n\n\n\n constructor(private injector: Injector, private registry: AXPErrorHandlerRegistryService) {\n super()\n }\n\n override handleError(error: Error) {\n const handleErrorRecursively = (index: number, error: any) => {\n const errorHandlers = this.registry.handlers;\n if (index < errorHandlers.length) {\n errorHandlers[index].handleError(error, (err) => {\n handleErrorRecursively(index + 1, err);\n });\n } else {\n super.handleError(error); // Fallback to default handler\n }\n };\n if (error.message?.startsWith('NG0100')) {\n //ignore it\n return\n }\n handleErrorRecursively(0, error);\n }\n}\n","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport {\n AXPGroupDetails,\n AXPSettingDefinitionGroup,\n AXPSettingDefinitionItem,\n AXPSettingDefinitionProviderContext,\n AXPSettingDefinitionSection,\n} from './settings.types';\n\n// Interface for setting providers\nexport interface AXPSettingDefinitionProvider {\n provide(context: AXPSettingDefinitionProviderContext): Promise<void>;\n}\n\n// Injection token for setting providers\nexport const AXP_SETTING_PROVIDER = new InjectionToken<AXPSettingDefinitionProvider[]>('AXP_SETTING_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPSettingDefinitionProviderService {\n private providers = inject(AXP_SETTING_PROVIDER, { optional: true });\n private cache: AXPSettingDefinitionItem[] | null = null;\n private pendingInserts: Array<{\n target: string;\n newItems: AXPSettingDefinitionItem[];\n position: 'before' | 'after';\n }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPSettingDefinitionItem[] }> = [];\n\n // Retrieve all setting items, applying any pending operations\n public async items(): Promise<AXPSettingDefinitionItem[]> {\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPSettingDefinitionItem[] = [];\n const context = this.createProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n provider.provide(context);\n }\n }\n // this.applyPendingOperations(items);\n this.cache = items;\n return items;\n }\n\n public findGroupDetails(groupName: string): AXPGroupDetails | null {\n if (this.cache) {\n return this.searchGroupDetails(this.cache, groupName, []); // Initialize with an empty breadcrumb\n }\n return null;\n }\n\n private searchGroupDetails(\n groups: AXPSettingDefinitionGroup[],\n groupName: string,\n breadcrumb: { name: string; title: string }[]\n ): {\n breadcrumb: { name: string; title: string }[];\n sections: AXPSettingDefinitionSection[] | null;\n childGroups: AXPSettingDefinitionGroup[] | null;\n } | null {\n for (const group of groups) {\n const currentBreadcrumb = [...breadcrumb, { name: group.name, title: group.title }];\n\n // If the group name matches, return its details\n if (group.name === groupName) {\n return {\n breadcrumb: currentBreadcrumb,\n sections: group.sections.length > 0 ? group.sections : null,\n childGroups: group.groups.length > 0 ? group.groups : null,\n };\n }\n\n // Recursively search in nested groups\n const nestedResult = this.searchGroupDetails(group.groups, groupName, currentBreadcrumb);\n if (nestedResult) {\n return nestedResult;\n }\n }\n\n // If no matching group is found\n return null;\n }\n\n // Create the provider context with methods to add items and find existing ones\n private createProviderContext(items: AXPSettingDefinitionItem[]): AXPSettingDefinitionProviderContext {\n return {\n addItems: (newItems: AXPSettingDefinitionItem[]) => {\n items.push(...newItems);\n },\n addItem: (item: AXPSettingDefinitionItem) => {\n items.push(item);\n },\n addGroup: (group: AXPSettingDefinitionGroup) => {\n items.push(group);\n },\n // find: (target: string): AXPSettingDefinitionFinderResult => {\n // return {\n // insertGroup: (item, position) => {\n // this.pendingInserts.push({ target, newItems: [item], position });\n // },\n // insertSingle: (item, position) => {\n // this.pendingInserts.push({ target, newItems: [item], position });\n // },\n // insertSingles: (items, position) => {\n // this.pendingInserts.push({ target, newItems: items, position });\n // },\n // addItems: (items) => {\n // this.pendingAdditions.push({ target, newItems: items });\n // },\n // addChildSingleAt: (item, index) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // if (index >= 0 && index <= group.singles.length) {\n // group.singles.splice(index, 0, item);\n // } else {\n // console.warn(`Index \"${index}\" is out of bounds for singles.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildSingleFirst: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.singles.unshift(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildSingleLast: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.singles.push(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildGroupAt: (item, index) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // if (index >= 0 && index <= group.groups.length) {\n // group.groups.splice(index, 0, item);\n // } else {\n // console.warn(`Index \"${index}\" is out of bounds for groups.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // addChildGroupFirst: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.unshift(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // addChildGroupLast: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.push(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // };\n // },\n };\n }\n\n // private applyPendingOperations(items: AXPSettingDefinitionItem[]): void {\n // // Process pending insertions\n // for (const { target, newItems, position } of this.pendingInserts) {\n // const foundItemInfo = this.findItemWithParent(items, target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem, parentItems } = foundItemInfo;\n // const index = parentItems.indexOf(foundItem);\n // const insertIndex = position === 'before' ? index : index + 1;\n // parentItems.splice(insertIndex, 0, ...newItems);\n // } else {\n // console.warn(`Target \"${target}\" not found for insertion.`);\n // }\n // }\n\n // // Process pending additions\n // for (const { target, newItems } of this.pendingAdditions) {\n // const foundItemInfo = this.findItemWithParent(items, target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.push(\n // ...(newItems.filter(\n // (item) => item.type === AXPSettingDefinitionItemType.Group\n // ) as AXPSettingDefinitionGroup[])\n // );\n // group.singles.push(\n // ...(newItems.filter((item) => item.type === AXPSettingDefinitionItemType.Single) as AXPSettingDefinition[])\n // );\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add items.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding items.`);\n // }\n // }\n\n // // Clear pending operations after applying them\n // this.pendingInserts = [];\n // this.pendingAdditions = [];\n // }\n\n // private findItemWithParent(\n // items: AXPSettingDefinitionItem[],\n // target: string,\n // parentItems: AXPSettingDefinitionItem[] = items\n // ): { foundItem: AXPSettingDefinitionItem; parentItems: AXPSettingDefinitionItem[] } | null {\n // for (const item of items) {\n // if (item.name === target) {\n // return { foundItem: item, parentItems };\n // }\n\n // if (item.type === AXPSettingDefinitionItemType.Group) {\n // const group = item as AXPSettingDefinitionGroup;\n\n // // Search within child groups\n // const groupResult = this.findItemWithParent(group.groups, target, group.groups);\n // if (groupResult) {\n // return groupResult;\n // }\n\n // // Search within child singles\n // const singleResult = this.findItemWithParent(group.singles, target, group.singles);\n // if (singleResult) {\n // return singleResult;\n // }\n // }\n // }\n // return null;\n // }\n}\n","import { AXPSettingValue } from \"./settings.types\";\nimport { InjectionToken } from \"@angular/core\";\n\nexport interface AXPSettingsProvider {\n load(): Promise<AXPSettingValue[]>\n set(key: string, value: any): Promise<void>\n}\n\n\nexport const AXP_SETTINGS_PROVIDER = new InjectionToken<AXPSettingsProvider>('AXP_SETTINGS_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPSettingsProviderDefault();\n }\n});\n\n\nclass AXPSettingsProviderDefault implements AXPSettingsProvider {\n private readonly cache: Map<string, any> = new Map();\n private localStorageKey: string = 'AXP_SETTINGS';\n\n async load(): Promise<AXPSettingValue[]> {\n // Load settings from localStorage as a single key\n const storedSettings = localStorage.getItem(this.localStorageKey);\n if (storedSettings) {\n const parsedSettings: Record<string, any> = JSON.parse(storedSettings);\n Object.entries(parsedSettings).forEach(([key, value]) => {\n this.cache.set(key, value);\n });\n return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));\n }\n return Promise.resolve([]);\n }\n\n async set(key: string, value: any): Promise<void> {\n this.cache.set(key, value)\n // Save to localStorage as a single key\n const settingsObject: Record<string, AXPSettingValue> = {};\n this.cache.forEach((val, k) => {\n settingsObject[k] = val;\n });\n localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXP_SETTINGS_PROVIDER, AXPSettingsProvider } from './settings.provider';\nimport { AXPSettingValue } from './settings.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSettingsService {\n private readonly settingsProvider = inject<AXPSettingsProvider>(AXP_SETTINGS_PROVIDER);\n private settingsCache: Map<string, any> = new Map<string, any>();\n\n public readonly changed = new Subject<AXPSettingValue>();\n\n async load(): Promise<AXPSettingValue[]> {\n try {\n const settingsList = await this.settingsProvider.load();\n this.settingsCache.clear();\n settingsList.forEach((setting) => {\n this.settingsCache.set(setting.key, setting.value);\n });\n return settingsList;\n } catch (error) {\n console.error('Error loading settings', error);\n throw error; // Re-throw or handle it appropriately\n }\n }\n\n async get<T = any>(key: string): Promise<T> {\n if (this.settingsCache.size == 0) {\n await this.load();\n }\n return cloneDeep(this.settingsCache.get(key)) as T;\n }\n\n async set<T = any>(key: string, value: T): Promise<void> {\n if (this.settingsCache.has(key)) {\n this.settingsCache.set(key, value);\n await this.settingsProvider.set(key, value);\n this.changed.next({ key, value });\n } else {\n console.warn(`Setting with key \"${key}\" not found.`);\n this.settingsCache.set(key, value);\n this.set(key, value);\n }\n }\n}\n","import { NavigationExtras } from '@angular/router';\nimport { createAction, props } from '@ngrx/store';\n\nexport const AXPNavigateAction = createAction(\n '[Navigate] Action',\n props<{ payload: { commands: string | any[]; extras?: NavigationExtras } }>()\n);\nexport const AXPSignOutAction = createAction('[SignOut] Action');\nexport const AXPSignInAction = createAction('[SignIn] Action');\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { of, switchMap } from 'rxjs';\nimport { AXPSettingsService } from '../settings';\nimport { AXPNavigateAction } from './common.actions';\n\n@Injectable()\nexport class AXPCommonEffects {\n constructor(private actions$: Actions, private router: Router, private settingService: AXPSettingsService) {}\n\n command$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AXPNavigateAction),\n switchMap((action) => {\n if (Array.isArray(action.payload.commands))\n this.router.navigate(action.payload.commands, action.payload.extras);\n else {\n if (action.payload.commands.toLowerCase().startsWith('http'))\n window.open(action.payload.commands, '_blank');\n else this.router.navigate([action.payload.commands], action.payload.extras);\n }\n return of();\n })\n ),\n { dispatch: false }\n );\n}\n","import { AXStyleColorType } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\n//TODO Loading, Redirect, Drawer, Show toast\n\nexport const AXPRedirectEvent = createWorkFlowEvent<{ url: string }>('Redirect Event Fired');\n\n@Injectable()\nexport class AXPWorkflowNavigateAction extends AXPWorkflowAction {\n private router = inject(Router);\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n if (Array.isArray(payload.commands)) {\n this.router.navigate(payload.commands, payload.extras);\n }\n else {\n if (payload.commands.toLowerCase().startsWith('http') || payload.target == \"blank\") {\n window.open(payload.commands, '_blank');\n }\n else this.router.navigate([payload.commands], payload.extras);\n }\n }\n}\n\n@Injectable()\nexport class AXPDialogConfirmAction extends AXPWorkflowAction {\n private dialogService = inject(AXDialogService);\n private translationService = inject(AXTranslationService);\n\n title!: string;\n message!: string;\n type!: AXStyleColorType;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n context.setOutput('result', false);\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync(this.title),\n await this.translationService.translateAsync(this.message),\n (await this.translationService.translateAsync(this.type)) as AXStyleColorType\n );\n context.setOutput('result', dialogResult.result);\n }\n}\n\n@Injectable()\nexport class AXPToastAction extends AXPWorkflowAction {\n private toastService = inject(AXToastService);\n private translationService = inject(AXTranslationService);\n\n color!: AXStyleColorType;\n title!: string;\n content!: string;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n this.toastService.show({\n color: this.color,\n title: await this.translationService.translateAsync(this.title),\n content: await this.translationService.translateAsync(this.content),\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n}\n","import { Injectable, NgZone, inject, isDevMode } from \"@angular/core\";\nimport { AXDialogService } from \"@acorex/components/dialog\";\nimport { AXPWorkflowError } from \"@acorex/platform/workflow\";\nimport { AXPErrorHandler } from \"../errors\";\n\n@Injectable()\nexport class AXMWorkflowErrorHandler implements AXPErrorHandler {\n private dialog = inject(AXDialogService);\n\n\n handleError(error: any, next: (error: any) => void): void {\n if (error instanceof AXPWorkflowError) {\n this.dialog.alert(\"Somthing is wrong!\", error.inner ? error.inner.message : error.message, 'danger');\n next(error);\n } else {\n next(error);\n }\n }\n}","import { AXPopupModule } from '@acorex/components/popup';\nimport { AXToastModule } from '@acorex/components/toast';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { ErrorHandler, Inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { AXPAppStartUpProvider, AXPAppStartUpService } from './app/app-startup.service';\nimport {\n AXPCustomOperatorService,\n AXPCustomOperatorServiceImpl,\n AXPDataSeederService,\n AXPFilterOperatorMiddlewareService,\n AXPFilterOperatorMiddlewareServiceImpl,\n} from './data';\nimport { AXPErrorHandler, AXPErrorHandlerRegistryService, AXPGlobalErrorHandler } from './errors';\nimport { AXPSettingsService } from './settings';\nimport { AXPCommonEffects } from './store';\nimport { AXPDialogConfirmAction, AXPToastAction } from './workflows';\n\nexport interface AXPCommonModuleConfigs {\n errorHandlers: (new () => AXPErrorHandler)[];\n}\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([AXPCommonEffects]),\n AXPWorkflowModule.forChild({\n actions: {\n navigate: AXPDialogConfirmAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule,\n ],\n exports: [RouterModule],\n providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n ],\n})\nexport class AXPCommonModule {\n static forRoot(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(\n @Inject('AXPCommonModuleFactory') instances: any[],\n appInitService: AXPAppStartUpService,\n settingsService: AXPSettingsService,\n seederService: AXPDataSeederService\n ) {\n instances.forEach((f) => {\n f();\n });\n\n // appInitService.registerTask({\n // name: 'Modules',\n // statusText: 'Initializing Modules ...',\n // run: () =>\n // new Promise<void>((resolve) => {\n // setTimeout(() => {\n // resolve();\n // }, 250);\n // }),\n // });\n //\n appInitService.registerTask({\n name: 'Settings',\n statusText: 'Loading Settings ...',\n run: async () => {\n await settingsService.load();\n },\n });\n //\n //\n appInitService.registerTask({\n name: 'Seeder',\n statusText: 'Seed Data ...',\n run: async () => {\n await seederService.seed();\n },\n });\n }\n}\n","import { Type } from '@angular/core';\n\nexport interface AXPLogoConfig {}\nexport class AXPTextLogoConfig implements AXPLogoConfig {\n constructor(public text: string) {}\n}\nexport class AXPImageUrlLogoConfig implements AXPLogoConfig {\n constructor(public url: string) {}\n}\nexport class AXPFontIconLogoConfig implements AXPLogoConfig {\n constructor(public iconClass: Type<any>) {}\n}\n\nexport class AXPComponentLogoConfig implements AXPLogoConfig {\n constructor(public component: Type<any>) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLogoConfig, AXPTextLogoConfig } from '../layout/logo/logo.types';\n\nexport const ENVIRONMENT = new InjectionToken<any>('ENVIRONMENT');\n\nexport const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken<AXPPlatformConfigs>('AXP_PLATFORM_CONFIG_TOKEN', {\n providedIn: 'root',\n factory: () => {\n return AXPPlatformDefaultConfigs;\n },\n});\n\nexport interface AXPPlatformConfigs {\n title?: string;\n copyright?: string;\n logo?: {\n dark?: AXPLogoConfig;\n light?: AXPLogoConfig;\n colored?: AXPLogoConfig;\n };\n useLocalData: boolean;\n network?: {\n timeOut?: number;\n };\n}\n\nexport const AXPPlatformDefaultConfigs: AXPPlatformConfigs = {\n copyright: 'ACoreX @ 2023',\n title: 'ACoreX Platform',\n logo: {\n dark: new AXPTextLogoConfig('ACoreX'),\n light: new AXPTextLogoConfig('ACoreX'),\n colored: new AXPTextLogoConfig('ACoreX'),\n },\n useLocalData: false,\n network: {\n timeOut: 5000,\n }\n};\n\nexport function configPlatform(config: Partial<AXPPlatformConfigs> = AXPPlatformDefaultConfigs): AXPPlatformConfigs {\n return merge(AXPPlatformDefaultConfigs, config);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const AXP_ROOT_CONFIG_TOKEN = new InjectionToken<AXPRootConfigs>('AXP_ROOT_CONFIG_TOKEN');\n\nexport interface AXPRootConfigs {\n baseUrl: string;\n}","// src/app/directives/grid-layout.directive.ts\n\nimport { Directive, Input, ElementRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\nimport { AXPGridLayoutOptions, AXPGridLayoutPositions } from './grid-layout.types';\n\n@Directive({\n selector: '[gridLayout]',\n standalone: true,\n})\nexport class AXPGridLayoutDirective implements OnChanges {\n @Input('gridLayout') options: AXPGridLayoutOptions;\n\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n\n private applyTailwindClasses(): void {\n // Clear existing grid classes\n this.clearClasses();\n\n // Apply new grid classes based on the input options\n this.setClasses(this.options.positions?.default, '');\n this.setClasses(this.options.positions?.md, 'md:');\n this.setClasses(this.options.positions?.lg, 'lg:');\n this.setClasses(this.options.positions?.xl, 'xl:');\n this.setClasses(this.options.positions?.xxl, '2xl:');\n }\n\n private setClasses(positions: AXPGridLayoutPositions | undefined, prefix: string): void {\n if (positions == null) return;\n\n const colStart = positions.colStart ? `${prefix}ax-col-start-${positions.colStart}` : '';\n const colEnd = positions.colEnd ? `${prefix}ax-col-end-${positions.colEnd}` : '';\n const colSpan = positions.colSpan ? `${prefix}ax-col-span-${positions.colSpan}` : '';\n const rowStart = positions.rowStart ? `${prefix}ax-row-start-${positions.rowStart}` : '';\n const rowEnd = positions.rowEnd ? `${prefix}ax-row-end-${positions.rowEnd}` : '';\n const rowSpan = positions.rowSpan ? `${prefix}ax-row-span-${positions.rowSpan}` : '';\n const order = positions.order ? `${prefix}ax-order-${positions.order}` : ''; // Handling order\n\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n\n private clearClasses(): void {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className: string) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[axpSticky]',\n exportAs: 'axpSticky',\n standalone: true\n})\nexport class AXPStickyDirective {\n\n @Input('axpSticky')\n stickyClass!: string;\n\n @Input('stickyOffset')\n stickyOffset: number = 100;\n\n\n @Output()\n public isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _isSticky: boolean = false;\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(v: boolean) {\n this._isSticky = v;\n this.isStickyChange.emit(v);\n }\n\n private topOffset!: number;\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n\n\n constructor(private element: ElementRef<HTMLDivElement>, private renderer: Renderer2, private zone: NgZone, private cdr: ChangeDetectorRef) { }\n\n\n ngAfterViewInit() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n }\n else {\n this.parentElement = document.querySelector(this.stickyParent) as HTMLElement || window;\n }\n this.targetElement = document.querySelector(this.stickyTarget) as HTMLElement || this.element.nativeElement;\n this.topOffset = this.targetElement.offsetTop;\n this.parentElement.addEventListener('scroll', this.onParentScroll.bind(this));\n }\n\n private onParentScroll = (): void => {\n this.zone.runOutsideAngular(() => {\n const scrollPosition = this.parentElement === window ?\n window.scrollY :\n (this.parentElement as HTMLElement).scrollTop + this.targetElement.offsetTop;\n\n if (scrollPosition - this.stickyOffset >= this.topOffset && !this.isSticky) {\n this.stickyClass.split(' ').forEach(c => {\n this.renderer.addClass(this.targetElement, c);\n })\n this.isSticky = true;\n this.cdr.markForCheck();\n } else if (scrollPosition <= this.topOffset && this.isSticky) {\n this.stickyClass.split(' ').forEach(c => {\n this.renderer.removeClass(this.targetElement, c);\n });\n this.isSticky = false;\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPComponentSlotConfig } from \"./component-slot.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPComponentSlotRegistryService {\n\n private registry = new Map<string, AXPComponentSlotConfig[]>();\n\n register(slotName: string, config: AXPComponentSlotConfig) {\n let configs = this.registry.get(slotName) || [];\n\n // Check if the component is already registered in this slot\n const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);\n\n if (!isDuplicate) {\n configs = [...configs, config]; // Add the new configuration\n this.registry.set(slotName, configs);\n }\n }\n\n get(slotName: string): AXPComponentSlotConfig[] {\n return this.registry.get(slotName) || [];\n }\n}","import { Injectable, Injector, Type, ViewContainerRef, runInInjectionContext } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPComponentSlotLoaderService {\n constructor(private registryService: AXPComponentSlotRegistryService, private injector: Injector) {}\n\n loadComponent(slotName: string, viewContainerRef: ViewContainerRef) {\n const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);\n if (configs) {\n viewContainerRef.clear();\n configs.forEach(async (config) => {\n let component!: Type<any> | null | undefined;\n let options: { [key: string]: unknown } = {};\n if (typeof config.loadComponent === 'function') {\n // If component is a function\n runInInjectionContext(this.injector, () => {\n component = config.loadComponent?.();\n });\n } else if (config.component) {\n // If component is a Type\n component = config.component;\n }\n //\n if (typeof config.options === 'function') {\n // If options is a function\n runInInjectionContext(this.injector, () => {\n const fun = config.options as Function;\n options = fun();\n });\n } else if (config.options) {\n // If options is a object\n options = config.options;\n }\n //\n if (component != null) {\n const componentRef = viewContainerRef.createComponent(component);\n Object.assign(componentRef.instance, options);\n }\n });\n }\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { AXPComponentSlotLoaderService } from './component-slot-loader.service';\n\n@Directive({\n selector: 'axp-component-slot',\n})\nexport class AXPComponentSlotDirective implements OnInit {\n @Input()\n name!: string;\n\n constructor(private dynamicLoaderService: AXPComponentSlotLoaderService, public viewContainerRef: ViewContainerRef) { }\n\n ngOnInit() {\n this.dynamicLoaderService.loadComponent(this.name, this.viewContainerRef);\n }\n}","import { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPComponentSlotModuleConfigs } from './component-slot.types';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport { AXPComponentSlotDirective } from './component-slot.directive';\n\n@NgModule({\n declarations: [AXPComponentSlotDirective],\n exports: [AXPComponentSlotDirective]\n})\nexport class AXPComponentSlotModule {\n\n static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n\n static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPComponentSlotModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\n\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AXPComponentLogoConfig, AXPFontIconLogoConfig, AXPImageUrlLogoConfig, AXPTextLogoConfig } from './logo.types';\n\n@Component({\n selector: 'axp-logo',\n templateUrl: `logo.component.html`,\n standalone: true,\n imports: [CommonModule, AXImageModule, AXDecoratorModule],\n host: { 'class': 'ax-flex ax-justify-center' }\n})\nexport class AXPLogoComponent {\n\n @Input()\n source!: any;\n\n protected logoType!: string;\n\n ngOnInit(): void {\n switch (true) {\n case this.source instanceof AXPTextLogoConfig:\n this.logoType = 'text';\n break;\n case this.source instanceof AXPImageUrlLogoConfig:\n this.logoType = 'url';\n break;\n case this.source instanceof AXPFontIconLogoConfig:\n this.logoType = 'iconClass';\n break;\n case this.source instanceof AXPComponentLogoConfig:\n this.logoType = 'component';\n break;\n default:\n break;\n }\n }\n}\n","@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXPMenuFinderResult, AXPMenuItem, AXPMenuProviderContext } from './menu.types';\n\nexport interface AXPMenuProvider {\n provide(context: AXPMenuProviderContext): Promise<void>;\n}\n\nexport const AXP_MENU_PROVIDER = new InjectionToken<AXPMenuProvider[]>('AXP_MENU_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPMenuProviderService {\n\n private providers = inject(AXP_MENU_PROVIDER, { optional: true });\n private cache: AXPMenuItem[] | null = null;\n private pendingInserts: Array<{ target: string; newItems: AXPMenuItem[]; position: 'before' | 'after' }> = [];\n private pendingRemovals: string[] = [];\n private pendingUpdates: Array<{ target: string; updatedItem: Partial<AXPMenuItem> }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPMenuItem[] }> = [];\n\n async items(): Promise<AXPMenuItem[]> {\n // Return cached items if available\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPMenuItem[] = [];\n const context = this.createMenuProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n\n // Apply pending operations\n this.applyPendingOperations(items);\n\n // Cache the computed items\n this.cache = items;\n return items;\n }\n\n private createMenuProviderContext(items: AXPMenuItem[]): AXPMenuProviderContext {\n return {\n addItems: (newItems: AXPMenuItem[]) => {\n items.push(...newItems);\n },\n find: (target: string): AXPMenuFinderResult => {\n return {\n insert: (newItems: AXPMenuItem[], position: 'before' | 'after') => {\n this.pendingInserts.push({ target, newItems, position });\n },\n remove: () => {\n this.pendingRemovals.push(target);\n },\n update: (updatedItem: Partial<AXPMenuItem>) => {\n this.pendingUpdates.push({ target, updatedItem });\n },\n addItems: (newItems: AXPMenuItem[]) => {\n this.pendingAdditions.push({ target, newItems });\n }\n };\n }\n };\n }\n\n private applyPendingOperations(items: AXPMenuItem[]): void {\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, appending items.`);\n items.push(...newItems);\n } else {\n const index = parentItems.indexOf(foundItem);\n const insertPosition = position === 'before' ? index : index + 1;\n parentItems.splice(insertPosition, 0, ...newItems);\n }\n }\n\n for (const target of this.pendingRemovals) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to remove.`);\n } else {\n const index = parentItems.indexOf(foundItem);\n parentItems.splice(index, 1);\n }\n }\n\n for (const { target, updatedItem } of this.pendingUpdates) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to update.`);\n } else {\n Object.assign(foundItem, updatedItem);\n }\n }\n\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to add items to.`);\n } else {\n if (!foundItem.children) {\n foundItem.children = [];\n }\n foundItem.children.push(...newItems);\n }\n }\n\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n\n private findItemWithParent(items: AXPMenuItem[], target: string, parentItems: AXPMenuItem[] = items): { foundItem: AXPMenuItem | null, parentItems: AXPMenuItem[] } {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n\n if (item.children) {\n const result = this.findItemWithParent(item.children, target, item.children);\n if (result.foundItem) {\n return result;\n }\n }\n }\n return { foundItem: null, parentItems: items };\n }\n\n // Method to clear the cache, if needed (e.g., when providers change)\n clearCache(): void {\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n}\n","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { AXPMenuItem } from './menu.types';\nimport { AXPMenuProviderService } from './menu.provider';\nimport { Store } from '@ngrx/store';\nimport { AXPNavigateAction } from '../../store';\n\nexport const AXPMenuService = signalStore(\n { providedIn: 'root' },\n\n // Initial State\n withState((router = inject(Router)) => {\n return {\n items: [] as AXPMenuItem[],\n selectedMenuItem: {\n item: null as AXPMenuItem | null,\n isFullMatch: false\n },\n };\n }),\n\n // Methods for State Management\n withMethods((store, router = inject(Router), globalStore = inject(Store)) => {\n\n\n return {\n\n setMenuItems(items: AXPMenuItem[]): void {\n patchState(store, { items: items });\n },\n\n selectMenuItemByRoute(path: string): void {\n const findItem = (items: AXPMenuItem[]): { item: AXPMenuItem | null, isPartialMatch: boolean } => {\n for (const item of items) {\n // Recursively search children first\n if (item.children) {\n const foundChild = findItem(item.children);\n if (foundChild.item) {\n return foundChild;\n }\n }\n if (item.path) {\n // Check if the item path matches the current path\n const matchResult = pathsMatch(item.path, path);\n if (matchResult.isMatch) {\n return { item, isPartialMatch: matchResult.isPartial };\n }\n }\n }\n return { item: null, isPartialMatch: false };\n };\n\n const pathsMatch = (itemPath: string, currentPath: string): { isMatch: boolean, isPartial: boolean } => {\n // Split both paths into segments\n const itemSegments = itemPath.split('/').filter(segment => segment.length > 0);\n const pathSegments = currentPath.split('/').filter(segment => segment.length > 0);\n\n // Determine the minimum number of segments to compare\n const minLength = Math.min(itemSegments.length, pathSegments.length);\n\n // Compare segments until we find a mismatch\n let commonBaseLength = 0;\n for (let i = 0; i < minLength; i++) {\n if (itemSegments[i] === pathSegments[i]) {\n commonBaseLength++;\n } else {\n break; // Stop at the first mismatch\n }\n }\n\n // Determine if we have a common base of at least 5 segments\n const isPartialMatch = commonBaseLength >= 5 && commonBaseLength < itemSegments.length;\n const isExactMatch = commonBaseLength === itemSegments.length && itemSegments.length === pathSegments.length;\n\n return {\n isMatch: isPartialMatch || isExactMatch,\n isPartial: isPartialMatch && !isExactMatch,\n };\n };\n\n const items = store.items();\n const { item, isPartialMatch } = findItem(items);\n patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });\n },\n\n executeCommand(item: AXPMenuItem): void {\n if (item.command) {\n globalStore.dispatch(item.command);\n } else if (item.path) {\n globalStore.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));\n }\n patchState(store, { selectedMenuItem: { item, isFullMatch: true } });\n },\n\n isItemOpen(item: AXPMenuItem): boolean {\n const selectedItem = store.selectedMenuItem();\n if (!selectedItem) {\n return false;\n }\n\n const findParent = (currentItem: AXPMenuItem, targetItem: AXPMenuItem): boolean => {\n if (currentItem.children?.includes(targetItem)) {\n return true;\n }\n return currentItem.children?.some(child => findParent(child, targetItem)) ?? false;\n };\n\n return item === selectedItem?.item || findParent(item, selectedItem.item!);\n }\n };\n }),\n withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({\n onInit() {\n (async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n })();\n },\n onDestroy() {\n\n },\n }))\n);","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <small class=\"ax-text-sm ax-text-neutral-400\" [innerHTML]=\"text\"></small>\n `,\n standalone: true\n})\nexport class AXPFooterTextSlotComponent {\n @Input()\n public text!: string;\n}","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport { AXPMenuItem } from '../../../menu';\n\n@Component({\n template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n <a *ngFor=\"let link of items\" (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n </div>\n `,\n standalone: true,\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXPNavBarSlotComponent {\n @Input()\n public items!: AXPMenuItem[];\n\n private store = inject(Store)\n\n protected handleCommand(action?: Action) {\n if (action)\n this.store.dispatch(action)\n }\n}","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPSchemaConfig } from './schema.types';\n\ntype DeepPartial<Thing> = Thing extends Function\n ? Thing\n : Thing extends Array<infer InferredArrayMember>\n ? DeepPartialArray<InferredArrayMember>\n : Thing extends object\n ? DeepPartialObject<Thing>\n : Thing | undefined;\n\ninterface DeepPartialArray<Thing> extends Array<DeepPartial<Thing>> {}\n\ntype DeepPartialObject<Thing> = {\n [Key in keyof Thing]?: DeepPartial<Thing[Key]>;\n};\n\ntype AXPSchemaOverride = Omit<DeepPartialObject<AXPSchemaConfig>, 'name'> & { name: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSchemaRegistryService {\n private types: Map<string, AXPSchemaConfig> = new Map();\n\n register(schema: AXPSchemaConfig) {\n this.types.set(schema.name, schema);\n }\n\n extend(parentName: string, schema: AXPSchemaOverride) {\n const parentSchema = this.resolve(parentName);\n const newSchema = merge({}, parentSchema, schema);\n newSchema.name = schema.name;\n this.register(newSchema);\n }\n\n resolve(name: string): AXPSchemaConfig | undefined {\n const schema = this.types.get(name);\n if (!schema) {\n throw new Error(`Parent schema with name ${schema} does not exist.`);\n }\n return schema;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\nexport interface AXPWidgetProperty {\n name: string;\n description?: string,\n formats: AXPDisplayFormat;\n validationRules?: AXPValidationRules\n canEdit: boolean;\n}\nexport interface AXPWidgetTokenType {\n schema: AXPSchemaConfig;\n prop: AXPWidgetProperty;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetTokenType>('AXP_WIDGET_TOKEN');\n\n","import { AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject } from '@angular/core';\nimport { assign, cloneDeep, merge } from 'lodash-es';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n @if(component && widgetInjector && row?.data) {\n <ng-container *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"></ng-container>\n }\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [{ provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['width', 'caption', 'headerTemplate', 'allowSorting', 'fixed'],\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n mergedOptions: any = {};\n\n // @ViewChild(TemplateRef)\n // private _template!: TemplateRef<unknown>;\n\n // get template(): TemplateRef<unknown> {\n // return this._template;\n // }\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.dataField}`;\n }\n\n @Input()\n options?: { [key: string]: any };\n\n @Input()\n dataField!: string;\n\n @Input()\n displayFormat!: string | undefined;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n if (schema?.component?.column) this.component = await schema?.component?.column.component();\n this.mergedOptions = merge(cloneDeep(schema?.component.column?.options), this.options) || {};\n const tokenValue = {\n prop: {\n name: this.dataField,\n formats: { default: this.displayFormat },\n },\n schema: schema,\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.mergedOptions.width ?? '200px';\n this.allowResizing = this.mergedOptions.allowResizing || false;\n this.cdr.markForCheck();\n }\n\n getInputs(data: any) {\n return assign(this.mergedOptions, { context: data });\n }\n}\n","import { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Injector,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, isEqual, merge } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetFilterBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-filter-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n})\nexport class AXPWidgetFilterRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n protected isLoading = true;\n\n @Output()\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n operatorChange: EventEmitter<any> = new EventEmitter<any>();\n\n private _value: any;\n @Input()\n public get value(): any {\n return this._value;\n }\n\n public set value(v: any) {\n this._value = v;\n this.updateValue();\n this.valueChange.emit(v);\n }\n\n private _operator: any;\n @Input()\n public get operator(): any {\n return this._operator;\n }\n\n public set operator(op: any) {\n this._operator = op;\n this.updateOperator();\n this.operatorChange.emit(op);\n }\n\n @Input()\n prop!: any;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetFilterBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.filter?.options),\n schema?.component?.filter?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component.filter?.component) {\n var com = await schema.component.filter?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance) {\n this.instance.value = this.value;\n }\n }\n\n private updateOperator() {\n if (this.instance) {\n this.instance.operator = this.operator;\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetFilterBase;\n // console.log(this.schemaName, this.instance);\n assign(this.instance, this.options);\n this.updateValue();\n this.updateOperator();\n this.instance.valueChange.subscribe((v) => {\n if (!isEqual(v, this.value)) {\n this.value = v;\n }\n });\n this.instance.operatorChange.subscribe((op) => {\n if (!isEqual(op, this.operator)) {\n this.operator = op;\n }\n });\n }\n}\n","import { AXFormatService } from '@acorex/core/format';\nimport { ChangeDetectorRef, EventEmitter, Injectable, Input, Output, inject } from '@angular/core';\nimport { cloneDeep, get, merge } from 'lodash-es';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPWidgetProperty, AXP_WIDGET_TOKEN } from './widget-token';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\n@Injectable()\nexport abstract class AXPWidgetBase<T = any> {\n protected cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n protected token = inject(AXP_WIDGET_TOKEN);\n protected formatService = inject(AXFormatService);\n\n public markForCheck = inject(ChangeDetectorRef).markForCheck;\n\n protected get schema(): AXPSchemaConfig {\n return this.token.schema;\n }\n\n protected get prop(): AXPWidgetProperty {\n return this.token.prop;\n }\n\n protected get rawValue(): any {\n return get(this.context, this.token.prop.name);\n }\n\n\n // protected get multiple(): boolean {\n // return this.token.prop.multiple ?? false;\n // }\n\n protected get formats(): AXPDisplayFormat {\n return merge(cloneDeep(this.schema.formats), this.token.prop.formats);\n }\n\n private _context!: T;\n @Input()\n public get context(): T {\n return this._context;\n }\n public set context(v: T) {\n this._context = v;\n this.render();\n this.cdr.markForCheck();\n }\n\n protected render(): void { }\n\n protected setOption(name: string, value: any) {\n\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetEditBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n\n protected get validations(): AXPValidationRules {\n const merged = [...(this.schema.validationRules ?? []), ...(this.token.prop.validationRules ?? [])];\n return merged;\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetFilterBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n operatorChange: EventEmitter<string> = new EventEmitter<string>();\n\n private _operator!: string;\n @Input()\n public get operator(): string {\n return this._operator;\n }\n public set operator(op: string) {\n this._operator = op;\n this.operatorChange.emit(op);\n this.render();\n this.cdr.markForCheck();\n }\n\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Injector,\n Input,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, get, merge, set } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetEditBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full lg:ax-w-[50%] ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n private subscriber = inject(AXUnsubscriber);\n\n private _context: any;\n @Input()\n public get context(): any {\n return this._context;\n }\n\n public set context(v: any) {\n this._context = v;\n if (this.instance) {\n this.instance.context = v;\n }\n this.updateValue();\n }\n\n @Input()\n prop!: any;\n\n @Input()\n mode: 'view' | 'edit' = 'view';\n\n protected isLoading = true;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n //TODO: move to better place\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetBase | AXPWidgetEditBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.[this.mode]?.options),\n schema?.component?.[this.mode]?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component[this.mode]?.component) {\n var com = await schema.component[this.mode]?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance && this.context && this.instance instanceof AXPWidgetEditBase) {\n this.instance.value = get(this.context, this.prop.name);\n }\n }\n\n private updateProps() {\n if (this.instance) {\n assign(this.instance, this.options);\n }\n }\n\n private attachReferenceField(v: any) {\n if (this.options['reference']) {\n const valueField = this.prop.component?.common?.options?.valueField || 'id';\n const referenceField = this.options['referenceField'];\n\n if (referenceField) {\n if (Array.isArray(v)) {\n this.context[referenceField] = v.map((item: any) => item[valueField]);\n } else {\n this.context[referenceField] = v?.[valueField];\n }\n } else {\n this.context[`${this.prop.name}Id`] = v?.[valueField];\n }\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetBase;\n this.instance.context = this.context;\n this.updateProps();\n this.updateValue();\n if (this.instance instanceof AXPWidgetEditBase) {\n this.attachReferenceField(this.instance.value);\n this.instance.valueChange.pipe(this.subscriber.takeUntilDestroy).subscribe((v) => {\n this.attachReferenceField(v);\n set(this.context, this.prop.name, v);\n });\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget/widget-column-renderer';\nimport { AXPWidgetFilterRendererComponent } from './widget/widget-filter-renderer';\nimport { AXPWidgetRendererComponent } from './widget/widget-renderer';\n\n@NgModule({\n imports: [PortalModule, AXSkeletonModule, CommonModule],\n exports: [AXPWidgetRendererComponent, AXPWidgetFilterRendererComponent, AXPWidgetColumnRendererComponent],\n declarations: [AXPWidgetRendererComponent, AXPWidgetColumnRendererComponent, AXPWidgetFilterRendererComponent],\n providers: [],\n})\nexport class AXPSchemaModule {}\n","import { AXDataSourceConfig } from '@acorex/components/common';\nimport { AXPValidationRules } from '@acorex/platform/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { AXPEntity } from '../../app';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPDisplayFormat } from '../formats';\n\nexport interface AXPLayoutGridPositions {\n start?: number;\n span?: number;\n}\n\nexport interface AXPEntityPropertyLayoutOptions {\n positions: {\n default?: AXPLayoutGridPositions;\n sm?: AXPLayoutGridPositions;\n md?: AXPLayoutGridPositions;\n lg?: AXPLayoutGridPositions;\n xl?: AXPLayoutGridPositions;\n xxl?: AXPLayoutGridPositions;\n };\n}\n\nexport interface AXPEntityPropertyConfig {\n name: string;\n title: string;\n description?: string;\n schema: string;\n layout?: AXPEntityPropertyLayoutOptions;\n canEdit: boolean;\n canInsert: boolean;\n canFilter?: boolean;\n canInlineFilter?: boolean;\n canSort?: boolean;\n visible?: boolean | string;\n formats?: AXPDisplayFormat;\n validationRules?: AXPValidationRules;\n component?: {\n common?: {\n options: AXPComponentOptions;\n };\n view?: {\n options: AXPComponentOptions;\n };\n edit?: {\n options: AXPComponentOptions;\n };\n filter?: {\n options: AXPComponentOptions;\n };\n column?: {\n options: AXPComponentOptions;\n };\n };\n}\n\nexport interface AXPEntityConfig {\n newStruct?: AXPEntity;\n area?: string;\n module: string;\n name: string;\n title: string;\n formats?: AXPDisplayFormat;\n properties: AXPEntityPropertyConfig[];\n dataSource: AXDataSourceConfig;\n editOptions?: {\n create?: boolean;\n update?: boolean;\n delete?: boolean;\n import?: boolean;\n };\n views: {\n list?: AXPEntityListConfig;\n lookup?: any;\n quickView?: AXPEntityViewConfig;\n detailView?: AXPEntityViewConfig;\n createView?: AXPEntityViewConfig;\n };\n commands?: {\n create?: (values: { [key: string]: any }) => Promise<any>;\n delete?: (id: string) => Promise<any>;\n update?: (id: string, values: { [key: string]: any }) => Promise<any>;\n };\n actions?: {\n [key: string]: {\n title: string;\n execute: (...args: any[]) => Promise<any> | string;\n permissions?: string[];\n target: 'selected' | 'single' | 'entity';\n priority: 'primary' | 'secondary';\n type: 'create' | 'update' | 'delete';\n options?: any;\n };\n };\n}\n\nexport interface AXPEntityViewRootSectionConfig {\n properties: string[];\n sections?: AXPEntityViewChildSectionConfig[];\n}\n\nexport interface AXPEntityViewChildSectionConfig extends AXPEntityViewRootSectionConfig {\n title: string;\n name: string;\n description?: string;\n options?: {\n showPropTitle: boolean;\n };\n}\n\nexport interface AXPEntityViewConfig {\n root: AXPEntityViewRootSectionConfig;\n action?: (e: AXPEntityConfig) => void;\n}\n\nexport interface AXPEntityListConfig {\n title: string;\n views: AXPEntityListViewConfig[];\n}\n\nexport interface AXPEntityListViewConfig {\n fixed: boolean;\n title: string;\n name: string;\n columns: AXPEntityListDisplayColumnConfig[];\n conditions: AXPEntityListConditionConfig[];\n inlineConditions?: AXPEntityListConditionConfig[];\n sorts: AXPEntityListSortConfig[];\n}\n\nexport const AXPEntityListViewConfigEmpty: AXPEntityListViewConfig = {\n fixed: false,\n columns: [],\n conditions: [],\n sorts: [],\n name: 'empty',\n title: 'Empty',\n};\n\nexport interface AXPEntityListColumnConfig {\n name: string;\n title: string;\n schema: string;\n}\n\nexport interface AXPEntityListDisplayColumnConfig {\n name: string;\n visible: boolean;\n schema: string;\n title: string;\n displayFormat?: string;\n sortOptions: {\n enabled?: boolean;\n property: string;\n };\n filterOptions: {\n enabled?: boolean;\n property: string;\n };\n tooltipOptions?: {\n template: any;\n };\n options?: {\n [key: string]: any;\n };\n}\n\nexport interface AXPEntityListConditionConfig {\n name: string;\n operator: string;\n value: any;\n}\n\nexport interface AXPEntityListSortConfig {\n name: string;\n dir: 'asc' | 'desc';\n}\n\nexport function convertPropertyToColumn(property: AXPEntityPropertyConfig): AXPEntityListDisplayColumnConfig {\n return {\n //TODO: merge format function\n schema: property.schema,\n name: property.name,\n title: property.title,\n visible: true,\n displayFormat: property.formats?.list ?? property.formats?.default,\n sortOptions: {\n enabled: property.canSort,\n property: property.name,\n },\n filterOptions: {\n enabled: property.canFilter,\n property: property.name,\n },\n options: merge(cloneDeep(property.component?.common?.options), property.component?.column?.options),\n };\n}\n\nexport function convertPropertiesToColumns(\n ...propertis: AXPEntityPropertyConfig[]\n): AXPEntityListDisplayColumnConfig[] {\n return propertis.map((p) => convertPropertyToColumn(p));\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\n\nexport interface AXPEntityLoader {\n get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null>;\n}\n\nexport class AXEntityLoaderDefault implements AXPEntityLoader {\n async get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null> {\n return null;\n }\n}\n\nexport const AXP_ENTITY_LOADER = new InjectionToken<AXPEntityLoader>(\n 'AXP_ENTITY_LOADER',\n {\n providedIn: 'root',\n factory: () => {\n return new AXEntityLoaderDefault();\n },\n }\n);","import { Injectable, inject } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\nimport { AXP_ENTITY_LOADER } from \"./entity.loader\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPEntityRegistryService {\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n private entities = new Map<string, AXPEntityConfig>();\n\n // Entity loader service for dynamically loading entity configurations.\n private loader = inject(AXP_ENTITY_LOADER); // Assuming AXPEntityLoader is the correct type\n\n\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n * \n * @param config The configuration object of the entity to be registered.\n */\n register(config: AXPEntityConfig): void {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName: string, entityName: string): Promise<AXPEntityConfig> {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n\n if (!config) {\n try {\n config = await this.loader.get(moduleName, entityName);\n if (config) {\n this.register(config);\n }\n } catch (error) {\n console.error(`Error loading entity '${key}':`, error);\n throw error; // Rethrow to allow error handling by caller\n }\n\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n\n return config;\n }\n\n /**\n * Creates a unique key for an entity based on its module and name.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n private createEntityKey(moduleName: string, entityName: string): string {\n return `${moduleName}.${entityName}`;\n }\n}\n","import { AXToastModule } from '@acorex/components/toast';\nimport { NgModule } from '@angular/core';\nimport { BETWEEN_OPER, DATE_OPERATORS, EQ_OPER, NUMBER_OPERATORS, STRING_OPERATORS } from '../../app';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\n\nexport const widgetSchemas = {\n //*Sharing schema list with other modules\n text: 'text',\n largetext: 'largetext',\n number: 'number',\n currency: 'currency',\n phone: 'phone',\n email: 'email',\n dateTime: 'dateTime',\n date: 'date',\n time: 'time',\n toggle: 'toggle',\n checkbox: 'checkbox',\n password: 'password',\n file: 'file',\n lookup: 'lookup',\n selectionList: 'selection-list',\n richText: 'rich-text',\n map: 'map',\n avatar: 'avatar',\n messenger: 'messenger',\n gallery: 'gallery',\n signaturePad: 'signature-pad',\n};\n\n@NgModule({\n imports: [AXToastModule],\n exports: [],\n declarations: [],\n providers: [],\n})\nexport class AXPCommonWidgetModule {\n constructor(service: AXPSchemaRegistryService) {\n //text\n service.register({\n component: {\n view: {\n component: () => import('./text/text-widget-view.component').then((c) => c.AXPTextWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./text/text-widget-edit.component').then((c) => c.AXPTextWidgetEditComponent),\n },\n column: {\n component: () => import('./text/text-widget-column.component').then((c) => c.AXPTextWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.text,\n dataType: 'string',\n });\n service.extend('text', {\n name: widgetSchemas.largetext,\n component: {\n edit: {\n component: () =>\n import('./text/largetext-widget-edit.component').then((c) => c.AXPLargeTextWidgetEditComponent),\n },\n column: {\n options: {\n width: '400px',\n },\n },\n },\n });\n //\n service.register({\n component: {\n view: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/number-widget-filter.component').then(\n (c) => c.AXPNumberWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./number/number-widget-edit.component').then((c) => c.AXPNumberWidgetEditComponent),\n },\n column: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.number,\n filterOptions: {\n operators: [...NUMBER_OPERATORS],\n default: BETWEEN_OPER,\n },\n dataType: 'number',\n });\n service.extend('number', {\n name: widgetSchemas.currency,\n formats: {\n default: 'EN-GB',\n },\n component: {\n edit: {\n options: {\n clearButton: false,\n },\n },\n },\n });\n //phone\n service.register({\n component: {\n view: {\n component: () => import('./phone/phone-widget-view.component').then((c) => c.AXPPhoneWidgetViewComponent),\n },\n column: {\n component: () => import('./phone/phone-widget-column.component').then((c) => c.AXPPhoneWidgetColumnComponent),\n options: { allowResizing: true },\n },\n edit: {\n component: () => import('./phone/phone-widget-edit.component').then((c) => c.AXPPhoneWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n name: widgetSchemas.phone,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n //email\n service.register({\n component: {\n view: {\n component: () => import('./email/email-widget-view.component').then((c) => c.AXPEmailWidgetViewComponent),\n },\n edit: {\n component: () => import('./email/email-widget-edit.component').then((c) => c.AXPEmailWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n column: {\n component: () => import('./email/email-widget-column.component').then((c) => c.AXPEmailWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.email,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n // dateTime\n service.register({\n component: {\n view: {\n component: () =>\n import('./dateTime/dateTime-widget-view.component').then((c) => c.AXPDateTimeWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./dateTime/dateTime-widget-edit.component').then((c) => c.AXPDateTimeWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./dateTime/dateTime-widget-filter.component').then((c) => c.AXPDateTimeWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./dateTime/dateTime-widget-column.component').then((c) => c.AXPDateTimeWidgetColumnComponent),\n options: {\n width: '200px',\n allowResizing: true,\n },\n },\n },\n formats: {\n default: 'date',\n },\n filterOptions: {\n operators: [...DATE_OPERATORS],\n default: BETWEEN_OPER,\n },\n name: widgetSchemas.dateTime,\n dataType: 'date',\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.date,\n formats: {\n default: 'date',\n },\n component: {\n column: {\n options: {\n width: '120px',\n },\n },\n },\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.time,\n formats: {\n default: 'time',\n },\n component: {\n column: {\n options: {\n width: '80px',\n },\n },\n },\n });\n //toggle\n service.register({\n component: {\n view: {\n component: () => import('./toggle/toggle-widget-view.component').then((c) => c.AXPToggleWidgetViewComponent),\n },\n edit: {\n component: () => import('./toggle/toggle-widget-edit.component').then((c) => c.AXPToggleWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./toggle/toggle-widget-column.component').then((c) => c.AXPToggleWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.toggle,\n dataType: 'boolean',\n });\n //checkbox\n service.register({\n component: {\n view: {\n component: () =>\n import('./checkbox/checkbox-widget-view.component').then((c) => c.AXPCheckboxWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./checkbox/checkbox-widget-edit.component').then((c) => c.AXPCheckboxWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./checkbox/checkbox-widget-column.component').then((c) => c.AXPCheckboxWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.checkbox,\n dataType: 'boolean',\n });\n //password\n service.register({\n component: {\n view: {\n component: () =>\n import('./password/password-widget-view.component').then((c) => c.AXPPasswordWidgetViewComponent),\n },\n column: {\n component: () =>\n import('./password/password-widget-column.component').then((c) => c.AXPPasswordWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () =>\n import('./password/password-widget-edit.component').then((c) => c.AXPPasswordWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.password,\n dataType: 'string',\n });\n //file\n service.register({\n component: {\n view: {\n component: () => import('./file/file-widget-view.component').then((c) => c.AXPFileWidgetViewComponent),\n },\n column: {\n component: () => import('./file/file-widget-column.component').then((c) => c.AXPFileWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () => import('./file/file-widget-edit.component').then((c) => c.AXPFileWidgetEditComponent),\n },\n filter: {\n component: () => import('./file/file-widget-filter.component').then((c) => c.AXPFileWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.file,\n dataType: 'object',\n });\n // look up\n service.register({\n component: {\n view: {\n component: () => import('./lookup/lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup/lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./lookup/lookup-widget-filter.component').then((c) => c.AXPLookupWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./lookup/lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.lookup,\n dataType: 'object',\n });\n // selection list\n service.register({\n component: {\n view: {\n component: () =>\n import('./selection-list/selection-list-widget-view.component').then(\n (c) => c.AXPSelectionListWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./selection-list/selection-list-widget-edit.component').then(\n (c) => c.AXPSelectionListWidgetEditComponent\n ),\n },\n column: {\n component: () =>\n import('./selection-list/selection-list-widget-column.component').then(\n (c) => c.AXPSelectionListWidgetColumnComponent\n ),\n options: {\n allowResizing: true,\n },\n },\n filter: {\n component: () =>\n import('./selection-list/selection-list-widget-filter.component').then(\n (c) => c.AXPSelectionListWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.selectionList,\n dataType: 'object',\n });\n // rich text\n service.register({\n component: {\n view: {\n component: () =>\n import('./rich-text/rich-text-widget-view.component').then((c) => c.AXPRichTextWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./rich-text/rich-text-widget-edit.component').then((c) => c.AXPRichTextWidgetEditComponent),\n options: {\n allowResizing: true,\n },\n },\n column: {\n component: () =>\n import('./rich-text/rich-text-widget-column.component').then((c) => c.AXPRichTextWidgetColumnComponent),\n options: {\n width: '400px',\n },\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.richText,\n dataType: 'object',\n });\n // map\n service.register({\n component: {\n view: {\n component: () => import('./map/map-widget-view.component').then((c) => c.AXPMapWidgetViewComponent),\n },\n edit: {\n component: () => import('./map/map-widget-edit.component').then((c) => c.AXPMapWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.map,\n dataType: 'object',\n });\n // avatar\n service.register({\n component: {\n view: {\n component: () => import('./avatar/avatar-widget-view.component').then((c) => c.AXPAvatarWidgetViewComponent),\n },\n edit: {\n component: () => import('./avatar/avatar-widget-edit.component').then((c) => c.AXPAvatarWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.avatar,\n dataType: 'object',\n });\n // messenger\n service.register({\n component: {\n view: {\n component: () =>\n import('./messenger/messenger-widget-view.component').then((c) => c.AXPMessengerWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./messenger/messenger-widget-edit.component').then((c) => c.AXPMessengerWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./messenger/messenger-widget-column.component').then((c) => c.AXPMessengerWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.messenger,\n dataType: 'object',\n });\n //\n // gallery\n service.register({\n component: {\n view: {\n component: () =>\n import('./gallery/gallery-widget-view.component').then((c) => c.AXPGalleryWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./gallery/gallery-widget-edit.component').then((c) => c.AXPGalleryWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./gallery/gallery-widget-filter.component').then((c) => c.AXPGalleryWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.gallery,\n dataType: 'object',\n });\n // signature-pad\n service.register({\n component: {\n view: {\n component: () =>\n import('./signature-pad/signature-pad-widget-view.component').then(\n (c) => c.AXPSignaturePadWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./signature-pad/signature-pad-widget-edit.component').then(\n (c) => c.AXPSignaturePadWidgetEditComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.signaturePad,\n dataType: 'object',\n });\n //\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPErrorHandlerRegistryService","i3.AXPSettingsService","i1.AXPAppStartUpService","i2.AXPSettingsService","i3.AXPDataSeederService","i1.AXPComponentSlotRegistryService","i1.AXPComponentSlotLoaderService","i1","i3","i2","i1.AXPSchemaRegistryService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWa,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;QAIU,IAAK,CAAA,KAAA,GAAqB,EAAE;AAmBrC;AAjBC,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGvB,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,YAAA,MAAM,IAAI,CAAC,GAAG,EAAE;;;AAIZ,IAAA,YAAY,CAAC,MAAc,EAAA;QACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC;QAC1D,IAAI,WAAW,EAAE;AACf,YAAA,WAAW,CAAC,SAAS,GAAG,MAAM;;;8GAjBvB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;AAuBD,SAAS,cAAc,CAAC,cAAoC,EAAA;AAC1D,IAAA,OAAO,MAAM,cAAc,CAAC,WAAW,EAAE;AAC3C;AAEa,MAAA,qBAAqB,GAAa;AAC7C,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,UAAU,EAAE,cAAc;IAC1B,IAAI,EAAE,CAAC,oBAAoB,CAAC;AAC5B,IAAA,KAAK,EAAE,IAAI;;;ICxBD;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACX,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACX,IAAA,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACb,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,0BAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,0BAAA,CAAA,0BAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT,IAAA,0BAAA,CAAA,0BAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACZ,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,GAIrC,EAAA,CAAA,CAAA;IAUW;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,GAKhC,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA;AAwJK,SAAU,aAAa,CAAC,MAAiB,EAAA;IAC7C,OAAO;QACL,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAI,CAAA,EAAA,MAAM,CAAC,IAAI,CAAE,CAAA;AACzC,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9B,SAAA;KACF;AACH;AAqFM,SAAU,iBAAiB,CAAC,EAAmB,EAAA;AACnD,IAAA,QAAQ,EAAE,CAAC,IAAI;AACb,QAAA,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;AACtD,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;AACtD,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACvD,QAAA,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE;AACvD,QAAA,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE;AAC1D,QAAA,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE;AACxD,QAAA;YACE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;;AAE3C;;ACjTa,MAAA,OAAO,GAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI;AAC5E,MAAA,WAAW,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI;AACvF,MAAA,OAAO,GAAsB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI;AACzF,MAAA,OAAO,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI;AACnF,MAAA,QAAQ,GAAsB;AACzC,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,KAAK,EAAE,uBAAuB;AAC9B,IAAA,QAAQ,EAAE,IAAI;;AAEH,MAAA,QAAQ,GAAsB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI;AACpG,MAAA,aAAa,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI;AACxF,MAAA,iBAAiB,GAAsB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI;AACvG,MAAA,gBAAgB,GAAsB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI;AAChG,MAAA,cAAc,GAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI;AAC1F,MAAA,aAAa,GAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK;AACxF,MAAA,iBAAiB,GAAsB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK;AACnG,MAAA,YAAY,GAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI;AAErF,MAAA,gBAAgB,GAAG;IAC9B,OAAO;IACP,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,iBAAiB;;AAGN,MAAA,gBAAgB,GAAG;IAC9B,OAAO;IACP,WAAW;IACX,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,iBAAiB;;AAGN,MAAA,iBAAiB,GAAG,CAAC,OAAO;AAE5B,MAAA,cAAc,GAAG;IAC5B,OAAO;IACP,WAAW;IACX,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,iBAAiB;;AAGN,MAAA,qBAAqB,GAAG;IACnC,OAAO;IACP,WAAW;IACX,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,YAAY;;;MCzEQ,eAAe,CAAA;AAapC;;MCPY,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAYzC;IAVU,IAAI,CAAC,KAAa,EAAE,KAAa,EAAA;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAChD,QAAA,QAAQ,CAAC,IAAI,GAAG,MAAM;QACtB,QAAQ,CAAC,MAAM,EAAE;QACjB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,QAAQ,CAAC,MAAM,EAAE;AACjB,QAAA,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAG,EAAA,KAAK,CAAU,QAAA,CAAA,CAAC;;8GAVjC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCLY,gBAAgB,CAAA;AACzB,IAAA,OAAO,IAAI,GAAA;QACP,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,KAAI;AACpE,YAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;AACvC,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG;AAC1D,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7B,SAAC,CAAC;;AAKN,IAAA,OAAO,MAAM,CAAC,GAAG,IAAc,EAAA;QAC3B,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,GAAG,GAAG,GAAG;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;AAChB,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAClB,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACb,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEjB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;;AAM5D,IAAA,OAAO,IAAI,CAAC,GAAG,IAAW,EAAA;QACtB,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE;AAEpB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;;AACZ,aAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAA,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACf,YAAA,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;;AAGjB,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE;AACjC,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE;AAC7B,QAAA,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,CAAC;;AAItE,IAAA,OAAO,KAAK,CAAI,MAAiB,GAAA,CAAC,EAAE,SAAkB,EAAA;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;;AAK5C,IAAA,OAAO,IAAI,CAAI,GAAG,IAAW,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;;AAEzC,QAAA,MAAM,KAAK,GAAQ,IAAI,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;;;AAI/C,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;;;AAIrD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE5D,QAAA,OAAO,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;;AAG9E,IAAA,OAAO,MAAM,CAAC,MAAA,GAAiB,EAAE,EAAA;QAC7B,MAAM,KAAK,GAAG,gEAAgE;AAC9E,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;AAGxG,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG;;AAG/B,IAAA,OAAO,IAAI,CAAI,KAAA,GAAa,EAAE,EAAA;AAC1B,QAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;;AAGzF,IAAA,OAAO,KAAK,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAA,CAAA,EAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE;;AAGvC,IAAA,OAAO,YAAY,CAAC,MAAA,GAAiB,EAAE,EAAA;QACnC,MAAM,KAAK,GAAG,gEAAgE;AAC9E,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;AAExG,IAAA,OAAO,QAAQ,CAAC,MAAA,GAAiB,EAAE,EAAA;QAC/B,MAAM,KAAK,GAAG,sDAAsD;AACpE,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;AAIxG,IAAA,OAAO,KAAK,GAAA;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1C,QAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,YAAY,CAAI,CAAA,EAAA,UAAU,EAAE;;AAGtD,IAAA,OAAO,SAAS,GAAA;QACZ,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;AACpG,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGhC,IAAA,OAAO,QAAQ,GAAA;QACX,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;AACnH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;AAK/B,IAAA,OAAO,KAAK,CAAC,GAAG,IAAW,EAAA;QACvB,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE;AAExE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACtC,OAAO,CAAA,EAAG,SAAS,CAAA,EAAG,SAAS,CAAA,EAAG,QAAQ,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;;aAClE;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;YAC9C,OAAO,CAAA,EAAG,SAAS,CAAA,EAAG,SAAS,CAAA,EAAG,QAAQ,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;;;AAI7E,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC;AACxF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;AAG/B,IAAA,OAAO,IAAI,GAAA;AACP,QAAA,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;AACxG,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG5B,IAAA,OAAO,KAAK,GAAA;QACR,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG5B,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACpF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,OAAO,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,MAAM,CAAK,EAAA,EAAA,IAAI,CAAK,EAAA,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,CAAK,EAAA,EAAA,OAAO,EAAE;;AAE/E;;AClKD;IAGY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;IACf,cAAiB,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;AACrB,CAAC,EANW,cAAc,KAAd,cAAc,GAMzB,EAAA,CAAA,CAAA;MAKY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AAsEzE;AApEG,IAAA,MAAM,eAAe,CAAC,GAAyB,EAAE,UAA6E,EAAE,EAAA;QAC5H,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,OAAO,CAAC;QACvC,MAAM,WAAW,GAAG,CAAC,MAAM,OAAO,aAAa,CAAC,EAAE,OAAO;AAEzD,QAAA,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG;QAE5E,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC;AACnC,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;;QAG/C,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,GAAG,OAAO;AAChD,QAAA,IAAI,GAAG;QAEP,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,cAAc,CAAC,MAAM,EAAE;YACpE,GAAG,GAAG,IAAI,KAAK,CAAC;AACZ,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;;AACC,aAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACrC,YAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ;YAClC,GAAG,GAAG,IAAI,KAAK,CAAC;AACZ,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM;AACzB,aAAA,CAAC;;aACC;AACH,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;;AAG/C,QAAA,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACjD,QAAA,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK;AAE/D,QAAA,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC;AACzD,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAkB;;AAGjD,IAAA,MAAM,QAAQ,CAAC,GAAyB,EAAE,UAA6E,EAAE,EAAA;AACrH,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,IAAG;AACjE,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC5C,YAAA,OAAO,IAAI;AACf,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AAEhD,QAAA,MAAM,CAAC,GAAG,GAAG,OAAO;AACpB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;YACjB,UAAU,CAAC,MAAK;AACZ,gBAAA,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;aAC/B,EAAE,IAAI,CAAC;AACZ,SAAC;;;;;;;;;;8GA5DI,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;2FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACPK,MAAO,4BAA6B,SAAQ,KAAK,CAAA;AACrD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,gBAAgB,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrB,YAAA,cAAc,EAAE,mCAAmC;AACpD,SAAA,CAAC;;AAGJ,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,gBAAgB;;AAGzB,IAAA,MAAM,OAAO,CAAU,UAAkB,EAAE,UAAe,EAAA;AACxD,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE;AAC7E,QAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;;;AAIjG,IAAA,MAAM,MAAM,CAAU,UAAkB,EAAE,EAAU,EAAA;QAClD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE;;AAG/E,IAAA,MAAM,SAAS,CAAU,UAAkB,EAAE,EAAU,EAAE,QAAgC,EAAA;QACvF,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;;AAG1C,IAAA,MAAM,SAAS,CAAC,UAAkB,EAAE,EAAU,EAAA;QAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;;AAGzE,IAAA,MAAM,SAAS,CAAU,UAAkB,EAAE,MAAS,EAAA;AACpD,QAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACzE,QAAA,OAAO,IAAI;;IAGb,MAAM,MAAM,CAAU,UAAkB,EAAA;AACtC,QAAA,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;;AAGzE,IAAA,MAAM,KAAK,CAAU,UAAkB,EAAE,OAAwB,EAAA;AAC/D,QAAA,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;QAE7E,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YACvC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;;QAE/C,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEzE,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC7E,SAAA,CAAC;;AAEL;AAED;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;MC5Ja,qBAAqB,GAAG,IAAI,cAAc,CAAgB,uBAAuB;MAGjF,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;QAEU,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAWnE;AATC,IAAA,MAAM,IAAI,GAAA;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9B,YAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAChC,gBAAA,MAAM,MAAM,CAAC,IAAI,EAAE;;;aAEhB;AACL,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;;;8GATlB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCDZ,uBAAuB,CAAA;AAsB5C;MAEqB,qBAAqB,CAAA;AAsB1C;MAEY,yBAAyB,CAAA;IAOpC,WACU,CAAA,cAA4E,EAC7E,UAAkB,EAAA;QADjB,IAAc,CAAA,cAAA,GAAd,cAAc;QACf,IAAU,CAAA,UAAA,GAAV,UAAU;;IAGnB,MAAM,OAAO,CAAC,UAAe,EAAA;AAC3B,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;;AAGhE,IAAA,MAAM,CAAC,EAAK,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;;IAGxD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGpD,IAAA,KAAK,CAAC,OAAwB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;;IAG5D,SAAS,CAAC,EAAK,EAAE,QAAgC,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC;;AAGrE,IAAA,SAAS,CAAC,EAAK,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;;AAG3D,IAAA,SAAS,CAAC,MAAe,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;;AAEhE;MAEqB,oBAAoB,CAAA;AAgBzC;MAEY,wBAAwB,CAAA;AAanC,IAAA,WAAA,CAAoB,UAAkB,EAAA;QAAlB,IAAU,CAAA,UAAA,GAAV,UAAU;AANtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,yBAAyB,CACzD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,CAChB;;IAID,MAAM,SAAS,CAAC,OAAgB,EAAA;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC;;IAGpD,MAAM,MAAM,CAAC,EAAM,EAAA;QACjB,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;;IAG5C,MAAM,SAAS,CAAC,EAAM,EAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;;AAG/C,IAAA,MAAM,SAAS,CAAC,EAAM,EAAE,MAA8B,EAAA;QACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;;AAGvD,IAAA,MAAM,KAAK,CAAC,OAAA,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAA;QAC3D,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;;;;;AAOhD,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;;AAE9B;;MCzJqB,wBAAwB,CAAA;AAE7C;AAGK,MAAO,4BAA6B,SAAQ,wBAAwB,CAAA;IACxE,kBAAkB,GAAA;AAChB,QAAA,OAAO,EAAE;;8GAFA,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5B,4BAA4B,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC;;;MCFqB,kCAAkC,CAAA;AAiBvD;AAGK,MAAO,sCAAuC,SAAQ,kCAAkC,CAAA;AAD9F,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAExD,QAAA,IAAA,CAAA,SAAS,GAA4C;YAC3D,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC7B,YAAA,GAAG,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,EAAE;SACnD;AAuCF;AArCC,IAAA,gBAAgB,CAAC,OAAmC,EAAA;AAClD,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;;AAG9D,IAAA,eAAe,CAAC,MAAgC,EAAA;AAC9C,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM;;AAElD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI;;AAG7D,QAAA,MAAM,iBAAiB,GAA6B;YAClD,GAAG,MAAM;YACT,QAAQ,EAAE,cAAc,GAAG,cAAc,GAAG,QAAQ;SACrD;;QAGD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;AAG7D,QAAA,OAAO,iBAAiB;;AAG1B,IAAA,WAAW,CAAC,GAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;IAIpB,mBAAmB,GAAA;QACzB,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;AACpD,YAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAW;aAC3B;AACD,YAAA,OAAO,GAAG;SACX,EAAE,EAA6C,CAAC;;8GA3CxC,sCAAsC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtC,sCAAsC,EAAA,CAAA,CAAA;;2FAAtC,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBADlD;;;MClBY,8BAA8B,CAAA;AAGvC,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAFpB,IAAa,CAAA,aAAA,GAAsB,EAAE;;IAK7C,QAAQ,CAAC,GAAG,OAAsC,EAAA;AAC9C,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;AAChB,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;;AAExC,SAAC,CAAC;;AAIN,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;;8GAlBpB,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF3B,MAAM,EAAA,CAAA,CAAA;;2FAET,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACDK,MAAO,qBAAsB,SAAQ,YAAY,CAAA;IAInD,WAAoB,CAAA,QAAkB,EAAU,QAAwC,EAAA;AACpF,QAAA,KAAK,EAAE;QADS,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAoB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAI/C,IAAA,WAAW,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,KAAU,KAAI;AACzD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC5C,YAAA,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE;gBAC9B,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,KAAI;AAC5C,oBAAA,sBAAsB,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AAC1C,iBAAC,CAAC;;iBACC;AACH,gBAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;AAEjC,SAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;;YAErC;;AAEJ,QAAA,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC;;8GAvB3B,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACWlC;MACa,oBAAoB,GAAG,IAAI,cAAc,CAAiC,sBAAsB;MAGhG,mCAAmC,CAAA;AADhD,IAAA,WAAA,GAAA;QAEU,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5D,IAAK,CAAA,KAAA,GAAsC,IAAI;QAC/C,IAAc,CAAA,cAAA,GAIjB,EAAE;QACC,IAAgB,CAAA,gBAAA,GAAoE,EAAE;AA6P/F;;AA1PQ,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK;;QAGnB,MAAM,KAAK,GAA+B,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAEjD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACjC,YAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACrC,gBAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;;;;AAI7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,OAAO,KAAK;;AAGP,IAAA,gBAAgB,CAAC,SAAiB,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;;AAE5D,QAAA,OAAO,IAAI;;AAGL,IAAA,kBAAkB,CACxB,MAAmC,EACnC,SAAiB,EACjB,UAA6C,EAAA;AAM7C,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,iBAAiB,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;;AAGnF,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC5B,OAAO;AACL,oBAAA,UAAU,EAAE,iBAAiB;AAC7B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI;AAC3D,oBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI;iBAC3D;;;AAIH,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB,CAAC;YACxF,IAAI,YAAY,EAAE;AAChB,gBAAA,OAAO,YAAY;;;;AAKvB,QAAA,OAAO,IAAI;;;AAIL,IAAA,qBAAqB,CAAC,KAAiC,EAAA;QAC7D,OAAO;AACL,YAAA,QAAQ,EAAE,CAAC,QAAoC,KAAI;AACjD,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;aACxB;AACD,YAAA,OAAO,EAAE,CAAC,IAA8B,KAAI;AAC1C,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aACjB;AACD,YAAA,QAAQ,EAAE,CAAC,KAAgC,KAAI;AAC7C,gBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6GF;;8GA5LQ,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,cADtB,MAAM,EAAA,CAAA,CAAA;;2FACnB,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCRrB,qBAAqB,GAAG,IAAI,cAAc,CAAsB,uBAAuB,EAAE;AAClG,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACV,OAAO,IAAI,0BAA0B,EAAE;;AAE9C,CAAA;AAGD,MAAM,0BAA0B,CAAA;AAAhC,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,KAAK,GAAqB,IAAI,GAAG,EAAE;QAC5C,IAAe,CAAA,eAAA,GAAW,cAAc;;AAEhD,IAAA,MAAM,IAAI,GAAA;;QAEN,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACjE,IAAI,cAAc,EAAE;YAChB,MAAM,cAAc,GAAwB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACtE,YAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,aAAC,CAAC;AACF,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAEnG,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;;AAG9B,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;;QAE1B,MAAM,cAAc,GAAoC,EAAE;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AAC1B,YAAA,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG;AAC3B,SAAC,CAAC;AACF,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;;AAEjF;;MClCY,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAsB,qBAAqB,CAAC;AAC9E,QAAA,IAAA,CAAA,aAAa,GAAqB,IAAI,GAAG,EAAe;AAEhD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAmB;AAkCzD;AAhCC,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACvD,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC/B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AACpD,aAAC,CAAC;AACF,YAAA,OAAO,YAAY;;QACnB,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;YAC9C,MAAM,KAAK,CAAC;;;IAIhB,MAAM,GAAG,CAAU,GAAW,EAAA;QAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE;;QAEnB,OAAO,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAM;;AAGpD,IAAA,MAAM,GAAG,CAAU,GAAW,EAAE,KAAQ,EAAA;QACtC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;YAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;;aAC5B;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAA,YAAA,CAAc,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;;;8GAnCb,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACLY,MAAA,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,EACnB,KAAK,EAAwE;MAElE,gBAAgB,GAAG,YAAY,CAAC,kBAAkB;MAClD,eAAe,GAAG,YAAY,CAAC,iBAAiB;;MCAhD,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,QAAiB,EAAU,MAAc,EAAU,cAAkC,EAAA;QAArF,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAmB,IAAM,CAAA,MAAA,GAAN,MAAM;QAAkB,IAAc,CAAA,cAAA,GAAd,cAAc;QAErF,IAAQ,CAAA,QAAA,GAAG,YAAY,CACrB,MACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,iBAAiB,CAAC,EACzB,SAAS,CAAC,CAAC,MAAM,KAAI;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACjE;AACH,gBAAA,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAC3C,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;;YAE7E,OAAO,EAAE,EAAE;SACZ,CAAC,CACH,EACH,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB;;8GAnBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;ACCD;MAEa,gBAAgB,GAAG,mBAAmB,CAAkB,sBAAsB;AAGrF,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;AADhE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAahC;IAZC,MAAM,OAAO,CAAC,OAA2B,EAAA;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;;aAEnD;AACH,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE;gBAClF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;;;AAEpC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;;;8GAXtD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;AAkBK,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;AAD7D,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACvC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAe1D;IATC,MAAM,OAAO,CAAC,OAA2B,EAAA;AACvC,QAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CACnD,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EACxD,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EACzD;QACD,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC;;8GAfvC,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;AAqBK,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AADrD,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAgB1D;IAVC,MAAM,OAAO,CAAC,OAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACnE,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,eAAe,EAAE,IAAI;AACtB,SAAA,CAAC;;8GAhBO,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAd,cAAc,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;MC3CY,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AAW3C;IARG,WAAW,CAAC,KAAU,EAAE,IAA0B,EAAA;AAC9C,QAAA,IAAI,KAAK,YAAY,gBAAgB,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;YACpG,IAAI,CAAC,KAAK,CAAC;;aACR;YACH,IAAI,CAAC,KAAK,CAAC;;;8GATV,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;MCkDY,eAAe,CAAA;IAC1B,OAAO,OAAO,CAAC,OAAgC,EAAA;QAC7C,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC;AACjC,gBAAA;AACE,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,CAAC,QAAwC,KAAK,MAAK;AAC7D,wBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;qBACrD;oBACD,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;IAGH,OAAO,QAAQ,CAAC,OAAgC,EAAA;QAC9C,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC;AACjC,gBAAA;AACE,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,CAAC,QAAwC,KAAK,MAAK;AAC7D,wBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;qBACrD;oBACD,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;AAGH;;AAEG;AACH,IAAA,WAAA,CACoC,SAAgB,EAClD,cAAoC,EACpC,eAAmC,EACnC,aAAmC,EAAA;AAEnC,QAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACtB,YAAA,CAAC,EAAE;AACL,SAAC,CAAC;;;;;;;;;;;;QAaF,cAAc,CAAC,YAAY,CAAC;AAC1B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,UAAU,EAAE,sBAAsB;YAClC,GAAG,EAAE,YAAW;AACd,gBAAA,MAAM,eAAe,CAAC,IAAI,EAAE;aAC7B;AACF,SAAA,CAAC;;;QAGF,cAAc,CAAC,YAAY,CAAC;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,UAAU,EAAE,eAAe;YAC3B,GAAG,EAAE,YAAW;AACd,gBAAA,MAAM,aAAa,CAAC,IAAI,EAAE;aAC3B;AACF,SAAA,CAAC;;AA1EO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAuChB,wBAAwB,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAvCvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,2DArBxB,aAAa;YACb,gBAAgB;AAChB,YAAA,aAAa,aAEL,YAAY,CAAA,EAAA,CAAA,CAAA;AAiBX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAhBf,SAAA,EAAA;YACT,qBAAqB;AACrB,YAAA;AACE,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,QAAQ,EAAE,qBAAqB;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,QAAQ,EAAE,4BAA4B;AACvC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kCAAkC;AAC3C,gBAAA,QAAQ,EAAE,sCAAsC;AACjD,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CA3BC,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC5C,iBAAiB,CAAC,QAAQ,CAAC;AACzB,gBAAA,OAAO,EAAE;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,oBAAoB,EAAE,sBAAsB;AAC5C,oBAAA,YAAY,EAAE,cAAc;AAC7B,iBAAA;aACF,CAAC;YACF,aAAa;YACb,gBAAgB;AAChB,YAAA,aAAa,EAEL,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAiBX,eAAe,EAAA,UAAA,EAAA,CAAA;kBA/B3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,CAAC;wBAC5C,iBAAiB,CAAC,QAAQ,CAAC;AACzB,4BAAA,OAAO,EAAE;AACP,gCAAA,QAAQ,EAAE,sBAAsB;AAChC,gCAAA,oBAAoB,EAAE,sBAAsB;AAC5C,gCAAA,YAAY,EAAE,cAAc;AAC7B,6BAAA;yBACF,CAAC;wBACF,aAAa;wBACb,gBAAgB;wBAChB,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,SAAS,EAAE;wBACT,qBAAqB;AACrB,wBAAA;AACE,4BAAA,OAAO,EAAE,YAAY;AACrB,4BAAA,QAAQ,EAAE,qBAAqB;AAChC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,QAAQ,EAAE,4BAA4B;AACvC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kCAAkC;AAC3C,4BAAA,QAAQ,EAAE,sCAAsC;AACjD,yBAAA;AACF,qBAAA;AACF,iBAAA;;0BAwCI,MAAM;2BAAC,wBAAwB;;;MC3FvB,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CAAmB,IAAY,EAAA;QAAZ,IAAI,CAAA,IAAA,GAAJ,IAAI;;AACxB;MACY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAmB,GAAW,EAAA;QAAX,IAAG,CAAA,GAAA,GAAH,GAAG;;AACvB;MACY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAmB,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAC7B;MAEY,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAmB,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAC7B;;MCXY,WAAW,GAAG,IAAI,cAAc,CAAM,aAAa;MAEnD,yBAAyB,GAAG,IAAI,cAAc,CAAqB,2BAA2B,EAAE;AAC3G,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACZ,QAAA,OAAO,yBAAyB;KACjC;AACF,CAAA;AAgBY,MAAA,yBAAyB,GAAuB;AAC3D,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC;AACrC,QAAA,KAAK,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC;AACtC,QAAA,OAAO,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC;AACzC,KAAA;AACD,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,IAAI;AACd;;AAGa,SAAA,cAAc,CAAC,MAAA,GAAsC,yBAAyB,EAAA;AAC5F,IAAA,OAAO,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC;AACjD;;MCzCa,qBAAqB,GAAG,IAAI,cAAc,CAAiB,uBAAuB;;ACF/F;MASa,sBAAsB,CAAA;IAIjC,WAAoB,CAAA,EAAc,EAAU,QAAmB,EAAA;QAA3C,IAAE,CAAA,EAAA,GAAF,EAAE;QAAsB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAEpD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,oBAAoB,EAAE;;;IAIvB,oBAAoB,GAAA;;QAE1B,IAAI,CAAC,YAAY,EAAE;;AAGnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC;;IAG9C,UAAU,CAAC,SAA6C,EAAE,MAAc,EAAA;QAC9E,IAAI,SAAS,IAAI,IAAI;YAAE;AAEvB,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAgB,aAAA,EAAA,SAAS,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACxF,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAc,WAAA,EAAA,SAAS,CAAC,MAAM,CAAA,CAAE,GAAG,EAAE;AAChF,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAe,YAAA,EAAA,SAAS,CAAC,OAAO,CAAA,CAAE,GAAG,EAAE;AACpF,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAgB,aAAA,EAAA,SAAS,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACxF,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAc,WAAA,EAAA,SAAS,CAAC,MAAM,CAAA,CAAE,GAAG,EAAE;AAChF,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAe,YAAA,EAAA,SAAS,CAAC,OAAO,CAAA,CAAE,GAAG,EAAE;QACpF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,CAAG,EAAA,MAAM,YAAY,SAAS,CAAC,KAAK,CAAE,CAAA,GAAG,EAAE,CAAC;AAE5E,QAAA,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC1E,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC;;AAEtD,SAAC,CAAC;;IAGI,YAAY,GAAA;AAClB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;AACjE,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;YAC3C,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAC3G,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;;AAE/D,SAAC,CAAC;;8GAhDO,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;uGAEsB,OAAO,EAAA,CAAA;sBAA3B,KAAK;uBAAC,YAAY;;;MCHR,kBAAkB,CAAA;AAa3B,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;;IAEzB,IAAW,QAAQ,CAAC,CAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;;AAW/B,IAAA,WAAA,CAAoB,OAAmC,EAAU,QAAmB,EAAU,IAAY,EAAU,GAAsB,EAAA;QAAtH,IAAO,CAAA,OAAA,GAAP,OAAO;QAAsC,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAqB,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAkB,IAAG,CAAA,GAAA,GAAH,GAAG;QAvBvH,IAAY,CAAA,YAAA,GAAW,GAAG;AAInB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW;QAElE,IAAS,CAAA,SAAA,GAAY,KAAK;QAgC1B,IAAc,CAAA,cAAA,GAAG,MAAW;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;gBAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,KAAK,MAAM;oBAChD,MAAM,CAAC,OAAO;oBACb,IAAI,CAAC,aAA6B,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;AAEhF,gBAAA,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxE,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACjD,qBAAC,CAAC;AACF,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;qBACpB,IAAI,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC1D,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACpD,qBAAC,CAAC;AACF,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAE/B,aAAC,CAAC;AACN,SAAC;;IAhCD,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,YAAY,YAAY,WAAW,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY;;aAErC;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAgB,IAAI,MAAM;;AAE3F,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa;QAC3G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;AAC7C,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAyBjF,WAAW,GAAA;QACP,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;8GAnEhE,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,WAAA,EAAA,aAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE;AACf,iBAAA;4JAIG,WAAW,EAAA,CAAA;sBADV,KAAK;uBAAC,WAAW;gBAIlB,YAAY,EAAA,CAAA;sBADX,KAAK;uBAAC,cAAc;gBAKd,cAAc,EAAA,CAAA;sBADpB;gBAgBQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;MC3BQ,+BAA+B,CAAA;AAH5C,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAoC;AAiBjE;IAfG,QAAQ,CAAC,QAAgB,EAAE,MAA8B,EAAA;AACrD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;;AAG/C,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;QAEvF,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;;;AAI5C,IAAA,GAAG,CAAC,QAAgB,EAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;;8GAjBnC,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAET,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCEY,6BAA6B,CAAA;IACxC,WAAoB,CAAA,eAAgD,EAAU,QAAkB,EAAA;QAA5E,IAAe,CAAA,eAAA,GAAf,eAAe;QAA2C,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAEtF,aAAa,CAAC,QAAgB,EAAE,gBAAkC,EAAA;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClF,IAAI,OAAO,EAAE;YACX,gBAAgB,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAI;AAC/B,gBAAA,IAAI,SAAwC;gBAC5C,IAAI,OAAO,GAA+B,EAAE;AAC5C,gBAAA,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE;;AAE9C,oBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACxC,wBAAA,SAAS,GAAG,MAAM,CAAC,aAAa,IAAI;AACtC,qBAAC,CAAC;;AACG,qBAAA,IAAI,MAAM,CAAC,SAAS,EAAE;;AAE3B,oBAAA,SAAS,GAAG,MAAM,CAAC,SAAS;;;AAG9B,gBAAA,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE;;AAExC,oBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACxC,wBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAmB;wBACtC,OAAO,GAAG,GAAG,EAAE;AACjB,qBAAC,CAAC;;AACG,qBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;;AAEzB,oBAAA,OAAO,GAAG,MAAM,CAAC,OAAO;;;AAG1B,gBAAA,IAAI,SAAS,IAAI,IAAI,EAAE;oBACrB,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC;oBAChE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;;AAEjD,aAAC,CAAC;;;8GAnCK,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,+BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCAY,yBAAyB,CAAA;IAIlC,WAAoB,CAAA,oBAAmD,EAAS,gBAAkC,EAAA;QAA9F,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;QAAwC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;IAEhG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC;;8GAPpE,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AACjC,iBAAA;8HAGG,IAAI,EAAA,CAAA;sBADH;;;MCEQ,sBAAsB,CAAA;IAE/B,OAAO,OAAO,CAAC,OAAuC,EAAA;QAClD,OAAO;AACH,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,+BAA+B;AACxC,oBAAA,UAAU,EAAE,CAAC,QAAyC,KAAK,MAAK;wBAC5D,IAAI,OAAO,EAAE;AACT,4BAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChD,gCAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AACd,oCAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,iCAAC,CAAC;;;qBAGb;oBACD,IAAI,EAAE,CAAC,+BAA+B,CAAC;AACvC,oBAAA,KAAK,EAAE;AACV;AACJ;SACJ;;IAGL,OAAO,QAAQ,CAAC,OAAuC,EAAA;QACnD,OAAO;AACH,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,+BAA+B;AACxC,oBAAA,UAAU,EAAE,CAAC,QAAyC,KAAK,MAAK;wBAC5D,IAAI,OAAO,EAAE;AACT,4BAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChD,gCAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AACd,oCAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,iCAAC,CAAC;;;qBAGb;oBACD,IAAI,EAAE,CAAC,+BAA+B,CAAC;AACvC,oBAAA,KAAK,EAAE;AACV;AAEJ;SACJ;;AAGL;;AAEG;AACH,IAAA,WAAA,CAAiE,SAAgB,EAAA;AAC7E,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAG;AACnB,YAAA,CAAC,EAAE;AACP,SAAC,CAAC;;AArDG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAkDC,+BAA+B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAlDtD,sBAAsB,EAAA,YAAA,EAAA,CAHhB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAC9B,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAE1B,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB;AACtC,iBAAA;;0BAmDgB;;0BAAY,MAAM;2BAAC,+BAA+B;;;MC7CtD,gBAAgB,CAAA;IAO3B,QAAQ,GAAA;QACN,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,iBAAiB;AAC3C,gBAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;gBACtB;AACF,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,qBAAqB;AAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;gBACrB;AACF,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,qBAAqB;AAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;gBAC3B;AACF,YAAA,KAAK,IAAI,CAAC,MAAM,YAAY,sBAAsB;AAChD,gBAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;gBAC3B;AACF,YAAA;gBACE;;;8GAtBK,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,yJCd7B,mWAWC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAW,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,mMAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG7C,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAER,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,CAAC,EACnD,IAAA,EAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAA,QAAA,EAAA,mWAAA,EAAA;8BAK9C,MAAM,EAAA,CAAA;sBADL;;;METU,iBAAiB,GAAG,IAAI,cAAc,CAAoB,mBAAmB;MAG7E,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;QAGY,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzD,IAAK,CAAA,KAAA,GAAyB,IAAI;QAClC,IAAc,CAAA,cAAA,GAAqF,EAAE;QACrG,IAAe,CAAA,eAAA,GAAa,EAAE;QAC9B,IAAc,CAAA,cAAA,GAAiE,EAAE;QACjF,IAAgB,CAAA,gBAAA,GAAuD,EAAE;AAgIpF;AA9HG,IAAA,MAAM,KAAK,GAAA;;AAEP,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK;;QAGrB,MAAM,KAAK,GAAkB,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAErD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACnC,gBAAA,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;;;;AAKvC,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;;AAGlC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,OAAO,KAAK;;AAGR,IAAA,yBAAyB,CAAC,KAAoB,EAAA;QAClD,OAAO;AACH,YAAA,QAAQ,EAAE,CAAC,QAAuB,KAAI;AAClC,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;aAC1B;AACD,YAAA,IAAI,EAAE,CAAC,MAAc,KAAyB;gBAC1C,OAAO;AACH,oBAAA,MAAM,EAAE,CAAC,QAAuB,EAAE,QAA4B,KAAI;AAC9D,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;qBAC3D;oBACD,MAAM,EAAE,MAAK;AACT,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;qBACpC;AACD,oBAAA,MAAM,EAAE,CAAC,WAAiC,KAAI;wBAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;qBACpD;AACD,oBAAA,QAAQ,EAAE,CAAC,QAAuB,KAAI;wBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;iBAEvD;;SAER;;AAGG,IAAA,sBAAsB,CAAC,KAAoB,EAAA;AAC/C,QAAA,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa;YAChD,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,6BAAA,CAA+B,CAAC;AAC9D,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;;iBACpB;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,gBAAA,MAAM,cAAc,GAAG,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;gBAChE,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;;;AAI1D,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa;YAChD,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,+BAAA,CAAiC,CAAC;;iBAC7D;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,gBAAA,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;;QAIpC,KAAK,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;YACnC,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,+BAAA,CAAiC,CAAC;;iBAC7D;AACH,gBAAA,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;;;QAI7C,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5D,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa;YACnC,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAA,qCAAA,CAAuC,CAAC;;iBACnE;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrB,oBAAA,SAAS,CAAC,QAAQ,GAAG,EAAE;;gBAE3B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;;;;AAK5C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAGtB,IAAA,kBAAkB,CAAC,KAAoB,EAAE,MAAc,EAAE,cAA6B,KAAK,EAAA;AAC/F,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACtB,gBAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;;AAG3C,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5E,gBAAA,IAAI,MAAM,CAAC,SAAS,EAAE;AAClB,oBAAA,OAAO,MAAM;;;;QAIzB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;;;IAIlD,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;8GArIrB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACDrB,MAAA,cAAc,GAAG,WAAW,CACrC,EAAE,UAAU,EAAE,MAAM,EAAE;AAEtB;AACA,SAAS,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAI;IAClC,OAAO;AACH,QAAA,KAAK,EAAE,EAAmB;AAC1B,QAAA,gBAAgB,EAAE;AACd,YAAA,IAAI,EAAE,IAA0B;AAChC,YAAA,WAAW,EAAE;AAChB,SAAA;KACJ;AACL,CAAC,CAAC;AAEF;AACA,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAI;IAGxE,OAAO;AAEH,QAAA,YAAY,CAAC,KAAoB,EAAA;YAC7B,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACtC;AAED,QAAA,qBAAqB,CAAC,IAAY,EAAA;AAC9B,YAAA,MAAM,QAAQ,GAAG,CAAC,KAAoB,KAA2D;AAC7F,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;;AAEtB,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,wBAAA,IAAI,UAAU,CAAC,IAAI,EAAE;AACjB,4BAAA,OAAO,UAAU;;;AAGzB,oBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;;wBAEX,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C,wBAAA,IAAI,WAAW,CAAC,OAAO,EAAE;4BACrB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,SAAS,EAAE;;;;gBAIlE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;AAChD,aAAC;AAED,YAAA,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,WAAmB,KAA8C;;gBAEnG,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9E,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;;AAGjF,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;;gBAGpE,IAAI,gBAAgB,GAAG,CAAC;AACxB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;oBAChC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE;AACrC,wBAAA,gBAAgB,EAAE;;yBACf;AACH,wBAAA,MAAM;;;;gBAKd,MAAM,cAAc,GAAG,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM;AACtF,gBAAA,MAAM,YAAY,GAAG,gBAAgB,KAAK,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;gBAE5G,OAAO;oBACH,OAAO,EAAE,cAAc,IAAI,YAAY;AACvC,oBAAA,SAAS,EAAE,cAAc,IAAI,CAAC,YAAY;iBAC7C;AACL,aAAC;AAED,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;AAChD,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;SAClF;AAED,QAAA,cAAc,CAAC,IAAiB,EAAA;AAC5B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;AAC/B,iBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AAClB,gBAAA,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;AAEjF,YAAA,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;SACvE;AAED,QAAA,UAAU,CAAC,IAAiB,EAAA;AACxB,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,EAAE;YAC7C,IAAI,CAAC,YAAY,EAAE;AACf,gBAAA,OAAO,KAAK;;AAGhB,YAAA,MAAM,UAAU,GAAG,CAAC,WAAwB,EAAE,UAAuB,KAAa;gBAC9E,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC5C,oBAAA,OAAO,IAAI;;AAEf,gBAAA,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,KAAK;AACtF,aAAC;AAED,YAAA,OAAO,IAAI,KAAK,YAAY,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAK,CAAC;;KAEjF;AACL,CAAC,CAAC,EACF,SAAS,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM;IACxE,MAAM,GAAA;QACF,CAAC,YAAW;AACR,YAAA,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE;YAC/C,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACtC,GAAG;KACP;IACD,SAAS,GAAA;KAER;CACJ,CAAC,CAAC;;MClHM,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAL3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;AAEP,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGQ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;AAEP,IAAA,CAAA;AACH,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAGQ,IAAI,EAAA,CAAA;sBADV;;;MCMU,sBAAsB,CAAA;AAVnC,IAAA,WAAA,GAAA;AAcY,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAMhC;AAJa,IAAA,aAAa,CAAC,MAAe,EAAA;AACnC,QAAA,IAAI,MAAM;AACN,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;;8GAR1B,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EATrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;;;;AAIT,IAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,aAAa,EAAE,iBAAiB,CAAC;AACpC,iBAAA;8BAGU,KAAK,EAAA,CAAA;sBADX;;;MCOQ,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,KAAK,GAAiC,IAAI,GAAG,EAAE;AAoBxD;AAlBC,IAAA,QAAQ,CAAC,MAAuB,EAAA;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;;IAGrC,MAAM,CAAC,UAAkB,EAAE,MAAyB,EAAA;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC;AACjD,QAAA,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAG1B,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAA,gBAAA,CAAkB,CAAC;;AAEtE,QAAA,OAAO,MAAM;;8GAnBJ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;2FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCLY,gBAAgB,GAAG,IAAI,cAAc,CAAqB,kBAAkB;;ACInF,MAAO,gCAAiC,SAAQ,0BAA0B,CAAA;AAfhF,IAAA,WAAA,GAAA;;AAgBU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;QAC1D,IAAa,CAAA,aAAA,GAAQ,EAAE;AAiEf,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAgCxC;AAnFC,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB;;AAS3D,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB;;AASvD,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB;;AAG3D,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI;;AAGb,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,CAAO,IAAA,EAAA,IAAI,CAAC,SAAS,EAAE;;AAahC,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;;AAQtB,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,IAAI,MAAM,EAAE,SAAS,EAAE,MAAM;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;QAC3F,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC5F,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,SAAS;AACpB,gBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AACzC,aAAA;AACD,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,OAAO;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,KAAK;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;8GAlG3C,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAJhC,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,EATzF,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKU,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAf5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;oBACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAkC,gCAAA,EAAE,CAAC;oBACnG,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,CAAC;AACxE,iBAAA;8BAaQ,cAAc,EAAA,CAAA;sBADpB;gBAIO,sBAAsB,EAAA,CAAA;sBAD7B,SAAS;uBAAC,QAAQ;gBAQZ,YAAY,EAAA,CAAA;sBADlB;gBAIO,oBAAoB,EAAA,CAAA;sBAD3B,SAAS;uBAAC,MAAM;gBAQV,cAAc,EAAA,CAAA;sBADpB;gBAIO,sBAAsB,EAAA,CAAA;sBAD7B,SAAS;uBAAC,QAAQ;gBAgBnB,OAAO,EAAA,CAAA;sBADN;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAKU,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,QAAQ;;;MClDJ,gCAAgC,CAAA;AAZ7C,IAAA,WAAA,GAAA;AAaU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;QAChD,IAAS,CAAA,SAAA,GAAG,IAAI;AAG1B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AAExD,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO;AAyCnD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE/B,IAAO,CAAA,OAAA,GAAwB,EAAE;AA8D1C;AAvGC,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAGpB,IAAW,KAAK,CAAC,CAAM,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;;AAI1B,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;;IAGvB,IAAW,QAAQ,CAAC,EAAO,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;QACnB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;AAO9B,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,UAAU,CAAC,YAAW;AACpB,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;AACrB,SAAC,CAAC;;AASI,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO;AACV,YAAA,KAAK,CACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CACnC,IAAI,EAAE;AACT,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;YAC3D,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;AACpD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAInB,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;;;IAI5B,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;;;AAIhC,IAAA,cAAc,CAAC,eAA2C,EAAA;QAClE,eAAe,GAAG,eAA8C;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAA+B;;QAE/D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YACxC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC;;AAElB,SAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,KAAI;YAC5C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEtB,SAAC,CAAC;;8GA/GO,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAVjC,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIU,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAZ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACtC,iBAAA;8BAMC,WAAW,EAAA,CAAA;sBADV;gBAGD,cAAc,EAAA,CAAA;sBADb;gBAKU,KAAK,EAAA,CAAA;sBADf;gBAaU,QAAQ,EAAA,CAAA;sBADlB;gBAYD,IAAI,EAAA,CAAA;sBADH;gBAKU,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,QAAQ;;;MC1DK,aAAa,CAAA;AADnC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAsB,MAAM,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AAE1C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY;AAuC7D;AArCC,IAAA,IAAc,MAAM,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;;AAG1B,IAAA,IAAc,IAAI,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;;AAGxB,IAAA,IAAc,QAAQ,GAAA;AACpB,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;AAQhD,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;AAIvE,IAAA,IACW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;;IAEtB,IAAW,OAAO,CAAC,CAAI,EAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;QACjB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGf,IAAA,MAAM;IAEN,SAAS,CAAC,IAAY,EAAE,KAAU,EAAA;;8GAzCxB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAb,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC;8BA+BY,OAAO,EAAA,CAAA;sBADjB;;AAkBG,MAAgB,iBAA2B,SAAQ,aAAgB,CAAA;AADzE,IAAA,WAAA,GAAA;;AAGE,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,YAAY,EAAK;AAkBrD;AAfC,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAW,KAAK,CAAC,CAAI,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAc,WAAW,GAAA;QACvB,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;AACnG,QAAA,OAAO,MAAM;;8GAlBK,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBADtC;8BAGC,WAAW,EAAA,CAAA;sBADV;gBAKU,KAAK,EAAA,CAAA;sBADf;;AAkBG,MAAgB,mBAA6B,SAAQ,aAAgB,CAAA;AAD3E,IAAA,WAAA,GAAA;;AAGE,QAAA,IAAA,CAAA,cAAc,GAAyB,IAAI,YAAY,EAAU;AAejE,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,YAAY,EAAK;AAarD;AAzBC,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAW,QAAQ,CAAC,EAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAOzB,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAW,KAAK,CAAC,CAAI,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GA5BL,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAnB,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;8BAGC,cAAc,EAAA,CAAA;sBADb;gBAKU,QAAQ,EAAA,CAAA;sBADlB;gBAYD,WAAW,EAAA,CAAA;sBADV;gBAKU,KAAK,EAAA,CAAA;sBADf;;;MCjEU,0BAA0B,CAAA;AAjBvC,IAAA,WAAA,GAAA;AAkBU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC;QAoB3C,IAAI,CAAA,IAAA,GAAoB,MAAM;QAEpB,IAAS,CAAA,SAAA,GAAG,IAAI;AAelB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE/B,IAAO,CAAA,OAAA,GAAwB,EAAE;AA2E1C;AAhHC,IAAA,IACW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;;IAGtB,IAAW,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC;;QAE3B,IAAI,CAAC,WAAW,EAAE;;AAYpB,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,UAAU,CAAC,YAAW;;AAEpB,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;AACrB,SAAC,CAAC;;AASI,IAAA,MAAM,MAAM,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO;YACV,KAAK,CACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EACrD,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CACxC,IAAI,EAAE;AACT,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE;AAC/D,YAAA,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE;AACxD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAInB,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,YAAY,iBAAiB,EAAE;AAC/E,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;;IAInD,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;;;AAI/B,IAAA,oBAAoB,CAAC,CAAM,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC7B,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI;YAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAErD,IAAI,cAAc,EAAE;AAClB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;;qBAChE;oBACL,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;;;iBAE3C;AACL,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;;;;AAKjD,IAAA,cAAc,CAAC,eAA2C,EAAA;QAClE,eAAe,GAAG,eAA8C;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAyB;QACzD,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;QACpC,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,iBAAiB,EAAE;YAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9C,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/E,gBAAA,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC5B,gBAAA,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,aAAC,CAAC;;;8GAlHK,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAN1B,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACxB,aAAA;SACF,EAbS,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjBtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACrC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACxB,yBAAA;AACF,qBAAA;AACF,iBAAA;8BAOY,OAAO,EAAA,CAAA;sBADjB;gBAcD,IAAI,EAAA,CAAA;sBADH;gBAID,IAAI,EAAA,CAAA;sBADH;gBAOU,UAAU,EAAA,CAAA;sBADpB,KAAK;uBAAC,QAAQ;;;MC/CJ,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAHX,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAFnG,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAC5C,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAAA,EAAA,CAAA,CAAA;AAI7F,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EALhB,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAK3C,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC;AACvD,oBAAA,OAAO,EAAE,CAAC,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAAC;AACzG,oBAAA,YAAY,EAAE,CAAC,0BAA0B,EAAE,gCAAgC,EAAE,gCAAgC,CAAC;AAC9G,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACqHY,MAAA,4BAA4B,GAA4B;AACnE,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,KAAK,EAAE,OAAO;;AA0CV,SAAU,uBAAuB,CAAC,QAAiC,EAAA;IACvE,OAAO;;QAEL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;AACrB,QAAA,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO;AAClE,QAAA,WAAW,EAAE;YACX,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,SAAA;AACD,QAAA,aAAa,EAAE;YACb,OAAO,EAAE,QAAQ,CAAC,SAAS;YAC3B,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,SAAA;QACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;KACpG;AACH;AAEgB,SAAA,0BAA0B,CACxC,GAAG,SAAoC,EAAA;AAEvC,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACzD;;MCnMa,qBAAqB,CAAA;AAC9B,IAAA,MAAM,GAAG,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC5C,QAAA,OAAO,IAAI;;AAElB;MAEY,iBAAiB,GAAG,IAAI,cAAc,CAC/C,mBAAmB,EACnB;AACI,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACV,OAAO,IAAI,qBAAqB,EAAE;KACrC;AACJ,CAAA;;MCbQ,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAA2B;;AAG7C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAyD9C;AAtDG;;;;;AAKG;AACH,IAAA,QAAQ,CAAC,MAAuB,EAAA;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;;AAGlC;;;;;;;;;AASG;AACH,IAAA,MAAM,OAAO,CAAC,UAAkB,EAAE,UAAkB,EAAA;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;AACxD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;QAE3C,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,IAAI;AACA,gBAAA,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;gBACtD,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;;;YAE3B,OAAO,KAAK,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,GAAG,CAAI,EAAA,CAAA,EAAE,KAAK,CAAC;gBACtD,MAAM,KAAK,CAAC;;YAGhB,IAAI,CAAC,MAAM,EAAE;AACT,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAA,CAAE,CAAC;;;AAItD,QAAA,OAAO,MAAM;;AAGjB;;;;;;AAMG;IACK,eAAe,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC1D,QAAA,OAAO,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE;;8GA5D/B,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFrB,MAAM,EAAA,CAAA,CAAA;;2FAET,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACDY,MAAA,aAAa,GAAG;;AAE3B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,aAAa,EAAE,gBAAgB;AAC/B,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,YAAY,EAAE,eAAe;;MASlB,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAY,OAAiC,EAAA;;QAE3C,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC1G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,aAAa,CAAC,SAAS;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AAClG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC5G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,YAAY;AACtB,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE;AACP,wBAAA,WAAW,EAAE,KAAK;AACnB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,qEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AAC7G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,KAAK;AACzB,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,mEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC;AAC1G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,qEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AAC7G,oBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACjC,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,KAAK;AACzB,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACxG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACvG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC;AAC9B,gBAAA,OAAO,EAAE,YAAY;AACtB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,MAAM;AACjB,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,MAAM;AACd,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,uEAAwD,CAAC,CAAC,IAAI,CACnE,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACjG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,uEAAwD,CAAC,CAAC,IAAI,CACnE,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACvG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,wEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACvG,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,sEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACpG,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC1G,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,kEAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC3G,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AAClG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACjG,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,4EAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAC7C;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,4EAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAmC,CAC7C;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,8EAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAC/C;AACH,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,8EAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAC/C;AACJ,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,aAAa;AACjC,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACtG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACrG,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,yEAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACzG,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE,OAAO;AACf,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,sEAAuD,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CACxC;AACJ,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,iEAAiC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC;AACpG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,iEAAiC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC;AACpG,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,GAAG;AACvB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MAAM,OAAO,oEAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AAC7G,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,MAAM;AAC1B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AACvG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AACvG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,yEAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC;AAC1G,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,IAAI;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,SAAS;AAC7B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;;QAGF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,qEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AACjG,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,qEAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AACjG,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MACT,OAAO,uEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC;AACrG,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,OAAO;AAC3B,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;QAEF,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,2EAAqD,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,MACT,OAAO,2EAAqD,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAC5C;AACJ,iBAAA;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;YACD,IAAI,EAAE,aAAa,CAAC,YAAY;AAChC,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;;8GAxgBO,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,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,qBAAqB,YALtB,aAAa,CAAA,EAAA,CAAA,CAAA;AAKZ,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,qBAAqB,YALtB,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAKZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACnCD;;AAEG;;;;"}