shared-ui-test-1 1.0.1

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 (571) hide show
  1. package/constants/breadcrumbs.const.d.ts +1 -0
  2. package/constants/query-design-custom-class.constant.d.ts +1 -0
  3. package/core/directive/authorize.directive.d.ts +14 -0
  4. package/core/interfaces/filters.api.interface.d.ts +32 -0
  5. package/core/models/menu-elements-dto.d.ts +21 -0
  6. package/core/services/local-storage.service.d.ts +34 -0
  7. package/core/services/user-management.service.d.ts +39 -0
  8. package/core/site/services/support-util.service.d.ts +18 -0
  9. package/core/token/client-injection-token.d.ts +2 -0
  10. package/core/utils/sql-to-filter-datatype-converter.d.ts +2 -0
  11. package/core/utils/type-checks.utils.d.ts +10 -0
  12. package/core/utils/uuid-generator.utils.d.ts +1 -0
  13. package/directives/let.directive.d.ts +25 -0
  14. package/directives/remove-cancel-button.directive.d.ts +10 -0
  15. package/enums/action-types.enum.d.ts +16 -0
  16. package/enums/sort-direction.enum.d.ts +4 -0
  17. package/enums/source-types.enum.d.ts +4 -0
  18. package/enums/tooltips-prop.enum.d.ts +31 -0
  19. package/esm2022/constants/breadcrumbs.const.mjs +2 -0
  20. package/esm2022/constants/query-design-custom-class.constant.mjs +2 -0
  21. package/esm2022/core/directive/authorize.directive.mjs +37 -0
  22. package/esm2022/core/interfaces/filters.api.interface.mjs +12 -0
  23. package/esm2022/core/models/menu-elements-dto.mjs +2 -0
  24. package/esm2022/core/services/local-storage.service.mjs +55 -0
  25. package/esm2022/core/services/user-management.service.mjs +97 -0
  26. package/esm2022/core/site/services/support-util.service.mjs +55 -0
  27. package/esm2022/core/token/client-injection-token.mjs +3 -0
  28. package/esm2022/core/utils/sql-to-filter-datatype-converter.mjs +37 -0
  29. package/esm2022/core/utils/type-checks.utils.mjs +34 -0
  30. package/esm2022/core/utils/uuid-generator.utils.mjs +8 -0
  31. package/esm2022/directives/let.directive.mjs +48 -0
  32. package/esm2022/directives/remove-cancel-button.directive.mjs +23 -0
  33. package/esm2022/enums/action-types.enum.mjs +18 -0
  34. package/esm2022/enums/sort-direction.enum.mjs +6 -0
  35. package/esm2022/enums/source-types.enum.mjs +6 -0
  36. package/esm2022/enums/tooltips-prop.enum.mjs +33 -0
  37. package/esm2022/modules/dynamic-cards/directives/flip-card.directive.mjs +44 -0
  38. package/esm2022/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.mjs +20 -0
  39. package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.mjs +19 -0
  40. package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.mjs +16 -0
  41. package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.mjs +21 -0
  42. package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.mjs +18 -0
  43. package/esm2022/modules/dynamic-cards/dynamic-cards.module.mjs +60 -0
  44. package/esm2022/modules/dynamic-cards/interface/card-list.interface.mjs +2 -0
  45. package/esm2022/modules/dynamic-cards/interface/card.interface.mjs +2 -0
  46. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.mjs +27 -0
  47. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.mjs +19 -0
  48. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.mjs +14 -0
  49. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.mjs +43 -0
  50. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.mjs +48 -0
  51. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.mjs +96 -0
  52. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher.mjs +9 -0
  53. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.mjs +22 -0
  54. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.mjs +27 -0
  55. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.mjs +31 -0
  56. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.mjs +6 -0
  57. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.mjs +29 -0
  58. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.mjs +18 -0
  59. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.mjs +22 -0
  60. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.mjs +74 -0
  61. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.mjs +30 -0
  62. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.mjs +47 -0
  63. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.mjs +7 -0
  64. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/interfaces/base-form-action.interface.mjs +2 -0
  65. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.mjs +64 -0
  66. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.mjs +26 -0
  67. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.mjs +26 -0
  68. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.mjs +65 -0
  69. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.mjs +33 -0
  70. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.mjs +9 -0
  71. package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.mjs +25 -0
  72. package/esm2022/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.mjs +117 -0
  73. package/esm2022/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.mjs +47 -0
  74. package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.mjs +16 -0
  75. package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.mjs +82 -0
  76. package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.mjs +189 -0
  77. package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.mjs +112 -0
  78. package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.mjs +34 -0
  79. package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.mjs +34 -0
  80. package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.mjs +27 -0
  81. package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.mjs +10 -0
  82. package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.mjs +24 -0
  83. package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.mjs +26 -0
  84. package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.mjs +29 -0
  85. package/esm2022/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.mjs +49 -0
  86. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.mjs +6 -0
  87. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.mjs +22 -0
  88. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.mjs +8 -0
  89. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.mjs +7 -0
  90. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.mjs +20 -0
  91. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.mjs +10 -0
  92. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.mjs +6 -0
  93. package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/textarea-wrap.enum.mjs +6 -0
  94. package/esm2022/modules/dynamic-forms/dynamic-forms-core/index.mjs +39 -0
  95. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface.mjs +2 -0
  96. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control.interface.mjs +2 -0
  97. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface.mjs +2 -0
  98. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-control-layout.interface.mjs +2 -0
  99. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout-config.interface.mjs +2 -0
  100. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface.mjs +2 -0
  101. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/matchers/form-control-matcher.interface.mjs +2 -0
  102. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-array/form-array-model-config.interface.mjs +2 -0
  103. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-button-control/button-control-model-config.interface.mjs +2 -0
  104. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-check-control/check-control-model-config.interface.mjs +2 -0
  105. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-model-config.interface.mjs +2 -0
  106. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-relation.interface.mjs +2 -0
  107. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-date-control/date-control-model-config.interface.mjs +2 -0
  108. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-group/form-group-model-config.interface.mjs +2 -0
  109. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-input-control/form-input-control-config.interface.mjs +2 -0
  110. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-number-control/form-number-control-config.interface.mjs +2 -0
  111. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option/form-option-config.interface.mjs +2 -0
  112. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option-control/form-option-control-config.interface.mjs +2 -0
  113. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/button-control-model-config.interface.mjs +2 -0
  114. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/checkbox-control-model-config.interface.mjs +2 -0
  115. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/datepicker-control-model-config.interface.mjs +2 -0
  116. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/input-control-model-config.interface.mjs +2 -0
  117. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/radio-group-model-config.interface.mjs +2 -0
  118. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/select-control-model-config.interface.mjs +2 -0
  119. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/switch-control-model-config.interface.mjs +2 -0
  120. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/textarea-control-model-config.interface.mjs +2 -0
  121. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-value-control/form-value-control.interface.mjs +2 -0
  122. package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/validators/validators.interface.mjs +2 -0
  123. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.mjs +51 -0
  124. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.mjs +15 -0
  125. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-button-control/dynamic-button-control.model.mjs +19 -0
  126. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.mjs +19 -0
  127. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.mjs +23 -0
  128. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.mjs +11 -0
  129. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.mjs +37 -0
  130. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.mjs +20 -0
  131. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.mjs +15 -0
  132. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.mjs +15 -0
  133. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.mjs +52 -0
  134. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.mjs +7 -0
  135. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model.mjs +13 -0
  136. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.mjs +12 -0
  137. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.mjs +11 -0
  138. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.mjs +18 -0
  139. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.mjs +13 -0
  140. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.mjs +13 -0
  141. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.mjs +18 -0
  142. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.mjs +11 -0
  143. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model.mjs +14 -0
  144. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.mjs +25 -0
  145. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.mjs +7 -0
  146. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/layout/layout-control.model.mjs +8 -0
  147. package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model.mjs +19 -0
  148. package/esm2022/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.mjs +38 -0
  149. package/esm2022/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.mjs +20 -0
  150. package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service.mjs +37 -0
  151. package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.mjs +35 -0
  152. package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.mjs +35 -0
  153. package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.mjs +239 -0
  154. package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.mjs +3 -0
  155. package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.mjs +3 -0
  156. package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.mjs +3 -0
  157. package/esm2022/modules/dynamic-forms/dynamic-forms.module.mjs +32 -0
  158. package/esm2022/modules/material/mat-cdk-module.mjs +17 -0
  159. package/esm2022/modules/material/material.module.mjs +201 -0
  160. package/esm2022/modules/query-builder/components/query-design/query-design.component.mjs +103 -0
  161. package/esm2022/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.mjs +150 -0
  162. package/esm2022/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component.mjs +102 -0
  163. package/esm2022/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.mjs +76 -0
  164. package/esm2022/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.mjs +168 -0
  165. package/esm2022/modules/query-builder/components/query-design/rule-line/constants/operators-sets.mjs +108 -0
  166. package/esm2022/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.mjs +8 -0
  167. package/esm2022/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.mjs +78 -0
  168. package/esm2022/modules/query-builder/components/query-design/rule-line/rule-line.component.mjs +234 -0
  169. package/esm2022/modules/query-builder/directive/auto-complete-position.directive.mjs +30 -0
  170. package/esm2022/modules/query-builder/interfaces/query-builder.interface.mjs +39 -0
  171. package/esm2022/modules/query-builder/interfaces/select-custom-css-object.mjs +2 -0
  172. package/esm2022/modules/query-builder/query-builder.module.mjs +66 -0
  173. package/esm2022/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.mjs +16 -0
  174. package/esm2022/modules/ui-kit/components/accordion/accordion-trigger.directive.mjs +30 -0
  175. package/esm2022/modules/ui-kit/components/accordion/accordion.directive.mjs +19 -0
  176. package/esm2022/modules/ui-kit/components/banner/banner.component.mjs +53 -0
  177. package/esm2022/modules/ui-kit/components/banner/banner.service.mjs +64 -0
  178. package/esm2022/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.mjs +25 -0
  179. package/esm2022/modules/ui-kit/components/breadcrumbs/model/breadCrumbItem.mjs +2 -0
  180. package/esm2022/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.mjs +63 -0
  181. package/esm2022/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.mjs +8 -0
  182. package/esm2022/modules/ui-kit/components/buttons/button-control/button-control.component.mjs +46 -0
  183. package/esm2022/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.mjs +11 -0
  184. package/esm2022/modules/ui-kit/components/buttons/circle-button/circle-button.component.mjs +37 -0
  185. package/esm2022/modules/ui-kit/components/card-container/card-container.component.mjs +11 -0
  186. package/esm2022/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.mjs +30 -0
  187. package/esm2022/modules/ui-kit/components/common-breadcrumbs/interface/breadcrumb.interface.mjs +2 -0
  188. package/esm2022/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.mjs +65 -0
  189. package/esm2022/modules/ui-kit/components/data-pagination/data-pagination.component.mjs +155 -0
  190. package/esm2022/modules/ui-kit/components/data-table/api-classes/filter-manager.mjs +50 -0
  191. package/esm2022/modules/ui-kit/components/data-table/api-classes/grid-api.mjs +73 -0
  192. package/esm2022/modules/ui-kit/components/data-table/constants/change-type.enum.mjs +8 -0
  193. package/esm2022/modules/ui-kit/components/data-table/constants/column-id.mjs +13 -0
  194. package/esm2022/modules/ui-kit/components/data-table/constants/row.mjs +4 -0
  195. package/esm2022/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.mjs +93 -0
  196. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.mjs +17 -0
  197. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.mjs +27 -0
  198. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.mjs +20 -0
  199. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.mjs +18 -0
  200. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.mjs +31 -0
  201. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.mjs +96 -0
  202. package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.mjs +75 -0
  203. package/esm2022/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.mjs +248 -0
  204. package/esm2022/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.mjs +323 -0
  205. package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.mjs +68 -0
  206. package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.mjs +25 -0
  207. package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.mjs +64 -0
  208. package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value.mjs +42 -0
  209. package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.mjs +42 -0
  210. package/esm2022/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.mjs +69 -0
  211. package/esm2022/modules/ui-kit/components/data-table/data-row/data-row.component.mjs +251 -0
  212. package/esm2022/modules/ui-kit/components/data-table/data-table/data-table.component.mjs +1534 -0
  213. package/esm2022/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.mjs +153 -0
  214. package/esm2022/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.mjs +205 -0
  215. package/esm2022/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.mjs +61 -0
  216. package/esm2022/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.mjs +8 -0
  217. package/esm2022/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.mjs +120 -0
  218. package/esm2022/modules/ui-kit/components/data-table/enums/col-filter-types.mjs +17 -0
  219. package/esm2022/modules/ui-kit/components/data-table/header-row/header-row.component.mjs +14 -0
  220. package/esm2022/modules/ui-kit/components/data-table/interfaces/data-table-component.interface.mjs +2 -0
  221. package/esm2022/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface.mjs +2 -0
  222. package/esm2022/modules/ui-kit/components/data-table/services/data-table-context.service.mjs +26 -0
  223. package/esm2022/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.mjs +38 -0
  224. package/esm2022/modules/ui-kit/components/excel-table/excel-table.component.mjs +164 -0
  225. package/esm2022/modules/ui-kit/components/excel-table/interface/excel-table.interface.mjs +44 -0
  226. package/esm2022/modules/ui-kit/components/form/base-form-control/base-form-control.component.mjs +41 -0
  227. package/esm2022/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.mjs +21 -0
  228. package/esm2022/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.mjs +66 -0
  229. package/esm2022/modules/ui-kit/components/form/form-container/form-container.component.mjs +133 -0
  230. package/esm2022/modules/ui-kit/components/form/form-group-container/form-group-container.component.mjs +11 -0
  231. package/esm2022/modules/ui-kit/components/form/input-form-control/input-form-control.component.mjs +20 -0
  232. package/esm2022/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.mjs +35 -0
  233. package/esm2022/modules/ui-kit/components/form/multivalue-form-control/custom-input/old-new-value.interface.mjs +2 -0
  234. package/esm2022/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.mjs +66 -0
  235. package/esm2022/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.mjs +19 -0
  236. package/esm2022/modules/ui-kit/components/form/select-form-control/select-form-control.component.mjs +78 -0
  237. package/esm2022/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.mjs +18 -0
  238. package/esm2022/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.mjs +20 -0
  239. package/esm2022/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.mjs +26 -0
  240. package/esm2022/modules/ui-kit/components/icon/icon/icon.component.mjs +35 -0
  241. package/esm2022/modules/ui-kit/components/icon/text-icon/text-icon.component.mjs +22 -0
  242. package/esm2022/modules/ui-kit/components/layouts/form-layout/form-layout.component.mjs +56 -0
  243. package/esm2022/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.mjs +11 -0
  244. package/esm2022/modules/ui-kit/components/loader/loader.component.mjs +27 -0
  245. package/esm2022/modules/ui-kit/components/mat-actions-button/mat-actions-button.mjs +34 -0
  246. package/esm2022/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.mjs +53 -0
  247. package/esm2022/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.mjs +37 -0
  248. package/esm2022/modules/ui-kit/components/modals/delete-modal/delete-modal.component.mjs +41 -0
  249. package/esm2022/modules/ui-kit/components/modals/enums/confirmation-modal.enum.mjs +13 -0
  250. package/esm2022/modules/ui-kit/components/snackbar/snackbar.component.mjs +21 -0
  251. package/esm2022/modules/ui-kit/components/tabs/constants/index.mjs +2 -0
  252. package/esm2022/modules/ui-kit/components/tabs/interfaces/index.mjs +2 -0
  253. package/esm2022/modules/ui-kit/components/tabs/tab-group/tab-group.component.mjs +77 -0
  254. package/esm2022/modules/ui-kit/components/tabs/tab.directive.mjs +60 -0
  255. package/esm2022/modules/ui-kit/components/tree-view/tree-view.component.mjs +374 -0
  256. package/esm2022/modules/ui-kit/constants/data-table.constants.mjs +7 -0
  257. package/esm2022/modules/ui-kit/constants/snackbar.constants.mjs +4 -0
  258. package/esm2022/modules/ui-kit/enums/coderefs-prop.enum.mjs +26 -0
  259. package/esm2022/modules/ui-kit/enums/color-schemes.enum.mjs +13 -0
  260. package/esm2022/modules/ui-kit/enums/column-disable-mode.enum.mjs +7 -0
  261. package/esm2022/modules/ui-kit/enums/column-types.enum.mjs +10 -0
  262. package/esm2022/modules/ui-kit/enums/component-sizes.enum.mjs +6 -0
  263. package/esm2022/modules/ui-kit/enums/form-item-type.mjs +7 -0
  264. package/esm2022/modules/ui-kit/enums/form-types.enum.mjs +7 -0
  265. package/esm2022/modules/ui-kit/enums/form-url-params.enum.mjs +6 -0
  266. package/esm2022/modules/ui-kit/enums/icons.enum.mjs +24 -0
  267. package/esm2022/modules/ui-kit/enums/position.enum.mjs +6 -0
  268. package/esm2022/modules/ui-kit/enums/select-option.enum.mjs +10 -0
  269. package/esm2022/modules/ui-kit/enums/snackbar.enum.mjs +8 -0
  270. package/esm2022/modules/ui-kit/enums/url-param-action.enum.mjs +6 -0
  271. package/esm2022/modules/ui-kit/enums/viewType.enum.mjs +7 -0
  272. package/esm2022/modules/ui-kit/interfaces/api.interface.mjs +2 -0
  273. package/esm2022/modules/ui-kit/interfaces/confirm-modal-data.interface.mjs +2 -0
  274. package/esm2022/modules/ui-kit/interfaces/constants.interface.mjs +2 -0
  275. package/esm2022/modules/ui-kit/interfaces/data-table.interface.mjs +2 -0
  276. package/esm2022/modules/ui-kit/interfaces/form.interface.mjs +2 -0
  277. package/esm2022/modules/ui-kit/interfaces/generic.interface.mjs +2 -0
  278. package/esm2022/modules/ui-kit/interfaces/list-item.interface.mjs +2 -0
  279. package/esm2022/modules/ui-kit/interfaces/mat-action-buttons.interface.mjs +2 -0
  280. package/esm2022/modules/ui-kit/interfaces/row-selection-info.interface.mjs +2 -0
  281. package/esm2022/modules/ui-kit/interfaces/select.interface.mjs +2 -0
  282. package/esm2022/modules/ui-kit/interfaces/snackbar.interface.mjs +2 -0
  283. package/esm2022/modules/ui-kit/interfaces/tree-view.interface.mjs +2 -0
  284. package/esm2022/modules/ui-kit/pipes/column-filter.pipe.mjs +21 -0
  285. package/esm2022/modules/ui-kit/pipes/filter-by-prop.pipe.mjs +27 -0
  286. package/esm2022/modules/ui-kit/pipes/first-letter-text.pipe.mjs +17 -0
  287. package/esm2022/modules/ui-kit/pipes/keys.pipe.mjs +17 -0
  288. package/esm2022/modules/ui-kit/pipes/paginate.pipe.mjs +29 -0
  289. package/esm2022/modules/ui-kit/pipes/search.pipe.mjs +50 -0
  290. package/esm2022/modules/ui-kit/services/data-table.service.mjs +202 -0
  291. package/esm2022/modules/ui-kit/services/form.service.mjs +91 -0
  292. package/esm2022/modules/ui-kit/services/mappers/form-data-table-mapper.service.mjs +19 -0
  293. package/esm2022/modules/ui-kit/services/snackbar.service.mjs +43 -0
  294. package/esm2022/modules/ui-kit/services/url.service.mjs +17 -0
  295. package/esm2022/modules/ui-kit/types/basic.type.mjs +2 -0
  296. package/esm2022/modules/ui-kit/types/function.type.mjs +2 -0
  297. package/esm2022/modules/ui-kit/types/select.type.mjs +2 -0
  298. package/esm2022/modules/ui-kit/ui-kit.module.mjs +370 -0
  299. package/esm2022/public-api.mjs +85 -0
  300. package/esm2022/shared-pipes/pipes/search.pipe.mjs +48 -0
  301. package/esm2022/shared-ui-test-1.mjs +5 -0
  302. package/esm2022/shared.module.mjs +57 -0
  303. package/fesm2022/shared-ui-test-1.mjs +10516 -0
  304. package/fesm2022/shared-ui-test-1.mjs.map +1 -0
  305. package/index.d.ts +5 -0
  306. package/modules/dynamic-cards/directives/flip-card.directive.d.ts +15 -0
  307. package/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.d.ts +10 -0
  308. package/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.d.ts +7 -0
  309. package/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.d.ts +7 -0
  310. package/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.d.ts +10 -0
  311. package/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.d.ts +8 -0
  312. package/modules/dynamic-cards/dynamic-cards.module.d.ts +18 -0
  313. package/modules/dynamic-cards/interface/card-list.interface.d.ts +9 -0
  314. package/modules/dynamic-cards/interface/card.interface.d.ts +12 -0
  315. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.d.ts +11 -0
  316. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.d.ts +9 -0
  317. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.d.ts +7 -0
  318. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.d.ts +13 -0
  319. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.d.ts +13 -0
  320. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.d.ts +34 -0
  321. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher.d.ts +8 -0
  322. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.d.ts +8 -0
  323. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.d.ts +11 -0
  324. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.d.ts +12 -0
  325. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.d.ts +4 -0
  326. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.d.ts +10 -0
  327. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.d.ts +9 -0
  328. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.d.ts +9 -0
  329. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.d.ts +26 -0
  330. package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.d.ts +14 -0
  331. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.d.ts +19 -0
  332. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.d.ts +5 -0
  333. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/interfaces/base-form-action.interface.d.ts +5 -0
  334. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.d.ts +26 -0
  335. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.d.ts +9 -0
  336. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.d.ts +11 -0
  337. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.d.ts +23 -0
  338. package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.d.ts +21 -0
  339. package/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.d.ts +7 -0
  340. package/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.d.ts +11 -0
  341. package/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.d.ts +32 -0
  342. package/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.d.ts +6 -0
  343. package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.d.ts +10 -0
  344. package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.d.ts +26 -0
  345. package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.d.ts +57 -0
  346. package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.d.ts +42 -0
  347. package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.d.ts +28 -0
  348. package/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.d.ts +6 -0
  349. package/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.d.ts +6 -0
  350. package/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.d.ts +9 -0
  351. package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.d.ts +11 -0
  352. package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.d.ts +11 -0
  353. package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.d.ts +13 -0
  354. package/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.d.ts +12 -0
  355. package/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.d.ts +4 -0
  356. package/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.d.ts +20 -0
  357. package/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.d.ts +6 -0
  358. package/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.d.ts +5 -0
  359. package/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.d.ts +18 -0
  360. package/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.d.ts +8 -0
  361. package/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.d.ts +4 -0
  362. package/modules/dynamic-forms/dynamic-forms-core/enums/textarea-wrap.enum.d.ts +4 -0
  363. package/modules/dynamic-forms/dynamic-forms-core/index.d.ts +38 -0
  364. package/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface.d.ts +15 -0
  365. package/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control.interface.d.ts +19 -0
  366. package/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface.d.ts +4 -0
  367. package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-control-layout.interface.d.ts +3 -0
  368. package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout-config.interface.d.ts +6 -0
  369. package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface.d.ts +2 -0
  370. package/modules/dynamic-forms/dynamic-forms-core/interfaces/matchers/form-control-matcher.interface.d.ts +8 -0
  371. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-array/form-array-model-config.interface.d.ts +7 -0
  372. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-button-control/button-control-model-config.interface.d.ts +4 -0
  373. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-check-control/check-control-model-config.interface.d.ts +4 -0
  374. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-model-config.interface.d.ts +16 -0
  375. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-relation.interface.d.ts +8 -0
  376. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-date-control/date-control-model-config.interface.d.ts +8 -0
  377. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-group/form-group-model-config.interface.d.ts +6 -0
  378. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-input-control/form-input-control-config.interface.d.ts +14 -0
  379. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-number-control/form-number-control-config.interface.d.ts +7 -0
  380. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option/form-option-config.interface.d.ts +5 -0
  381. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option-control/form-option-control-config.interface.d.ts +6 -0
  382. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/button-control-model-config.interface.d.ts +6 -0
  383. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/checkbox-control-model-config.interface.d.ts +5 -0
  384. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/datepicker-control-model-config.interface.d.ts +11 -0
  385. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/input-control-model-config.interface.d.ts +9 -0
  386. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/radio-group-model-config.interface.d.ts +4 -0
  387. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/select-control-model-config.interface.d.ts +8 -0
  388. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/switch-control-model-config.interface.d.ts +5 -0
  389. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/textarea-control-model-config.interface.d.ts +6 -0
  390. package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-value-control/form-value-control.interface.d.ts +10 -0
  391. package/modules/dynamic-forms/dynamic-forms-core/interfaces/validators/validators.interface.d.ts +5 -0
  392. package/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.d.ts +19 -0
  393. package/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.d.ts +12 -0
  394. package/modules/dynamic-forms/dynamic-forms-core/models/form-button-control/dynamic-button-control.model.d.ts +9 -0
  395. package/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.d.ts +9 -0
  396. package/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.d.ts +24 -0
  397. package/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.d.ts +9 -0
  398. package/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.d.ts +17 -0
  399. package/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.d.ts +16 -0
  400. package/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.d.ts +12 -0
  401. package/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.d.ts +9 -0
  402. package/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.d.ts +19 -0
  403. package/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.d.ts +7 -0
  404. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model.d.ts +10 -0
  405. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.d.ts +8 -0
  406. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.d.ts +7 -0
  407. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.d.ts +15 -0
  408. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.d.ts +10 -0
  409. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.d.ts +8 -0
  410. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.d.ts +11 -0
  411. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.d.ts +8 -0
  412. package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model.d.ts +9 -0
  413. package/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.d.ts +17 -0
  414. package/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.d.ts +5 -0
  415. package/modules/dynamic-forms/dynamic-forms-core/models/layout/layout-control.model.d.ts +9 -0
  416. package/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model.d.ts +12 -0
  417. package/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.d.ts +20 -0
  418. package/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.d.ts +8 -0
  419. package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service.d.ts +14 -0
  420. package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.d.ts +14 -0
  421. package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.d.ts +11 -0
  422. package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.d.ts +30 -0
  423. package/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.d.ts +3 -0
  424. package/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.d.ts +3 -0
  425. package/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.d.ts +3 -0
  426. package/modules/dynamic-forms/dynamic-forms.module.d.ts +9 -0
  427. package/modules/material/mat-cdk-module.d.ts +7 -0
  428. package/modules/material/material.module.d.ts +50 -0
  429. package/modules/query-builder/components/query-design/query-design.component.d.ts +35 -0
  430. package/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.d.ts +46 -0
  431. package/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component.d.ts +29 -0
  432. package/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.d.ts +21 -0
  433. package/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.d.ts +46 -0
  434. package/modules/query-builder/components/query-design/rule-line/constants/operators-sets.d.ts +12 -0
  435. package/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.d.ts +6 -0
  436. package/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.d.ts +7 -0
  437. package/modules/query-builder/components/query-design/rule-line/rule-line.component.d.ts +64 -0
  438. package/modules/query-builder/directive/auto-complete-position.directive.d.ts +11 -0
  439. package/modules/query-builder/interfaces/query-builder.interface.d.ts +61 -0
  440. package/modules/query-builder/interfaces/select-custom-css-object.d.ts +7 -0
  441. package/modules/query-builder/query-builder.module.d.ts +18 -0
  442. package/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.d.ts +8 -0
  443. package/modules/ui-kit/components/accordion/accordion-trigger.directive.d.ts +10 -0
  444. package/modules/ui-kit/components/accordion/accordion.directive.d.ts +7 -0
  445. package/modules/ui-kit/components/banner/banner.component.d.ts +14 -0
  446. package/modules/ui-kit/components/banner/banner.service.d.ts +27 -0
  447. package/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.d.ts +15 -0
  448. package/modules/ui-kit/components/breadcrumbs/model/breadCrumbItem.d.ts +4 -0
  449. package/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.d.ts +19 -0
  450. package/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.d.ts +6 -0
  451. package/modules/ui-kit/components/buttons/button-control/button-control.component.d.ts +16 -0
  452. package/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.d.ts +5 -0
  453. package/modules/ui-kit/components/buttons/circle-button/circle-button.component.d.ts +20 -0
  454. package/modules/ui-kit/components/card-container/card-container.component.d.ts +5 -0
  455. package/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.d.ts +20 -0
  456. package/modules/ui-kit/components/common-breadcrumbs/interface/breadcrumb.interface.d.ts +6 -0
  457. package/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.d.ts +21 -0
  458. package/modules/ui-kit/components/data-pagination/data-pagination.component.d.ts +54 -0
  459. package/modules/ui-kit/components/data-table/api-classes/filter-manager.d.ts +13 -0
  460. package/modules/ui-kit/components/data-table/api-classes/grid-api.d.ts +31 -0
  461. package/modules/ui-kit/components/data-table/constants/change-type.enum.d.ts +6 -0
  462. package/modules/ui-kit/components/data-table/constants/column-id.d.ts +2 -0
  463. package/modules/ui-kit/components/data-table/constants/row.d.ts +2 -0
  464. package/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.d.ts +28 -0
  465. package/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.d.ts +7 -0
  466. package/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.d.ts +12 -0
  467. package/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.d.ts +8 -0
  468. package/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.d.ts +8 -0
  469. package/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.d.ts +13 -0
  470. package/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.d.ts +29 -0
  471. package/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.d.ts +27 -0
  472. package/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.d.ts +60 -0
  473. package/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.d.ts +85 -0
  474. package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.d.ts +12 -0
  475. package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.d.ts +9 -0
  476. package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.d.ts +13 -0
  477. package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value.d.ts +10 -0
  478. package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.d.ts +11 -0
  479. package/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.d.ts +29 -0
  480. package/modules/ui-kit/components/data-table/data-row/data-row.component.d.ts +81 -0
  481. package/modules/ui-kit/components/data-table/data-table/data-table.component.d.ts +302 -0
  482. package/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.d.ts +53 -0
  483. package/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.d.ts +75 -0
  484. package/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.d.ts +25 -0
  485. package/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.d.ts +6 -0
  486. package/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.d.ts +42 -0
  487. package/modules/ui-kit/components/data-table/enums/col-filter-types.d.ts +14 -0
  488. package/modules/ui-kit/components/data-table/header-row/header-row.component.d.ts +7 -0
  489. package/modules/ui-kit/components/data-table/interfaces/data-table-component.interface.d.ts +28 -0
  490. package/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface.d.ts +12 -0
  491. package/modules/ui-kit/components/data-table/services/data-table-context.service.d.ts +12 -0
  492. package/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.d.ts +13 -0
  493. package/modules/ui-kit/components/excel-table/excel-table.component.d.ts +28 -0
  494. package/modules/ui-kit/components/excel-table/interface/excel-table.interface.d.ts +29 -0
  495. package/modules/ui-kit/components/form/base-form-control/base-form-control.component.d.ts +17 -0
  496. package/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.d.ts +8 -0
  497. package/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.d.ts +21 -0
  498. package/modules/ui-kit/components/form/form-container/form-container.component.d.ts +45 -0
  499. package/modules/ui-kit/components/form/form-group-container/form-group-container.component.d.ts +5 -0
  500. package/modules/ui-kit/components/form/input-form-control/input-form-control.component.d.ts +8 -0
  501. package/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.d.ts +15 -0
  502. package/modules/ui-kit/components/form/multivalue-form-control/custom-input/old-new-value.interface.d.ts +4 -0
  503. package/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.d.ts +26 -0
  504. package/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.d.ts +8 -0
  505. package/modules/ui-kit/components/form/select-form-control/select-form-control.component.d.ts +32 -0
  506. package/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.d.ts +7 -0
  507. package/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.d.ts +8 -0
  508. package/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.d.ts +11 -0
  509. package/modules/ui-kit/components/icon/icon/icon.component.d.ts +14 -0
  510. package/modules/ui-kit/components/icon/text-icon/text-icon.component.d.ts +10 -0
  511. package/modules/ui-kit/components/layouts/form-layout/form-layout.component.d.ts +29 -0
  512. package/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.d.ts +5 -0
  513. package/modules/ui-kit/components/loader/loader.component.d.ts +12 -0
  514. package/modules/ui-kit/components/mat-actions-button/mat-actions-button.d.ts +14 -0
  515. package/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.d.ts +17 -0
  516. package/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.d.ts +13 -0
  517. package/modules/ui-kit/components/modals/delete-modal/delete-modal.component.d.ts +17 -0
  518. package/modules/ui-kit/components/modals/enums/confirmation-modal.enum.d.ts +11 -0
  519. package/modules/ui-kit/components/snackbar/snackbar.component.d.ts +10 -0
  520. package/modules/ui-kit/components/tabs/constants/index.d.ts +1 -0
  521. package/modules/ui-kit/components/tabs/interfaces/index.d.ts +3 -0
  522. package/modules/ui-kit/components/tabs/tab-group/tab-group.component.d.ts +25 -0
  523. package/modules/ui-kit/components/tabs/tab.directive.d.ts +16 -0
  524. package/modules/ui-kit/components/tree-view/tree-view.component.d.ts +67 -0
  525. package/modules/ui-kit/constants/data-table.constants.d.ts +6 -0
  526. package/modules/ui-kit/constants/snackbar.constants.d.ts +3 -0
  527. package/modules/ui-kit/enums/coderefs-prop.enum.d.ts +24 -0
  528. package/modules/ui-kit/enums/color-schemes.enum.d.ts +11 -0
  529. package/modules/ui-kit/enums/column-disable-mode.enum.d.ts +5 -0
  530. package/modules/ui-kit/enums/column-types.enum.d.ts +8 -0
  531. package/modules/ui-kit/enums/component-sizes.enum.d.ts +4 -0
  532. package/modules/ui-kit/enums/form-item-type.d.ts +5 -0
  533. package/modules/ui-kit/enums/form-types.enum.d.ts +5 -0
  534. package/modules/ui-kit/enums/form-url-params.enum.d.ts +4 -0
  535. package/modules/ui-kit/enums/icons.enum.d.ts +22 -0
  536. package/modules/ui-kit/enums/position.enum.d.ts +4 -0
  537. package/modules/ui-kit/enums/select-option.enum.d.ts +8 -0
  538. package/modules/ui-kit/enums/snackbar.enum.d.ts +6 -0
  539. package/modules/ui-kit/enums/url-param-action.enum.d.ts +4 -0
  540. package/modules/ui-kit/enums/viewType.enum.d.ts +5 -0
  541. package/modules/ui-kit/interfaces/api.interface.d.ts +45 -0
  542. package/modules/ui-kit/interfaces/confirm-modal-data.interface.d.ts +7 -0
  543. package/modules/ui-kit/interfaces/constants.interface.d.ts +4 -0
  544. package/modules/ui-kit/interfaces/data-table.interface.d.ts +253 -0
  545. package/modules/ui-kit/interfaces/form.interface.d.ts +21 -0
  546. package/modules/ui-kit/interfaces/generic.interface.d.ts +7 -0
  547. package/modules/ui-kit/interfaces/list-item.interface.d.ts +5 -0
  548. package/modules/ui-kit/interfaces/mat-action-buttons.interface.d.ts +14 -0
  549. package/modules/ui-kit/interfaces/row-selection-info.interface.d.ts +7 -0
  550. package/modules/ui-kit/interfaces/select.interface.d.ts +8 -0
  551. package/modules/ui-kit/interfaces/snackbar.interface.d.ts +4 -0
  552. package/modules/ui-kit/interfaces/tree-view.interface.d.ts +49 -0
  553. package/modules/ui-kit/pipes/column-filter.pipe.d.ts +12 -0
  554. package/modules/ui-kit/pipes/filter-by-prop.pipe.d.ts +9 -0
  555. package/modules/ui-kit/pipes/first-letter-text.pipe.d.ts +7 -0
  556. package/modules/ui-kit/pipes/keys.pipe.d.ts +7 -0
  557. package/modules/ui-kit/pipes/paginate.pipe.d.ts +12 -0
  558. package/modules/ui-kit/pipes/search.pipe.d.ts +16 -0
  559. package/modules/ui-kit/services/data-table.service.d.ts +37 -0
  560. package/modules/ui-kit/services/form.service.d.ts +26 -0
  561. package/modules/ui-kit/services/mappers/form-data-table-mapper.service.d.ts +8 -0
  562. package/modules/ui-kit/services/snackbar.service.d.ts +15 -0
  563. package/modules/ui-kit/services/url.service.d.ts +7 -0
  564. package/modules/ui-kit/types/basic.type.d.ts +2 -0
  565. package/modules/ui-kit/types/function.type.d.ts +20 -0
  566. package/modules/ui-kit/types/select.type.d.ts +2 -0
  567. package/modules/ui-kit/ui-kit.module.d.ts +79 -0
  568. package/package.json +45 -0
  569. package/public-api.d.ts +84 -0
  570. package/shared-pipes/pipes/search.pipe.d.ts +15 -0
  571. package/shared.module.d.ts +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-ui-test-1.mjs","sources":["../../lib/src/directives/let.directive.ts","../../lib/src/modules/material/material.module.ts","../../lib/src/modules/dynamic-cards/directives/flip-card.directive.ts","../../lib/src/modules/ui-kit/pipes/first-letter-text.pipe.ts","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.ts","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.html","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.ts","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.html","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.ts","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.html","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.ts","../../lib/src/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.html","../../lib/src/modules/ui-kit/components/data-table/constants/column-id.ts","../../lib/src/modules/ui-kit/enums/column-types.enum.ts","../../lib/src/modules/ui-kit/components/data-table/constants/row.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.ts","../../lib/src/modules/ui-kit/components/data-table/enums/col-filter-types.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.ts","../../lib/src/modules/ui-kit/enums/coderefs-prop.enum.ts","../../lib/src/modules/ui-kit/services/data-table.service.ts","../../lib/src/shared-pipes/pipes/search.pipe.ts","../../lib/src/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.ts","../../lib/src/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.html","../../lib/src/core/directive/authorize.directive.ts","../../lib/src/core/site/services/support-util.service.ts","../../lib/src/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.ts","../../lib/src/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.html","../../lib/src/modules/ui-kit/components/accordion/accordion.directive.ts","../../lib/src/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.ts","../../lib/src/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.html","../../lib/src/modules/ui-kit/components/accordion/accordion-trigger.directive.ts","../../lib/src/modules/ui-kit/components/banner/banner.component.ts","../../lib/src/modules/ui-kit/components/banner/banner.component.html","../../lib/src/core/utils/type-checks.utils.ts","../../lib/src/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.ts","../../lib/src/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.ts","../../lib/src/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.ts","../../lib/src/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.html","../../lib/src/modules/ui-kit/enums/component-sizes.enum.ts","../../lib/src/modules/ui-kit/enums/color-schemes.enum.ts","../../lib/src/modules/ui-kit/components/loader/loader.component.ts","../../lib/src/modules/ui-kit/components/loader/loader.component.html","../../lib/src/modules/ui-kit/components/buttons/button-control/button-control.component.ts","../../lib/src/modules/ui-kit/components/buttons/button-control/button-control.component.html","../../lib/src/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.ts","../../lib/src/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.html","../../lib/src/modules/ui-kit/components/card-container/card-container.component.ts","../../lib/src/modules/ui-kit/components/card-container/card-container.component.html","../../lib/src/constants/breadcrumbs.const.ts","../../lib/src/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.ts","../../lib/src/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.ts","../../lib/src/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.html","../../lib/src/modules/ui-kit/enums/select-option.enum.ts","../../lib/src/modules/ui-kit/components/form/base-form-control/base-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/select-form-control/select-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/select-form-control/select-form-control.component.html","../../lib/src/modules/ui-kit/components/data-pagination/data-pagination.component.ts","../../lib/src/modules/ui-kit/components/data-pagination/data-pagination.component.html","../../lib/src/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.ts","../../lib/src/modules/ui-kit/components/data-table/constants/change-type.enum.ts","../../lib/src/modules/ui-kit/constants/data-table.constants.ts","../../lib/src/modules/ui-kit/enums/column-disable-mode.enum.ts","../../lib/src/modules/ui-kit/enums/form-types.enum.ts","../../lib/src/modules/ui-kit/enums/icons.enum.ts","../../lib/src/modules/ui-kit/enums/snackbar.enum.ts","../../lib/src/modules/ui-kit/components/modals/delete-modal/delete-modal.component.ts","../../lib/src/modules/ui-kit/components/modals/delete-modal/delete-modal.component.html","../../lib/src/modules/ui-kit/components/data-table/api-classes/filter-manager.ts","../../lib/src/modules/ui-kit/components/data-table/api-classes/grid-api.ts","../../lib/src/modules/ui-kit/components/banner/banner.service.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.ts","../../lib/src/modules/ui-kit/enums/form-item-type.ts","../../lib/src/modules/ui-kit/services/url.service.ts","../../lib/src/modules/ui-kit/services/mappers/form-data-table-mapper.service.ts","../../lib/src/modules/ui-kit/services/form.service.ts","../../lib/src/modules/ui-kit/enums/position.enum.ts","../../lib/src/modules/ui-kit/components/snackbar/snackbar.component.ts","../../lib/src/modules/ui-kit/components/snackbar/snackbar.component.html","../../lib/src/modules/ui-kit/constants/snackbar.constants.ts","../../lib/src/modules/ui-kit/services/snackbar.service.ts","../../lib/src/modules/ui-kit/components/icon/icon/icon.component.ts","../../lib/src/modules/ui-kit/components/icon/icon/icon.component.html","../../lib/src/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.html","../../lib/src/modules/ui-kit/components/form/input-form-control/input-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/input-form-control/input-form-control.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.html","../../lib/src/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.html","../../lib/src/modules/ui-kit/enums/url-param-action.enum.ts","../../lib/src/modules/ui-kit/enums/viewType.enum.ts","../../lib/src/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.ts","../../lib/src/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.html","../../lib/src/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.ts","../../lib/src/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.html","../../lib/src/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.html","../../lib/src/modules/ui-kit/components/data-table/services/data-table-context.service.ts","../../lib/src/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.html","../../lib/src/modules/ui-kit/components/data-table/data-row/data-row.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-row/data-row.component.html","../../lib/src/modules/ui-kit/pipes/search.pipe.ts","../../lib/src/modules/ui-kit/pipes/paginate.pipe.ts","../../lib/src/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.html","../../lib/src/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.html","../../lib/src/modules/ui-kit/pipes/filter-by-prop.pipe.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.html","../../lib/src/modules/ui-kit/pipes/column-filter.pipe.ts","../../lib/src/modules/ui-kit/components/data-table/data-table/data-table.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-table/data-table.component.html","../../lib/src/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.ts","../../lib/src/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.html","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.html","../../lib/src/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.ts","../../lib/src/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.html","../../lib/src/modules/ui-kit/components/data-table/header-row/header-row.component.ts","../../lib/src/modules/ui-kit/components/data-table/header-row/header-row.component.html","../../lib/src/modules/ui-kit/components/excel-table/interface/excel-table.interface.ts","../../lib/src/modules/ui-kit/components/excel-table/excel-table.component.ts","../../lib/src/modules/ui-kit/components/excel-table/excel-table.component.html","../../lib/src/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.html","../../lib/src/modules/ui-kit/components/form/form-container/form-container.component.ts","../../lib/src/modules/ui-kit/components/form/form-container/form-container.component.html","../../lib/src/modules/ui-kit/components/form/form-group-container/form-group-container.component.ts","../../lib/src/modules/ui-kit/components/form/form-group-container/form-group-container.component.html","../../lib/src/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.html","../../lib/src/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.ts","../../lib/src/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.html","../../lib/src/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.ts","../../lib/src/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.html","../../lib/src/modules/ui-kit/components/icon/text-icon/text-icon.component.ts","../../lib/src/modules/ui-kit/components/icon/text-icon/text-icon.component.html","../../lib/src/modules/ui-kit/enums/form-url-params.enum.ts","../../lib/src/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.ts","../../lib/src/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.html","../../lib/src/modules/ui-kit/components/layouts/form-layout/form-layout.component.ts","../../lib/src/modules/ui-kit/components/layouts/form-layout/form-layout.component.html","../../lib/src/modules/ui-kit/components/modals/enums/confirmation-modal.enum.ts","../../lib/src/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.ts","../../lib/src/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.html","../../lib/src/modules/ui-kit/components/tabs/constants/index.ts","../../lib/src/modules/ui-kit/components/tabs/tab.directive.ts","../../lib/src/modules/ui-kit/components/tabs/tab-group/tab-group.component.ts","../../lib/src/modules/ui-kit/components/tabs/tab-group/tab-group.component.html","../../lib/src/modules/ui-kit/components/tree-view/tree-view.component.ts","../../lib/src/modules/ui-kit/components/tree-view/tree-view.component.html","../../lib/src/modules/ui-kit/pipes/keys.pipe.ts","../../lib/src/modules/ui-kit/ui-kit.module.ts","../../lib/src/modules/dynamic-cards/dynamic-cards.module.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.ts","../../lib/src/directives/remove-cancel-button.directive.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.html","../../lib/src/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.html","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/index.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.ts","../../lib/src/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.html","../../lib/src/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.ts","../../lib/src/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.ts","../../lib/src/modules/dynamic-forms/dynamic-forms.module.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/constants/operators-sets.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.html","../../lib/src/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.html","../../lib/src/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.html","../../lib/src/modules/query-builder/components/query-design/rule-line/rule-line.component.ts","../../lib/src/modules/query-builder/components/query-design/rule-line/rule-line.component.html","../../lib/src/modules/query-builder/components/query-design/query-design.component.ts","../../lib/src/modules/query-builder/components/query-design/query-design.component.html","../../lib/src/modules/query-builder/query-builder.module.ts","../../lib/src/shared.module.ts","../../lib/src/modules/material/mat-cdk-module.ts","../../lib/src/modules/ui-kit/components/mat-actions-button/mat-actions-button.ts","../../lib/src/modules/ui-kit/components/mat-actions-button/mat-actions-button.html","../../lib/src/core/token/client-injection-token.ts","../../lib/src/core/services/local-storage.service.ts","../../lib/src/core/services/user-management.service.ts","../../lib/src/modules/query-builder/directive/auto-complete-position.directive.ts","../../lib/src/modules/ui-kit/components/buttons/circle-button/circle-button.component.ts","../../lib/src/modules/ui-kit/components/buttons/circle-button/circle-button.component.html","../../lib/src/shared-ui-test-1.ts"],"sourcesContent":["import { NgModule, Directive, Input, TemplateRef, ViewContainerRef, OnInit } from '@angular/core';\n\n/**\n * Directive has been taken from\n * @link https://github.com/ngrx-utils/ngrx-utils/blob/master/projects/store/src/directives/ngLet.ts\n */\n\nexport class NgLetContext {\n public $implicit: any = null;\n public ngLet: any = null;\n}\n\n@Directive({\n selector: '[ngLet]',\n})\nexport class NgLetDirective implements OnInit {\n private _context = new NgLetContext();\n\n @Input()\n set ngLet(value: any) {\n this._context.$implicit = this._context.ngLet = value;\n }\n\n constructor(private _vcr: ViewContainerRef, private _templateRef: TemplateRef<NgLetContext>) {\n }\n\n public ngOnInit(): void {\n this._vcr.createEmbeddedView(this._templateRef, this._context);\n }\n}\n\n@NgModule({\n declarations: [NgLetDirective],\n exports: [NgLetDirective],\n})\nexport class NgLetModule {\n}\n","import {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {ClipboardModule} from '@angular/cdk/clipboard';\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatBadgeModule} from '@angular/material/badge';\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatListModule} from '@angular/material/list';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatSortModule} from '@angular/material/sort';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatTreeModule} from '@angular/material/tree';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@NgModule({\n exports: [\n A11yModule,\n //CdkAccordionModule,\n ClipboardModule,\n //CdkListboxModule,\n MatInputModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n OverlayModule,\n PortalModule,\n ScrollingModule,\n MatFormFieldModule,\n ]\n})\nexport class MaterialModule {}\n\n\n/** Copyright 2022 Google LLC. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at http://angular.io/license */","import { Directive, Renderer2, ElementRef, AfterViewInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Directive({\n selector: '[appFlipCard]',\n})\n\nexport class FlipCardDirective implements AfterViewInit {\n @Input() public navigateUrl: string;\n constructor(private renderer: Renderer2,\n private el: ElementRef,\n private router: Router) {\n }\n\n public ngAfterViewInit(): void {\n this.renderer.listen(this.el.nativeElement, 'click', (event) => {\n if (event.target.classList.contains('icon-info')) {\n this.flipCard(this.el.nativeElement);\n } else {\n this.detailNavigationRoute();\n }\n });\n }\n\n public flipCard(card: any): void {\n if (card.classList.contains('hover')) {\n this.renderer.removeClass(card, 'hover');\n } else {\n this.renderer.addClass(card, 'hover');\n }\n }\n\n public detailNavigationRoute(): void {\n if (this.navigateUrl) {\n this.router.navigateByUrl(this.navigateUrl);\n }\n }\n\n}\n","import { PipeTransform, Pipe } from '@angular/core';\n\n@Pipe({ name: 'firstLetterText' })\nexport class FirstLetterTextPipe implements PipeTransform {\n public transform (value: string): any {\n if (!value) {\n return '';\n }\n return value.match(/\\b(\\w)/g).join('');\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { IBaseCardItem } from '../../interface/card.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\n@Component({\n selector: 'app-dynamic-card-front',\n templateUrl: './dynamic-card-front.component.html',\n styleUrls: ['./dynamic-card-front.component.scss']\n})\nexport class DynamicCardFrontComponent {\n \n @Input() public cardItem: IKeyValue;\n @Input() public isFlip: boolean;\n}\n","<ng-container>\n <mat-card-content class=\"conatiner\">\n <span class=\"text\">\n <img class=\"img-fluid img-decoration\" *ngIf=\"cardItem.imageUrl\" [src]=\"cardItem.imageUrl\" />\n <span class=\"card-icon\" *ngIf=\"cardItem.icon\"><i class=\"{{cardItem.icon}}\"></i></span>\n <span class=\"circletext\" *ngIf=\"!cardItem.imageUrl && !cardItem.icon\">{{cardItem.label|firstLetterText|uppercase}}</span>\n <br>\n <span class=\"subheading\" translate>{{cardItem.label}}</span>\n </span>\n </mat-card-content>\n</ng-container>","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-dynamic-card-footer',\n templateUrl: './dynamic-card-footer.component.html',\n styleUrls: ['./dynamic-card-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DynamicCardFooterComponent {\n\n @Input() public routeLink: string;\n\n constructor(private router: Router) { }\n \n public moreRoute(event: MouseEvent): void {\n this.router.navigateByUrl(this.routeLink);\n event.stopPropagation();\n }\n\n}\n","<div class=\"footer-icon\">\n <span translate (click)=\"moreRoute($event)\">+ More</span>\n</div>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\n@Component({\n selector: 'app-dynamic-card-back',\n templateUrl: './dynamic-card-back.component.html',\n styleUrls: ['./dynamic-card-back.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DynamicCardBackComponent {\n\n @Input() public cardItem: IKeyValue;\n \n}\n","<ng-container>\n <mat-card-content class=\"cardDisplay back\">\n <mat-card-title>{{ cardItem.title }}</mat-card-title>\n <mat-card-subtitle>{{ cardItem.title }}</mat-card-subtitle>\n <p translate>\n {{ cardItem.description }}\n </p>\n <span class=\"fas fa-info-circle icon-info flip-icon-trigger\"></span>\n <app-dynamic-card-footer *ngIf=\"cardItem.moreNavigateUrl\" [routeLink]=\"cardItem.moreNavigateUrl\"></app-dynamic-card-footer>\n </mat-card-content>\n</ng-container>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\n@Component({\n selector: 'app-dynamic-card',\n templateUrl: './dynamic-card.component.html',\n styleUrls: ['./dynamic-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DynamicCardComponent {\n\n @Input() public cardItem: IKeyValue;\n\n}\n","<ng-container>\n <mat-card appFlipCard [navigateUrl]=\"cardItem.detailNavigateUrl\"\n class=\"card-container flip col-md-12 col-lg-4 col-sm-12 card-fl\">\n <div class=\"flip-card clearfix {{cardItem.styleClasses}}\">\n <mat-card-content class=\"cardDisplay front flip-loading\">\n <app-dynamic-card-front [cardItem]=\"cardItem\" [isFlip]=\"true\"></app-dynamic-card-front>\n <mat-card-actions>\n <i *ngIf=\"cardItem.description\" class=\"fas fa-info-circle icon-info flip-icon-trigger\"></i>\n <app-dynamic-card-footer *ngIf=\"cardItem.moreNavigateUrl\" [routeLink]=\"cardItem.moreNavigateUrl\">\n </app-dynamic-card-footer>\n </mat-card-actions>\n </mat-card-content>\n <mat-card-content>\n <app-dynamic-card-back *ngIf=\"cardItem.description\" [cardItem]=\"cardItem\"></app-dynamic-card-back>\n </mat-card-content>\n </div>\n </mat-card>\n</ng-container>\n","import { IKeyValue } from '../../../interfaces/generic.interface';\n\nexport const COLUMN_ID: IKeyValue = {\n HEADER: 'ID',\n PROP: '',\n get _PROP(): string {\n return this.PROP;\n },\n set _PROP(value: string) {\n this.PROP = value;\n },\n EMPTY_ROW_VAL: '-1',\n NO_PARENT_VAL: null,\n};\n","export enum ColumnTypes {\n String = 'String',\n Boolean = 'Boolean',\n Integer = 'Number',\n Reference = 'Reference',\n Nested = 'Nested',\n Date = 'Date',\n}\n","import { IKeyValue } from '../../../interfaces/generic.interface';\n\nexport const ROW: IKeyValue = {\n ROOT_DEPTH: 0,\n};\n","import { isDate } from 'lodash';\nimport { IDataTableColumnFilterValue } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport moment from 'moment';\n\nexport class DataTableColumnFilterBetweenValue implements IDataTableColumnFilterValue {\n public getFilterValue(filterValue: IKeyValue): string {\n if (!isDate(filterValue.endDate) || !isDate(filterValue.endDate)) {\n return '';\n }\n filterValue.endDate = this.adjustOneDay(filterValue.endDate, 1, -1);\n return `'${filterValue.startDate.toISOString()}' AND '${filterValue.endDate.toISOString()}'`;\n }\n\n public matchWithFilterValue(rowValue: IKeyValue, filterValue: IKeyValue): boolean {\n const dates = this.removeSingleQuotesFromValue(<any> filterValue).split(' AND ');\n return this.isSameOrBetween(rowValue, dates);\n }\n\n public setInitValues(context): void {\n const { dateRangeFormGroup, filterParam, filterOption, numberOfTableRefresh, isUpdatedFilterDesign } = context;\n let filterValues = [];\n if (numberOfTableRefresh === 1) {\n filterValues = (filterOption && filterOption.initValue) ? \n this.removeSingleQuotesFromValue(filterOption.initValue).split(' AND ')\n : [];\n } else if (numberOfTableRefresh > 1 && !isUpdatedFilterDesign) {\n filterValues = (filterParam && filterParam.filterValue) ? \n this.removeSingleQuotesFromValue(filterParam.filterValue).split(' AND ')\n : [];\n } else {\n filterValues[0] = (filterParam && filterParam.filterValue && filterParam.filterValue[0]) ? \n this.removeSingleQuotesFromValue(filterParam.filterValue[0]) : null;\n filterValues[1] = (filterParam && filterParam.filterValue && filterParam.filterValue[1]) ? \n this.removeSingleQuotesFromValue(filterParam.filterValue[1]) : null;\n }\n const startDate = filterValues && filterValues[0] ? new Date(filterValues[0]) : null;\n let endDate = filterValues && filterValues[1] ? new Date(filterValues[1]) : null;\n if (!isUpdatedFilterDesign) {\n endDate = this.adjustOneDay(endDate, -1, 1);\n }\n dateRangeFormGroup.controls['startDate'].setValue(startDate);\n dateRangeFormGroup.controls['endDate'].setValue(endDate);\n context.setDateValue('startDate');\n context.setDateValue('endDate');\n }\n\n public isFormInvalid(context): boolean {\n return !context.dateRangeFormGroup.valid;\n }\n\n public resetValue(context): void {\n context.dateRangeFormGroup.controls['startDate'].setValue(null);\n context.dateRangeFormGroup.controls['endDate'].setValue(null);\n }\n\n private adjustOneDay(endDate, day: number, sec: number): any {\n if (!isDate(endDate)) {\n return;\n }\n const date = new Date(endDate.setDate(endDate.getDate() + day));\n return new Date(date.setSeconds(date.getSeconds() + sec));\n }\n\n private removeSingleQuotesFromValue(initValue: string): string {\n if (!initValue) {\n return '';\n }\n return initValue.toString().replace(/'/g, '');\n }\n \n private isSameOrBetween(rowValue: IKeyValue, dates: string[]): boolean {\n return moment(rowValue).isSameOrAfter(dates[0]) && moment(rowValue).isSameOrBefore(dates[1]);\n }\n}\n","import { IDataTableColumnFilterValue } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\nexport class DataTableColumnFilterContainsValue implements IDataTableColumnFilterValue {\n \n public getFilterValue(filterValue: IKeyValue): string {\n return filterValue && filterValue.toString();\n }\n\n public matchWithFilterValue(rowValue: IKeyValue, filterValue: IKeyValue): boolean {\n return rowValue.includes(filterValue.toLocaleLowerCase());\n }\n\n public setInitValues(context): void {\n const { filterValue, filterParam, filterOption, numberOfTableRefresh } = context;\n if (numberOfTableRefresh === 1) {\n filterValue.setValue(filterOption ? filterOption.initValue : '');\n } else if (filterParam) {\n filterValue.setValue(filterParam ? filterParam.filterValue : '');\n }\n context.filterWorkingValue = filterValue.value;\n }\n\n public isFormInvalid(context): boolean {\n return !context.filterValue.value;\n }\n \n public resetValue(context): void {\n context.filterValue.setValue('');\n }\n}\n","import { IFilterOption } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/api.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport { IDataTableColumnFilterValue } from '../../../data-table/interfaces/filter-value-executor.interface';\n\nexport class DataTableColumnFilterInValue implements IDataTableColumnFilterValue {\n \n public setFilterValue(filterOption: IFilterOption, filterValue: IKeyValue, data: IKeyValue): IKeyValue {\n if (!data) {\n return undefined;\n }\n if (!filterValue) {\n filterValue = [];\n }\n if (filterOption.bindProp) {\n const idx = filterValue.indexOf(data[filterOption.bindProp]);\n if (idx > -1) {\n filterValue.splice(idx, 1);\n } else if (idx === -1) {\n filterValue.push(data[filterOption.bindProp]);\n }\n }\n\n return filterValue;\n }\n \n public isCheckedFilterValue(filterOption: IFilterOption, filterValue: IKeyValue, data: IKeyValue): boolean {\n if (!data) {\n return false;\n }\n if (!filterValue) {\n filterValue = [];\n }\n if (filterOption.bindProp) {\n return filterValue.indexOf(data[filterOption.bindProp]) > -1;\n }\n return false;\n }\n\n public getFilterValue(filterValue: string[], isUpdatedTableDesign = false): string {\n return filterValue.map(val => isUpdatedTableDesign ? val.toString() : `'${val}'`).toString();\n }\n\n public matchWithFilterValue(rowValue: IKeyValue, filterValue: IKeyValue): boolean {\n return filterValue.toLocaleLowerCase().indexOf(rowValue) > -1;\n }\n\n public setInitValues(context): void {\n const { filterParam, filterOption, numberOfTableRefresh } = context;\n if (numberOfTableRefresh === 1) {\n context.filterWorkingValue = (filterOption && filterOption.initValue) ? \n this.removeSingleQuotesFromValue(filterOption.initValue).split(',')\n : [];\n } else {\n context.filterWorkingValue = (filterParam && filterParam.filterValue) ? \n this.removeSingleQuotesFromValue(filterParam.filterValue).split(',')\n : [];\n }\n }\n\n public isFormInvalid(context): boolean {\n return !context.filterWorkingValue || context.filterWorkingValue.length < 1;\n }\n\n public resetValue(context): void {\n context.filterWorkingValue = [];\n }\n \n private removeSingleQuotesFromValue(initValue: string): string {\n if (!initValue) {\n return '';\n }\n return initValue.toString().replace(/'/g, '');\n }\n}\n","export enum DataTableColumnFilterTypes {\n IN = 'IN',\n BETWEEN = 'BETWEEN',\n EQUAL = 'EQUAL',\n LIKE = 'LIKE',\n CONTAINS = 'CONTAINS',\n}\n\nexport enum DataTableColumnFilterInputTypes {\n TEXT = 'TEXT',\n CHECKBOX = 'checkbox',\n REFERENCE = 'reference',\n DATE_RANGE = 'date_range',\n SLIDER = 'slider',\n}\n","import { Injectable } from '@angular/core';\nimport { DataTableColumnFilterSliderValue } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value';\nimport { DataTableColumnFilterBetweenValue } from '../../../../../../modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value';\nimport { DataTableColumnFilterContainsValue } from '../../../../../../modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value';\nimport { DataTableColumnFilterInValue } from '../../../../../../modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value';\nimport { DataTableColumnFilterInputTypes, DataTableColumnFilterTypes } from '../../../../../../modules/ui-kit/components/data-table/enums/col-filter-types';\nimport { IDataTableColumnFilterValue } from '../../../../../../modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class FilterValueExecutorProvider {\n\n private inValue: DataTableColumnFilterInValue = new DataTableColumnFilterInValue();\n private betweenValue: DataTableColumnFilterBetweenValue = new DataTableColumnFilterBetweenValue();\n private containsValue: DataTableColumnFilterContainsValue = new DataTableColumnFilterContainsValue();\n private sliderBetweenValue: DataTableColumnFilterContainsValue = new DataTableColumnFilterSliderValue();\n\n public getFilterValueExecutorProvider(type: string): IDataTableColumnFilterValue {\n switch (type) {\n case DataTableColumnFilterTypes.CONTAINS:\n case DataTableColumnFilterInputTypes.TEXT:\n return this.containsValue;\n case DataTableColumnFilterTypes.IN:\n case DataTableColumnFilterInputTypes.CHECKBOX:\n case DataTableColumnFilterInputTypes.REFERENCE:\n return this.inValue;\n case DataTableColumnFilterTypes.BETWEEN:\n case DataTableColumnFilterInputTypes.DATE_RANGE:\n return this.betweenValue;\n case DataTableColumnFilterInputTypes.SLIDER: \n return this.sliderBetweenValue;\n default:\n return this.containsValue;\n }\n }\n}\n","export enum CodeRefsProp {\n ID = 'sysKey', \n BUSINESSKEY = 'businessKey',\n LOOKUPTYPESYSKEY = 'lookupTypeSysKey',\n LOOKUPTYPEBUSINESSKEY = 'lookupTypeBusinessKey',\n SOURCESYSCODE = 'sourceSysCode',\n COUNTRYCODE = 'countryCode',\n CODE = 'code',\n VALUE = 'value',\n ALTCODE = 'altCode',\n ALTVALUE = 'altValue',\n LEVELNUMBER = 'levelNumber',\n LEVELNAME = 'levelName',\n CREATEDBY = 'createdBy',\n UPDATEDBY = 'updatedBy',\n CREATEDON = 'createdOn',\n UPDATEDON = 'updatedOn',\n CANONICALSYSKEY= 'canonicalSysKey',\n CANONICALBUSINESSKEY = 'canonicalBusinessKey',\n PARENTTYPESYSKEY = 'parentTypeSysKey',\n PARENTTYPEBUSINESSKEY = 'parentTypeBusinessKey',\n PARENTSYSKEY = 'parentSysKey',\n NUMBEROFVALUES = 'numberOfValues',\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport cloneDeep from 'lodash/cloneDeep';\nimport remove from 'lodash/remove';\nimport { isFunction, isUndefined, isNull } from 'lodash';\nimport { IDataTableColumn, IDataTableRow, IRowData, IDataTableRowData } from '../interfaces/data-table.interface';\nimport { COLUMN_ID } from '../components/data-table/constants/column-id';\nimport { IKeyValue } from '../interfaces/generic.interface';\nimport { Basic, BasicArr } from '../types/basic.type';\nimport { ColumnTypes } from '../enums/column-types.enum';\nimport { ROW } from '../components/data-table/constants/row';\nimport { SelectOptionValue } from '../types/select.type';\nimport { IFilterParam } from '../interfaces/api.interface';\nimport { FilterValueExecutorProvider } from '../components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider';\nimport { DataTableColumnFilterTypes } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/enums/col-filter-types';\nimport { CodeRefsProp } from '../enums/coderefs-prop.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataTableService {\n\n \n public searchedRowCount$: Subject<number> = new Subject<number>();\n private filterValueExecutorProvider: FilterValueExecutorProvider = new FilterValueExecutorProvider();\n private FILTER_TYPES = DataTableColumnFilterTypes;\n\n public getRowDataId(rowData: IRowData): string {\n return rowData[COLUMN_ID.PROP] || COLUMN_ID.NO_PARENT_VAL;\n }\n\n public getRowId(row: IDataTableRow): string {\n return this.getRowDataId(row.data);\n }\n\n public getValueByPropertyName(row: IDataTableRow, propertyName: string): string {\n return row.data[propertyName];\n }\n\n public isEmptyRow(row: IDataTableRow): boolean {\n return this.isEmptyRowData(row.data);\n }\n\n public isEmptyRowData(rowData: IRowData): boolean {\n return this.getRowDataId(rowData) === COLUMN_ID.EMPTY_ROW_VAL;\n }\n\n public getRowsFromRowsData(rowsData: IRowData[]): IDataTableRow[] {\n const rowsDataMap: IRowData[] = cloneDeep(rowsData);\n\n return this.mapDataRowsToRows(rowsDataMap, ROW.ROOT_DEPTH - 1);\n }\n\n public applyFilter(filterParams: IFilterParam[], columns: IDataTableColumn[], dataRows: IDataTableRow[]): IDataTableRow[] {\n return dataRows.filter((item) => {\n return filterParams\n .every((filterParam) => {\n const column = columns.find(col => { \n return col.prop === filterParam.filterColumn.prop;\n });\n const value = item.data[filterParam.filterColumn.prop];\n return !isUndefined(value) && !isNull(value) && this.matchWithFilterValue(value, column, item, filterParam)\n \n });\n });\n }\n\n public formatValue(colValue: SelectOptionValue, column: IDataTableColumn, rowData: IDataTableRowData): string {\n return isFunction(column.formatterFn)\n ? column.formatterFn(colValue, rowData)\n : this.getColStringVal(colValue);\n }\n\n public getRowsDataFromRows(rows: IDataTableRow[]): IRowData[] {\n const rowsMap: IDataTableRow[] = cloneDeep(rows);\n return this.mapRowsToRowsDataRecursively(rowsMap);\n }\n\n public mapRowsToRowsDataRecursively(rows: IDataTableRow[]): IRowData[] {\n return rows.map((row: IDataTableRow) => {\n const rowData: IRowData = this.getRowDataFromRow(row);\n\n if (this.hasRowChildren(row)) {\n rowData.children = this.mapRowsToRowsDataRecursively(\n row.data.children,\n );\n }\n\n return rowData;\n });\n }\n\n public getRowDataFromRow(row: IDataTableRow): IRowData {\n return {\n ...row.data,\n id: (row.isLocal ? null : this.getRowId(row)),\n localId: this.getRowId(row),\n };\n }\n\n public getRow(\n rowData: IKeyValue = {}, depth: number = ROW.ROOT_DEPTH, parentId: string = COLUMN_ID.NO_PARENT_VAL, isLocal = false,\n ): IDataTableRow {\n return {\n data: {\n children: [],\n ...rowData,\n },\n isEditing: this.isEmptyRowData(rowData),\n isSaving: false,\n isExpanded: false,\n depth,\n parentId,\n isLocal,\n };\n }\n\n public hasRowChildren(row: IDataTableRow): boolean {\n return row.data.children &&\n row.data.children.length > 0;\n }\n\n public getEmptyRowData(viewColumns: IDataTableColumn[], defaultRowValues: IKeyValue): IKeyValue {\n const emptyRowData: IKeyValue = {};\n\n viewColumns.forEach((column: IDataTableColumn) => {\n emptyRowData[column.prop] = Object.hasOwnProperty.call(defaultRowValues, column.prop)\n ? defaultRowValues[column.prop]\n : this.getEmptyColumnVal(column);\n });\n\n return emptyRowData;\n }\n\n public getRowsWithInsertedRow(parentId: string, rows: IDataTableRow[], insertedRow: IDataTableRow): IDataTableRow[] {\n const newRows: IDataTableRow[] = cloneDeep(rows);\n if (parentId === COLUMN_ID.NO_PARENT_VAL) {\n newRows.unshift(insertedRow);\n } else {\n this.insertRowByParentIdRecursively(parentId, newRows, insertedRow);\n }\n\n return newRows;\n }\n\n public insertRowByParentIdRecursively(parentId: string, rows: IDataTableRow[], insertedRow: IDataTableRow, isFound = false): void {\n rows.forEach((row: IDataTableRow) => {\n if (isFound) {\n return;\n }\n\n const rowId: string = this.getRowId(row);\n\n if (rowId === parentId) {\n row.data.children.push(insertedRow);\n row.isExpanded = true;\n isFound = true;\n } else if (this.hasRowChildren(row)) {\n this.insertRowByParentIdRecursively(parentId, row.data.children, insertedRow, isFound);\n }\n });\n }\n\n public getRowsWithRemovedRow(searchRowId: string, rows: IDataTableRow[]): IDataTableRow[] {\n const newRows: IDataTableRow[] = cloneDeep(rows);\n\n this.removeRowByIdRecursively(searchRowId, newRows);\n\n return newRows;\n }\n\n public removeRowByIdRecursively(searchRowId: string, rows: IDataTableRow[], isFound = false): void {\n rows.forEach((row: IDataTableRow) => {\n if (isFound) {\n return;\n }\n\n const rowId: string = this.getRowId(row);\n\n if (rowId === searchRowId) {\n remove(rows as any, (removeRow: IDataTableRow) => this.getRowId(removeRow) === searchRowId);\n isFound = true;\n } else if (this.hasRowChildren(row)) {\n this.removeRowByIdRecursively(searchRowId, row.data.children as IDataTableRow[], isFound);\n }\n });\n }\n\n public getNewRowId(): string {\n return new Date().getTime().toString();\n }\n\n public setEmptyValuesInRowData(row: IDataTableRow, columns: IDataTableColumn[]): void {\n columns.forEach(col => {\n row.data[col.prop] = this.getEmptyColumnVal(col);\n });\n }\n \n public matchWithFilterValue(rowValue, column, row, filterParam): boolean {\n const formatedValue = this.formatValue(rowValue, column, row.data).toLocaleLowerCase();\n const filterValueMaker = this.filterValueExecutorProvider\n .getFilterValueExecutorProvider(filterParam && filterParam.filterType || this.FILTER_TYPES.CONTAINS);\n return filterValueMaker.matchWithFilterValue(<any> formatedValue, filterParam.filterValue);\n }\n\n private mapDataRowsToRows(\n rowsData: IKeyValue[], depth: number = ROW.ROOT_DEPTH, parentId: string = COLUMN_ID.NO_PARENT_VAL,\n ): IDataTableRow[] {\n depth += 1;\n\n return rowsData.map((rowData: IKeyValue) => {\n const dataTableRow: IDataTableRow = this.getRow(\n rowData,\n depth,\n parentId,\n false,\n );\n\n if (this.hasRowChildren(dataTableRow)) {\n dataTableRow.data.children = this.mapDataRowsToRows(\n dataTableRow.data.children,\n depth,\n this.getRowDataId(rowData),\n );\n }\n return dataTableRow;\n });\n }\n\n private getEmptyColumnVal(column: IDataTableColumn): Basic | BasicArr {\n let val: Basic | BasicArr;\n\n if (column.prop === COLUMN_ID.PROP) {\n val = COLUMN_ID.EMPTY_ROW_VAL;\n } else if (column.type === ColumnTypes.Boolean) {\n val = false;\n } else if (column.prop === CodeRefsProp.NUMBEROFVALUES) {\n val = 0;\n } else {\n val = null;\n }\n return val;\n }\n\n private getColStringVal(colValue: SelectOptionValue): string {\n return isUndefined(colValue) || isNull(colValue)\n ? ''\n : colValue.toString();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isUndefined, isNull } from 'lodash';\nimport { DataTableService } from '../../modules/ui-kit/services/data-table.service';\nimport { IKeyValue } from '../../modules/ui-kit/interfaces/generic.interface';\n\n@Pipe({ name: 'search' })\nexport class SearchPipe implements PipeTransform {\n\n constructor(private dataTableService: DataTableService) { }\n\n public transform(items: any[], search: string, columns?: string[]): IKeyValue[] {\n\n if (isUndefined(columns)) {\n columns = [];\n }\n\n if (search) {\n items = items.filter((item) => {\n if (item.data) {\n return this.findItem(item.data, search, columns);\n }\n return this.findItem(item, search, columns);\n });\n }\n\n if (items) {\n this.dataTableService.searchedRowCount$.next(items.length);\n }\n\n return items;\n }\n\n private findItem(item: any, search: string, columns: string[]): boolean {\n if (columns.length === 0) {\n columns = this.getAllProperties(item);\n }\n \n return columns.filter((column) => \n this.ifDefinedAndNotNull(item, column) && this.isMatched(item[column], search),\n ).length > 0;\n }\n\n private getAllProperties(item: IKeyValue): string[] {\n return Object.keys(item);\n }\n\n private isMatched(data: any, searchValue: string): boolean {\n return data.toString().toLocaleLowerCase().includes(searchValue.toLocaleLowerCase());\n }\n\n private ifDefinedAndNotNull(data: any, propertyName: string): boolean {\n return !isUndefined(data[propertyName]) && !isNull(data[propertyName]);\n }\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { ICardListConfiguration } from 'idp-apps-shared-ui/modules/dynamic-cards/interface/card-list.interface';\nimport { IBaseCardItem } from 'idp-apps-shared-ui/modules/dynamic-cards/interface/card.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\n@Component({\n selector: 'app-card-list-container',\n templateUrl: './card-list-container.component.html',\n styleUrls: ['./card-list-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class CardListContainerComponent {\n\n @Input() public dataSource: IBaseCardItem[];\n @Input() public configuration: ICardListConfiguration;\n public searchValue: string;\n \n}\n","<h1 class=\"header\">{{ configuration.searchConfiguration.searchBoxTitle }}</h1>\n<div class=\"input-container\" *ngIf=\"configuration.isSearchAllow && dataSource\">\n <section class=\"search\">\n\n <form ngForm>\n <div class=\"searchbar-wrapper\">\n <i class=\"fa-solid fa-magnifying-glass searchbar-i\" aria-hidden=\"true\"></i>\n <input matInput type=\"text\" placeholder=\"{{ configuration.searchConfiguration.searchBoxPlaceHolder }}\"\n name=\"search\" [(ngModel)]=\"searchValue\">\n </div>\n </form>\n </section>\n</div>\n\n\n<div class=\"container-fluid\">\n\n <ng-container *ngFor=\"let item of dataSource | search: searchValue; let i=index;\">\n\n <app-dynamic-card *ngIf=\"dataSource\" [cardItem]=\"item\"></app-dynamic-card>\n\n </ng-container>\n\n</div>","import { Directive, Input, ElementRef, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { UserManagementService } from 'idp-apps-shared-ui/core/services/user-management.service';\n\n@Directive({\n selector: '[hasPermission]',\n})\nexport class AuthorizedDirective {\n \n constructor(\n private element: ElementRef,\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private userMangementService: UserManagementService,\n ) {\n }\n\n @Input()\n set hasPermission(val) {\n if (this.userMangementService.hasPermission(val)) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n @Input()\n set hasPermissionElse(val) {\n if (val) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseDataColComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component';\nimport { IListResApi } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/api.interface';\nimport { IViewConstants } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/constants.interface';\nimport { ISelectOption } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/select.interface';\nimport { get } from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class SupportUtilService {\n\n public static getIListResApiFromResponse<T>(response: T[]): IListResApi<T> {\n return { itemsTotal: response.length, resultSet: response };\n }\n\n public static mapArrayResponseToObject(response: ISelectOption[]): IViewConstants {\n return response.reduce((data: IViewConstants, item: ISelectOption) => {\n data[item.value + ''] = item;\n return data;\n }, {});\n }\n\n public static disableDataTableComponentsControl(\n { components, controlValues }: { components: BaseDataColComponent[]; controlValues: boolean[]; }): void {\n components.forEach((item: BaseDataColComponent, index: number) => {\n item.disableControl(controlValues[index]);\n });\n }\n\n public static sortBy<T>(collection: T[], prop: string, order: string = 'ASC'): T[] {\n const compReturn = order === 'ASC' \n ? 1 \n : order === 'DESC'\n ? -1\n : 0;\n \n return collection.sort((a, b) => get(a, prop) > get(b, prop) ? compReturn : -compReturn);\n }\n\n public getHumanReadableFileSize(sizeInBytes: number, isSiUnit: boolean = true, toFixed: number = 1): string {\n const thresh = isSiUnit ? 1000 : 1024;\n \n if (Math.abs(sizeInBytes) < thresh) {\n return sizeInBytes + ' B';\n }\n \n const units = isSiUnit \n ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] \n : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n\n let unit = -1;\n const r = 10 ** toFixed;\n \n do {\n sizeInBytes /= thresh;\n ++unit;\n } while (this.aboveThreshAndInUnitRange(sizeInBytes, r, thresh, unit, units));\n \n return `${sizeInBytes.toFixed(toFixed)} ${units[unit]}`;\n }\n\n private aboveThreshAndInUnitRange(sizeInBytes: number, r: number, thresh: number, unit: number, units: string[]): boolean {\n return Math.round(Math.abs(sizeInBytes) * r) / r >= thresh && unit < units.length - 1;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './confirm-modal.component.html',\n styleUrls: ['./confirm-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConfirmModalComponent {\n\n public header: string = '';\n public body: string = '';\n public action: string = '';\n\n constructor(\n @Inject(MatDialogRef) private matDialogRef: MatDialogRef<ConfirmModalComponent>,\n @Inject(MAT_DIALOG_DATA) data,\n ) {\n this.header = data.header;\n this.body = data.body;\n this.action = data.action;\n }\n\n public onClickConfirm(): void {\n this.matDialogRef.close(true);\n }\n\n public closeDialog(): void {\n this.matDialogRef.close(false);\n }\n}\n","<div class=\"dialog-window\">\n\n <div fxLayout=\"row\" class=\"dialog-head\" fxLayoutAlign=\"start center\">\n <span fxFlex class=\"header\">{{ header }}</span>\n <mat-icon (click)=\"closeDialog()\" class=\"mat-icon material-icons mat-icon-no-color\">close</mat-icon>\n </div>\n \n <div class=\"dialog-content\" mat-dialog-content>\n {{ body }}\n </div>\n \n <div fxLayout=\"row\" class=\"dialog-action\" fxLayoutAlign=\"end end\">\n <button mat-flat-button color=\"accent\" class=\"odp-button b-mr\" [mat-dialog-close]=\"null\">Cancel</button>\n <button mat-raised-button color=\"primary\" class=\"odp-button\" (click)=\"onClickConfirm()\">{{ action }}</button>\n </div>\n \n</div>","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[appAccordion]',\n})\nexport class AccordionDirective {\n\n public isOpen = false;\n\n public toggleOpen(): void {\n this.isOpen = !this.isOpen;\n }\n}\n","import { Component } from '@angular/core';\nimport { AccordionDirective } from '../accordion.directive';\n\n@Component({\n selector: 'app-accordion-content',\n templateUrl: './accordion-content.component.html',\n styleUrls: ['./accordion-content.component.scss'],\n})\nexport class AccordionContentComponent {\n constructor(public accordion: AccordionDirective) { }\n}\n","<ng-content *ngIf=\"accordion.isOpen\"></ng-content>\n","import { Directive, HostListener, HostBinding } from '@angular/core';\nimport { AccordionDirective } from './accordion.directive';\n\n@Directive({\n selector: '[appAccordionTrigger]',\n})\nexport class AccordionTriggerDirective {\n\n @HostBinding('style.cursor')\n public readonly cursor = 'pointer';\n\n constructor(private accordion: AccordionDirective) {\n }\n\n @HostListener('click')\n public onClick(): void {\n if (!this.accordion) {\n return;\n }\n this.accordion.toggleOpen();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { BannerService, IBanner } from 'idp-apps-shared-ui/modules/ui-kit/components/banner/banner.service';\n\n@Component({\n selector: 'app-banner',\n templateUrl: './banner.component.html',\n styleUrls: ['./banner.component.scss'],\n})\nexport class BannerComponent implements OnInit {\n public bannerStack: IBanner[];\n\n constructor(\n private bannerService: BannerService,\n private router: Router,\n ) { }\n\n public ngOnInit(): void {\n this.router.events\n .subscribe(\n (event) => {\n if (event instanceof NavigationStart) {\n this.bannerStack = [];\n this.bannerService.bannerStack = [];\n }\n });\n this.bannerService.latestBannerStack$\n .subscribe(banners => {\n this.bannerStack = banners;\n banners.forEach(ban => {\n if (ban.config && ban.config.closeAfterInMs) {\n setTimeout(() => {\n this.close(ban);\n }, ban.config.closeAfterInMs);\n } else if (ban.type !== 'error') {\n setTimeout(() => {\n this.close(ban);\n }, 5000);\n }\n\n });\n });\n }\n\n public close(banner: IBanner): void {\n this.bannerService.closeById(banner.id);\n if (banner.config && banner.config.afterCloseFunc) {\n banner.config.afterCloseFunc(banner);\n }\n }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" \n class=\"background alert animate__animated animate__fadeInDown\" \n *ngFor=\"let banner of bannerStack\" \n [ngStyle]=\"{'background': banner.bgColor}\">\n <div align=\"center\" class=\"justify-content-center px-3\" fxFlex [ngStyle]=\"{'color': banner.type === 'info' ? '#404040' : '#FFF'}\">\n <span><i class=\"fas {{banner.icon}} mr-2\"></i></span>{{banner.message}}\n </div>\n <mat-icon (click)=\"close(banner)\" class=\"mr-20 cursor-pointer close-icon\" [ngStyle]=\"{'color': banner.type === 'info' ? '#595959' : '#FFF'}\">close</mat-icon>\n</div>\n","export function isBoolean(value: any): value is boolean {\n return typeof value === 'boolean';\n}\nexport function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nexport function isObject(value: any): value is object {\n return typeof value === 'object' && value !== null;\n}\n\nexport function isString(value: any): value is string {\n return typeof value === 'string';\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\nexport function isNull(value: any): boolean {\n return value === null;\n}\n\nexport function isNullOrWhitespace(value: string | number): boolean {\n if (value === undefined || value === null) {\n return true;\n }\n return value.toString().trim() === '';\n}\n\nexport function isNullOrUndefinedOrWhitespace(value: string): boolean {\n return isNullOrWhitespace(value);\n}\n\nexport function isNullOrUndefined(value: object | boolean | any): boolean {\n return value === undefined || value === null;\n}\n","export enum CrumbServiceEnum {\n MAPKEY = 'mapkey',\n KEYS = 'keyArray',\n KEY = 'key',\n VALUE = 'value',\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { isUndefined } from '../../../../../core/utils/type-checks.utils';\nimport { CrumbServiceEnum } from '../utils/crumb-service.enum';\nimport { BreadCrumbItem } from '../model/breadCrumbItem';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadCrumbService {\n\n private breadCrumbItems: Array<BreadCrumbItem> = new Array<BreadCrumbItem>();\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService) { }\n\n public getBreadCrumbItems(): Array<BreadCrumbItem> {\n return this.breadCrumbItems;\n }\n\n public initializeBreadCrumb(): void {\n this.clearBreadCrumb();\n }\n\n public clearBreadCrumb(): void {\n if (this.breadCrumbItems) {\n this.breadCrumbItems.length = 0;\n }\n this.setMapToStorage(this.breadCrumbItems);\n }\n\n public triggerOnPageRefresh(object: BreadCrumbItem): void {\n this.addItemToBreadCrumb(object);\n }\n\n public getRedirectionUrl(index: number): string {\n return this.breadCrumbItems[index].key;\n }\n\n public removeBreadCrumbItems(index: number): void {\n this.breadCrumbItems = this.breadCrumbItems.slice(0, index + 1);\n }\n\n public addItemToBreadCrumb(object: BreadCrumbItem): void {\n const item = this.findItem(object);\n if (!isUndefined(item)) {\n item.value = object.value;\n } else {\n this.breadCrumbItems.push(object);\n }\n this.setMapToStorage(this.breadCrumbItems);\n }\n\n private findItem(object: BreadCrumbItem): BreadCrumbItem | undefined {\n if (object.value) {\n return this.breadCrumbItems.find((item: BreadCrumbItem) => (item.key === object.key));\n }\n return undefined;\n }\n\n private setMapToStorage(breadCrumbItems: Array<BreadCrumbItem>): void {\n this.storage.set(CrumbServiceEnum.MAPKEY, breadCrumbItems);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BreadCrumbService } from './service/breadcrumb.service';\nimport { BreadCrumbItem } from './model/breadCrumbItem';\n\n@Component({\n selector: 'app-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n})\nexport class BreadcrumbsComponent implements OnInit {\n\n public breadCrumbItems: Array<BreadCrumbItem>;\n\n constructor(private router: Router,\n private breadCrumbService: BreadCrumbService) { }\n\n public crumbLinkClicked(index: number): void {\n this.breadCrumbService.removeBreadCrumbItems(index);\n this.router.navigateByUrl(this.breadCrumbService.getRedirectionUrl(index), { skipLocationChange: false });\n }\n\n public ngOnInit(): void {\n this.breadCrumbItems = this.breadCrumbService.getBreadCrumbItems();\n }\n\n}\n","<div class=\"breadcrumb-container\">\n <i class=\"fa-solid fa-house breadcrumb-home\"></i>\n <span>\n <i class=\"material-icons\">keyboard_arrow_right</i>\n </span>\n <nav aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n <ng-container *ngFor=\"let item of breadCrumbItems; let i = index;\">\n <span *ngIf=\"i === breadCrumbItems.length - 1\" class=\"active\">\n {{ item.value }}\n </span>\n <ng-container *ngIf=\"i !== breadCrumbItems.length - 1\">\n <a (click)=\"crumbLinkClicked(i)\">\n {{ item.value }}\n </a>\n <span><i class=\"material-icons\">keyboard_arrow_right</i></span>\n </ng-container>\n </ng-container>\n </ol>\n </nav>\n</div>","export enum ComponentSizes {\n Large = 'lg',\n Small = 'sm',\n}\n","export enum ColorSchemes {\n Primary = 'primary',\n Secondary = 'secondary',\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Dark = 'dark',\n Light = 'light',\n Danger = 'danger'\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IKeyValue } from '../../interfaces/generic.interface';\nimport { ColorSchemes } from '../../enums/color-schemes.enum';\nimport { ComponentSizes } from '../../enums/component-sizes.enum';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderComponent {\n @Input() public colorScheme: ColorSchemes = ColorSchemes.Primary;\n @Input() public componentSize: ComponentSizes;\n\n public get colorSchemeClass(): string {\n return `text-${this.colorScheme}`;\n }\n\n public get componentSizeNgClass(): IKeyValue {\n return { [`spinner-border-${this.componentSize}`]: this.componentSize };\n }\n}\n","<div\n class=\"spinner-border {{colorSchemeClass}}\"\n [ngClass]=\"componentSizeNgClass\"\n>\n <span class=\"sr-only\">Loading...</span>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, HostBinding } from '@angular/core';\nimport { ComponentSizes } from '../../../enums/component-sizes.enum';\nimport { ColorSchemes } from '../../../enums/color-schemes.enum';\n\n@Component({\n selector: 'app-button-control',\n templateUrl: './button-control.component.html',\n styleUrls: ['./button-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonControlComponent {\n @Input() public title: string;\n @Input() public colorScheme: ColorSchemes;\n @Input() public isLoading: boolean;\n @Input() public isLink: boolean;\n @Input() public isDisabled: boolean;\n\n @HostBinding('attr.disabled')\n get isDisableAttr(): boolean | null {\n return this.isDisabled ? true : null;\n }\n\n public readonly COMPONENT_SIZES: typeof ComponentSizes = ComponentSizes;\n\n public get colorSchemeClass(): string {\n if (this.isLink) {\n return `btn-link`;\n }\n\n return `btn-${this.colorScheme}`;\n }\n\n public get loaderColorScheme(): ColorSchemes {\n if (this.colorScheme === ColorSchemes.Primary) {\n return ColorSchemes.Light;\n }\n\n return ColorSchemes.Dark;\n\n }\n}\n","<button\n class=\"button-control btn {{colorSchemeClass}}\"\n role=\"button\"\n title=\"{{title}}\"\n [disabled]=\"isDisabled\"\n>\n <span\n *ngIf=\"!isLoading\"\n class=\"title\"\n >{{ title }}</span>\n\n <app-loader\n *ngIf=\"isLoading\"\n [colorScheme]=\"loaderColorScheme\"\n [componentSize]=\"COMPONENT_SIZES.Small\"\n ></app-loader>\n</button>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'app-buttons-list',\n templateUrl: './buttons-list.component.html',\n styleUrls: ['./buttons-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonsListComponent {}\n","<section class=\"buttons-list\">\n <ng-content></ng-content>\n</section>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'app-card-container',\n templateUrl: './card-container.component.html',\n styleUrls: ['./card-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardContainerComponent {\n\n}\n","<section class=\"card\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">\n <ng-content select=\"card-container-title\"></ng-content>\n </h5>\n <h6 class=\"card-subtitle text-muted\">\n <ng-content select=\"card-container-subtitle\"></ng-content>\n </h6>\n <section class=\"body\">\n <ng-content select=\"card-container-body\"></ng-content>\n </section>\n </div>\n</section>\n","export const BREADCRUMB_KEY = 'breadcrumb';\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil, filter } from 'rxjs/operators';\nimport { BREADCRUMB_KEY } from '../../../../../constants/breadcrumbs.const';\nimport { IBreadcrumbItem } from '../interface/breadcrumb.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService implements OnDestroy {\n\n private _breadcrumbs: BehaviorSubject<IBreadcrumbItem[]> = new BehaviorSubject([]);\n\n get breadcrumbs$(): Observable<IBreadcrumbItem[]> {\n return this._breadcrumbs.asObservable().pipe(\n distinctUntilChanged(),\n );\n }\n\n set breadcrumbs(value: IBreadcrumbItem[]) {\n this._breadcrumbs.next(value);\n }\n\n get breadcrumbs(): IBreadcrumbItem[] {\n return this._breadcrumbs.value;\n }\n\n private readonly baseHref = '/';\n\n private clearSubs$ = new Subject();\n\n constructor(\n private router: Router,\n ) {\n router.events.pipe(\n filter(evt => evt instanceof NavigationEnd),\n distinctUntilChanged(),\n takeUntil(this.clearSubs$),\n ).subscribe(this.routeChangeHandler.bind(this));\n }\n\n public routeChangeHandler(): void {\n this.breadcrumbs = this.makeBreadcrumbs(this.router.routerState.root.firstChild, this.baseHref)\n .filter(bread => bread.label); \n }\n\n public makeBreadcrumbs(activatedRoute: ActivatedRoute, parentRoute: string = ''): IBreadcrumbItem[] {\n\n const currentBreadcrumb = this.makeSingleCrumb(activatedRoute, parentRoute);\n const childBreadcrumbs = activatedRoute.firstChild\n ? this.makeBreadcrumbs(\n activatedRoute.firstChild,\n currentBreadcrumb ? `${currentBreadcrumb.route}/` : '',\n )\n : [];\n\n if (!currentBreadcrumb) {\n return childBreadcrumbs;\n }\n\n return [\n currentBreadcrumb,\n ...childBreadcrumbs,\n ];\n\n }\n\n public makeSingleCrumb(activatedRoute: ActivatedRoute, parent: string): IBreadcrumbItem | undefined {\n const segment = activatedRoute.snapshot.url.join('/');\n\n if (!segment) {\n return undefined;\n }\n\n return {\n label: activatedRoute.snapshot.data[BREADCRUMB_KEY],\n route: parent + segment,\n };\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n }\n\n}\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IBreadcrumbItem } from './interface/breadcrumb.interface';\nimport { BreadcrumbService } from './service/breadcrumb.service';\n\n@Component({\n selector: 'app-common-breadcrumbs',\n templateUrl: './common-breadcrumbs.component.html',\n styleUrls: ['./common-breadcrumbs.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CommonBreadcrumbsComponent implements OnInit {\n public breadcrumbs$: Observable<IBreadcrumbItem[]>;\n public HomeHref:string=`/portal`;\n\n /**\n * separator between breadcrumbs\n * defaults to '/'. Other options could be '.' or '-' or '>' etc.\n *\n */\n @Input() public separator = '/';\n\n constructor(private breadcrumbService: BreadcrumbService) {}\n\n public ngOnInit(): void {\n this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n }\n}\n","<div class=\"breadcrumb-container\">\n\n <a [href]=\"HomeHref\">\n <em class=\"breadcrumb-ico fa-solid fa-house\"></em>\n </a>\n\n <span>\n <i class=\"material-icons\">keyboard_arrow_right</i>\n </span>\n <nav aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n <ng-container *ngFor=\"let breadcrumb of breadcrumbs$ | async; last as isLast\">\n <li [ngClass]=\"{ active: isLast }\" [attr.aria-current]=\"isLast ? 'page' : null\" *ngIf=\"!breadcrumb.skip\">\n <a class=\"link-decoration\" *ngIf=\"!isLast; else lastRoute\" [routerLink]=\"[breadcrumb.route]\"\n routerLinkActive=\"active\">\n {{ breadcrumb.label }}\n <span><i class=\"material-icons\">keyboard_arrow_right</i></span>\n </a>\n <ng-template #lastRoute>\n <label class=\"current-path\">{{ breadcrumb.label }}</label>\n </ng-template>\n </li>\n </ng-container>\n </ol>\n </nav>\n</div>\n","export enum SelectOptionEnum {\n EMPTY= '',\n DEFAULTLABEL = 'Select ...',\n SEPERATOR = ',',\n ADDCONTROL = 'addCtl',\n LABEL = 'label',\n VALUE= 'value',\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { IDataTableColumn } from '../../../interfaces/data-table.interface';\n\n@Component({\n selector: 'app-base-form-control',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseFormControlComponent implements OnChanges {\n @Input() public control: FormControl;\n @Input() public placeholder: string;\n @Input() public label: string;\n @Input() public id: string;\n @Input() public name: string;\n @Input() public col: IDataTableColumn;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (this.isControlValueNotDefined(changes)) {\n this.setEmptyControl();\n }\n }\n\n private isControlValueNotDefined(changes: SimpleChanges): boolean {\n return changes.control &&\n (changes.control.currentValue === null ||\n changes.control.currentValue === undefined);\n }\n\n private setEmptyControl(): void {\n this.control = new FormControl('');\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, \n Input, OnChanges, Output, SimpleChanges, AfterViewInit, ViewChild, TemplateRef } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Observable } from 'rxjs';\nimport { SelectOptionEnum } from '../../../enums/select-option.enum';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\nimport { ISelectOption } from '../../../interfaces/select.interface';\nimport { BaseFormControlComponent } from '../base-form-control/base-form-control.component';\nimport { INgSelectCustomCssObject } from 'idp-apps-shared-ui/modules/query-builder/interfaces/select-custom-css-object';\n\n/*Select docs https://ng-select.github.io/ng-select#/data-sources*/\n@Component({\n selector: 'app-select-form-control',\n templateUrl: './select-form-control.component.html',\n styleUrls: ['./select-form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectFormControlComponent extends BaseFormControlComponent implements OnChanges, AfterViewInit {\n @ViewChild(NgSelectComponent, { static: true }) public ngSelect: NgSelectComponent;\n @Input() public ngSelectCustomCssObject: INgSelectCustomCssObject = { appendToBody: 'body'}\n @Input() public isMultiple: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public isAddEnabled: boolean = false;\n @Input() public searchable: boolean = true;\n @Input() public optionTemplate: TemplateRef<any>;\n @Input() public getOptionsFn: Observable<ISelectOption[]>;\n\n @Input() public shouldCloseOnSelect: boolean = true;\n @Output() public valueChanged: EventEmitter<IKeyValue> = new EventEmitter();\n @Output() public onFirstValueSet: EventEmitter<IKeyValue> = new EventEmitter();\n\n public readonly BIND_LABEL: string = SelectOptionEnum.LABEL;\n public readonly BIND_VALUE: string = SelectOptionEnum.VALUE;\n\n public viewOptions: ISelectOption[];\n\n constructor() {\n super();\n }\n\n @Input()\n set options(value: ISelectOption[]) {\n this.viewOptions = cloneDeep(value);\n }\n\n public override ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (changes['options'] && changes['options'].firstChange) {\n this.fireFirstValueSet(this.control.value);\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.optionTemplate) {\n this.ngSelect.optionTemplate = this.optionTemplate;\n }\n }\n\n public onValueChanged(value: IKeyValue): void {\n this.valueChanged.emit(value);\n }\n\n protected fireFirstValueSet(value: IKeyValue): void {\n this.onFirstValueSet.emit(value);\n }\n}\n","<label\n *ngIf=\"label\"\n class=\"form-label\"\n [attr.for]=\"id\"\n>\n {{ label }}\n</label>\n <ng-select\n bindLabel=\"{{BIND_LABEL}}\"\n bindValue=\"{{BIND_VALUE}}\"\n placeholder=\"{{placeholder}}\"\n labelForId=\"{{ id }}\"\n [formControl]=\"control\"\n [items]=\"viewOptions\"\n [multiple]=\"isMultiple\"\n [closeOnSelect]=\"shouldCloseOnSelect\"\n (change)=\"onValueChanged($event)\"\n [ngClass]=\"{disabledSelect: isDisabled}\"\n [addTag] = \"isAddEnabled\"\n [appendTo]=\"ngSelectCustomCssObject.appendToBody\"\n [searchable]=\"searchable\"\n></ng-select>\n\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ISelectOption } from '../../interfaces/select.interface';\nimport { IPaginationParams } from '../../interfaces/generic.interface';\nimport { INgSelectCustomCssObject } from 'idp-apps-shared-ui/modules/query-builder/interfaces/select-custom-css-object';\n\n@Component({\n selector: 'app-data-pagination',\n templateUrl: './data-pagination.component.html',\n styleUrls: ['./data-pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataPaginationComponent implements OnInit, OnDestroy {\n\n @Input() public totalRowCount$: Observable<number>;\n @Input() public count: number;\n @Input() public page: number;\n @Input() public pageSizeOptions: number[] = [];\n @Input() public size: number;\n @Input() public selectionCount: number = 0;\n @Input() public numberOfLinks: number = 5;\n @Input() public hasDropdownStylePageSize: boolean = true;\n\n public paginationEndReached: boolean;\n public control: FormControl;\n public options: ISelectOption[];\n public renderedPages: number[];\n\n @Output() public changePage: EventEmitter<IPaginationParams> = new EventEmitter();\n @Output() public changePageSize: EventEmitter<IPaginationParams> = new EventEmitter();\n public ngSelectCustomCss: INgSelectCustomCssObject = { appendToBody: null }\n private readonly FIRST_PAGE: number = 1;\n\n private minPage: number;\n private maxPage: number;\n private clearSubs$ = new Subject();\n\n constructor(private changeDetector: ChangeDetectorRef) {\n\n }\n\n public ngOnInit(): void {\n if (this.pageSizeOptions.length === 0) {\n this.pageSizeOptions = getDefaultOptions();\n }\n this.options = this.convertToOptions(this.pageSizeOptions);\n this.control = new FormControl('');\n this.control.setValue(this.size);\n this.subscribeRowCountChange();\n this.setPages();\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n }\n\n public getVisibleItemsIndex(): string {\n return `${this.getFirstIndex()}-${this.getLastIndex()}`;\n }\n\n public get isLeftDotsVisible(): boolean {\n return this.minPage > this.FIRST_PAGE;\n }\n\n public get isRightDotsVisible(): boolean {\n return this.maxPage < this.pagesCount;\n }\n\n public get maxMinDifference(): number {\n return this.numberOfLinks - 1;\n }\n\n public get isLastPage(): boolean {\n return this.page === this.pagesCount;\n }\n\n public get isFirstPage(): boolean {\n return this.page === 1;\n }\n\n public setPages(): void {\n const eachSideLinks = Math.floor(this.numberOfLinks / 2);\n\n let minPage = this.page - eachSideLinks;\n minPage = Math.max(minPage, this.FIRST_PAGE);\n\n let maxPage = minPage + this.maxMinDifference;\n maxPage = Math.min(maxPage, this.pagesCount);\n\n if ( maxPage - this.maxMinDifference > this.FIRST_PAGE ) {\n minPage = Math.min(maxPage - this.maxMinDifference, minPage);\n }\n\n this.minPage = minPage;\n this.maxPage = maxPage;\n // tslint:disable-next-line: no-unused\n this.renderedPages = Array.from({ length: maxPage - minPage + 1 }, (v, k) => k + minPage );\n }\n\n public onClickPrev(): void {\n this.page = this.page - 1;\n this.emitEvent();\n }\n\n public onClickNext(): void {\n this.page = this.page + 1;\n this.emitEvent();\n }\n\n public pageLinkClicked(page: number): void {\n this.page = page;\n this.emitEvent();\n }\n\n public pageSizeChanged(): void {\n this.setPaginationDataOnValueChange(this.getFirstItemIndex(), this.control.value);\n }\n\n public onPageSizeClicked(selectedPageSize: number): void {\n this.setPaginationDataOnValueChange(this.getFirstItemIndex(), selectedPageSize);\n }\n\n public getFirstItemIndex(): number {\n let firstItemIndexInPage = 0;\n if (this.page > this.FIRST_PAGE) {\n firstItemIndexInPage = (this.page - 1) * this.size;\n }\n return firstItemIndexInPage;\n }\n\n private getFirstIndex(): number {\n return Math.min(this.getFirstItemIndex() + 1, this.count);\n }\n\n private getLastIndex(): number {\n return Math.min(this.getFirstItemIndex() + this.size, this.count);\n }\n\n private subscribeRowCountChange(): void {\n this.totalRowCount$\n .pipe(takeUntil(this.clearSubs$))\n .subscribe((rowCount) => {\n this.count = rowCount;\n this.setPages();\n this.changeDetector.detectChanges();\n });\n }\n\n private setPaginationDataOnValueChange(firstItemIndexInPage: number, selectedPageSize: number): void {\n this.size = selectedPageSize;\n this.page = Math.floor(firstItemIndexInPage / this.size) + 1;\n this.emitEvent();\n }\n\n private emitEvent(): void {\n this.setPages();\n this.changePage.emit({ currentPage: this.page, pageSize: this.size });\n }\n\n private get pagesCount(): number {\n return Math.ceil(this.count / this.size);\n }\n\n private convertToOptions(optionsarray: number[]): ISelectOption[] {\n return optionsarray.map((item) => {\n return { label: item.toString(), value: item };\n });\n }\n\n}\n\nfunction getDefaultOptions(): number[] {\n return [5, 10, 20, 50, 100];\n}\n","<nav class=\"data-pagination\">\n <div class=\"rowsperpage\">\n <span class=\"select-label\" *ngIf=\"hasDropdownStylePageSize\">Rows</span>\n <span class=\"select-label page-size-label\" *ngIf=\"!hasDropdownStylePageSize\">Page Size</span>\n <span class=\"selectcontrol\" *ngIf=\"hasDropdownStylePageSize\">\n <app-select-form-control [ngSelectCustomCssObject]=\"ngSelectCustomCss\" [searchable]=\"false\" [control]=\"control\" [options]=\"options\"\n (valueChanged)=\"pageSizeChanged()\">\n </app-select-form-control>\n </span>\n <span class=\"single-row-page-size\" *ngIf=\"!hasDropdownStylePageSize\">\n <span *ngFor=\"let pageSize of pageSizeOptions\">\n <span\n class=\"single-row-page-size-item\"\n [class.selected]=\"size === pageSize\"\n (click)=\"onPageSizeClicked(pageSize)\"> {{pageSize}}\n </span>\n </span>\n </span>\n </div>\n <div class=\"description\" *ngIf=\"renderedPages.length > 0\">\n <span class=\"description-text\">Items {{ getVisibleItemsIndex() }} of {{ count }}</span>\n </div>\n <div class=\"pagination-wrapper\" *ngIf=\"count > 0\">\n <ul class=\"pagination\">\n <li *ngIf=\"!isFirstPage\">\n\n <span class=\"arrow\" (click)=\"onClickPrev()\"><em class=\"fas fa-play fa-rotate-180\"></em></span>\n\n </li>\n <li *ngIf=\"isLeftDotsVisible\">\n <span class=\"page-link dots\"><em class=\"fas fa-circle\"></em><em class=\"fas fa-circle\"></em><em\n class=\"fas fa-circle\"></em></span>\n </li>\n <li *ngFor=\"let p of renderedPages\">\n <span class=\"page-link\" [ngClass]=\"{ currentpage: p === page }\" (click)=\"pageLinkClicked(p)\">\n {{ p }}</span>\n </li>\n <li *ngIf=\"isRightDotsVisible\">\n <span class=\"page-link dots\"><em class=\"fas fa-circle\"></em><em class=\"fas fa-circle\"></em><em\n class=\"fas fa-circle\"></em></span>\n </li>\n <li *ngIf=\"!isLastPage\">\n\n <span class=\"arrow\" (click)=\"onClickNext()\"><em class=\"fas fa-play\"></em></span>\n </li>\n </ul>\n </div>\n</nav>","export enum DataTableActions {\n EDIT = 'edit',\n CLONE = 'clone',\n VIEW = 'view',\n DELETE = 'delete',\n}\n","export enum ChangeType {\n ROW_ADDED,\n ROW_DELETED,\n ROW_UPDATED,\n OTHER,\n}\n","export class DataTableConstants {\n public static readonly EMPTY: string = '';\n public static readonly DEFAULT_PAGE_SIZE: number = 10;\n public static readonly DEFAULT_INIT_PAGE: number = 1;\n public static readonly COPY_OF: string = 'Copy_of_';\n}\n","export enum ColumnDisableModes {\n AlwaysDisabled = 'AlwaysDisabled',\n AddModeDisabled = 'AddModeDisabled',\n EditModeDisabled = 'EditModeDisabled',\n}\n","export enum FormTypes {\n Add = 'add',\n Edit = 'edit',\n View = 'view',\n}\n","export enum Icons {\n Eye = 'far fa-eye',\n Edit = 'fas fa-pencil-alt',\n Trash = 'fas fa-trash-alt',\n Plus = 'far fa-plus',\n Save = 'icon-save',\n Cancel = 'icon-cancel',\n ChevronUp = 'fas fa-chevron-up',\n ChevronDown = 'fas fa-chevron-down',\n ChevronRight = 'fa-solid fa-chevron-right',\n Clone = 'fas fa-copy',\n ColumnSelector = 'icon-column',\n ListView = 'icon-list',\n CodeBranch = 'icon-graph-view',\n Home = 'fas fa-home-lg-alt',\n Search = 'fa-solid fa-magnifying-glass',\n Upload = 'fa-solid fa-upload',\n Sync = 'fa-solid fa-rotate',\n UPLOAD_SVG = 'svg-icon-upload',\n DOWNLOAD_SVG = 'icon-download',\n IconColumn = 'icon-column'\n}\n","export enum SnackbarTypes {\n Success = 'Success',\n Error = 'Error',\n Update = 'Update',\n Deleted = 'Deleted',\n}\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { IConfirmModalInterface } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/confirm-modal-data.interface';\n\n@Component({\n templateUrl: './delete-modal.component.html',\n styleUrls: ['./delete-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeleteModalComponent {\n\n public message: string[] = ['Do you really want to delete item?'];\n public closeButtonText: string;\n public hideCloseButton: boolean;\n public okButtonText: string;\n public title: string;\n\n constructor(@Inject(MatDialogRef) private matDialogRef: MatDialogRef<DeleteModalComponent>,\n @Inject(MAT_DIALOG_DATA) private data: IConfirmModalInterface) {\n if (data && data.message) {\n this.message = data.message;\n this.closeButtonText = data.closeButtonText;\n this.okButtonText = data.okButtonText;\n this.hideCloseButton = data.hideCloseButton;\n this.title = data.title;\n }\n }\n\n public onClickDelete(): void {\n this.matDialogRef.close(true);\n }\n\n public closeDialog(): void {\n this.matDialogRef.close(false);\n }\n}\n","<div class=\"dialog-window\">\n\n <div fxLayout=\"row\" class=\"dialog-head\" fxLayoutAlign=\"start center\">\n <span fxFlex class=\"header\">{{title ? title : 'Delete'}}</span>\n <mat-icon (click)=\"closeDialog()\" class=\"mat-icon material-icons mat-icon-no-color\" >close</mat-icon>\n </div>\n\n <ng-container *ngFor=\"let item of message\">\n <div class=\"dialog-content\" mat-dialog-content>\n {{ item }}\n </div>\n </ng-container>\n\n <div fxLayout=\"row\" class=\"dialog-action\" fxLayoutAlign=\"end end\">\n <button *ngIf=\"!hideCloseButton\" mat-flat-button color=\"accent\" class=\"odp-button b-mr\" [mat-dialog-close]=\"null\">{{closeButtonText ? closeButtonText : 'Cancel'}}</button>\n <button mat-raised-button color=\"primary\" class=\"odp-button\" (click)=\"onClickDelete()\">{{ okButtonText ? okButtonText : 'Delete'}}</button>\n </div>\n</div>\n","import { DataTableColumnFilterTypes } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/enums/col-filter-types';\nimport { isUndefined } from 'lodash';\nimport { IFilterParam } from '../../../interfaces/api.interface';\nimport { IDataTableColumn } from '../../../interfaces/data-table.interface';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\n\nexport class FilterManager {\n\n private filterParams: IKeyValue<IFilterParam> = {};\n\n public getFilterParams(): IFilterParam[] {\n return Object.keys(this.filterParams)\n .map(key => this.filterParams[key]);\n }\n\n public getFilterParam(column: IDataTableColumn): IFilterParam {\n return this.filterParams[column.prop];\n }\n\n public setFilterParams(filterParam: IFilterParam): void {\n if (this.isFilterColumnExists(filterParam)) {\n this.updateFilterParams(filterParam);\n } else {\n this.addFilterParams(filterParam);\n }\n }\n \n public setInitFilterParams(columns: IDataTableColumn[]): void {\n columns.forEach(col => {\n if (col && col.filterOption && col.filterOption.initValue) {\n this.setFilterParams({\n columnName: col.prop,\n filterType: col.filterOption.type || DataTableColumnFilterTypes.CONTAINS,\n filterValue: col.filterOption.initValue,\n filterColumn: col,\n });\n }\n });\n }\n\n public clearFilterParams(): void {\n this.filterParams = {};\n }\n\n private isFilterColumnExists(filterParam: IFilterParam): boolean {\n return !isUndefined(this.filterParams[filterParam.filterColumn.prop]);\n }\n\n private addFilterParams(filterParam: IFilterParam): void {\n if (filterParam.filterValue && filterParam.filterValue.toString().trim()) {\n this.filterParams[filterParam.filterColumn.prop] = filterParam;\n }\n }\n\n private updateFilterParams(filterParam: IFilterParam): void {\n delete this.filterParams[filterParam.filterColumn.prop];\n this.addFilterParams(filterParam);\n }\n}\n","import { QueryList } from '@angular/core';\nimport { BaseDataColComponent } from '../data-col/base-data-col/base-data-col.component';\nimport { IDataTableRow, IDataTableRowEvent } from '../../../interfaces/data-table.interface';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\nimport { FormService } from '../../../services/form.service';\nimport { IDataRowComponent, IDataTableComponent } from '../interfaces/data-table-component.interface';\n\nexport class GridApi {\n constructor(public dataTable: IDataTableComponent, public formService: FormService) {}\n\n public getColumnComponent(rowIndex: number, propertyKey: string): BaseDataColComponent {\n const columnComponents = this.getColumnComponents(rowIndex);\n return columnComponents.find((column: BaseDataColComponent) => column.col.prop === propertyKey);\n }\n\n public detectRowChanges(): void {\n this.getRowComponents().forEach((row) => row.changeDetectorRef.detectChanges());\n }\n\n public getAllRowsData(): IKeyValue {\n return this.dataTable.rows.map((row) => this.rowValue(row));\n }\n\n public getSelectedRowsData(): IKeyValue {\n return this.getSelectedRows().map((row) => this.rowValue(row));\n }\n\n public getSelectedRows(): IDataTableRow[] {\n return this.dataTable.getSelectedRows;\n }\n\n public getAllCheckedRows(): IDataTableRow[] {\n return this.dataTable.getAllCheckedRows;\n }\n\n public getAllExcludedRows(): IDataTableRow[] {\n return this.dataTable.excludedRows;\n }\n\n public getRows(): IDataTableRow[] {\n return this.dataTable.rows;\n }\n\n public getDisplayedRows(): IDataTableRow[] {\n return this.dataTable.getRows;\n }\n\n public triggerRowClone(rowEvent: IDataTableRowEvent): void {\n this.getRowComponentFromRow(rowEvent.row).onClickClone();\n }\n\n public triggerRowDelete(rowEvent: IDataTableRowEvent): void {\n this.getRowComponentFromRow(rowEvent.row).onClickDelete();\n }\n\n public triggerRowEditSave(rowEvent: IDataTableRowEvent): void {\n this.getRowComponentFromRow(rowEvent.row).onClickEditSave();\n }\n\n public triggerRowSaveCancel(rowEvent: IDataTableRowEvent): void {\n this.getRowComponentFromRow(rowEvent.row).onClickEditCancel();\n }\n\n public triggerRowEdit(rowEvent: IDataTableRowEvent): void {\n this.getRowComponentFromRow(rowEvent.row).onClickEdit();\n }\n\n public getAllTableRows(): number {\n return this.dataTable.count;\n }\n\n public clearCheckBoxSelectionData(): void {\n this.dataTable.selection.clear();\n }\n\n public hasMasterSelectChecked(): boolean {\n return this.dataTable.selection.hasValue() && this.dataTable.isAllSelected();\n }\n\n private getRowComponentFromRow(row: IDataTableRow): IDataRowComponent {\n return this.getRowComponents().find((rowComponent) => {\n return rowComponent.row === row;\n });\n }\n\n private getRowComponents(): QueryList<IDataRowComponent> {\n return this.dataTable.dataTableBody.rowComponents;\n }\n\n private getColumnComponents(rowIndex: number): BaseDataColComponent[] {\n return this.getRowComponents().toArray()[rowIndex].getColumnComponents();\n }\n\n private rowValue(row: IDataTableRow): IKeyValue {\n return row.formGroup ? this.formService.getFormValue(row.formGroup) : row.data;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface IBannerConfig {\n afterCloseFunc?: (banner: IBanner) => void;\n closeAfterInMs?: number;\n returnBanner?: boolean;\n}\nexport interface IBanner {\n id: number;\n message: string;\n type: string;\n bgColor: string;\n icon: string;\n config?: IBannerConfig;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BannerService {\n public latestBannerStack$ = new Subject<IBanner[]>();\n public bannerStack: IBanner[] = [];\n \n public info(message: string, config?: IBannerConfig): IBanner[] {\n if (config && config.returnBanner) {\n return this.addOnBannerStack(message, 'info', 'fa-exclamation-circle', '#ffffff', config);\n }\n\n return this.addOnBannerStack(message, 'info', 'fa-exclamation-circle', '#ffffff', config);\n }\n\n public success(message: string, config?: IBannerConfig): void | IBanner[] {\n if (config && config.returnBanner) {\n return this.addOnBannerStack(message, 'success', 'fa-check-circle', '#00c221', config);\n }\n\n this.addOnBannerStack(message, 'success', 'fa-check-circle', '#00c221', config);\n }\n\n public warning(message: string, config?: IBannerConfig): void | IBanner[] {\n if (config && config.returnBanner) {\n return this.addOnBannerStack(message, 'warning', 'fa-exclamation-triangle', '#ff9300', config);\n }\n\n this.addOnBannerStack(message, 'warning', 'fa-exclamation-triangle', '#ff9300', config);\n }\n\n public error(message: string, config?: IBannerConfig): void | IBanner[] {\n if (config && config.returnBanner) {\n return this.addOnBannerStack(message, 'error', 'fa-minus-circle', '#e20000', config);\n }\n\n this.addOnBannerStack(message, 'error', 'fa-minus-circle', '#e20000', config);\n }\n\n public closeById(id: number) {\n const idx = this.bannerStack.findIndex(ban => ban.id === id);\n if (idx > -1) {\n this.bannerStack.splice(idx, 1);\n }\n }\n\n private addOnBannerStack(message, type, icon, bgColor, config: IBannerConfig): IBanner[] {\n const banner = {\n id: this.bannerStack.length + 1,\n message: message,\n type: type,\n icon: icon,\n bgColor: bgColor,\n config: config,\n };\n this.bannerStack.unshift(banner);\n this.latestBannerStack$.next(this.bannerStack);\n if (config && config.returnBanner) {\n return <any> banner;\n }\n return [];\n }\n}\n","import { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { IDataTableColumn } from '../../../interfaces/data-table.interface';\nimport { ListItem } from '../../../interfaces/list-item.interface';\nimport { BannerService } from '../../../../../modules/ui-kit/components/banner/banner.service';\nimport { cloneDeep, isUndefined } from 'lodash';\nimport { LocalStorageService } from 'idp-apps-shared-ui/core/services/local-storage.service';\nimport { SourceTypesEnum } from 'idp-apps-shared-ui/enums/source-types.enum';\n\n@Component({\n selector: 'app-data-col-disp',\n templateUrl: './data-col-disp.component.html',\n styleUrls: ['./data-col-disp.component.scss'],\n})\n\nexport class DataColDispComponent implements OnInit {\n\n public selectedInLeftPanel: IDataTableColumn[] = [];\n public selectedInRightPanel: ListItem[] = [];\n @Output() public onVisibleColumnListChange = new EventEmitter();\n\n public columnNames: ListItem[];\n public columnsAvailable: IDataTableColumn[];\n public backupPreviouslyColumnVisibleList: IDataTableColumn[];\n public readonly sourceTypes: typeof SourceTypesEnum = SourceTypesEnum;\n public availableColumnsSortingActionStatus: boolean;\n public displayColumnsSortingActionStatus: boolean;\n\n constructor(\n private localStorageService: LocalStorageService,\n private banner: BannerService,\n public dialogRef: MatDialogRef<DataColDispComponent>,\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\n }\n\n public ngOnInit(): void {\n this.backupPreviouslyColumnVisibleList = cloneDeep(this.data.columns);\n this.columnNames = this.data.columns.filter((item) => item.isVisible)\n .map((x) => {\n return { header: x.header, prop: x.prop, isMetadataColumn: x.isMetaDataColumn };\n });\n this.columnsAvailable = this.data.defaultSortedColumns;\n this.onVisibleColumnListChange.emit(this.columnNames);\n }\n\n public leftItemClicked(column: IDataTableColumn): void {\n const index = this.selectedInLeftPanel.findIndex((item: IDataTableColumn) => item.prop === column.prop);\n if (index === -1) {\n this.selectedInLeftPanel.push(column);\n } else {\n this.selectedInLeftPanel.splice(index, 1);\n }\n }\n\n public leftSelected(column: IDataTableColumn): boolean {\n const index = this.selectedInLeftPanel.findIndex((item: IDataTableColumn) => item.prop === column.prop);\n return index > -1;\n }\n\n public rightItemClicked(column: ListItem): void {\n const index = this.selectedInRightPanel.findIndex((item: IDataTableColumn) => item.prop === column.prop);\n if (index === -1) {\n this.selectedInRightPanel.push(column);\n } else {\n this.selectedInRightPanel.splice(index, 1);\n }\n this.selectedInRightPanel = this.sortSelectedPanel();\n }\n\n private sortSelectedPanel(): ListItem[] {\n var result: ListItem[] = [];\n var selectedPanel = this.selectedInRightPanel;\n this.columnNames.forEach(function (column) {\n selectedPanel = selectedPanel.filter(function (item) {\n if (item.prop == column.prop) {\n result.push(item);\n }\n return true;\n });\n });\n return result;\n }\n\n public rightSelected(column: IDataTableColumn): boolean {\n const index = this.selectedInRightPanel.findIndex((item: IDataTableColumn) => item.prop === column.prop);\n return index > -1;\n }\n\n public singleRightClicked(): void {\n this.setColumnNamesFromStorage(this.selectedInLeftPanel);\n this.makeVisible(this.selectedInLeftPanel);\n }\n\n private setColumnNamesFromStorage(selectedColumns: IDataTableColumn[]) {\n if (!this.data.storageKey) {\n return;\n }\n const columns = selectedColumns.filter(x => {\n const index = this.columnNames.findIndex((value: ListItem) => value.prop === x.prop);\n return index < 0;\n }).map(function (item) {\n return <ListItem>{ header: item.header, prop: item.prop, isMetadataColumn: item.isMetaDataColumn };\n });\n columns.forEach(x => this.columnNames.push(x));\n }\n\n public doubleRightClicked(): void {\n this.setColumnNamesFromStorage(this.columnsAvailable)\n this.makeVisible(this.columnsAvailable);\n }\n\n public singleLeftClicked(): void {\n const toBeRemoved = this.selectedInRightPanel.map(x => x.prop);\n this.columnNames = this.columnNames.filter(x => !toBeRemoved.includes(x.prop));\n this.selectedInRightPanel = [];\n this.selectedInLeftPanel = [];\n this.onVisibleColumnListChange.emit(this.columnNames);\n }\n\n public doubleLeftClicked(): void {\n this.columnNames = [];\n this.selectedInRightPanel = [];\n this.selectedInLeftPanel = [];\n this.onVisibleColumnListChange.emit([]);\n }\n\n public okClicked(): void {\n this.data.status = 'OK';\n this.data.columns = this.completeSet();\n this.data.columns.some(c => c.isVisible)\n ? this.closeDialog(this.data)\n : this.backupPreviouslyVisibleColumn(this.data.status)\n }\n\n public cancelClicked(): void {\n this.data.status = 'CANCEL';\n this.backupPreviouslyVisibleColumn(this.data.status);\n this.closeDialog(this.data);\n }\n\n public backupPreviouslyVisibleColumn(status: string) {\n this.backupPreviouslyColumnVisibleList.forEach((element, index) => {\n this.data.columns[index].isVisible = element.isVisible;\n });\n if (status === 'OK') {\n this.emptySaveWarning();\n }\n }\n\n private emptySaveWarning(): void {\n this.banner.warning(`Column Configuration can't be saved without columns`);\n }\n\n public sortupClicked(): void {\n this.resortingSelectedRightColumnList();\n this.selectedInRightPanel.filter(x => x).forEach((selecteditem) => {\n const index = this.columnNames.findIndex((item) => item.prop === selecteditem.prop);\n if (index > 0) {\n const selectedIndex = this.selectedInRightPanel.findIndex(x => x.prop == this.columnNames[index - 1].prop)\n if (selectedIndex < 0) {\n this.columnNames = this.swapElements(this.columnNames, index, -1);\n }\n }\n });\n this.selectedInRightPanel = this.sortSelectedPanel();\n }\n\n public sortdownClicked(): void {\n this.resortingSelectedRightColumnList();\n this.selectedInRightPanel.sort((a, b) => this.columnNames.indexOf(a) - this.columnNames.indexOf(b));\n this.selectedInRightPanel.reverse().forEach((selecteditem) => {\n const index = this.columnNames.findIndex((item) => item.prop === selecteditem.prop);\n if (index < this.columnNames.length - 1) {\n const selectedIndex = this.selectedInRightPanel.findIndex(x => x.prop == this.columnNames[index + 1].prop)\n if (selectedIndex < 0) {\n this.columnNames = this.swapElements(this.columnNames, index, 1);\n }\n }\n });\n this.selectedInRightPanel = this.sortSelectedPanel();\n }\n\n private closeDialog(data: DialogData): void {\n this.dialogRef.close(data);\n }\n\n private makeVisible(selectedSet: IDataTableColumn[]): void {\n selectedSet.forEach((item: IDataTableColumn) => {\n const tempColumnIndex = this.columnNames.findIndex(x => x.prop === item.prop);\n if (tempColumnIndex < 0) {\n item.isVisible = true;\n this.columnNames.push({ header: item.header, prop: item.prop, isMetadataColumn: item.isMetaDataColumn });\n }\n });\n this.selectedInRightPanel = [];\n this.selectedInLeftPanel = [];\n this.onVisibleColumnListChange.emit(this.columnNames);\n }\n\n private completeSet(): IDataTableColumn[] {\n const tempCollection: (IDataTableColumn | undefined)[] = this.columnNames.map((item: ListItem) => {\n const tempColumn = this.columnsAvailable.find(x => x.prop === item.prop);\n if (tempColumn) {\n tempColumn.isVisible = true;\n }\n return tempColumn;\n });\n\n // added invisible columns at the end to complete the set\n this.columnsAvailable.filter(item => this.columnNames.findIndex(x => x.prop === item.prop) < 0)\n .forEach((item: IDataTableColumn) => {\n item.isVisible = false;\n tempCollection.push(item);\n });\n this.localStorageService.setItem(this.data.storageKey, this.columnNames);\n\n return tempCollection;\n }\n\n private swapElements(columns: ListItem[], index: number, direction: number): ListItem[] {\n let tempColumnIndex = index + direction;\n if (tempColumnIndex >= 0 && tempColumnIndex < columns.length) {\n const tempColumn = columns[tempColumnIndex];\n columns[tempColumnIndex] = columns[index];\n columns[index] = tempColumn;\n }\n return columns;\n }\n\n public hasMetadataSeparation(columns: IDataTableColumn[]): boolean {\n return columns.filter(x => x.isMetaDataColumn).length !== 0;\n }\n\n public sortingAvailbleColumns() {\n if (!this.availableColumnsSortingActionStatus) {\n this.columnsAvailable = this.columnsAvailable.sort((a, b) => a.header > b.header ? 1 : -1);\n } else {\n this.columnsAvailable = this.columnsAvailable.sort((a, b) => a.header > b.header ? -1 : 1);\n }\n this.availableColumnsSortingActionStatus = !this.availableColumnsSortingActionStatus;\n }\n\n public sortingDisplayColumns() {\n if (!this.displayColumnsSortingActionStatus) {\n this.columnNames = this.columnNames.sort((a, b) => a.header > b.header ? 1 : -1);\n } else {\n this.columnNames = this.columnNames.sort((a, b) => a.header > b.header ? -1 : 1);\n }\n this.displayColumnsSortingActionStatus = !this.displayColumnsSortingActionStatus;\n }\n\n public sortupDoubleClicked() {\n this.resortingSelectedRightColumnList();\n this.selectedInRightPanel.reverse().forEach((selecteditem) => {\n this.columnNames.unshift(this.columnNames.splice(this.columnNames.findIndex(item => item.prop === selecteditem.prop), 1)[0]);\n });\n }\n\n public sortdownDoubleClicked() {\n this.resortingSelectedRightColumnList();\n this.selectedInRightPanel.filter(x => x).forEach((selecteditem) => {\n let index = this.columnNames.findIndex(item => item.prop === selecteditem.prop);\n this.columnNames.push(this.columnNames.splice(index, 1)[0]);\n });\n }\n\n private resortingSelectedRightColumnList() {\n this.selectedInRightPanel.sort((a, b) => this.columnNames.indexOf(a) - this.columnNames.indexOf(b));\n }\n}\n\nexport interface DialogData {\n status: string;\n columns: IDataTableColumn[];\n defaultSortedColumns: IDataTableColumn[];\n storageKey?: string;\n metaDataColumns?: string[];\n}\n","<mat-card>\n <mat-card-title class=\"header data-col-disp\">\n Column Configuration\n <mat-icon (click)=\"cancelClicked()\">close</mat-icon>\n <mat-card-subtitle class=\"text\">\n Use the column configurator to customize your data table to view data relevant to you\n </mat-card-subtitle>\n </mat-card-title>\n <mat-card-content>\n <div class=\"wrapper\">\n <div class=\"content-wrapper d-flex flex-row\">\n <div class=\"left-panel\">\n <div class=\"panel-header\">\n <span>Available Columns</span>\n <span class=\"sorting-icon-position\"><i\n [ngClass]=\"!availableColumnsSortingActionStatus ? 'fa-solid fa-arrow-down-a-z' : 'fa-solid fa-arrow-down-z-a'\"\n [matTooltip]=\"!availableColumnsSortingActionStatus ? 'Click to see columns in asc order.' : 'Click to see columns in desc order.'\"\n [matTooltipPosition]=\"'right'\" (click)=\"sortingAvailbleColumns()\"></i></span>\n </div>\n <div class=\"panel-content-container\">\n <div class=\"panel-content\">\n <div *ngIf=\"!hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnsAvailable\" (click)=\"leftItemClicked(column)\"\n [ngClass]='{selected: leftSelected(column)}'>\n {{column.header}}\n </span>\n </div>\n <div *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnsAvailable\" (click)=\"leftItemClicked(column)\"\n [ngClass]='{selected: leftSelected(column)}'>\n {{column.header}}\n <span *ngIf=\"column.isMetaDataColumn\">*</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"selection-panel d-flex flex-column\">\n <a class=\"double-left selection\" (click)=\"doubleLeftClicked()\">\n <em class=\"fa-solid fa-angles-left\"></em>\n </a>\n <a class=\"single-left selection\" (click)=\"singleLeftClicked()\">\n <em class=\"fa-solid fa-chevron-left\"></em>\n </a>\n <a class=\"single-right selection\" (click)=\"singleRightClicked()\">\n <em class=\"fa-solid fa-chevron-right\"></em>\n </a>\n <a class=\"double-right selection\" (click)=\"doubleRightClicked()\">\n <em class=\"fa-solid fa-angles-right\"></em>\n </a>\n </div>\n <div class=\"right-panel\">\n <div class=\"panel-header\">\n <span>Displayed Columns</span>\n <span class=\"sorting-icon-position\"><i\n [ngClass]=\"!displayColumnsSortingActionStatus ? 'fa-solid fa-arrow-down-a-z' : 'fa-solid fa-arrow-down-z-a'\"\n [matTooltip]=\"!displayColumnsSortingActionStatus ? 'Click to see columns in asc order.' : 'Click to see columns in desc order.'\"\n [matTooltipPosition]=\"'right'\" (click)=\"sortingDisplayColumns()\"></i></span>\n </div>\n <div class=\"panel-content-container\">\n <div class=\"panel-content\">\n <div *ngIf=\"!hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnNames\" (click)=\"rightItemClicked(column)\"\n [ngClass]='{selected: rightSelected(column)}'>\n {{column.header}}\n </span>\n </div>\n <div *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnNames\" (click)=\"rightItemClicked(column)\"\n [ngClass]='{selected: rightSelected(column)}'>\n {{column.header}}\n <span *ngIf=\"column.isMetadataColumn\">*</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sort-panel flex-column\">\n <a class=\"double-left selection\" (click)=\"sortupDoubleClicked()\">\n <em class=\"fa-solid fa-angles-up\"></em>\n </a>\n <a class=\"single-left selection\" (click)=\"sortupClicked()\">\n <em class=\"fa-solid fa-chevron-up\"></em>\n </a>\n <a class=\"single-right selection\" (click)=\"sortdownClicked()\">\n <em class=\"fa-solid fa-chevron-down\"></em>\n </a>\n <a class=\"double-right selection\" (click)=\"sortdownDoubleClicked()\">\n <em class=\"fa-solid fa-angles-down\"></em>\n </a>\n </div>\n </div>\n </div>\n <div class=\"column-note\" *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span><span class=\"star\">*</span> System generated columns.</span>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-reverse\">\n <button mat-raised-button color=\"primary\" class=\"odp-button\" (click)=\"okClicked()\">OK</button>\n <button mat-flat-button color=\"accent\" class=\"odp-button b-mr\" (click)=\"cancelClicked()\">Cancel</button>\n </mat-card-actions>\n</mat-card>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport values from 'lodash/values';\nimport { isFunction, isNull, isUndefined } from '../../../../../../core/utils/type-checks.utils';\nimport { GridOptions, IDataTableColumn, IDataTableRow, ITableCell } from '../../../../interfaces/data-table.interface';\nimport { COLUMN_ID } from '../../constants/column-id';\nimport { SelectOptionValue } from '../../../../types/select.type';\nimport { IViewConstants } from '../../../../interfaces/constants.interface';\nimport { ISelectOption } from '../../../../interfaces/select.interface';\n\n@Component({\n selector: 'app-base-data-col',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseDataColComponent {\n\n public get controlId(): string {\n return `${this.col.prop}-${this.row.data[COLUMN_ID.PROP]}`;\n }\n\n public get controlValue(): string {\n return this.row.data[COLUMN_ID.PROP];\n }\n \n @Input() public row: IDataTableRow;\n @Input() public rowIndex: number;\n @Input() public columnIndex: number;\n @Input() public col: IDataTableColumn;\n @Input() public control: FormControl;\n @Input() public gridOptions: GridOptions;\n \n @Output() public onValueChanged: EventEmitter<any> = new EventEmitter();\n @Output() public changeExpandCollapse: EventEmitter<boolean> = new EventEmitter();\n\n public ValueChanged(): void {\n if (this.col.cellValueChanged) {\n const item = this.getColumnItem();\n this.col.cellValueChanged(item);\n }\n }\n\n public firstValueSet(): void {\n if (this.col.firstValueChanged) {\n const item = this.getColumnItem();\n this.col.firstValueChanged(item);\n }\n }\n\n public disableControl(disable: boolean): void {\n if (disable) {\n this.control.disable();\n } else {\n this.control.enable();\n }\n }\n\n // TODO: needs to be refactored\n /* tslint:disable-next-line:no-unused no-empty */\n public setData(newData: any): void {\n this.control.setValue(newData);\n }\n\n public formatValue(colValue: SelectOptionValue): string {\n return isFunction(this.col.formatterFn)\n ? this.col.formatterFn(colValue, this.row.data)\n : BaseDataColComponent.getColStringVal(colValue);\n }\n\n public findCellDisplayValue(displayValues: IViewConstants, value: SelectOptionValue): string {\n const chkValue = values(displayValues).find((option: ISelectOption) => option.value === value);\n if (chkValue) {\n return chkValue.label;\n }\n return '';\n }\n\n public getColumnItem(): ITableCell {\n return {\n row: this.row,\n rowIndex: this.rowIndex,\n columnIndex: this.columnIndex,\n currentValue: this.control.value,\n prevValue: this.row.data[this.col.prop],\n };\n }\n\n private static readonly getColStringVal = (colValue: SelectOptionValue): string =>\n isUndefined(colValue) || isNull(colValue)\n ? ''\n : colValue.toString();\n}\n","export enum FormItemType {\n Group = 'group',\n Array = 'array',\n Control = 'control',\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UrlService {\n public getUrlPartsFromRouterUrl(routerUrl: string): string[] {\n return routerUrl.split('/');\n }\n\n public removeUrlPartsFromEndRouterUrl(routerUrl: string, count: number): string {\n const urlParts: string[] = this.getUrlPartsFromRouterUrl(routerUrl);\n return urlParts.slice(0, -count).join('/');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IDataTableColumn } from '../../interfaces/data-table.interface';\nimport { UnionFormItem } from '../../interfaces/form.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormDataTableMapperService {\n public mapDataTableColumnToFormFields(columns: IDataTableColumn[]): UnionFormItem[] {\n return columns.map((column: IDataTableColumn) => ({\n prop: column.prop,\n validators: column.validators,\n }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, FormArray } from '@angular/forms';\nimport { FormItemType } from '../enums/form-item-type';\nimport { FormTypes } from '../enums/form-types.enum';\nimport { IDataTableColumn } from '../interfaces/data-table.interface';\nimport { IFormData, UnionFormItem } from '../interfaces/form.interface';\nimport { IKeyValue } from '../interfaces/generic.interface';\nimport { FormDataTableMapperService } from './mappers/form-data-table-mapper.service';\nimport { UrlService } from './url.service';\n\n@Injectable()\nexport class FormService {\n constructor(\n private urlService: UrlService,\n private formBuilder: FormBuilder,\n private formDataTableMapperService: FormDataTableMapperService,\n ) {}\n\n public disableForm(formGroup: FormGroup): void {\n formGroup.disable();\n }\n\n public enableForm(formGroup: FormGroup): void {\n formGroup.enable();\n }\n\n public getFormValue(formGroup: FormGroup): IKeyValue {\n return formGroup.value;\n }\n\n public getTitleByFormType(formType: string): string {\n if (formType === FormTypes.Add) {\n return 'Create';\n }\n\n if (formType === FormTypes.View) {\n return 'View';\n }\n\n if (formType === FormTypes.Edit) {\n return 'Edit';\n }\n\n return '';\n }\n\n public getBackFormUrl(currentUrl: string, formType: string): string {\n let removePartsCount: number;\n\n if (formType === FormTypes.Add) {\n removePartsCount = 1;\n } else {\n removePartsCount = 2;\n }\n\n return this.urlService.removeUrlPartsFromEndRouterUrl(currentUrl, removePartsCount);\n }\n\n public createForm(formFields: UnionFormItem[]): FormGroup {\n const controlsConfig: IKeyValue = {};\n\n formFields.forEach((formField: UnionFormItem) => {\n\n switch (formField.type) {\n case FormItemType.Group: {\n controlsConfig[formField.prop] = this.createForm(formField.group);\n break;\n }\n case FormItemType.Array: {\n controlsConfig[formField.prop] = new FormArray(\n formField.initValue || [],\n formField.validators || [],\n );\n break;\n }\n default: {\n controlsConfig[formField.prop] = new FormControl(\n formField.initValue || null,\n formField.validators || [],\n );\n }\n }\n\n });\n\n return this.formBuilder.group(controlsConfig);\n }\n\n public fillForm(formGroup: FormGroup, data: IFormData): void {\n Object.keys(formGroup.controls).forEach((key: string) => {\n this.setFormControlValue(formGroup, key, data[key]);\n });\n }\n\n public setFormControlValue<T>(formGroup: FormGroup, key: string, val: T): void {\n const formControl: AbstractControl = this.getFormControl(formGroup, key);\n formControl.setValue(val);\n }\n\n public getFormControlValue<T>(formGroup: FormGroup, key: string): T {\n const formControl: AbstractControl = this.getFormControl(formGroup, key);\n return formControl.value;\n }\n\n public getFormControl(formGroup: FormGroup, key: string): AbstractControl {\n return formGroup.get(key);\n }\n\n public createFormForDataTable(columns: IDataTableColumn[]): FormGroup {\n const formFields: UnionFormItem[] = this.formDataTableMapperService.mapDataTableColumnToFormFields(columns);\n return this.createForm(formFields);\n }\n}\n","export enum Position {\n Top = 'top',\n Right = 'right',\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { DataSnackbar } from '../../../../modules/ui-kit/interfaces/snackbar.interface';\n\n@Component({\n selector: 'app-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n})\nexport class SnackbarComponent {\n constructor(\n public snackBarRef: MatSnackBarRef<SnackbarComponent>,\n @Inject(MAT_SNACK_BAR_DATA) public data: DataSnackbar,\n ) {\n }\n}\n","<mat-card (click)=\"snackBarRef.dismiss()\">\n <mat-card-title>{{data.title}}</mat-card-title>\n <mat-card-subtitle>{{data.message}}</mat-card-subtitle>\n</mat-card>","export class SnackbarConstants {\n public static readonly DURATION: number = 3000;\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ColorSchemes } from '../enums/color-schemes.enum';\nimport { DataSnackbar } from '../interfaces/snackbar.interface';\nimport { Position } from '../enums/position.enum';\nimport { SnackbarComponent } from '../components/snackbar/snackbar.component';\nimport { BannerService, IBanner, IBannerConfig } from '../components//banner/banner.service';\nimport { SnackbarConstants } from '../constants/snackbar.constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnackbarService {\n constructor(\n public snackBar: MatSnackBar,\n private bannerService: BannerService,\n ) {\n }\n\n public success(message: string, config?: IBannerConfig | string): void {\n this.bannerService.success(message, typeof config !== 'string' ? config : null);\n }\n\n public info(message: string, config?: IBannerConfig | string): void {\n this.bannerService.info(message, typeof config !== 'string' ? config : null);\n }\n\n public error(message: string, config?: IBannerConfig | string): void {\n this.bannerService.error(message, typeof config !== 'string' ? config : null);\n }\n\n public warning(message: string, config?: IBannerConfig | string): void {\n this.bannerService.warning(message, typeof config !== 'string' ? config : null);\n }\n\n private openSnackBar(data: DataSnackbar, panelClass: string): void {\n this.snackBar.openFromComponent(SnackbarComponent, {\n horizontalPosition: Position.Right,\n verticalPosition: Position.Top,\n data,\n panelClass,\n duration: SnackbarConstants.DURATION,\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Icons } from '../../../enums/icons.enum';\nimport { ColorSchemes } from '../../../enums/color-schemes.enum';\n\n@Component({\n selector: 'app-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent {\n\n @Input() public name: Icons;\n @Input() public title: string;\n @Input() public colorScheme: ColorSchemes = ColorSchemes.Primary;\n @Input() public hasStyleOnHover: boolean = false;\n @Input() public isDisabled: boolean = false;\n\n public get iconClass(): string {\n return `text-${this.colorScheme} ${this.name} ${this.disabledClassName}`;\n }\n\n private get disabledClassName(): string {\n return this.isDisabled ? 'disabled' : '';\n }\n\n}\n","<i title=\"{{title}}\"\n class=\"icon {{iconClass}}\"\n [ngClass]=\"{ '-has-style-hover': hasStyleOnHover }\"\n></i>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DataTableActions } from '../../../../../modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum';\nimport { Icons } from '../../../enums/icons.enum';\nimport { SnackbarService } from '../../../services/snackbar.service';\n\n@Component({\n selector: 'app-data-table-row-actions',\n templateUrl: './data-table-row-actions.component.html',\n styleUrls: ['./data-table-row-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataTableRowActionsComponent {\n @Input() public canInlineEdit: boolean;\n @Input() public isEditing: boolean = false;\n @Input() public isSaving: boolean = false;\n @Input() public isTreeGrid: boolean;\n @Input() public isOnlyView: boolean;\n @Input() public isViewActionVisible: boolean;\n @Input() public hasEmptyRow: boolean;\n @Input() public isCloneVisible: boolean;\n @Input() public isDeleteVisible: boolean;\n \n @Output() public clickDelete: EventEmitter<number> = new EventEmitter();\n @Output() public clickEdit: EventEmitter<number> = new EventEmitter();\n @Output() public clickEditCancel: EventEmitter<number> = new EventEmitter();\n @Output() public clickEditSave: EventEmitter<number> = new EventEmitter();\n @Output() public clickView: EventEmitter<number> = new EventEmitter();\n @Output() public clickAdd: EventEmitter<number> = new EventEmitter();\n @Output() public clickClone: EventEmitter<number> = new EventEmitter();\n\n public readonly ICONS: typeof Icons = Icons;\n public readonly DATA_TABLE_ACTIONS: typeof DataTableActions = DataTableActions;\n\n constructor (private snackbarService: SnackbarService) { }\n \n public getActionClass(actionType: DataTableActions): string {\n return `action-${actionType}`;\n }\n\n public onClickAdd(): void {\n this.clickAdd.emit();\n }\n \n public onClickEdit(): void {\n this.clickEdit.emit();\n }\n\n public onClickClone(): void {\n this.clickClone.emit();\n }\n\n public onClickView(): void {\n this.clickView.emit();\n }\n\n public onClickDelete(): void {\n this.clickDelete.emit();\n }\n\n public onClickCancel(): void {\n if (!this.isSaving) {\n this.clickEditCancel.emit();\n } else {\n this.snackbarService.warning('A save is pending. Please wait a while.');\n }\n }\n\n public onClickSave(): void {\n if (!this.isSaving) {\n this.clickEditSave.emit();\n } else {\n this.snackbarService.warning('Another save is pending. Please wait a while.');\n }\n }\n\n public get isViewVisible(): boolean {\n return this.isViewActionVisible && !this.isEditing && !this.hasEmptyRow;\n }\n\n public get isAddActionVisible(): boolean {\n return this.isTreeGrid &&\n !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get isEditVisible(): boolean {\n return !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get shouldDeleteBeShown(): boolean {\n return this.isDeleteVisible &&\n !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get isCLoneVisible(): boolean {\n return this.isCloneVisible && \n !this.hasEmptyRow && \n !this.isEditing &&\n !this.isOnlyView;\n }\n}\n","<ul class=\"row-actions\">\n <li *ngIf=\"isAddActionVisible\" class=\"action\" (click)=\"onClickAdd()\">\n <app-icon [name]=\"ICONS.Plus\"></app-icon>\n </li>\n\n <li *ngIf=\"isViewVisible\"\n class=\"action\"\n [ngClass]=\"getActionClass(DATA_TABLE_ACTIONS.EDIT)\"\n (click)=\"onClickView()\">\n <app-icon [name]=\"ICONS.Eye\"></app-icon>\n </li>\n\n <li *ngIf=\"isEditVisible\"\n class=\"action\"\n [ngClass]=\"getActionClass(DATA_TABLE_ACTIONS.EDIT)\"\n (click)=\"onClickEdit()\">\n <app-icon [name]=\"ICONS.Edit\"></app-icon>\n </li>\n\n <li *ngIf=\"isEditing\" class=\"action\" (click)=\"onClickSave()\">\n <app-icon [name]=\"ICONS.Save\" [isDisabled]=\"isSaving\"></app-icon>\n </li>\n\n <li *ngIf=\"isEditing\" class=\"action\" (click)=\"onClickCancel()\">\n <app-icon [name]=\"ICONS.Cancel\" [isDisabled]=\"isSaving\"></app-icon>\n </li>\n\n <li\n *ngIf=\"shouldDeleteBeShown\"\n class=\"action\"\n [ngClass]=\"getActionClass(DATA_TABLE_ACTIONS.DELETE)\"\n (click)=\"onClickDelete()\">\n <app-icon [name]=\"ICONS.Trash\"></app-icon>\n </li>\n\n <li *ngIf=\"isCLoneVisible\"\n class=\"action\"\n [ngClass]=\"getActionClass(DATA_TABLE_ACTIONS.CLONE)\"\n (click)=\"onClickClone()\">\n <app-icon [name]=\"ICONS.Clone\"></app-icon>\n </li>\n</ul>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseFormControlComponent } from '../base-form-control/base-form-control.component';\n\n@Component({\n selector: 'app-input-form-control',\n templateUrl: './input-form-control.component.html',\n styleUrls: ['./input-form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputFormControlComponent extends BaseFormControlComponent {\n \n constructor() {\n super();\n }\n\n public disableInput(): void {\n this.control.disable();\n }\n}\n","<label\n *ngIf=\"label\"\n class=\"form-label\"\n for=\"{{id}}\">\n {{ label }}\n</label>\n<input\n *ngIf =\"!col.editTemplate\"\n id=\"{{id}}\"\n class=\"form-control table-input-edit-form\"\n name=\"{{name}}\"\n placeholder=\"{{placeholder}}\"\n type=\"text\"\n [formControl]=\"control\"\n>\n<ng-container \n*ngTemplateOutlet=\"col.editTemplate;context:{ $implicit:{id: id, name:name, placeholder:placeholder , control:control }}\"\n></ng-container>\n\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseDataColComponent } from '../base-data-col/base-data-col.component';\n\n@Component({\n selector: '[app-data-col]',\n templateUrl: './data-col.component.html',\n styleUrls: ['./data-col.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseDataColComponent, useExisting: DataColComponent }],\n})\nexport class DataColComponent extends BaseDataColComponent {\n constructor() {\n super();\n }\n}\n","<app-input-form-control *ngIf=\"!col.editTemplate\"\n [control]=\"control\"\n [id]=\"controlId\"\n (input)=\"ValueChanged()\"\n [col]=\"col\"\n></app-input-form-control>\n<ng-container *ngIf=\"col.editTemplate\">\n <ng-container *ngTemplateOutlet=\"col.editTemplate;context:{ $implicit:{id: controlId, control:control, row: row }}\"></ng-container>\n</ng-container> \n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BaseFormControlComponent } from '../base-form-control/base-form-control.component';\n\n@Component({\n selector: 'app-checkbox-form-control',\n templateUrl: './checkbox-form-control.component.html',\n styleUrls: ['./checkbox-form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxFormControlComponent extends BaseFormControlComponent {\n @Input() public isDisabled: boolean = false;\n\n constructor() {\n super();\n }\n\n}\n","<div\n [ngClass]=\"{ 'no-label': !label }\"\n class=\"custom-control custom-checkbox\"\n>\n <input\n id=\"{{id}}\"\n class=\"custom-control-input\"\n name=\"{{name}}\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [ngClass]=\"{disabledSelect: isDisabled}\"\n >\n <label\n class=\"custom-control-label\"\n for=\"{{id}}\"\n >\n {{ label }}\n </label>\n</div>\n\n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BaseDataColComponent } from '../base-data-col/base-data-col.component';\n\n@Component({\n selector: '[app-data-col-boolean]',\n templateUrl: './data-col-boolean.component.html',\n styleUrls: ['./data-col-boolean.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseDataColComponent, useExisting: DataColBooleanComponent }],\n})\nexport class DataColBooleanComponent extends BaseDataColComponent {\n @Input() public editDisabled: boolean;\n\n constructor() {\n super();\n }\n}\n","<app-checkbox-form-control *ngIf=\"!col.editTemplate\"\n [control]=\"control\"\n [id]=\"controlId\"\n [col]=\"col\"\n [isDisabled]=\"editDisabled\"\n></app-checkbox-form-control>\n<!-- <ng-container \n [ngClass]=\"{disabledSelect: isDisabled}\"\n *ngTemplateOutlet=\"col.editTemplate; context:{ $implicit:{id: id, name: name, placeholder: placeholder , control: control }}\">\n</ng-container> -->\n<ng-container *ngIf=\"col.editTemplate\">\n <ng-container\n [ngClass]=\"{disabledSelect: editDisabled}\"\n *ngTemplateOutlet=\"col.editTemplate; context:{ $implicit:{id: controlId, control:control, row: row, prop: col.prop, tableCell: getColumnItem() }}\">\n </ng-container>\n</ng-container> ","export enum UrlParamActionEnum {\n Nested = 'nested',\n Reference = 'reference',\n}\n","export enum ViewTypeEnum {\n DropDown = 'DropDown',\n Link = 'Link',\n AutoComplete = 'AutoComplete',\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Icons } from '../../../enums/icons.enum';\n\n@Component({\n selector: 'app-expand-collapse-icon',\n templateUrl: './expand-collapse-icon.component.html',\n styleUrls: ['./expand-collapse-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ExpandCollapseIconComponent {\n @Input() public isExpanded: boolean = false;\n\n @Output() public clickIcon: EventEmitter<boolean> = new EventEmitter();\n\n public readonly ICONS: typeof Icons = Icons;\n\n public onClickIcon(shouldExpand): void {\n this.clickIcon.emit(shouldExpand);\n }\n}\n","<app-icon\n *ngIf=\"!isExpanded\"\n [name]=\"ICONS.ChevronRight\"\n [hasStyleOnHover]=\"true\"\n (click)=\"onClickIcon(true)\"\n></app-icon>\n\n<app-icon\n *ngIf=\"isExpanded\"\n [name]=\"ICONS.ChevronDown\"\n [hasStyleOnHover]=\"true\"\n (click)=\"onClickIcon(false)\"\n></app-icon>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Basic } from '../../../../../../modules/ui-kit/types/basic.type';\nimport { ColumnTypes } from '../../../../../../modules/ui-kit/enums/column-types.enum';\nimport { SelectOptionValue } from '../../../../types/select.type';\nimport { GridOptions, IDataTableColumn, IDataTableRow } from '../../../../interfaces/data-table.interface';\nimport { BaseDataColComponent } from '../base-data-col/base-data-col.component';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\n@Component({\n selector: 'app-data-col-view,[app-data-col-view]',\n templateUrl: './data-col-view.component.html',\n styleUrls: ['./data-col-view.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseDataColComponent, useExisting: DataColViewComponent }],\n})\nexport class DataColViewComponent extends BaseDataColComponent {\n @Input() public override row: IDataTableRow;\n @Input() public override rowIndex: number;\n @Input() public override columnIndex: number;\n @Input() public override col: IDataTableColumn;\n @Input() public override gridOptions: GridOptions;\n @Input() public isFirstVisibleCol: boolean;\n @Input() public isTreeGrid: boolean;\n @Input() public rowDepth: number;\n @Input() public hasExpandCollapse: boolean;\n @Input() public isRowExpanded: boolean;\n\n\n @Output() public override changeExpandCollapse: EventEmitter<boolean> = new EventEmitter();\n\n private readonly TREE_SHIFT_STEP = 15;\n private readonly NO_TREE_SHIFT_STEP = 0;\n\n public get cellDisplayValue(): string {\n \n let colValue: SelectOptionValue = this.row.data[this.col.prop];\n\n if (!Array.isArray(colValue)) {\n colValue = [colValue];\n }\n\n const values = colValue.map(val => {\n let returnValue: Basic = val;\n if (this.col.constants && !this.isEmptyObject(this.col.constants)) {\n returnValue = this.findCellDisplayValue(this.col.constants, val);\n }\n return this.formatValue(returnValue);\n });\n const newValues = values.join(', ');\n return this.col.type === ColumnTypes.Date && newValues && !isNaN(Number(newValues)) ?\n new Date(Number(newValues)).toISOString() : newValues;\n }\n\n public onClickExpandCollapse(shouldExpand: boolean): void {\n this.changeExpandCollapse.emit(shouldExpand);\n }\n\n public get treeShift(): number {\n if (this.isFirstVisibleCol) {\n return this.rowDepth * this.TREE_SHIFT_STEP;\n }\n\n return this.NO_TREE_SHIFT_STEP;\n }\n\n \n public get getWrapperStyle(): IKeyValue {\n return this.gridOptions.customColumnStyle ? this.gridOptions.customColumnStyle : { };\n }\n\n private isEmptyObject(obj): boolean {\n return (obj && (Object.keys(obj).length === 0));\n }\n}\n","<ng-container>\n <div *ngIf=\"!col.rendererTemplate\" [ngStyle]=\"getWrapperStyle\"\n [ngClass]=\"{ 'data-max-width': gridOptions.fixedWidthData }\">\n <div class=\"shift\" [ngStyle]=\"{ 'width.px': treeShift }\"></div>\n\n <app-expand-collapse-icon *ngIf=\"hasExpandCollapse\" class=\"expandCollapse\" [isExpanded]=\"isRowExpanded\"\n (clickIcon)=\"onClickExpandCollapse($event)\"></app-expand-collapse-icon>\n\n <span [ngClass]=\"col.customCssClass\" [title]=\"cellDisplayValue\">{{ cellDisplayValue }}</span>\n </div>\n</ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"col.rendererTemplate; context: { $implicit: { cellDisplayValue: cellDisplayValue, row: row, col: col } }\"></ng-container>","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy,\n OnInit, Output, ViewChild, TemplateRef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { UrlParamActionEnum } from '../../../../../../modules/ui-kit/enums/url-param-action.enum';\nimport { IClickedEventData } from '../../../../../../modules/ui-kit/interfaces/data-table.interface';\nimport { SupportUtilService } from '../../../../../../core/site/services/support-util.service';\nimport { ViewTypeEnum } from '../../../../enums/viewType.enum';\nimport { ISelectOption } from '../../../../interfaces/select.interface';\nimport { SelectFormControlComponent } from '../../../form/select-form-control/select-form-control.component';\nimport { BaseDataColComponent } from '../base-data-col/base-data-col.component';\n\n@Component({\n selector: '[app-data-col-reference]',\n templateUrl: './data-col-reference.component.html',\n styleUrls: ['./data-col-reference.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseDataColComponent, useExisting: DataColReferenceComponent }],\n})\nexport class DataColReferenceComponent extends BaseDataColComponent\n implements OnInit, OnDestroy {\n\n @Input() public isEditing: boolean;\n @Input() public optionTemplate: TemplateRef<any>;\n @Input() public options: ISelectOption[] = [];\n @Input() public editDisabled: boolean;\n @Output() public complexDetailClicked: EventEmitter<IClickedEventData> = new EventEmitter();\n\n public selectControl: SelectFormControlComponent;\n public viewType: any = ViewTypeEnum;\n public isDisplayOptionsAvailable: boolean = false;\n private clearSubs$ = new Subject();\n\n @ViewChild(SelectFormControlComponent) public set setSelectControl(control: SelectFormControlComponent) {\n this.selectControl = control;\n }\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n ) {\n super();\n }\n\n public get getOptionsFn(): Observable<ISelectOption[]> {\n if (this.col.getDropDownData) {\n return this.col.getDropDownData;\n }\n return null;\n }\n\n public override setData(newData: any): void {\n this.setOptionsData(newData.options);\n }\n\n // To Do refactor later\n public referenceDetailsButtonClicked(): void {\n const eventData: IClickedEventData = {\n rowEventData: { row: this.row },\n column: this.col,\n urlActionType: UrlParamActionEnum.Reference,\n };\n this.complexDetailClicked.emit(eventData);\n\n }\n\n public ngOnInit(): void {\n if (this.col.getDropDownData) {\n this.col.getDropDownData\n .pipe(takeUntil(this.clearSubs$))\n .subscribe((response) => {\n this.setOptionsData(response);\n });\n } else if (this.col.getDropDownOptions) {\n this.col.getDropDownOptions(this.row.data)\n .pipe(takeUntil(this.clearSubs$))\n .subscribe((response) => {\n this.setOptionsData(response);\n });\n\n } else {\n this.isDisplayOptionsAvailable = true;\n }\n if (this.col.optionsForViewMode === false) {\n this.isDisplayOptionsAvailable = true;\n }\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n }\n\n private setOptionsData(options: ISelectOption[]): void {\n this.isDisplayOptionsAvailable = true;\n this.options = options;\n this.col.constants = { ...this.col.constants, ...SupportUtilService.mapArrayResponseToObject(options) };\n this.changeDetector.detectChanges();\n }\n\n}\n","<ng-container *ngIf=\"col.viewType == viewType.Link\">\n <a (click)=\"referenceDetailsButtonClicked()\">Reference</a>\n</ng-container>\n\n<ng-container *ngIf=\"!col.viewType || (col.viewType == viewType.DropDown) || (col.viewType == viewType.AutoComplete)\">\n <app-select-form-control\n *ngIf=\"(isEditing||col.isDisplayValueAsFormControl) && !col.editTemplate\"\n [control]=\"control\"\n [optionTemplate] = \"col.optionTemplate\"\n [id]=\"controlId\"\n [options]=\"options\"\n (valueChanged)=\"ValueChanged()\"\n (onFirstValueSet)=\"firstValueSet()\"\n [isDisabled]=\"editDisabled\"\n [isAddEnabled]=\"col.viewType == viewType.AutoComplete\"\n [isMultiple]=\"col.allowMultiple\"\n ></app-select-form-control>\n\n <app-data-col-view\n *ngIf=\"!isEditing && !col.isDisplayValueAsFormControl && isDisplayOptionsAvailable\"\n [row]=\"row\"\n [col]=\"col\"\n [gridOptions]=\"gridOptions\"\n ></app-data-col-view>\n\n</ng-container>\n<ng-container *ngIf=\"isEditing && col.editTemplate\">\n <ng-container *ngTemplateOutlet=\"col.editTemplate;context:{ $implicit:{id: controlId, control:control, row: row }}\"></ng-container>\n</ng-container> \n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';\nimport { BaseDataColComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component';\nimport { ISelectOption } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/select.interface';\nimport { UrlParamActionEnum } from '../../../../enums/url-param-action.enum';\nimport { IClickedEventData } from '../../../../interfaces/data-table.interface';\n\n@Component({\n selector: '[app-data-col-nested]',\n templateUrl: './data-col-nested.component.html',\n styleUrls: ['./data-col-nested.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseDataColComponent, useExisting: DataColNestedComponent }],\n})\nexport class DataColNestedComponent extends BaseDataColComponent {\n\n @Input() public options: ISelectOption[] = [];\n @Output() public complexDetailClicked: EventEmitter<IClickedEventData> = new EventEmitter();\n\n constructor() {\n super();\n }\n\n // TODO: needs to be refactored.\n public nestedDetailsButtonClicked(): void {\n const eventData: IClickedEventData = {\n rowEventData: { row: this.row },\n column: this.col,\n urlActionType: UrlParamActionEnum.Nested,\n };\n this.complexDetailClicked.emit(eventData);\n }\n\n}\n","<ng-container>\n <a (click)=\"nestedDetailsButtonClicked()\">Nested</a>\n</ng-container>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FormControl, FormGroup, FormBuilder } from '@angular/forms';\nimport { IOldNewValuePair } from './old-new-value.interface';\n\n@Component({\n selector: 'app-custom-input',\n templateUrl: './custom-input.component.html',\n styleUrls: ['./custom-input.component.scss'],\n})\nexport class CustomInputComponent implements OnInit {\n\n @Input() public randomInput: any;\n public form: FormGroup;\n\n public readonly controlName = 'ctl';\n\n @Output() private valueChangeEvent = new EventEmitter();\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n [this.controlName]: new FormControl(''),\n });\n }\n\n public updateInput(value): void {\n const oldNewValuePair: IOldNewValuePair = {\n oldValue: this.randomInput,\n newValue: value[this.controlName],\n };\n this.valueChangeEvent.emit(oldNewValuePair);\n }\n\n public ngOnInit(): void {\n this.form.controls[this.controlName].setValue(this.randomInput);\n }\n}\n","<form [formGroup]=\"form\">\n <input\n type=\"text\"\n formControlName=\"{{ controlName }}\"\n (keydown.enter)=\"updateInput(form.value)\"\n >\n</form>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormGroup, FormBuilder, FormControl } from '@angular/forms';\nimport {\n BaseFormControlComponent\n} from 'idp-apps-shared-ui/modules/ui-kit/components/form/base-form-control/base-form-control.component';\nimport {\n IDataTableRow,\n IDataTableColumn,\n} from 'idp-apps-shared-ui/modules/ui-kit/interfaces/data-table.interface';\nimport { SelectOptionEnum } from '../../../enums/select-option.enum';\n\n@Component({\n selector: 'app-multivalue-form-control',\n templateUrl: './multivalue-form-control.component.html',\n styleUrls: ['./multivalue-form-control.component.scss'],\n})\nexport class MultivalueFormControlComponent extends BaseFormControlComponent implements OnInit {\n\n @Input() public viewOnly: boolean;\n @Input() public row: IDataTableRow;\n @Input() public viewColumn: IDataTableColumn;\n\n public SELECT_OPTIONS_ENUM = SelectOptionEnum;\n\n public values = [];\n public contentEditable: any = null;\n public content: any;\n public addFormGroup: FormGroup;\n\n constructor(private formBuilder: FormBuilder) {\n super();\n\n this.addFormGroup = this.formBuilder.group({\n [SelectOptionEnum.ADDCONTROL]: new FormControl(SelectOptionEnum.EMPTY),\n });\n }\n\n public ngOnInit(): void {\n const controlValue = this.control.value || this.row.data[this.viewColumn.prop];\n\n if (controlValue) {\n this.values = controlValue.toString().split(SelectOptionEnum.SEPERATOR);\n }\n }\n\n public clearValue(value: any): void {\n this.values.splice(this.values.indexOf(value), 1);\n this.control.setValue(this.values.join());\n }\n\n public editValue(value: any): void {\n this.contentEditable = value;\n this.content = value;\n }\n\n public addInput(): void {\n if (this.values.length > 0) {\n this.control.setValue(\n this.values.join() + SelectOptionEnum.SEPERATOR + this.addFormGroup.controls[SelectOptionEnum.ADDCONTROL].value);\n } else {\n this.control.setValue(this.addFormGroup.controls[SelectOptionEnum.ADDCONTROL].value);\n }\n }\n\n public addToValueArray(value): void {\n this.values.push(value[SelectOptionEnum.ADDCONTROL]);\n this.addFormGroup.controls[SelectOptionEnum.ADDCONTROL].setValue(SelectOptionEnum.EMPTY);\n this.control.setValue(this.values.join());\n }\n\n public changedValue(value): void {\n const index = this.values.findIndex((item) => item === value.oldValue);\n this.values[index] = value.newValue;\n this.control.setValue(this.values.join());\n this.contentEditable = null;\n }\n}\n","<div contenteditable=\"false\" class=\"input\">\n <span class=\"values\" *ngFor=\"let value of values\">\n <ng-container *ngIf=\"!viewOnly\">\n <span class=\"clear\" (click)=\"clearValue(value)\">\n <i class=\"material-icons\" style=\"font-size: 8px;\">\n close\n </i>\n </span>\n <span class=\"value\" (click)=\"editValue(value)\">\n {{ value }}\n </span>\n </ng-container>\n\n <span *ngIf=\"viewOnly\" class=\"value\" >{{ value }}</span>\n <div class=\"editDiv\">\n <app-custom-input\n *ngIf=\"contentEditable == value\"\n [randomInput]=\"value\"\n (valeCahngeEvent)=\"changedValue($event)\"\n ></app-custom-input>\n </div>\n </span>\n\n <span class=\"add\" *ngIf=\"!viewOnly\">\n <form [formGroup]=\"addFormGroup\">\n <input\n type=\"text\"\n formControlName=\"{{ SELECT_OPTIONS_ENUM.ADDCONTROL }}\"\n (input)=\"addInput()\"\n (keydown.enter)=\"addToValueArray(addFormGroup.value)\"\n >\n </form>\n </span>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { BaseDataColComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component';\n\n@Component({\n selector: '[app-data-col-multivalue]',\n templateUrl: './data-col-multivalue.component.html',\n styleUrls: ['./data-col-multivalue.component.scss'],\n})\nexport class DataColMultivalueComponent extends BaseDataColComponent{\n\n @Input() public viewOnly: boolean;\n\n constructor() { \n super();\n }\n\n}\n","<app-multivalue-form-control\n [control]=\"control\"\n [id]=\"controlId\"\n [viewOnly]=\"viewOnly\"\n [row]=\"row\"\n [viewColumn]=\"col\"\n></app-multivalue-form-control>\n","import { Injectable, InjectionToken } from '@angular/core';\r\nimport { IDataTableComponent } from '../interfaces/data-table-component.interface';\r\n\r\nexport const DATA_TABLE_CONTEXT = new InjectionToken<IDataTableComponent>('DATA_TABLE_CONTEXT');\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DataTableContextService {\r\n private dataTableComponent: IDataTableComponent | null = null;\r\n\r\n setDataTableComponent(component: IDataTableComponent): void {\r\n this.dataTableComponent = component;\r\n }\r\n\r\n getDataTableComponent(): IDataTableComponent | null {\r\n return this.dataTableComponent;\r\n }\r\n\r\n clearDataTableComponent(): void {\r\n this.dataTableComponent = null;\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { GridOptions, IDataTableRow } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/data-table.interface';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { GridApi } from '../api-classes/grid-api';\nimport { FormService } from '../../../services/form.service';\nimport { isFunction } from '../../../../../core/utils/type-checks.utils';\nimport { DATA_TABLE_CONTEXT, DataTableContextService } from '../services/data-table-context.service';\nimport { IDataTableComponent } from '../interfaces/data-table-component.interface';\n\n@Component({\n selector: 'app-data-table-check-rows',\n templateUrl: './data-table-check-rows.component.html',\n styleUrls: ['./data-table-check-rows.component.scss'],\n})\nexport class DataTableCheckRowsComponent {\n @Input() public selection: SelectionModel<IDataTableRow>;\n @Input() public row: IDataTableRow;\n @Input() public gridOptions: GridOptions;\n @Input() public isRowUnchecked?: (row: IDataTableRow) => boolean;\n @Output() public CheckboxSelect: EventEmitter<IDataTableRow> = new EventEmitter<IDataTableRow>();\n public gridApi: GridApi;\n\n constructor(\n @Optional() @Inject(DATA_TABLE_CONTEXT) private dataTable: IDataTableComponent,\n private dataTableContext: DataTableContextService,\n public formService: FormService\n ) {\n const dataTableComponent = this.dataTable || this.dataTableContext.getDataTableComponent();\n if (dataTableComponent) {\n this.gridApi = new GridApi(dataTableComponent, this.formService);\n }\n }\n\n public get isCheckboxDisabled(): boolean {\n if (this.gridOptions.rowDisableFn && isFunction(this.gridOptions.rowDisableFn)) {\n return this.gridOptions.rowDisableFn(this.row);\n }\n return false;\n }\n\n public selectionToggle(): void {\n this.selection.toggle(this.row);\n if (isFunction(this.isRowUnchecked) && this.isRowUnchecked(this.row)) {\n this.uncheckedRowData();\n }\n this.CheckboxSelect.emit(this.row);\n }\n\n private uncheckedRowData(): void {\n this.selection.deselect(this.row);\n this.gridApi.detectRowChanges();\n }\n}\n","<mat-checkbox [ngClass]=\"{'disabled-checkbox': isCheckboxDisabled }\" (click)=\"$event.stopPropagation()\" (change)=\"$event ? selectionToggle() : null\"\n [checked]=\"selection.isSelected(row)\">\n</mat-checkbox>","/* eslint-disable sort-class-members/sort-class-members */\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n ViewChildren,\n QueryList,\n OnChanges,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { isFunction, isUndefined } from '../../../../../core/utils/type-checks.utils';\nimport {\n IDataTableColumn,\n IDataTableRow,\n IDataTableRowEvent,\n GridOptions,\n IDataTableAction,\n IClickedEventData,\n ITableCell,\n IGridMatMenuItem,\n} from '../../../interfaces/data-table.interface';\nimport { ColumnTypes } from '../../../enums/column-types.enum';\nimport { FormService } from '../../../services/form.service';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\nimport { BaseDataColComponent } from '../data-col/base-data-col/base-data-col.component';\nimport { COLUMN_ID } from '../constants/column-id';\nimport { ColumnDisableModes } from '../../../enums/column-disable-mode.enum';\nimport { IDataRowComponent } from '../interfaces/data-table-component.interface';\n\n@Component({\n selector: '[app-data-row]',\n // TODO: component template needs to be refactored\n templateUrl: './data-row.component.html',\n styleUrls: ['./data-row.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataRowComponent implements IDataRowComponent, OnChanges {\n @ViewChildren(BaseDataColComponent) public set setColumnComponents(columns: QueryList<BaseDataColComponent>) {\n this.columnComponents = columns;\n }\n\n public get rowValue(): IKeyValue {\n return this.row.formGroup ? this.formService.getFormValue(this.row.formGroup) : this.row.data;\n }\n\n private get firstVisibleCol(): IDataTableColumn {\n return this.viewColumns.find((viewColumn: IDataTableColumn) => viewColumn.isVisible);\n }\n\n @Input() public row: IDataTableRow;\n @Input() public rowIndex: number;\n @Input() public viewColumns: IDataTableColumn[];\n @Input() public canInlineEdit: boolean;\n @Input() public isTreeGrid: boolean;\n @Input() public hasRowChildren: boolean;\n @Input() public isOnlyView: boolean;\n @Input() public isEditable: boolean;\n @Input() public selection: SelectionModel<IDataTableRow>;\n @Input() public isDeleteDisabled: boolean;\n @Input() public isRowUnchecked?: (row: IDataTableRow) => boolean;\n\n @Output() public clickAction: EventEmitter<IDataTableAction> = new EventEmitter();\n @Input() public gridOptions: GridOptions;\n @Input() public hasEmptyRow: boolean;\n @Input() public isEditing: boolean;\n @Input() public isSaving: boolean;\n @Input() public isRowSelectionEnable: boolean;\n @Input() public isCloneVisible: boolean;\n\n @Output() public clickAdd: EventEmitter<undefined> = new EventEmitter();\n @Output() public clickEdit: EventEmitter<undefined> = new EventEmitter();\n @Output() public clickEditCancel: EventEmitter<undefined> = new EventEmitter();\n @Output() public clickEditSave: EventEmitter<IKeyValue> = new EventEmitter();\n @Output() public clickView: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public clickDelete: EventEmitter<undefined> = new EventEmitter();\n @Output() public changeExpandCollapse: EventEmitter<boolean> = new EventEmitter();\n\n public columnTypes: typeof ColumnTypes = ColumnTypes;\n public readonly columnDisableModes: typeof ColumnDisableModes = ColumnDisableModes;\n @Output() public clickClone: EventEmitter<undefined> = new EventEmitter();\n @Output() public complexDetailClicked: EventEmitter<IClickedEventData> = new EventEmitter();\n\n @Output() public CheckboxSelect: EventEmitter<IDataTableRow> = new EventEmitter();\n\n private columnComponents: QueryList<BaseDataColComponent>;\n\n private formGroup: FormGroup;\n\n constructor(private formService: FormService, public changeDetectorRef: ChangeDetectorRef) {}\n\n public getColumnComponents(): BaseDataColComponent[] {\n return this.columnComponents.toArray();\n }\n\n public ngOnChanges(): void {\n if (this.row.data[COLUMN_ID.PROP] === COLUMN_ID.EMPTY_ROW_VAL || this.isAnyFormControlVisibleSet()) {\n this.initRowForm();\n }\n }\n\n public isDataColView(viewColumn: IDataTableColumn): boolean {\n return (\n !viewColumn.allowMultiple ||\n (viewColumn.allowMultiple && viewColumn.type === this.columnTypes.Nested) ||\n viewColumn.type === this.columnTypes.Reference\n );\n }\n\n public isAnyFormControlVisibleSet(): boolean {\n return this.viewColumns.some((col) => col.isDisplayValueAsFormControl);\n }\n\n // noinspection JSUnusedGlobalSymbols\n public onClickAction(action: IDataTableAction): void {\n this.clickAction.emit(action);\n }\n\n public onClickEdit(): void {\n this.initRowForm();\n this.clickEdit.emit();\n }\n\n public onClickClone(): void {\n this.clickClone.emit();\n }\n\n public onClickEditCancel(): void {\n this.formService.fillForm(this.formGroup, this.row.data);\n this.clickEditCancel.emit();\n }\n\n public onClickEditSave(): void {\n this.clickEditSave.emit(this.rowValue);\n }\n\n public onClickView(): void {\n this.clickView.emit({ row: this.row });\n }\n\n public onClickDelete(): void {\n this.clickDelete.emit();\n }\n\n public onClickAdd(): void {\n this.clickAdd.emit();\n }\n\n public onChangeExpandCollapse(shouldExpand: boolean): void {\n this.changeExpandCollapse.emit(shouldExpand);\n }\n\n public getColControl(viewColumn: IDataTableColumn, row?: any): FormControl | null {\n if (this.formGroup && this.formGroup.controls[viewColumn.prop]) {\n const ctrl = <FormControl>this.formGroup.controls[viewColumn.prop];\n if ((isFunction(viewColumn.isDisabledFn) && !isUndefined(row) && viewColumn.isDisabledFn(row)) || viewColumn.isDeafultDisabled) {\n ctrl.disable();\n }\n return ctrl;\n }\n return null;\n }\n\n public hasColExpandCollapse(viewColumn: IDataTableColumn): boolean {\n return this.hasRowChildren && this.isTreeGrid && this.isFirstVisibleCol(viewColumn);\n }\n\n public isFirstVisibleCol(viewColumn: IDataTableColumn): boolean {\n return viewColumn === this.firstVisibleCol;\n }\n\n public getIsFormControlColVisible(viewColumn: IDataTableColumn): boolean {\n return !this.isColumnInEditMode(viewColumn) && (this.row.isEditing || viewColumn.isDisplayValueAsFormControl);\n }\n\n public isColumnInEditMode(viewColumn: IDataTableColumn): boolean {\n if (viewColumn.editDisabledMode) {\n return this.isColumnEditMode(viewColumn);\n }\n return false;\n }\n\n public getAccordionClasss(): string {\n if (this.gridOptions.isAccordionTable) {\n return 'mat-cell d-inline-block';\n }\n return '';\n }\n\n public isColumnEditMode(viewColumn: IDataTableColumn): boolean {\n switch (viewColumn.editDisabledMode) {\n case ColumnDisableModes.AlwaysDisabled: {\n return true;\n }\n case ColumnDisableModes.AddModeDisabled: {\n return this.isAddRow();\n }\n case ColumnDisableModes.EditModeDisabled: {\n return !this.isAddRow();\n }\n default: {\n return false;\n }\n }\n }\n\n public isAddRow(): boolean {\n return this.row.data[COLUMN_ID.PROP] === COLUMN_ID.EMPTY_ROW_VAL;\n }\n\n public get isViewActionVisible(): boolean {\n return !(this.gridOptions && this.gridOptions.isRowLevelViewActionVisible === false);\n }\n\n public get isRowDisabled(): boolean {\n if (this.gridOptions.rowDisableFn && isFunction(this.gridOptions.rowDisableFn)) {\n return this.gridOptions.rowDisableFn(this.row);\n }\n return false;\n }\n\n public ComplexDetailClicked(eventData: IClickedEventData): void {\n this.complexDetailClicked.emit(eventData);\n }\n\n public ActionClickHandler(menu: IGridMatMenuItem): void {\n if (menu.clicked) {\n menu.clicked(this.row);\n }\n }\n\n public isCheckboxSelect(row: IDataTableRow): void {\n this.CheckboxSelect.emit(row);\n }\n\n private initRowForm(): void {\n if (isUndefined(this.row.formGroup)) {\n this.formGroup = this.formService.createFormForDataTable(this.viewColumns);\n this.row.formGroup = this.formGroup;\n this.formService.fillForm(this.formGroup, this.row.data);\n } else {\n this.formGroup = this.row.formGroup;\n }\n }\n\n // TODO: needs to be refactored\n private updateFormState(): void {\n if (this.row.isEditing) {\n this.formService.enableForm(this.formGroup);\n } else {\n this.formService.disableForm(this.formGroup);\n }\n }\n}\n","<td *ngIf=\"isRowSelectionEnable\" class=\"selectHeader\">\n <app-data-table-check-rows\n [gridOptions]=\"gridOptions\"\n (CheckboxSelect)=\"isCheckboxSelect($event)\"\n [isRowUnchecked]=\"isRowUnchecked\"\n class=\"checkobx-inline\"\n [selection]=\"selection\"\n [row]=\"row\"\n >\n </app-data-table-check-rows>\n</td>\n\n<ng-container *ngFor=\"let viewColumn of viewColumns; let i = index\">\n <ng-container *ngIf=\"viewColumn.isVisible\">\n <ng-container *ngIf=\"getIsFormControlColVisible(viewColumn)\">\n <ng-container *ngIf=\"viewColumn.allowMultiple && viewColumn.type != columnTypes.Nested && viewColumn.type != columnTypes.Reference\">\n <td app-data-col-multivalue [control]=\"getColControl(viewColumn, row)\" [row]=\"row\" [col]=\"viewColumn\" [viewOnly]=\"false\"></td>\n </ng-container>\n <ng-container *ngIf=\"isDataColView(viewColumn) && !this.gridOptions.isAccordionTable\">\n <ng-container [ngSwitch]=\"viewColumn.type\">\n <td\n *ngSwitchCase=\"columnTypes.Boolean\"\n app-data-col-boolean\n [gridOptions]=\"gridOptions\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [editDisabled]=\"isColumnInEditMode(viewColumn)\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [control]=\"getColControl(viewColumn, row)\"\n ></td>\n <td\n *ngSwitchCase=\"columnTypes.Reference\"\n app-data-col-reference\n [row]=\"row\"\n [isEditing]=\"row.isEditing\"\n [rowIndex]=\"rowIndex\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [gridOptions]=\"gridOptions\"\n [control]=\"getColControl(viewColumn, row)\"\n [editDisabled]=\"isColumnInEditMode(viewColumn)\"\n [options]=\"viewColumn.options\"\n ></td>\n <td\n *ngSwitchCase=\"columnTypes.Nested\"\n app-data-col-nested\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [gridOptions]=\"gridOptions\"\n [control]=\"getColControl(viewColumn, row)\"\n ></td>\n <td\n *ngSwitchCase=\"columnTypes.String\"\n app-data-col\n [control]=\"getColControl(viewColumn, row)\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n ></td>\n <td\n *ngSwitchCase=\"columnTypes.Integer\"\n app-data-col\n [control]=\"getColControl(viewColumn, row)\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n ></td>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDataColView(viewColumn) && this.gridOptions.isAccordionTable\">\n <ng-container [ngSwitch]=\"viewColumn.type\">\n <div\n class=\"mat-cell d-inline-block\"\n (click)=\"$event.stopPropagation()\"\n [ngClass]=\"viewColumn.customCssClass\"\n *ngSwitchCase=\"columnTypes.Boolean\"\n app-data-col-boolean\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n [editDisabled]=\"isColumnInEditMode(viewColumn)\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [control]=\"getColControl(viewColumn, row)\"\n ></div>\n <div\n class=\"mat-cell d-inline-block\"\n (click)=\"$event.stopPropagation()\"\n *ngSwitchCase=\"columnTypes.Reference\"\n [ngClass]=\"viewColumn.customCssClass\"\n app-data-col-reference\n [row]=\"row\"\n [isEditing]=\"row.isEditing\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [control]=\"getColControl(viewColumn, row)\"\n [editDisabled]=\"isColumnInEditMode(viewColumn)\"\n [options]=\"viewColumn.options\"\n ></div>\n <div\n class=\"mat-cell d-inline-block\"\n (click)=\"$event.stopPropagation()\"\n [ngClass]=\"viewColumn.customCssClass\"\n *ngSwitchCase=\"columnTypes.Nested\"\n app-data-col-nested\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [control]=\"getColControl(viewColumn, row)\"\n ></div>\n <div\n class=\"mat-cell d-inline-block\"\n (click)=\"$event.stopPropagation()\"\n [ngClass]=\"viewColumn.customCssClass\"\n *ngSwitchCase=\"columnTypes.String\"\n app-data-col\n [gridOptions]=\"gridOptions\"\n [control]=\"getColControl(viewColumn, row)\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n ></div>\n <div\n class=\"mat-cell d-inline-block\"\n (click)=\"$event.stopPropagation()\"\n [ngClass]=\"viewColumn.customCssClass\"\n *ngSwitchCase=\"columnTypes.Integer\"\n app-data-col\n [gridOptions]=\"gridOptions\"\n [control]=\"getColControl(viewColumn, row)\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n ></div>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!getIsFormControlColVisible(viewColumn)\">\n <ng-container *ngIf=\"viewColumn.allowMultiple && viewColumn.type != columnTypes.Nested && viewColumn.type != columnTypes.Reference\">\n <td\n app-data-col-multivalue\n [control]=\"getColControl(viewColumn)\"\n [row]=\"row\"\n [col]=\"viewColumn\"\n [gridOptions]=\"gridOptions\"\n [viewOnly]=\"true\"\n ></td>\n </ng-container>\n <ng-container *ngIf=\"!gridOptions.isAccordionTable\">\n <ng-container\n *ngIf=\"\n !viewColumn.allowMultiple ||\n (viewColumn.allowMultiple && viewColumn.type == columnTypes.Nested) ||\n viewColumn.type == columnTypes.Reference\n \"\n >\n <ng-container [ngSwitch]=\"viewColumn.type\">\n <td\n *ngSwitchCase=\"columnTypes.Nested\"\n app-data-col-nested\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n ></td>\n <td\n *ngSwitchCase=\"columnTypes.Reference\"\n app-data-col-reference\n [isEditing]=\"row.isEditing\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [control]=\"getColControl(viewColumn)\"\n [editDisabled]=\"isColumnInEditMode(viewColumn)\"\n [options]=\"viewColumn.options\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n ></td>\n <td\n *ngSwitchDefault\n app-data-col-view\n [ngClass]=\"{ 'readonly-effects': isOnlyView }\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [gridOptions]=\"gridOptions\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [isRowExpanded]=\"row.isExpanded\"\n [hasExpandCollapse]=\"hasColExpandCollapse(viewColumn)\"\n [isFirstVisibleCol]=\"isFirstVisibleCol(viewColumn)\"\n [rowDepth]=\"row.depth\"\n [isTreeGrid]=\"isTreeGrid\"\n [gridOptions]=\"gridOptions\"\n (changeExpandCollapse)=\"onChangeExpandCollapse($event)\"\n [attr.data-column-prop]=\"viewColumn.prop\"\n ></td>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"gridOptions.isAccordionTable\" [ngSwitch]=\"viewColumn.type\">\n <div\n class=\"mat-cell d-inline-block\"\n [ngClass]=\"viewColumn.customCssClass\"\n *ngSwitchCase=\"columnTypes.Reference\"\n app-data-col-reference\n [isEditing]=\"row.isEditing\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [gridOptions]=\"gridOptions\"\n [control]=\"getColControl(viewColumn)\"\n [editDisabled]=\"isColumnInEditMode(viewColumn)\"\n [options]=\"viewColumn.options\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n ></div>\n <div\n class=\"mat-cell d-inline-block\"\n [ngClass]=\"viewColumn.customCssClass\"\n *ngSwitchDefault\n app-data-col-view\n [ngClass]=\"{ 'readonly-effects': isOnlyView }\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [col]=\"viewColumn\"\n [columnIndex]=\"i\"\n [gridOptions]=\"gridOptions\"\n [isRowExpanded]=\"row.isExpanded\"\n [hasExpandCollapse]=\"hasColExpandCollapse(viewColumn)\"\n [isFirstVisibleCol]=\"isFirstVisibleCol(viewColumn)\"\n [rowDepth]=\"row.depth\"\n [isTreeGrid]=\"isTreeGrid\"\n (changeExpandCollapse)=\"onChangeExpandCollapse($event)\"\n ></div>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n<td *ngIf=\"!(isOnlyView && !isViewActionVisible) && gridOptions.isRowActionVisible\">\n <!-- TODO: needs to be refactored -->\n <app-data-table-row-actions\n [canInlineEdit]=\"canInlineEdit\"\n [isTreeGrid]=\"isTreeGrid\"\n [isEditing]=\"row.isEditing\"\n [isSaving]=\"row.isSaving\"\n [isOnlyView]=\"isOnlyView\"\n [isViewActionVisible]=\"isViewActionVisible\"\n (clickDelete)=\"onClickDelete()\"\n (clickEdit)=\"onClickEdit()\"\n (clickClone)=\"onClickClone()\"\n (clickEditCancel)=\"onClickEditCancel()\"\n (clickEditSave)=\"onClickEditSave()\"\n (clickView)=\"onClickView()\"\n (clickAdd)=\"onClickAdd()\"\n [hasEmptyRow]=\"hasEmptyRow\"\n [isEditing]=\"isEditing\"\n [isSaving]=\"isSaving\"\n [isCloneVisible]=\"isCloneVisible\"\n [isDeleteVisible]=\"!isDeleteDisabled\"\n ></app-data-table-row-actions>\n</td>\n<td *ngIf=\"gridOptions.gridMenuOptions && gridOptions.gridMenuOptions.isMenuEnabled\">\n <button mat-icon-button [matMenuTriggerFor]=\"menuDT\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menuDT=\"matMenu\" class=\"data-table-menu-custom-class\">\n <ng-container *ngFor=\"let menu of gridOptions.gridMenuOptions.menuItems\">\n <button mat-menu-item (click)=\"ActionClickHandler(menu)\">\n <mat-icon> {{ menu.matIconName }} </mat-icon>\n <span>{{ menu.iconText }}</span>\n </button>\n </ng-container>\n </mat-menu>\n</td>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isUndefined, isNull } from 'lodash';\nimport { Subject } from 'rxjs';\nimport { DataTableService } from 'idp-apps-shared-ui/modules/ui-kit/services/data-table.service';\nimport { IKeyValue } from '../interfaces/generic.interface';\nimport { IDataTableColumn, IDataTableRow } from '../interfaces/data-table.interface';\n\n@Pipe({ name: 'search' })\nexport class SearchPipe implements PipeTransform {\n\n constructor(private dataTableService: DataTableService) { }\n\n public transform(items: any[], search: string, columns?: IDataTableColumn[], isClientSidePagination: boolean = true,\n searchedRowCount$: Subject<number> = new Subject()): IDataTableRow[] {\n if (!isClientSidePagination) {\n return items;\n }\n if (isUndefined(columns)) {\n columns = [];\n }\n\n if (search) {\n items = items.filter((item) => {\n if (item.data) {\n return this.findItem(item.data, search, columns);\n }\n return this.findItem(item, search, columns);\n });\n }\n\n if (items && isClientSidePagination) {\n searchedRowCount$.next(items.length);\n }\n return items;\n }\n\n private findItem(item: any, search: string, columns: IDataTableColumn[]): boolean {\n return columns.filter((column) =>\n this.ifDefinedAndNotNull(item, column.prop)\n && this.isMatched(this.dataTableService.formatValue(item[column.prop], column, item), search),\n ).length > 0;\n }\n\n private getAllProperties(item: IKeyValue): string[] {\n return Object.keys(item);\n }\n\n private isMatched(data: any, searchValue: string): boolean {\n return data.toString().toLocaleLowerCase().includes(searchValue.toLocaleLowerCase());\n }\n\n private ifDefinedAndNotNull(data: any, propertyName: string): boolean {\n return !isUndefined(data[propertyName]) && !isNull(data[propertyName]);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDataTableRow } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/data-table.interface';\nimport { IPaginationParams } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n\n@Pipe({ name: 'paginate' })\nexport class PaginatePipe implements PipeTransform {\n public transform(rows: IDataTableRow[], paginationParams: IPaginationParams, isClientSidePagination: boolean): any {\n if (!rows) {\n return rows;\n }\n return PaginatePipe.getRows(rows, paginationParams, isClientSidePagination);\n }\n\n private static getStartIndex(paginationParams: IPaginationParams): number {\n return paginationParams.currentPage * paginationParams.pageSize - paginationParams.pageSize;\n }\n\n private static getEndIndex(paginationParams: IPaginationParams): number {\n return paginationParams.currentPage * paginationParams.pageSize;\n }\n\n private static getRows(rows: IDataTableRow[], paginationParams: IPaginationParams, isClientSidePagination: boolean): IDataTableRow[] {\n if (isClientSidePagination) {\n return rows.slice(\n PaginatePipe.getStartIndex(paginationParams),\n PaginatePipe.getEndIndex(paginationParams),\n );\n }\n return rows;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChildren, QueryList } from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Subject } from 'rxjs';\nimport { isFunction } from '../../../../../core/utils/type-checks.utils';\nimport {\n IDataTableColumn,\n IDataTableExpandCollapseEvent,\n IDataTableRow,\n IDataTableRowEvent,\n IDataTableRowSaveEvent,\n IDataTableAction,\n GridOptions,\n IClickedEventData,\n} from '../../../interfaces/data-table.interface';\nimport { IKeyValue, IPaginationParams } from '../../../interfaces/generic.interface';\nimport { DataTableService } from '../../../services/data-table.service';\nimport { COLUMN_ID } from '../constants/column-id';\nimport { DataRowComponent } from '../data-row/data-row.component';\n\n@Component({\n selector: '[app-data-table-body]',\n templateUrl: './data-table-body.component.html',\n styleUrls: ['./data-table-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataTableBodyComponent {\n @Input() public rows: IDataTableRow[];\n @Input() public viewColumns: IDataTableColumn[];\n @Input() public canInlineEdit: boolean;\n @Input() public isTreeGrid: boolean;\n @Input() public isOnlyView: boolean;\n @Input() public isOnlyViewRow?: (row: IDataTableRow) => boolean;\n @Input() public isDeleteDisabled?: (row: IDataTableRow) => boolean;\n @Input() public isEditable: boolean;\n @Input() public searchedRowCount$: Subject<number>;\n @Output() public clickAction: EventEmitter<IDataTableAction> = new EventEmitter();\n @Input() public gridOptions: GridOptions;\n @Input() public search: string;\n @Input() public paginationParams: IPaginationParams;\n @Input() public hasEmptyRow: boolean;\n @Input() public isEditing: boolean;\n @Input() public isSaving: boolean;\n @Input() public isRowSelectionEnable: boolean;\n @Input() public isCloneVisible: boolean;\n @Input() public searchColumns: IDataTableColumn[];\n @Input() public selection: SelectionModel<IDataTableRow>;\n public selectedRow: IDataTableRow;\n @Input() public isRowUnchecked?: (row: any) => boolean;\n\n @Output() public clickEdit: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public clickEditCancel: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public clickEditSave: EventEmitter<IDataTableRowSaveEvent> = new EventEmitter();\n @Output() public clickView: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public clickDelete: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public clickAdd: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public clickRow: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public changeExpandCollapse: EventEmitter<IDataTableExpandCollapseEvent> = new EventEmitter();\n @Output() public complexDetailClicked: EventEmitter<IClickedEventData> = new EventEmitter();\n @Output() public clickClone: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public matExpansionPanelClicked: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Input() public onAddClick?: (rowsData: any, saveEventData: IDataTableRowEvent) => boolean;\n @Output() public CheckboxSelect: EventEmitter<IDataTableRow> = new EventEmitter();\n\n public rowComponents: QueryList<DataRowComponent>;\n\n @ViewChildren(DataRowComponent) public set setColumnComponents(items: QueryList<DataRowComponent>) {\n this.rowComponents = items;\n }\n\n constructor(public dataTableService: DataTableService, private cd: ChangeDetectorRef) { }\n public get getEmptyDataClassName(): string {\n if (this.gridOptions.isAccordionTable) {\n return 'no-records-accordion';\n }\n return 'no-records-table';\n }\n\n public get isNoRecordsFound(): boolean {\n return this.rows.length === 0;\n }\n\n public detectChange(): void {\n this.cd.detectChanges();\n }\n \n public onClickEdit(row: IDataTableRow): void {\n this.clickEdit.emit({ row });\n }\n\n public onClickClone(row: IDataTableRow): void {\n this.clickClone.emit({ row });\n }\n\n public onClickEditCancel(row: IDataTableRow): void {\n this.clickEditCancel.emit({ row });\n }\n\n public onClickEditSave(row: IDataTableRow, saveData: IKeyValue): void {\n this.clickEditSave.emit({ row, saveData });\n }\n\n public onClickDelete(row: IDataTableRow): void {\n this.clickDelete.emit({ row });\n }\n\n public isExpandable(row: IDataTableRow): boolean {\n return !row.isEditing || this.gridOptions.expandEnableForSave;\n }\n\n public onExpansionPanelClicked(row: IDataTableRow): void {\n row.isAccordionExpanded = !row.isAccordionExpanded;\n this.matExpansionPanelClicked.emit({ row });\n }\n\n public onClickView(eventData: IDataTableRowEvent): void {\n this.clickView.emit(eventData);\n }\n\n public onClickAction(action: IDataTableAction): void {\n this.clickAction.emit(action);\n }\n\n public onClickAdd(row: IDataTableRow): void {\n this.clickAdd.emit({ row });\n }\n\n public onRowClick(row: IDataTableRow, $event: any, index: number): void {\n if (row.isSelected && this.gridOptions.isSelectedRowBlock) {\n return;\n }\n $event.stopPropagation();\n if (this.hasEmptyRow || this.isEditing) {\n return;\n }\n row.rowIndex = index;\n this.selectedRow = row;\n this.clickRow.emit({ row });\n }\n\n public isActive(row: IDataTableRow): boolean {\n return !!row.isSelected;\n }\n\n public onChangeExpandCollapse(row: IDataTableRow, shouldExpand: boolean): void {\n this.changeExpandCollapse.emit({ row, shouldExpand });\n }\n\n public trackByFn(index: number, item: IDataTableRow): any {\n return item[COLUMN_ID.id];\n }\n\n public areChildrenVisible(row: IDataTableRow): boolean {\n return this.isTreeGrid &&\n this.dataTableService.hasRowChildren(row) &&\n row.isExpanded;\n }\n\n public ComplexDetailClicked(eventData: IClickedEventData): void {\n this.complexDetailClicked.emit(eventData);\n }\n\n public get isClientSidePagination(): boolean {\n return this.gridOptions.isClientSidePagination;\n }\n\n public checkRowIsViewOnly(row: IDataTableRow): boolean {\n if (this.isOnlyView) {\n return true;\n }\n\n if (isFunction(this.isOnlyViewRow)) {\n return this.isOnlyViewRow(row);\n }\n\n return false;\n }\n\n public checkDeleteDisabled(row: IDataTableRow): boolean {\n if (isFunction(this.isDeleteDisabled)) {\n return this.isDeleteDisabled(row);\n }\n\n return false;\n }\n\n public isCheckboxSelect(row: IDataTableRow): void {\n this.CheckboxSelect.emit(row);\n }\n\n}\n","<ng-container *ngIf=\"!gridOptions.isAccordionTable\">\n <ng-template #tableRows let-rows>\n <ng-container\n *ngIf=\"(rows | search:search:searchColumns:isClientSidePagination).length > 0 || rows.length === 0; else noRecords\">\n <ng-container *ngIf=\"!gridOptions.isTrackByDisabled\">\n <ng-container\n *ngFor=\"let row of rows| search:search:searchColumns:isClientSidePagination:searchedRowCount$ | paginate:paginationParams:isClientSidePagination; let i = index; trackBy: trackByFn\">\n <tr app-data-row [class.active]=\"isActive(row)\" [isEditable]=\"isEditable\" [gridOptions]=\"gridOptions\"\n [selection]=\"selection\" [row]=\"row\" [rowIndex]=\"i\" [viewColumns]=\"viewColumns\" [canInlineEdit]=\"canInlineEdit\"\n [isTreeGrid]=\"isTreeGrid\" [hasRowChildren]=\"dataTableService.hasRowChildren(row)\" [isRowUnchecked]=\"isRowUnchecked\"\n [isOnlyView]=\"checkRowIsViewOnly(row)\" [isDeleteDisabled]=\"checkDeleteDisabled(row)\"\n (clickAction)=\"onClickAction($event)\" (clickEdit)=\"onClickEdit(row)\" (clickEditCancel)=\"onClickEditCancel(row)\"\n (clickEditSave)=\"onClickEditSave(row, $event)\" (clickDelete)=\"onClickDelete(row)\"\n (clickView)=\"onClickView($event)\" (clickAdd)=\"onClickAdd(row)\" (clickClone)=\"onClickClone(row)\"\n (changeExpandCollapse)=\"onChangeExpandCollapse(row, $event)\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\" [hasEmptyRow]=\"hasEmptyRow\" [isEditing]=\"row.isEditing\"\n [isSaving]=\"isSaving\" [isRowSelectionEnable]=\"isRowSelectionEnable\" [isCloneVisible]=\"isCloneVisible\" (CheckboxSelect)=\"isCheckboxSelect($event)\"\n (click)=\"onRowClick(row,$event,i)\"></tr>\n\n <ng-container *ngIf=\"areChildrenVisible(row)\">\n <ng-container *ngTemplateOutlet=\"tableRows; context:{ $implicit: row.data.children }\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"gridOptions.isTrackByDisabled\">\n <ng-container\n *ngFor=\"let row of rows| search:search:searchColumns:isClientSidePagination:searchedRowCount$ | paginate:paginationParams:isClientSidePagination; let i = index;\">\n <tr app-data-row [class.active]=\"isActive(row)\" [isEditable]=\"isEditable\" [gridOptions]=\"gridOptions\"\n [selection]=\"selection\" [row]=\"row\" [rowIndex]=\"i\" [viewColumns]=\"viewColumns\" [canInlineEdit]=\"canInlineEdit\"\n [isTreeGrid]=\"isTreeGrid\" [hasRowChildren]=\"dataTableService.hasRowChildren(row)\" [isRowUnchecked]=\"isRowUnchecked\"\n [isOnlyView]=\"checkRowIsViewOnly(row)\" [isDeleteDisabled]=\"checkDeleteDisabled(row)\"\n (clickAction)=\"onClickAction($event)\" (clickEdit)=\"onClickEdit(row)\" (clickEditCancel)=\"onClickEditCancel(row)\"\n (clickEditSave)=\"onClickEditSave(row, $event)\" (clickDelete)=\"onClickDelete(row)\"\n (clickView)=\"onClickView($event)\" (clickAdd)=\"onClickAdd(row)\" (clickClone)=\"onClickClone(row)\"\n (changeExpandCollapse)=\"onChangeExpandCollapse(row, $event)\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\" [hasEmptyRow]=\"hasEmptyRow\" [isEditing]=\"row.isEditing\"\n [isSaving]=\"isSaving\" [isRowSelectionEnable]=\"isRowSelectionEnable\" [isCloneVisible]=\"isCloneVisible\" (CheckboxSelect)=\"isCheckboxSelect($event)\"\n (click)=\"onRowClick(row,$event,i)\"></tr>\n\n <ng-container *ngIf=\"areChildrenVisible(row)\">\n <ng-container *ngTemplateOutlet=\"tableRows; context:{ $implicit: row.data.children }\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n<ng-container *ngTemplateOutlet=\"tableRows; context:{ $implicit: rows }\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"gridOptions.isAccordionTable\">\n <ng-container *ngIf=\"(rows | search:search:searchColumns:isClientSidePagination).length > 0 || rows.length === 0; else noRecords\">\n <mat-expansion-panel #panel class=\"data-table-expansion-panel\"\n *ngFor=\"let row of rows| search:search:searchColumns:isClientSidePagination:searchedRowCount$ | paginate:paginationParams:isClientSidePagination; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{'mask-color-body':panel.expanded}\" class=\"mask-body\">\n <mat-expansion-panel-header (click)=\"onExpansionPanelClicked(row)\" (keydown.Space)=\"$event.stopImmediatePropagation();\" [class.active]=\"isActive(row)\" [class.hide-mat-indicator-icon]=\"isExpandable(row)\" [collapsedHeight]=\"'auto'\"\n [expandedHeight]=\"'auto'\" class=\"mat-row\">\n <div app-data-row class=\"expansion-row\" [isEditable]=\"isEditable\"\n [gridOptions]=\"gridOptions\" [selection]=\"selection\" [row]=\"row\" [rowIndex]=\"i\" [viewColumns]=\"viewColumns\"\n [canInlineEdit]=\"canInlineEdit\" [isTreeGrid]=\"isTreeGrid\"\n [hasRowChildren]=\"dataTableService.hasRowChildren(row)\" [isOnlyView]=\"checkRowIsViewOnly(row)\"\n [isDeleteDisabled]=\"checkDeleteDisabled(row)\" (clickAction)=\"onClickAction($event)\"\n (clickEdit)=\"onClickEdit(row)\" (clickEditCancel)=\"onClickEditCancel(row)\"\n (clickEditSave)=\"onClickEditSave(row, $event)\" (clickDelete)=\"onClickDelete(row)\"\n (clickView)=\"onClickView($event)\" (clickAdd)=\"onClickAdd(row)\" (clickClone)=\"onClickClone(row)\"\n (changeExpandCollapse)=\"onChangeExpandCollapse(row, $event)\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\" [hasEmptyRow]=\"hasEmptyRow\" [isEditing]=\"row.isEditing\"\n [isSaving]=\"isSaving\" [isRowSelectionEnable]=\"isRowSelectionEnable\" [isCloneVisible]=\"isCloneVisible\" (CheckboxSelect)=\"isCheckboxSelect($event)\"\n (click)=\"onRowClick(row, $event, i)\">\n </div>\n </mat-expansion-panel-header>\n <ng-container *ngIf=\"gridOptions.accordionDesRenderTemplate\">\n <ng-container *ngTemplateOutlet=\"gridOptions.accordionDesRenderTemplate;context:{ $implicit:{index: i, row: row }}\"></ng-container> \n </ng-container>\n </mat-expansion-panel>\n </ng-container>\n\n</ng-container>\n<ng-container *ngIf=\"isNoRecordsFound\">\n <ng-container *ngIf=\"gridOptions.isAccordionTable; else normalTable\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #noRecords>\n <ng-container *ngIf=\"gridOptions.isAccordionTable; else normalTable\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #normalTable>\n <tr>\n <td attr.colspan=\"{{viewColumns?.length}}\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </td>\n </tr>\n</ng-template>\n<ng-template #messageTemplate>\n <div [ngClass]=\"getEmptyDataClassName\">{{gridOptions.emptyDataMessage ? gridOptions.emptyDataMessage : 'No records found'}}</div>\n</ng-template>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { isUndefined } from 'lodash';\nimport { ToolTipsProp, tooltipsDefaultValue } from 'idp-apps-shared-ui/enums/tooltips-prop.enum';\nimport { DataTableActions }\n from '../../../../../modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum';\nimport { Icons } from '../../../enums/icons.enum';\nimport { IDataTableRow, GridOptions } from '../../../interfaces/data-table.interface';\nimport { GridApi } from '../api-classes/grid-api';\nimport { SnackbarService } from '../../../services/snackbar.service';\nimport { UserManagementService } from 'idp-apps-shared-ui/core/services/user-management.service';\nimport { ActionTypesEnum } from 'idp-apps-shared-ui/enums/action-types.enum';\nimport { BehaviorSubject } from 'rxjs';\n\n\n@Component({\n selector: 'app-data-table-actions',\n templateUrl: './data-table-actions.component.html',\n styleUrls: ['./data-table-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataTableActionsComponent {\n @Input() public canInlineEdit: boolean;\n @Input() public isEditable: boolean = true;\n @Input() public isEditing: boolean = false;\n @Input() public isSaving: boolean = false;\n @Input() public isTreeGrid: boolean;\n @Input() public isOnlyView: boolean;\n @Input() public hasEmptyRow: boolean;\n @Input() public isCloneVisible: boolean;\n @Input() public isDeleteVisible: boolean;\n @Input() public selectedRow: IDataTableRow;\n @Input() public gridApi: GridApi;\n @Input() public gridOptions: GridOptions;\n @Input() public isIconsDisabled: boolean;\n @Output() public clickAdd: EventEmitter<number> = new EventEmitter();\n\n public readonly ICONS: typeof Icons = Icons;\n public readonly tooltipsProp: typeof ToolTipsProp = ToolTipsProp;\n public readonly actionsTypes: typeof ActionTypesEnum = ActionTypesEnum;\n public readonly DATA_TABLE_ACTIONS: typeof DataTableActions = DataTableActions;\n\n constructor (\n private userManagementService: UserManagementService,\n private snackbarService: SnackbarService,\n ) { }\n \n public getActionClass(actionType: DataTableActions): string {\n return `action-${actionType}`;\n }\n\n public onClickAdd(): void {\n this.clickAdd.emit();\n }\n\n public onClickEdit(): void {\n if (isUndefined(this.selectedRow)) {\n return;\n }\n const row = this.selectedRow;\n this.gridApi.triggerRowEdit({ row });\n }\n\n public onClickClone(): void {\n if (isUndefined(this.selectedRow)) {\n return;\n }\n const row = this.selectedRow;\n this.gridApi.triggerRowClone({ row });\n }\n\n public onClickDelete(): void {\n if (isUndefined(this.selectedRow)) {\n return;\n }\n const row = this.selectedRow;\n this.gridApi.triggerRowDelete({ row });\n }\n\n public onClickCancel(): void {\n if (!this.isSaving) {\n const row = this.selectedRow;\n this.gridApi.triggerRowSaveCancel({ row });\n } else {\n this.snackbarService.warning('A save is pending. Please wait a while.');\n }\n }\n\n public onClickSave(): void {\n if (!this.isSaving) {\n const row = this.selectedRow;\n this.gridApi.triggerRowEditSave({ row });\n } else {\n this.snackbarService.warning('Another save is pending. Please wait a while.');\n }\n }\n\n public get isAddActionVisible(): boolean {\n return this.isTreeGrid &&\n !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get isEditVisible(): boolean {\n return this.isEditable && \n !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get shouldDeleteBeShown(): boolean {\n return this.isDeleteVisible &&\n !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get isCLoneVisible(): boolean {\n return this.isCloneVisible &&\n !this.hasEmptyRow &&\n !this.isEditing &&\n !this.isOnlyView;\n }\n\n public get isActionDisabled(): boolean {\n return isUndefined(this.selectedRow) || this.isIconsDisabled;\n }\n\n public get hasAddTemplate(): boolean {\n return !!this.gridOptions.addButtonTemplate;\n }\n\n public get hasEditTemplate(): boolean {\n return !!this.gridOptions.editButtonTemplate;\n }\n\n public get hasDeleteTemplate(): boolean {\n return !!this.gridOptions.deleteButtonTemplate;\n }\n\n public getTooltipText(text: string): string {\n if (this.gridOptions.iconTooltips && this.gridOptions.iconTooltips[text]) {\n return this.gridOptions.iconTooltips[text];\n }\n return tooltipsDefaultValue[text];\n }\n\n public getActionName(prop: string): string {\n return this.userManagementService.getActionName(this.gridOptions, prop);\n }\n\n public isDisabledMainAction(actionProp: string): boolean {\n return this.isActionDisabled || (this.gridOptions.disableIcons && this.gridOptions.disableIcons[actionProp]);\n }\n\n}\n","<ul class=\"row-actions\">\n <ng-container *hasPermission=\"getActionName(actionsTypes.ADD)\">\n <li *ngIf=\"isAddActionVisible && !hasAddTemplate\">\n <a (click)=\"onClickAdd()\"\n [ngClass]=\"{'disabled': isDisabledMainAction(actionsTypes.ADD) || (gridOptions.disableIcons && gridOptions.disableIcons.add$ |async)}\">\n <span\n [ngClass]=\"(isDisabledMainAction(actionsTypes.ADD) || (gridOptions.disableIcons && gridOptions.disableIcons.add$ |async))? '': 'icon-active'\"\n title=\"{{getTooltipText(tooltipsProp.ADD)}}\" class=\"toolbar-icon icon-plus\"></span>\n </a>\n </li>\n </ng-container>\n <ng-container *hasPermission=\"getActionName(actionsTypes.EDIT)\">\n <li *ngIf=\"isEditVisible && !hasEditTemplate\">\n <a (click)=\"onClickEdit()\"\n [ngClass]=\"{'disabled': isDisabledMainAction(actionsTypes.EDIT) || (gridOptions.disableIcons && gridOptions.disableIcons.edit$ |async)}\">\n <span title=\"{{getTooltipText(tooltipsProp.EDIT)}}\"\n class=\"toolbar-icon icon-edit {{getActionClass(DATA_TABLE_ACTIONS.EDIT)}}\"\n [ngClass]=\"(isDisabledMainAction(actionsTypes.EDIT) || (gridOptions.disableIcons && gridOptions.disableIcons.edit$ |async))? '': 'icon-active'\"></span>\n </a>\n </li>\n <li *ngIf=\"isEditVisible && hasEditTemplate\">\n <ng-container *ngTemplateOutlet=\"gridOptions.editButtonTemplate;\"></ng-container>\n </li>\n <li *ngIf=\"isEditVisible && gridOptions.actionLoading$?.edit$ |async\">\n <mat-spinner class=\"mr-1 action-loader\" [diameter]=\"25\"></mat-spinner>\n </li>\n </ng-container>\n\n <li *ngIf=\"isEditing\">\n <a (click)=\"onClickSave()\">\n <app-icon [title]=\"getTooltipText(tooltipsProp.SAVE)\" [name]=\"ICONS.Save\" [isDisabled]=\"isSaving\"></app-icon>\n </a>\n </li>\n\n <li *ngIf=\"isEditing\">\n <a (click)=\"onClickCancel()\">\n <app-icon [title]=\"getTooltipText(tooltipsProp.CANCEL)\" [name]=\"ICONS.Cancel\" [isDisabled]=\"isSaving\"></app-icon>\n </a>\n </li>\n <ng-container *hasPermission=\"getActionName(actionsTypes.DELETE)\">\n <li *ngIf=\"shouldDeleteBeShown\">\n <a *ngIf=\"!hasDeleteTemplate\" (click)=\"onClickDelete()\"\n [ngClass]=\"{'disabled': isDisabledMainAction(actionsTypes.DELETE) || (gridOptions.disableIcons && gridOptions.disableIcons.delete$ |async)}\">\n <span title=\"{{getTooltipText(tooltipsProp.DELETE)}}\"\n class=\"toolbar-icon icon-trash {{getActionClass(DATA_TABLE_ACTIONS.DELETE)}}\"\n [ngClass]=\"(isDisabledMainAction(actionsTypes.DELETE) || (gridOptions.disableIcons && gridOptions.disableIcons.delete$ |async)) ? '': 'icon-active'\"></span>\n </a>\n <ng-container *ngIf=\"hasDeleteTemplate\">\n <ng-container *ngTemplateOutlet=\"gridOptions.deleteButtonTemplate;\"></ng-container>\n </ng-container>\n </li>\n <li *ngIf=\"shouldDeleteBeShown && gridOptions.actionLoading$?.delete$|async\">\n <mat-spinner class=\"mr-1 action-loader\" [diameter]=\"25\"></mat-spinner>\n </li>\n </ng-container>\n <ng-container *hasPermission=\"getActionName(actionsTypes.COPY)\">\n <li *ngIf=\"isCLoneVisible\">\n <a (click)=\"onClickClone()\" [ngClass]=\"{'disabled': isDisabledMainAction(actionsTypes.CLONE) || (gridOptions.disableIcons && gridOptions.disableIcons.copy$ | async)}\">\n <span title=\"{{getTooltipText(tooltipsProp.COPY)}}\"\n class=\"toolbar-icon icon-clone {{getActionClass(DATA_TABLE_ACTIONS.DELETE)}}\"\n [ngClass]=\"(isDisabledMainAction(actionsTypes.CLONE) || (gridOptions.disableIcons && gridOptions.disableIcons.copy$ |async))? '': 'icon-active'\"></span>\n </a>\n </li>\n <li *ngIf=\"isCLoneVisible && gridOptions.actionLoading$?.delete$ | async\">\n <mat-spinner class=\"mr-1 action-loader\" [diameter]=\"25\"></mat-spinner>\n </li>\n </ng-container>\n</ul>","import { Pipe, PipeTransform } from '@angular/core';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport { isUndefined, isNull } from 'lodash';\n\n@Pipe({ name: 'filterByProp' })\nexport class FilterByPropPipe implements PipeTransform {\n\n constructor() {}\n\n public transform(items: any[], prop: string, filterValue: string): IKeyValue[] {\n\n if (isUndefined(items)) {\n items = [];\n }\n\n if (prop && filterValue) {\n return items.filter(item => {\n if (item && item[prop]) {\n return item[prop].toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n }\n return false;\n });\n }\n\n return items;\n }\n}\n","import { Options } from '@angular-slider/ngx-slider';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges,\n OnDestroy,\n OnInit, Output, SimpleChanges, ViewChild\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { cloneDeep, isFunction } from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, finalize, first, shareReplay, takeUntil, distinctUntilChanged } from 'rxjs/operators';\nimport { IKeyValue } from '../../../../../modules/ui-kit/interfaces/generic.interface';\nimport { IFilterOption, IFilterParam } from '../../../interfaces/api.interface';\nimport { IDataTableColumn } from '../../../interfaces/data-table.interface';\nimport { FilterValueExecutorProvider } from '../../data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider';\nimport { DataTableColumnFilterInputTypes, DataTableColumnFilterTypes } from '../../data-table/enums/col-filter-types';\nimport { IDataTableColumnFilterValue } from '../../data-table/interfaces/filter-value-executor.interface';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-data-col-filter',\n templateUrl: './data-col-filter.component.html',\n styleUrls: ['./data-col-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataColFilterComponent implements OnInit, OnChanges, OnDestroy {\n @Input() public isClearFilter$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n @Input() public isUpdatedFilterDesign = false;\n @Input() public columnName: IDataTableColumn;\n @Input() public filterParam: IFilterParam;\n @Input() public numberOfTableRefresh: number;\n @Input() public filterOption: IFilterOption;\n public selectableItems$: BehaviorSubject<IKeyValue[]> = new BehaviorSubject<IKeyValue[]>(null);\n public searchText: FormControl = new FormControl();\n public selectAllCtrl: FormControl = new FormControl(false);\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() public onFilterClicked: EventEmitter<IFilterParam> = new EventEmitter<IFilterParam>();\n\n public dateRangeFormGroup = new FormGroup({\n startDate: new FormControl(''),\n endDate: new FormControl(''),\n });\n public dateRangeValue = '';\n public sliderValueOpt = {\n maxScore: 100,\n minScore: 0,\n };\n public filterValue: FormControl;\n public searchCtrl: FormControl = new FormControl();\n public FILTER_TYPES = DataTableColumnFilterTypes;\n public FILTER_INPUT_TYPES = DataTableColumnFilterInputTypes;\n public sliderDefaultOptions: Options = {\n floor: 0,\n ceil: 100,\n };\n public isLoading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n @ViewChild('ngbPopover') private ngbPopover: NgbPopover\n private filterValueMaker: IDataTableColumnFilterValue;\n private filterWorkingValue: IKeyValue;\n private selectableItems: IKeyValue[] = [];\n private previousSelectableItems: IKeyValue[];\n private clearSubs$ = new Subject();\n private searchObject$: Subject<string> = new Subject();\n\n constructor(\n private filterValueExecutorProvider: FilterValueExecutorProvider,\n private cd: ChangeDetectorRef,\n ) {\n this.setSearchWatcher$();\n }\n\n get getCheckBoxsValue(): string {\n return Array.isArray(this.filterWorkingValue) ? this.filterWorkingValue.join(' ') : this.filterWorkingValue[0];\n }\n \n get isIndeterminate(): boolean {\n return (<string[]>this.filterWorkingValue).length > 0 && (<string[]>this.filterWorkingValue).length !== this.selectableItems.length;\n }\n\n get isAllSelected(): boolean {\n return this.filterWorkingValue.length > 0 && this.filterWorkingValue.length === this.selectableItems.length;\n }\n\n get isClearEnabled(): boolean {\n return !!(this.dateRangeFormGroup.get('startDate').value || this.dateRangeFormGroup.get('endDate').value);\n }\n\n get isSearchBoxHide(): boolean {\n return !!this.filterOption?.isSearchBoxHide;\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n this.isLoading$.next(false);\n this.isLoading$.complete();\n }\n\n public ngOnInit(): void {\n this.filterValue = new FormControl('');\n this.isClearFilter$.pipe(distinctUntilChanged()).subscribe(res => {\n if (res) {\n this.clearFilter();\n }\n });\n if (this.filterOption && (this.filterOption.type === DataTableColumnFilterInputTypes.REFERENCE)) {\n this.loadDefaultReferenceItems();\n this.loadReferenceData();\n }\n this.filterValueMaker = this.filterValueExecutorProvider\n .getFilterValueExecutorProvider(this.filterOption && this.filterOption.type || this.FILTER_TYPES.CONTAINS);\n this.filterValueMaker.setInitValues(this);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.filterParam && this.filterValue) {\n this.filterValue.setValue(this.filterParam ? this.filterParam.filterValue : '');\n }\n }\n\n public selectAllCheckbox(): void {\n if (this.selectAllCtrl.value) {\n this.filterWorkingValue = this.selectableItems$.getValue().map(x => x.value);\n } else {\n this.filterWorkingValue = [];\n }\n this.emitFilterParam(<string[]>this.filterWorkingValue);\n }\n\n public columnFilterClicked(): void {\n this.emitFilterParam();\n this.ngbPopover.close();\n }\n\n public columnFilterResetClicked(): void {\n this.filterValueMaker.resetValue(this);\n this.emitFilterParam();\n this.ngbPopover.close();\n }\n\n public matMenuOpend(): void {\n this.previousSelectableItems = cloneDeep(this.selectableItems);\n this.selectableItems = [];\n this.selectableItems$.next(this.selectableItems);\n if (this.searchText.value) {\n this.searchText.setValue('');\n }\n if (this.filterOption.selectableItems) {\n this.selectableItems = this.filterOption.selectableItems;\n this.selectableItems$.next(this.filterOption.selectableItems);\n return;\n }\n this.isLoading$.next(true);\n if (this.filterOption && isFunction(this.filterOption.getSelectableFn$)) {\n this.filterOption.getSelectableFn$('')\n .pipe(first(), shareReplay(), takeUntil(this.clearSubs$), finalize(() => this.isLoading$.next(false)))\n .subscribe((res: IKeyValue<any>[]) => {\n const currntSelectedItems = this.getCurrentSelectedItems();\n this.selectableItems = [...res];\n this.removePreviousSelectedItems(currntSelectedItems, res);\n this.selectableItems$.next(currntSelectedItems.concat(res));\n });\n this.getSelectableItems();\n }\n }\n\n public dateRangeClick(ev: any) {\n this.dateRangeValue = ev.value;\n const val = +ev.value;\n const raw = { days: 1, weeks: 7, months: 30, years: 365 };\n const days = (val * raw[this.filterOption.dateRangeItems?.unit ?? 'days']) - 1;\n this.dateRangeFormGroup.setValue({ startDate: new Date() as any, endDate: moment().add(days, 'days').toDate() as any });\n }\n\n\n public clearSelection(): void {\n this.filterValueMaker.resetValue(this);\n this.emitFilterParam();\n this.selectAllCtrl.reset();\n }\n\n public clearDateFilter(): void {\n this.dateRangeFormGroup.reset({}, { emitEvent: false });\n this.filterValueMaker.resetValue(this);\n this.emitFilterParam();\n this.dateRangeValue = '';\n }\n\n public closePopup(): void {\n this.ngbPopover.close();\n }\n\n public clearSearch(): void {\n this.searchText.setValue('');\n }\n\n public changeContainsValue(): void {\n this.filterWorkingValue = this.filterValue.value;\n }\n\n public searchValueChanged(): void {\n this.searchObject$.next(this.filterValue.value);\n }\n\n public setCheckedValuesToFilter(item: IKeyValue): void {\n if (!item) {\n return;\n }\n this.filterWorkingValue = this.filterValueMaker.setFilterValue(this.filterOption, this.filterWorkingValue, item);\n this.emitFilterParam(<string[]>this.filterWorkingValue);\n }\n\n public referenceValueChanged(): void {\n this.emitFilterParam(this.filterValue.value);\n }\n\n public sliderValueChanged(): void {\n if (!this.filterWorkingValue) {\n this.filterWorkingValue = {};\n }\n this.filterWorkingValue['maxScore'] = this.sliderValueOpt.maxScore;\n this.filterWorkingValue['minScore'] = this.sliderValueOpt.minScore;\n this.emitFilterParam();\n\n }\n\n public setDateValue(formName: string): void {\n if (!this.filterWorkingValue) {\n this.filterWorkingValue = {};\n }\n this.filterWorkingValue[formName] = this.dateRangeFormGroup.controls[formName].value;\n if (this.isUpdatedFilterDesign && (this.filterWorkingValue[formName] ||\n this.filterWorkingValue[formName])) {\n this.emitFilterParam(this.populateDateRnage());\n }\n }\n\n public isItemChecked(item: IKeyValue): boolean {\n return this.filterValueMaker.isCheckedFilterValue(this.filterOption, this.filterWorkingValue, item);\n }\n\n public isFormInvalid(): boolean {\n return this.filterValueMaker.isFormInvalid(this);\n }\n\n private getFilterValue(): string | string[] {\n return this.filterValueMaker.getFilterValue(this.filterWorkingValue, this.isUpdatedFilterDesign);\n }\n\n private emitFilterParam(filterValue?: string | string[]): void {\n this.onFilterClicked.emit({\n filterColumn: this.columnName,\n filterValue: filterValue ? filterValue : this.getFilterValue(),\n columnName: this.columnName.prop,\n filterType: this.filterOption && this.filterOption.type || this.FILTER_TYPES.CONTAINS,\n });\n }\n\n private getSelectableItems(): void {\n this.searchText.valueChanges.pipe(debounceTime(500))\n .subscribe(() => {\n const existingObj = this.getCurrentSelectedItems();\n this.isLoading$.next(true);\n this.filterOption.getSelectableFn$(this.searchText.value, true)\n .pipe(first(), shareReplay(), takeUntil(this.clearSubs$), finalize(() => this.isLoading$.next(false)))\n .subscribe((response: IKeyValue<any>[]) => {\n this.removePreviousSelectedItems(existingObj, response);\n this.selectableItems = existingObj.concat(response);\n this.selectableItems$.next(existingObj.concat(response));\n });\n });\n }\n\n private clearFilter(): void {\n this.filterValueMaker.resetValue(this);\n this.dateRangeFormGroup.reset();\n this.isClearFilter$.next(false);\n }\n\n private getCurrentSelectedItems(): IKeyValue[] {\n const existingValues = <[]> this.filterWorkingValue;\n return existingValues.map(item => {\n const label = this.previousSelectableItems.find(x => x[this.filterOption.bindProp] === item)?.[this.filterOption.displayProp];\n return <IKeyValue>{ [this.filterOption.bindProp]: item, [this.filterOption.displayProp]: label || '' };\n });\n }\n\n private removePreviousSelectedItems(previousItems: IKeyValue[], currentItems: IKeyValue[]): void {\n previousItems.forEach(x => {\n const position = currentItems.findIndex(item => item[this.filterOption.bindProp] === x[this.filterOption.bindProp]);\n if (position !== - 1) {\n currentItems.splice(position, 1);\n }\n });\n }\n\n private populateDateRnage(): string[] {\n const dateRanges: string[] = [];\n dateRanges[0] = this.formatDate(this.filterWorkingValue.startDate);\n dateRanges[1] = this.formatDate(this.filterWorkingValue.endDate);\n return dateRanges;\n }\n\n private formatDate(date: string): string {\n if (!date) {\n return '';\n }\n return `${new Date(date).getFullYear()}-${new Date(date).getMonth() + 1}-${new Date(date).getDate()}`;\n }\n\n private loadReferenceData(): void {\n this.filterValue.setValue(null);\n if (this.filterOption.selectableItems && this.filterOption.selectableItems.length) {\n this.selectableItems$.next(this.filterOption.selectableItems);\n return;\n }\n if (isFunction(this.filterOption.getSelectableFn$)) {\n this.filterOption.getSelectableFn$().pipe(takeUntil(this.clearSubs$))\n .subscribe((res: IKeyValue<any>[]) => {\n if (res && res.length > 0) {\n this.selectableItems$.next(res);\n }\n });\n }\n }\n\n private setSearchWatcher$(): void {\n this.searchObject$.pipe(debounceTime(500), takeUntil(this.clearSubs$))\n .subscribe((searchStr: string) => {\n this.onFilterClicked.emit({\n filterColumn: this.columnName,\n filterValue: searchStr,\n columnName: this.columnName.prop,\n filterType: this.filterOption && this.filterOption.type || this.FILTER_TYPES.CONTAINS,\n });\n });\n }\n \n private loadDefaultReferenceItems(): void {\n this.selectableItems$.next([\n { [this.filterOption.displayProp]: 'SELECT', [this.filterOption.bindProp]: '' },\n { [this.filterOption.displayProp]: 'True', [this.filterOption.bindProp]: true },\n { [this.filterOption.displayProp]: 'False', [this.filterOption.bindProp]: false },\n ]);\n }\n}\n","<ng-container *ngIf=\"isUpdatedFilterDesign\">\n <ng-container [ngSwitch]=\"filterOption?.type\">\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.TEXT\">\n <mat-form-field\n class=\"apollo-text-field table-header-apollo-text-field text-search\"\n [floatLabel]=\"'auto'\"\n >\n <input\n (ngModelChange)=\"searchValueChanged()\"\n matInput\n type=\"text\"\n placeholder=\"Search {{ columnName.header }}\"\n name=\"search\"\n [formControl]=\"searchCtrl\"\n (ngModelChange)=\"changeContainsValue()\"\n />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.REFERENCE\">\n <ng-select\n class=\"apollo-text-field table-header-apollo-text-field\"\n (change)=\"referenceValueChanged()\"\n [appendTo]=\"'mat-card'\"\n [items]=\"(selectableItems$ | async) || []\"\n [bindValue]=\"filterOption.bindProp\"\n [bindLabel]=\"filterOption.displayProp\"\n [multiple]=\"false\"\n placeholder=\"{{ columnName.header }}\"\n [formControl]=\"filterValue\"\n >\n </ng-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.CHECKBOX\">\n <button\n (menuOpened)=\"matMenuOpend()\"\n mat-raised-button\n [matMenuTriggerFor]=\"actions\"\n class=\"dropdown-toggle odp-secondary-button\"\n >\n <span>{{ columnName.header || columnName.prop | titlecase }}</span>\n <mat-menu\n #actions=\"matMenu\"\n focusFirstItem=\"false\"\n class=\"odb-mat-menu-panel custom-panel filter-panel\"\n >\n <div class=\"custom-panel-padding\">\n <span\n class=\"filter-search-container\"\n (click)=\"$event.stopPropagation()\"\n >\n <input\n *ngIf=\"!isSearchBoxHide\"\n required\n matInput\n type=\"text\"\n placeholder=\"Search {{ columnName.header }}\"\n name=\"search\"\n [formControl]=\"searchText\"\n />\n <span\n class=\"clear-filter-search\"\n *ngIf=\"searchText.value\"\n (click)=\"clearSearch()\"\n >&#x2715;</span\n >\n </span>\n <span\n (click)=\"clearSelection()\"\n class=\"clear-all\"\n >Clear all</span\n >\n <mat-spinner\n *ngIf=\"isLoading$ | async\"\n class=\"mr-1\"\n [diameter]=\"16\"\n ></mat-spinner>\n <div\n class=\"custom-mat-menu-item\"\n class=\"my-1\"\n >\n <span>\n <mat-checkbox\n class=\"bold-text\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isAllSelected\"\n [formControl]=\"selectAllCtrl\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"selectAllCheckbox()\"\n >Select All</mat-checkbox\n >\n </span>\n </div>\n <div\n class=\"custom-mat-menu-item\"\n *ngFor=\"\n let item of (selectableItems$ | async) ||\n filterOption.selectableItems ||\n []\n \"\n class=\"my-1\"\n >\n <span>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\"\n [title]=\"item[filterOption.displayProp]\"\n >{{ item[filterOption.displayProp] }}</mat-checkbox\n >\n </span>\n </div>\n </div>\n </mat-menu>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.DATE_RANGE\">\n <ng-container *ngTemplateOutlet=\"dateRangeTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.SLIDER\">\n <ng-container *ngIf=\"filterOption.filterTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n filterOption.filterTemplate;\n context: {\n $implicit: {\n filterOption: filterOption,\n thOptions: filterOption.thOptions\n }\n }\n \"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filterOption.filterTemplate\">\n <div class=\"custom-slider custom-slider-alignment\">\n <ngx-slider (userChangeEnd)=\"sliderValueChanged()\" [(value)]=\"sliderValueOpt.minScore\"\n [(highValue)]=\"sliderValueOpt.maxScore\" [options]=\"sliderDefaultOptions\">\n </ngx-slider>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!isUpdatedFilterDesign\">\n <a #ngbPopover=\"ngbPopover\" [ngbPopover]=\"popTemplate\" [placement]=\"'bottom'\" [autoClose]=\"false\">\n <i class=\"fas fa-filter filter-icon\"></i>\n </a>\n <ng-template #popTemplate>\n <div class=\"card-width table-col-filter-panel\">\n <mat-icon (click)=\"closePopup()\" class=\"mat-icon material-icons close-icon\">close</mat-icon>\n <div class=\"card-form\">\n <mat-form-field *ngIf=\"!filterOption?.type || filterOption.type == FILTER_TYPES.CONTAINS\"\n class=\"card-full-width apollo-text-field\" [floatLabel]=\"'always'\">\n <mat-label>Filter By {{ columnName.header }}</mat-label>\n <input matInput placeholder=\"Enter {{ columnName.header }}\" [formControl]=\"filterValue\"\n (ngModelChange)=\"changeContainsValue()\">\n </mat-form-field>\n\n <mat-label *ngIf=\"filterOption?.type && filterOption?.type != FILTER_TYPES.CONTAINS\">Filter By\n {{columnName.header }}</mat-label>\n <div *ngIf=\"filterOption?.type === FILTER_TYPES.IN\">\n <section class=\"search\">\n <form ngForm>\n <div class=\"searchbar-wrapper\">\n <i class=\"svg-icon fa-solid fa-magnifying-glass\"></i>\n <input required matInput type=\"text\" placeholder=\"Search \"\n name=\"search\" />\n </div>\n </form>\n </section>\n <div [ngClass]=\"{ 'multi-select-section': filterOption.selectableItems?.length>6 }\">\n <div *ngFor=\"let item of filterOption.selectableItems | filterByProp: filterOption.displayProp: ''\"\n class=\"my-1\">\n <span>\n <mat-checkbox [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\">\n {{item[filterOption.displayProp]}}</mat-checkbox>\n </span>\n </div>\n </div>\n </div>\n <div *ngIf=\"filterOption?.type === FILTER_TYPES.BETWEEN\" class=\"filter-item\" fxLayout=\"row\"\n [formGroup]=\"dateRangeFormGroup\">\n <div class=\"apollo-text-field date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('startDate')\"\n class=\"input-element\" [matDatepicker]=\"picker1\" [placeholder]=\"'Start Date'\"\n formControlName=\"startDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"\n class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker1></mat-datepicker>\n\n </div>\n <div class=\"apollo-text-field date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('endDate')\"\n class=\"input-element\" [matDatepicker]=\"picker2\" [placeholder]=\"'End Date'\"\n formControlName=\"endDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"\n class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </div>\n </div>\n <div *ngIf=\"filterOption?.type === FILTER_INPUT_TYPES.CHECKBOX\" class=\"filter-item\" fxLayout=\"row\">\n <button (menuOpened)=\"matMenuOpend()\" mat-raised-button [matMenuTriggerFor]=\"actions\"\n class=\"dropdown-toggle odp-secondary-button\">\n <span>{{getCheckBoxsValue?? columnName.header || columnName.prop | titlecase }}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"odb-mat-menu-panel custom-panel filter-panel\">\n <div class=\"custom-panel-padding\">\n <span class=\"filter-search-container\" (click)=\"$event.stopPropagation()\">\n <input *ngIf=\"!isSearchBoxHide\" required matInput type=\"text\"\n placeholder=\"Search {{ columnName.header }}\" name=\"search\" [formControl]=\"searchText\" />\n <span class=\"clear-filter-search\" *ngIf=\"searchText.value\" (click)=\"clearSearch()\">&#x2715;</span>\n </span>\n <span (click)=\"clearSelection()\" class=\"clear-all\">Clear all</span>\n <mat-spinner *ngIf=\"isLoading$ | async\" class=\"mr-1\" [diameter]=\"16\"></mat-spinner>\n <div class=\"custom-mat-menu-item\" class=\"my-1\">\n <span>\n <mat-checkbox class=\"bold-text\" [indeterminate]=\"isIndeterminate\" [checked]=\"isAllSelected\"\n [formControl]=\"selectAllCtrl\" (click)=\"$event.stopPropagation()\"\n (change)=\"selectAllCheckbox()\">Select All</mat-checkbox>\n </span>\n </div>\n <div class=\"custom-mat-menu-item\" *ngFor=\"\n let item of (selectableItems$ | async) ||\n filterOption.selectableItems ||\n []\n \" class=\"my-1\">\n <span>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\" [title]=\"item[filterOption.displayProp]\">{{\n item[filterOption.displayProp] }}</mat-checkbox>\n </span>\n </div>\n </div>\n </mat-menu>\n </button>\n </div>\n </div>\n <mat-card-actions>\n <button [disabled]=\"isFormInvalid()\" (click)=\"columnFilterClicked()\" mat-button color=\"primary\"><i\n class=\"fa-solid fa-magnifying-glass\"></i> Search</button>\n <button (click)=\"columnFilterResetClicked()\" mat-button color=\"primary\"><i class=\"fas fa-redo\"></i>\n Clear</button>\n </mat-card-actions>\n </div>\n </ng-template>\n</ng-container>\n<ng-template #dateRangeTemplate>\n <button mat-raised-button [matMenuTriggerFor]=\"actions\" class=\"dropdown-toggle odp-secondary-button\">\n <span>{{ (columnName.header || columnName.prop) | titlecase}}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"date-range-panel\">\n <div class=\"filter-item\" fxLayout=\"row\" [formGroup]=\"dateRangeFormGroup\">\n <div class=\"apollo-text-field custom-date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" (click)=\"picker1.open(); $event.stopPropagation();\" [max]=\"dateRangeFormGroup.controls['endDate'].value\" matInput required\n (ngModelChange)=\"setDateValue('startDate')\" class=\"custom-date-field\" [matDatepicker]=\"picker1\"\n [placeholder]=\"'From Date'\" formControlName=\"startDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker1\" class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker1></mat-datepicker>\n\n </div>\n <div class=\"apollo-text-field custom-date-picker-field\" fxLayout=\"row\">\n <input (click)=\"picker2.open(); $event.stopPropagation();\" [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('endDate')\"\n class=\"custom-date-field\" [min]=\"dateRangeFormGroup.controls['startDate'].value\"\n [matDatepicker]=\"picker2\" [placeholder]=\"'To Date'\" formControlName=\"endDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker2\" class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </div>\n <button title=\"Clear all\" [disabled]=\"!isClearEnabled\" class=\"date-clear\" (click)=\"clearDateFilter()\" mat-stroked-button color=\"primary\">\n <em class=\"fas fa-broom\"></em>\n </button>\n </div>\n <div *ngIf=\"filterOption.dateRangeItems\">\n <mat-radio-group name=\"fontStyle\" aria-label=\"Font Style\" [value]=\"dateRangeValue\"\n (change)=\"dateRangeClick($event)\">\n <mat-radio-button *ngFor=\"let item of filterOption.dateRangeItems.items\" value=\"{{ item }}\">\n {{ item }} {{ filterOption.dateRangeItems.unit }} &nbsp;\n </mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </button>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DataTableService } from 'idp-apps-shared-ui/modules/ui-kit/services/data-table.service';\nimport { IFilterParam } from '../interfaces/api.interface';\nimport { IDataTableColumn, IDataTableRow } from '../interfaces/data-table.interface';\n\n@Pipe({ name: 'columnFilter' })\nexport class ColumnFilterPipe implements PipeTransform {\n\n constructor(private dataTableService: DataTableService) { }\n\n public transform(items: IDataTableRow[], filterParams: IFilterParam[], columns?: IDataTableColumn[], isClientSidePagination?: boolean)\n : IDataTableRow[] {\n if (isClientSidePagination) {\n return this.dataTableService.applyFilter(filterParams, columns, items);\n }\n return items;\n }\n \n}\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\n/* eslint-disable sort-class-members/sort-class-members */\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LocalStorageService } from 'idp-apps-shared-ui/core/services/local-storage.service';\nimport { UserManagementService } from 'idp-apps-shared-ui/core/services/user-management.service';\nimport { ActionTypesEnum } from 'idp-apps-shared-ui/enums/action-types.enum';\nimport { SortDirectionEnum } from 'idp-apps-shared-ui/enums/sort-direction.enum';\nimport { SourceTypesEnum } from 'idp-apps-shared-ui/enums/source-types.enum';\nimport { ToolTipsProp, tooltipsDefaultValue } from 'idp-apps-shared-ui/enums/tooltips-prop.enum';\nimport { CommonConfirmModalComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component';\nimport { IRowSelectionInfo } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/row-selection-info.interface';\nimport { ColumnFilterPipe } from 'idp-apps-shared-ui/modules/ui-kit/pipes/column-filter.pipe';\nimport { SearchPipe } from 'idp-apps-shared-ui/modules/ui-kit/pipes/search.pipe';\nimport { clone, isFunction, isUndefined, merge } from 'lodash';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, first, takeUntil } from 'rxjs/operators';\nimport { ChangeType } from '../../../../../modules/ui-kit/components/data-table/constants/change-type.enum';\nimport { DataTableConstants } from '../../../constants/data-table.constants';\nimport { ColumnDisableModes } from '../../../enums/column-disable-mode.enum';\nimport { ColumnTypes } from '../../../enums/column-types.enum';\nimport { FormTypes } from '../../../enums/form-types.enum';\nimport { Icons } from '../../../enums/icons.enum';\nimport { SnackbarTypes } from '../../../enums/snackbar.enum';\nimport { IFilterParam, IListReqParamsApi, IListResApi } from '../../../interfaces/api.interface';\nimport {\n GridOptions,\n ICheckedRowEvent,\n IClickedEventData,\n IDataTableAction,\n IDataTableChangeLocalDataEvent,\n IDataTableColumn,\n IDataTableExpandCollapseEvent,\n IDataTableRow,\n IDataTableRowEvent,\n IDataTableRowSaveEvent,\n IRowData,\n ITopRightAction,\n} from '../../../interfaces/data-table.interface';\nimport { IKeyValue, IPaginationParams } from '../../../interfaces/generic.interface';\nimport { ListItem } from '../../../interfaces/list-item.interface';\nimport { DataTableService } from '../../../services/data-table.service';\nimport { FormService } from '../../../services/form.service';\nimport { SnackbarService } from '../../../services/snackbar.service';\nimport { DeleteItemFn, GetListFn, PostItemFn, PutItemFn } from '../../../types/function.type';\nimport { DeleteModalComponent } from '../../modals/delete-modal/delete-modal.component';\nimport { FilterManager } from '../api-classes/filter-manager';\nimport { GridApi } from '../api-classes/grid-api';\nimport { COLUMN_ID } from '../constants/column-id';\nimport { ROW } from '../constants/row';\nimport { DataColDispComponent } from '../data-col-disp/data-col-disp.component';\nimport { DataTableBodyComponent } from '../data-table-body/data-table-body.component';\nimport { IDataTableComponent } from '../interfaces/data-table-component.interface';\nimport { DATA_TABLE_CONTEXT, DataTableContextService } from '../services/data-table-context.service';\n\nexport interface ScrollPosition {\n x: number;\n y: number;\n}\n\nexport interface ScrollEvent extends Event {\n isTrusted: boolean;\n currentScrollPosition: ScrollPosition;\n currentElement: ElementRef<HTMLElement>;\n}\n\n@Component({\n selector: 'app-data-table',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: DATA_TABLE_CONTEXT,\n useExisting: DataTableComponent,\n },\n ],\n})\nexport class DataTableComponent implements OnInit, AfterViewInit, OnDestroy, IDataTableComponent {\n // Inline edit settings\n public get canInlineEdit(): boolean {\n return this.gridOptions.canInlineEdit;\n }\n\n @ViewChild(DataTableBodyComponent, { static: false })\n public set setDataTableBody(tableBody: DataTableBodyComponent) {\n this.dataTableBody = tableBody;\n }\n\n public get columnShowhideStoragekey(): string | undefined {\n return this.gridOptions.columnShowhideStoragekey;\n }\n\n public get allowSaveColumnVisibilitySettings(): boolean {\n return this.gridOptions.allowSaveColumnVisibilitySettings;\n }\n\n public get addActionTitle(): string {\n return `${this.gridOptions.actionAddTitle}`;\n }\n\n public get isViewActionVisible(): boolean {\n return this.gridOptions.isRowLevelViewActionVisible;\n }\n\n public get searchPlaceholder(): string {\n return this.gridOptions.searchboxPlaceholder ? this.gridOptions.searchboxPlaceholder : this.header;\n }\n\n public get isTableInEditState(): boolean {\n return this.isEditing || this.hasEmptyRow;\n }\n\n private get apiReqParams(): IListReqParamsApi {\n return {\n page: this.currentPage,\n itemsOnPage: this.pageSize,\n filterParams: this.populateFilterParams(),\n searchText: this.searchValue.value,\n ...this.getSortParams,\n };\n }\n\n get getSortParams(): { sortBy: string; sortDirection: SortDirectionEnum } {\n const parmas = [];\n Object.keys(this.sortedColumn).forEach((x) => {\n parmas.push({ sortBy: x, sortDirection: this.sortedColumn[x] });\n });\n return parmas.length ? parmas[0] : {};\n }\n\n public readonly ICONS: typeof Icons = Icons;\n public readonly sortDirectionEnum: typeof SortDirectionEnum = SortDirectionEnum;\n public readonly toolTips: typeof ToolTipsProp = ToolTipsProp;\n public readonly actionTypes: typeof ActionTypesEnum = ActionTypesEnum;\n public readonly DEFAULT_PAGE_SIZE: number = DataTableConstants.DEFAULT_PAGE_SIZE;\n public readonly DEFAULT_INIT_PAGE: number = DataTableConstants.DEFAULT_INIT_PAGE;\n\n public readonly confirmationMsgPagination: string = `Selected checkbox will be lost `;\n @Input() public defaultRowValues: IKeyValue = {};\n @Input() public columns: IDataTableColumn[];\n @Input() public getListFn: GetListFn;\n @Input() public postItemFn: PostItemFn;\n @Input() public putItemFn: PutItemFn;\n @Input() public deleteItemFn: DeleteItemFn;\n @Input() public header: string = '';\n @Input() public description: string;\n @Input() public actionAddTitle: string;\n @Input() public isIdColVisible: boolean = false;\n @Input() public hasPagination: boolean = true;\n @Input() public isOnlyView: boolean = false;\n @Input() public isOnlyViewRow?: (row: IDataTableRow) => boolean;\n @Input() public isDeleteDisabled?: (row: IDataTableRow) => boolean;\n @Input() public isEditable: boolean = true;\n @Input() public isCloneVisible: boolean = true;\n @Input() public isLazyInitialization: boolean = false;\n @Input() public objectName: string;\n @Input() public gridOptions: GridOptions;\n @Input() public isRowSelectionEnable: boolean = false;\n @Input() public beforeSaveFn?: (rowsData: IRowData[], saveEventData: IDataTableRowSaveEvent) => boolean;\n @Input() public onBeforeEdit?: (rowsData: IRowData[], saveEventData: IDataTableRowEvent) => boolean;\n @Input() public onAddClick?: (rowsData: IRowData[], saveEventData: IDataTableRowEvent) => boolean;\n @Input() public isRowUnchecked?: (row: IDataTableRow) => boolean;\n @Input() public isSaveDataLocal: boolean = false;\n @Input() public scrollPosition: ScrollPosition;\n\n // Tree grid settings\n @Input() public isTreeGrid: boolean = false;\n\n @Input() public initialPage: number;\n\n @Output() public changeLocalData: EventEmitter<IDataTableChangeLocalDataEvent> = new EventEmitter();\n @Output() public actionClick: EventEmitter<IDataTableAction> = new EventEmitter();\n @Output() public onInitCompleted: EventEmitter<any> = new EventEmitter();\n @Output() public onComplexDetailClicked: EventEmitter<IClickedEventData> = new EventEmitter<IClickedEventData>();\n @Output() public onEditClicked: EventEmitter<IDataTableRowEvent> = new EventEmitter<IDataTableRowEvent>();\n @Output() public onAddClicked: EventEmitter<any> = new EventEmitter();\n @Output() public onRowClicked: EventEmitter<any> = new EventEmitter();\n @Output() public onPageChanged: EventEmitter<any> = new EventEmitter();\n @Output() public matExpansionPanelClicked: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public onUpdateCompleted: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public onDeleteCompleted: EventEmitter<IDataTableRowEvent> = new EventEmitter();\n @Output() public onScrolled: EventEmitter<ScrollEvent> = new EventEmitter<ScrollEvent>();\n @Output() public CheckboxSelect: EventEmitter<IRowSelectionInfo> = new EventEmitter();\n @Output() public isTableDataLoad = new EventEmitter<boolean>();\n public searchValue: FormControl = new FormControl();\n public searchColumns: IDataTableColumn[];\n public isSearchDisabled: boolean = false;\n public selectedRow: IDataTableRow;\n public filteredRows: IDataTableRow[];\n @ViewChild('deleteModal', { read: TemplateRef, static: true })\n public deleteModal: TemplateRef<DeleteModalComponent>;\n @ViewChild('customDataTable')\n public customDataTable: ElementRef<HTMLElement>;\n @ViewChild('sliderTemplate')\n public sliderTemplate: ViewContainerRef;\n public readonly sourceTypes: typeof SourceTypesEnum = SourceTypesEnum;\n public dataTableBody: DataTableBodyComponent;\n public gridApi: GridApi;\n public masterSelection: FormControl = new FormControl(false);\n public paginationParams: IPaginationParams = {\n currentPage: this.DEFAULT_INIT_PAGE,\n pageSize: this.DEFAULT_PAGE_SIZE,\n };\n public searchedRowCount$ = new Subject<number>();\n public isClearFilter$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n public isFilterView = false;\n public viewColumns: IDataTableColumn[];\n public rows: IDataTableRow[];\n public excludedRows: IDataTableRow[] = [];\n public sortedColumn = {};\n public count: number = 0;\n\n public filterManager: FilterManager;\n\n public isLoading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n public hasEmptyRow: boolean = false;\n public isEditing = false;\n public isSaving = false;\n\n public rowToDelete: IDataTableRow;\n public selection: SelectionModel<IDataTableRow>;\n\n public map = new Map();\n\n public numberOfTableRefresh = 0;\n private defaultSortedColumns: IDataTableColumn[];\n private originalUnsortedRows: IDataTableRow[];\n private clearSubs$ = new Subject();\n private storageKey: string;\n private totalItems: number = 0;\n\n private startX: number = 0;\n private startWidth: number = 0;\n private resizingTh: HTMLElement | null = null;\n private apolloDataTable: HTMLElement | null = null;\n private resizingTd: NodeList | null = null;\n private clickTimeout: any;\n\n private defaultGridOptions: GridOptions = {\n addIdColumn: true,\n actionAddTitle: '',\n allowSaveColumnVisibilitySettings: false,\n isRowLevelViewActionVisible: true,\n isOnlyView: false,\n isRowSelectionEnable: false,\n idProperty: COLUMN_ID.PROP,\n isClientSidePagination: true,\n canInlineAdd: true,\n canInlineEdit: true,\n isSaveDataLocal: false,\n isSearchBoxVisible: true,\n isFilterEnabled: false,\n filterableColumns: [],\n defaultSortProperty: {},\n cloneOptions: {\n copyOfClonableProperties: [],\n emptyValueProperties: [],\n },\n searchableProperties: [],\n sortableProperties: [],\n isRowActionVisible: true,\n topRightActions: [],\n deleteOptions: {},\n searchboxPlaceholder: this.header,\n refreshOnAdd: true,\n topLeftAdditionalActions: [],\n isSortEnabled: false,\n disableIcons: {\n add: false,\n edit: false,\n delete: false,\n clone: false,\n add$: new BehaviorSubject<boolean>(false),\n edit$: new BehaviorSubject<boolean>(false),\n delete$: new BehaviorSubject<boolean>(false),\n copy$: new BehaviorSubject<boolean>(false),\n },\n gridMenuOptions: {\n isMenuEnabled: false,\n menuItems: [],\n },\n actionLoading$: {\n copy$: new BehaviorSubject<boolean>(false),\n edit$: new BehaviorSubject<boolean>(false),\n delete$: new BehaviorSubject<boolean>(false),\n },\n };\n\n constructor(\n public dataTableService: DataTableService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private matDialog: MatDialog,\n public changeDetectorRef: ChangeDetectorRef,\n private snackbarService: SnackbarService,\n private userManagementService: UserManagementService,\n private filterPipe: ColumnFilterPipe,\n private searchPipe: SearchPipe,\n private localStorageService: LocalStorageService,\n public dialog: MatDialog,\n public formService: FormService,\n private dataTableContext: DataTableContextService\n ) {\n this.filterManager = new FilterManager();\n this.gridApi = new GridApi(this, this.formService);\n this.dataTableContext.setDataTableComponent(this);\n }\n\n public get getSelectedRows(): IDataTableRow[] {\n return this.getFilteredDataRow(this.selection.selected);\n }\n\n public get getAllCheckedRows(): IDataTableRow[] {\n return this.selection.selected;\n }\n\n public get isActionsDisabled(): boolean {\n return this.filteredRows.length === 0;\n }\n\n public get getRows(): IDataTableRow[] {\n return this.getFilteredDataRow(this.rows);\n }\n\n public get getCustomTableStyle(): IKeyValue {\n if (this.gridOptions.isInnerScroll) {\n return this.gridOptions.customTableStyle ? this.gridOptions.customTableStyle : { height: '30vh' };\n }\n return {};\n }\n\n public onTableScrolled(e: Event): void {\n const htmlElement = this.customDataTable.nativeElement as HTMLElement;\n const event: ScrollEvent = {\n ...e,\n currentElement: this.customDataTable,\n currentScrollPosition: { x: htmlElement.scrollLeft, y: htmlElement.scrollTop },\n };\n this.onScrolled.emit(event);\n }\n\n public changeScrollPosition(position: ScrollPosition): void {\n const htmlElement = this.customDataTable.nativeElement as HTMLElement;\n htmlElement.scroll(position.x, position.y);\n }\n\n public ngOnInit(): void {\n if (!this.isLazyInitialization) {\n this.init();\n } else {\n this.isLoading$.next(true);\n }\n if (!this.gridOptions.isClientSidePagination) {\n this.searchTable();\n }\n }\n\n public isDisabledMainAction(actionProp: string): boolean {\n return this.gridOptions.disableIcons && this.gridOptions.disableIcons[actionProp];\n }\n\n public nonFilterClassName(columnProp: string): string {\n if (!this.isFilterEnable(columnProp) && this.isRowSelectionEnable) {\n return 'row-selection-non-filter-cell';\n }\n if (!this.isFilterEnable(columnProp)) {\n return 'non-filter-cell';\n }\n return '';\n }\n\n public isFilterEnable(columnProp: string): boolean {\n if (this.isTableInEditState) {\n return false;\n }\n return this.gridOptions.isFilterEnabled && (!this.gridOptions.filterableColumns.length || this.isFilterableColumn(columnProp));\n }\n\n public isFilterableColumn(columnProp: string): boolean {\n return this.gridOptions.filterableColumns.findIndex((item) => item === columnProp) !== -1;\n }\n\n public get isFilterApplied(): boolean {\n return this.filterManager.getFilterParams().length > 0;\n }\n\n public get nonDisabledRows(): IDataTableRow[] {\n if (this.gridOptions.rowDisableFn && isFunction(this.gridOptions.rowDisableFn)) {\n return this.rows.filter((row) => !this.gridOptions.rowDisableFn(row));\n }\n\n return this.rows;\n }\n\n public ngAfterViewInit(): void {\n this.fireInitCompleted();\n if (this.scrollPosition) {\n const htmlElement = this.customDataTable.nativeElement as HTMLElement;\n htmlElement.scrollTop = this.scrollPosition.y;\n htmlElement.scrollLeft = this.scrollPosition.x;\n }\n }\n\n public checkDeleteDisabled(): boolean {\n if (isFunction(this.isDeleteDisabled) && !isUndefined(this.selectedRow)) {\n return this.isDeleteDisabled(this.selectedRow);\n }\n if (this.isDeleteDisabled && typeof this.isDeleteDisabled !== 'function') {\n return true;\n }\n return false;\n }\n\n public isAllSelected(): boolean {\n if (this.gridOptions.isClientSidePagination) {\n return this.nonDisabledRows.length === this.selection.selected.length;\n }\n return (this.masterSelection.value && this.excludedRows.length === 0) || this.totalItems === this.selection.selected.length;\n }\n\n public isSortColumn(viewColumn: IDataTableColumn): boolean {\n return !!(this.gridOptions.sortableProperties && this.gridOptions.sortableProperties.find((x) => x === viewColumn.prop));\n }\n\n public openColumnShowHideDialogue(): void {\n let dialogConfig = new MatDialogConfig();\n dialogConfig = this.configureDialog(dialogConfig);\n const dialogRef = this.dialog.open(DataColDispComponent, dialogConfig);\n dialogRef.afterClosed().subscribe((result) => {\n if (result && result.status === 'OK') {\n this.viewColumns = result.columns;\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n public masterToggle(): void {\n this.excludedRows = [];\n if (!this.masterSelection.pristine && !this.masterSelection.value) {\n this.selection.clear();\n this.changeDetectorRef.detectChanges();\n this.gridApi.detectRowChanges();\n this.masterSelection.reset();\n this.CheckboxSelect.emit({ rows: [], gridApi: this.getGridApi(), checked: false });\n return;\n }\n if (!this.gridOptions.isClientSidePagination) {\n this.checkedAllExceptExcludedRows();\n this.changeDetectorRef.detectChanges();\n this.gridApi.detectRowChanges();\n this.CheckboxSelect.emit({ rows: [], gridApi: this.getGridApi(), checked: true });\n } else {\n this.masterToggleClientSide();\n this.CheckboxSelect.emit({ rows: this.rows, gridApi: this.getGridApi(), checked: true });\n }\n }\n\n public isCheckboxSelect(row: IDataTableRow): void {\n const isSelected = this.selection.isSelected(row);\n if (this.masterSelection.value && !isSelected) {\n this.excludedRows.push(row);\n } else if (this.masterSelection.value && isSelected) {\n const findIndex = this.excludedRows.findIndex((x) => JSON.stringify(x) === JSON.stringify(row));\n if (findIndex > -1) {\n this.excludedRows.splice(findIndex, 1);\n }\n }\n this.CheckboxSelect.emit({ rows: [row], gridApi: this.getGridApi(), checked: isSelected });\n\n if (isSelected) {\n this.rows.forEach((row) => (row.isSelected = false));\n }\n const checkedRows = this.gridApi.getAllCheckedRows();\n if (!this.selectedRow && checkedRows.length > 0) {\n this.selectedRow = checkedRows[checkedRows.length - 1];\n }\n }\n\n public refresh(): void {\n this.setData();\n }\n\n public onClickAction(action: IDataTableAction): void {\n this.actionClick.emit(action);\n }\n\n public onClickAdd(): void {\n this.onAddClicked.emit();\n if (isFunction(this.onAddClick) && !this.onAddClick(undefined, undefined)) {\n return;\n }\n this.addActionHandler();\n }\n\n public addActionHandler(): void {\n this.setIdColumn();\n this.setPaginationData({ currentPage: this.DEFAULT_INIT_PAGE, pageSize: this.pageSize });\n this.isSearchDisabled = true;\n this.searchValue.setValue(DataTableConstants.EMPTY);\n if (this.gridOptions.canInlineAdd) {\n if (!this.hasEmptyRow) {\n this.addEmptyRow();\n }\n } else {\n this.navigatePage(FormTypes.Add);\n }\n }\n\n public onClickRow(eventData: IDataTableRowEvent): void {\n const checkedRows = this.gridApi.getAllCheckedRows();\n if (checkedRows?.length > 0) {\n return;\n }\n if (this.isDefaultFirstRowSelected()) {\n this.rows.forEach((x) => (x.isSelected = false));\n }\n if (this.selectedRow) {\n this.selectedRow.isSelected = false;\n }\n this.selectedRow = eventData.row;\n eventData.row.isSelected = true;\n const emitIndex = this.gridOptions.isClientSidePagination\n ? eventData.row.rowIndex + this.pageSize * (this.currentPage - 1)\n : eventData.row.rowIndex;\n\n this.selectedRow.rowIndex = emitIndex;\n this.onRowClicked.emit(eventData.row);\n }\n\n public onClickRowAdd(eventData: IDataTableRowEvent): void {\n if (this.gridOptions.canInlineAdd && !this.hasEmptyRow) {\n this.addEmptyRow(eventData.row.depth + 1, this.dataTableService.getRowId(eventData.row));\n }\n }\n\n public onClickEdit(eventData: IDataTableRowEvent): void {\n if (isFunction(this.onBeforeEdit) && !this.onBeforeEdit(this.dataTableService.getRowsDataFromRows(this.rows), eventData)) {\n return;\n }\n\n this.onEditClicked.emit(eventData);\n if (this.gridOptions.canInlineEdit) {\n if (!this.isEditing) {\n this.toggleRowEditing(eventData.row, true);\n }\n } else {\n this.navigateToItem(FormTypes.Edit, this.dataTableService.getRowId(eventData.row));\n }\n }\n\n public onClickClone(eventData: IDataTableRowEvent): void {\n if (this.gridOptions.canInlineAdd && !this.hasEmptyRow) {\n const newEventData = cloneDeep(eventData);\n this.addCloneRow(newEventData.row);\n }\n }\n\n public onClickView(eventData: IDataTableRowEvent): void {\n this.navigateToItem(FormTypes.View, this.getNavigateItemValue(eventData));\n }\n\n public ComplexDetailClicked(eventData: IClickedEventData): void {\n this.onComplexDetailClicked.emit(eventData);\n }\n\n public ActionClickHandler(action: ITopRightAction): void {\n if (action.clicked) {\n action.clicked(this.selectedRow);\n }\n }\n\n public showHideFilterView(): void {\n this.isFilterView = !this.isFilterView;\n }\n\n public clearGlobalFilter(): void {\n this.isClearFilter$.next(true);\n this.searchValue.setValue('');\n this.changeDetectorRef.detectChanges();\n this.filterManager.clearFilterParams();\n this.setData();\n }\n\n public onChangePage(paginationParams: IPaginationParams, selectableIndex?: number | string): void {\n this.setPaginationData(paginationParams);\n if (!this.isClientSidePagination()) {\n this.setData(selectableIndex);\n } else if (this.isDefaultFirstRowSelected() && this.isClientSidePagination()) {\n if (selectableIndex) {\n this.emitNextRow(this.pageSize * (this.currentPage - 1) + this.getSelectableValidIndex(selectableIndex));\n } else {\n this.emitNextRow(this.pageSize * (this.currentPage - 1));\n }\n }\n this.onPageChanged.emit();\n }\n\n public onExpansionPanelClick(eventData: IDataTableRowEvent): void {\n this.matExpansionPanelClicked.emit(eventData);\n }\n\n public onChangePageSize(pageSize: number): void {\n this.setPaginationDataOnSizeChanged(pageSize);\n if (!this.isClientSidePagination()) {\n this.setData();\n }\n }\n\n public getFilterParam(column: IDataTableColumn): IFilterParam {\n return this.filterManager.getFilterParam(column);\n }\n\n public isFilteredColumn(columnProp: string): boolean {\n return this.filterManager.getFilterParams().findIndex((item) => item.filterColumn.prop === columnProp) !== -1;\n }\n\n public onFilterClicked(filterParam: IFilterParam): void {\n this.filterManager.setFilterParams(filterParam);\n this.filteredRows = this.filterPipe.transform(\n this.rows,\n this.filterManager.getFilterParams(),\n this.columns,\n this.gridOptions.isClientSidePagination\n );\n this.setPaginationData({ currentPage: this.DEFAULT_INIT_PAGE, pageSize: this.pageSize });\n if (!this.isClientSidePagination()) {\n this.setData();\n } else {\n // this.numberOfTableRefresh = 1.5; // to skip init filter value assign\n }\n }\n\n public onClickEditCancel(eventData: IDataTableRowEvent): void {\n this.isSearchDisabled = false;\n if (this.dataTableService.isEmptyRow(eventData.row)) {\n this.removeEmptyRow();\n } else {\n this.toggleRowEditing(eventData.row, false);\n }\n }\n\n public onClickEditSave(eventData: IDataTableRowSaveEvent): void {\n this.isSearchDisabled = false;\n if (isFunction(this.beforeSaveFn) && !this.beforeSaveFn(this.dataTableService.getRowsDataFromRows(this.rows), eventData)) {\n return;\n }\n\n if (this.isSaveDataLocal) {\n this.onSaveLocalRow(eventData);\n } else {\n this.saveRow(eventData);\n }\n }\n\n public onChangeExpandCollapse(eventData: IDataTableExpandCollapseEvent): void {\n this.toggleRowExpandCollapse(eventData.row, eventData.shouldExpand);\n }\n\n public getNavigateItemValue(eventData: IDataTableRowEvent): string {\n if (this.gridOptions && this.gridOptions.rowNavigationProperty) {\n return this.dataTableService.getValueByPropertyName(eventData.row, this.gridOptions.rowNavigationProperty);\n }\n return this.dataTableService.getRowId(eventData.row);\n }\n\n public navigateToItem(type: string, id: string): void {\n const url: string = this.gridOptions.editExtraRouteParam ? `${type}/${id}/${this.gridOptions.editExtraRouteParam}` : `${type}/${id}`;\n this.navigatePage(url);\n }\n\n public onClickDeleteRow(eventData: IDataTableRowEvent): void {\n this.openDeleteModal(eventData.row);\n }\n\n public onClickDeleteModal(shouldDelete): void {\n if (shouldDelete) {\n this.gridOptions?.actionLoading$?.delete$.next(true);\n if (this.isSaveDataLocal) {\n this.removeLocalRow(this.dataTableService.getRowId(this.rowToDelete));\n this.onChangeLocalData(ChangeType.ROW_DELETED);\n this.gridOptions?.actionLoading$?.delete$.next(false);\n } else {\n this.deleteRow(this.rowToDelete);\n }\n }\n }\n\n public VisibleColumnListChanged(columnList: IDataTableColumn[]): void {\n this.viewColumns = columnList;\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n this.isClearFilter$.next(false);\n this.isClearFilter$.complete();\n this.dataTableContext.clearDataTableComponent();\n }\n\n public init(): void {\n this.gridOptions = merge(this.defaultGridOptions, this.gridOptions);\n this.setPaginationData({\n currentPage: isUndefined(this.initialPage) ? this.DEFAULT_INIT_PAGE : this.initialPage,\n pageSize: this.pageSize,\n });\n this.selection = new SelectionModel<IDataTableRow>(!this.isSingleSelect, []);\n if (!this.gridOptions.isAutoColumn) {\n this.setIdColumn();\n this.initColumns();\n this.defaultSortedColumns = clone(this.viewColumns);\n }\n this.getConfiguredColumns();\n this.setData();\n }\n\n public sortTable(viewColumn: IDataTableColumn): void {\n if (this.isTableInEditState) {\n return;\n }\n\n if (!this.gridOptions.sortableProperties.find((item) => item === viewColumn.prop) && !this.gridOptions.isSortEnabled) {\n return;\n }\n\n if (this.sortedColumn[viewColumn.prop] === undefined) {\n this.sortedColumn = {};\n this.sortedColumn[viewColumn.prop] = SortDirectionEnum.ASC;\n this.sortData(viewColumn, true);\n } else if (this.sortedColumn[viewColumn.prop] === SortDirectionEnum.ASC) {\n this.sortedColumn[viewColumn.prop] = SortDirectionEnum.DESC;\n this.sortData(viewColumn, false);\n } else {\n this.sortedColumn = {};\n this.sortData(viewColumn, false, true);\n }\n }\n\n public deleteRow(row: IDataTableRow): void {\n this.setIdColumn();\n const rowId = this.dataTableService.getRowId(row);\n this.deleteItemFn(rowId, row.data)\n .pipe(first(), takeUntil(this.clearSubs$))\n .subscribe({\n next: () => {\n this.gridOptions?.actionLoading$?.delete$.next(false);\n this.snackbarService.success(SnackbarTypes.Deleted, SnackbarTypes.Deleted);\n if (this.isClientSidePagination()) {\n this.removeLocalRow(rowId);\n } else {\n this.setData();\n }\n if (!this.isDefaultFirstRowSelected()) {\n this.selectedRow = undefined;\n }\n this.onDeleteCompleted.emit({ row: this.selectedRow });\n },\n error: () => {\n // Empty method block.\n },\n });\n }\n\n public searchModelChanged(): void {\n if (this.gridOptions.isClientSidePagination) {\n this.filteredRows = this.searchPipe.transform(\n this.rows,\n this.searchValue.value,\n this.searchColumns,\n this.gridOptions.isClientSidePagination,\n this.searchedRowCount$\n );\n this.setPaginationData({ currentPage: this.DEFAULT_INIT_PAGE, pageSize: this.pageSize });\n this.changeDetectorRef.detectChanges();\n }\n }\n\n public getTooltipText(text: string): string {\n if (this.gridOptions.iconTooltips && this.gridOptions.iconTooltips[text]) {\n return this.gridOptions.iconTooltips[text];\n }\n return tooltipsDefaultValue[text];\n }\n\n public getActionName(prop: ActionTypesEnum): string {\n return this.userManagementService.getActionName(this.gridOptions, prop);\n }\n\n public getLeftActionName(prop: ActionTypesEnum): string {\n return this.userManagementService.getLeftActionName(this.gridOptions, prop);\n }\n\n public getLeftRightActionText(data: IKeyValue): string {\n if (data.title) {\n return data.title;\n }\n return tooltipsDefaultValue[data.title];\n }\n\n public get isSingleSelect(): boolean {\n return this.gridOptions && this.gridOptions.isSingleSelect === true;\n }\n\n public get pageSize(): number {\n return this.paginationParams.pageSize;\n }\n\n public get currentPage(): number {\n return this.paginationParams.currentPage;\n }\n\n public detectChange(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public selectNextRow(): void {\n if (this.isLastRowInPage()) {\n this.paginationParams.currentPage = this.isLastRowInLastPage() ? 1 : this.paginationParams.currentPage + 1;\n this.onChangePage(this.paginationParams);\n } else {\n this.emitNextRow(this.selectedRow.rowIndex + 1);\n }\n }\n\n public selectPreviousRow(): void {\n if (this.isFirstRowInPage()) {\n this.paginationParams.currentPage = this.isFirstRowInFirstPage() ? this.pagesCount : this.paginationParams.currentPage - 1;\n this.onChangePage(this.paginationParams, 'last');\n } else {\n this.emitNextRow(this.selectedRow.rowIndex - 1);\n }\n }\n\n public uncheckSelectedSource(): void {\n this.selection.clear();\n this.changeDetectorRef.detectChanges();\n this.gridApi.detectRowChanges();\n }\n\n public onDoubleClickSeparator(index: number, viewColumn: IDataTableColumn) {\n if (!this.gridOptions.draggable || !viewColumn.draggable) {\n return;\n }\n\n clearTimeout(this.clickTimeout);\n this.resizingTh = this.getSelectedHtml(`th[data-column-prop=\"${viewColumn.prop}\"] div`) as HTMLElement;\n this.resizingTd = this.getSelectedHtml(`td[data-column-prop=\"${viewColumn.prop}\"]`, true) as NodeList;\n if (!this.resizingTh || !this.resizingTd) {\n return;\n }\n\n viewColumn.doubleClicked = !viewColumn.doubleClicked;\n viewColumn.dragged = false;\n this.formatTableData(viewColumn);\n this.formatTableHeader();\n }\n\n public getHeaderStyle(index: number, viewColumn: IDataTableColumn): string[] {\n let classes: string[] = [];\n if (this.viewColumns[index].dragged || viewColumn?.doubleClicked === true) {\n classes.push('drag-column');\n } else if (this.gridOptions.fixedWidthData) {\n classes.push('header-max-width');\n }\n\n return classes;\n }\n\n public onSeparatorMouseDown(event: MouseEvent, index: number, viewColumn: IDataTableColumn): void {\n clearTimeout(this.clickTimeout);\n this.clickTimeout = setTimeout(() => {\n if (!this.gridOptions.draggable || !viewColumn.draggable) {\n return;\n }\n\n if (!viewColumn.dragged) {\n viewColumn.dragged = true;\n this.changeDetectorRef.detectChanges();\n }\n\n this.resizingTh = this.getSelectedHtml(`th[data-column-prop=\"${viewColumn.prop}\"] div`) as HTMLElement;\n this.resizingTd = this.getSelectedHtml(`td[data-column-prop=\"${viewColumn.prop}\"]`, true) as NodeList;\n const tdDiv = this.getSelectedHtml(`td[data-column-prop=\"${viewColumn.prop}\"] div`) as HTMLElement;\n this.apolloDataTable = document.querySelector('.apollo-design-new-data-table') as HTMLElement;\n\n if (this.resizingTh) {\n this.startX = event.pageX;\n this.startWidth = this.getActualWidth(this.resizingTh, this.startX);\n const tdDivWidth = this.getActualWidth(tdDiv, this.startX);\n\n if (this.resizingTd) {\n this.resizingTd.forEach((cell) => {\n const tdDiv = (<HTMLElement>cell).querySelector('div') as HTMLElement;\n tdDiv.classList.remove('data-max-width');\n tdDiv.classList.add('drag-column');\n });\n }\n\n this.setWidthToElement(this.startWidth, tdDivWidth, this.resizingTh.offsetWidth);\n }\n }, 250);\n\n document.body.classList.add('no-select-resize');\n if (this.gridOptions.draggable && viewColumn.draggable) {\n document.addEventListener('mousemove', this.onMouseMove);\n }\n\n document.addEventListener('mouseup', this.onMouseUp);\n }\n\n private getSelectedHtml(selector: string, isSelectAll: boolean = false) {\n if (isSelectAll) {\n return this.customDataTable.nativeElement.querySelectorAll(selector);\n }\n\n return this.customDataTable.nativeElement.querySelector(selector);\n }\n\n private formatTableData(viewColumn: IDataTableColumn) {\n if (!viewColumn.doubleClicked) {\n this.resizingTd.forEach((cell) => {\n const tdDiv = (<HTMLElement>cell).querySelector('div') as HTMLElement;\n tdDiv.classList.remove('drag-column');\n if (this.gridOptions.fixedWidthData) {\n tdDiv.classList.add('data-max-width');\n }\n });\n } else {\n this.resizingTd.forEach((cell) => {\n const tdDiv = (<HTMLElement>cell).querySelector('div') as HTMLElement;\n tdDiv.classList.remove('data-max-width');\n tdDiv.classList.add('drag-column');\n });\n }\n }\n\n private formatTableHeader() {\n this.resizingTh.style.width = '';\n this.resizingTd.forEach((cell) => {\n const tdDiv = (<HTMLElement>cell).querySelector('div') as HTMLElement;\n tdDiv.style.width = '';\n });\n }\n\n private onMouseMove = (event: MouseEvent): void => {\n const width = this.startWidth + (event.pageX - this.startX);\n if (this.resizingTh) {\n this.setWidthToElement(width, width, this.resizingTh.offsetWidth);\n }\n };\n\n private onMouseUp = (): void => {\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('mouseup', this.onMouseUp);\n document.body.classList.remove('no-select-resize');\n this.resizingTh = null;\n this.resizingTd = null;\n };\n\n private setWidthToElement(thWidth: number, tdWidth: number, previousThWidth: number) {\n if (this.resizingTh) {\n this.resizingTh.style.width = `${thWidth}px`;\n }\n\n if (this.resizingTd) {\n this.resizingTd.forEach((cell) => {\n const div = (<HTMLElement>cell).querySelector('div.drag-column') as HTMLElement;\n\n if (div) {\n div.style.width = `${tdWidth}px`;\n }\n });\n }\n\n if (this.resizingTh && this.apolloDataTable) {\n const updatedTableWidth = this.apolloDataTable.offsetWidth + (this.resizingTh.offsetWidth - previousThWidth);\n this.apolloDataTable.style.width = `${updatedTableWidth}px`;\n }\n }\n\n private getActualWidth(element: HTMLElement, startX: number): number {\n let width: number;\n const boundingRect = element.getBoundingClientRect();\n width = boundingRect.width;\n const offset = startX - boundingRect.left;\n\n if (offset < boundingRect.width) {\n width = offset;\n }\n\n return width;\n }\n\n private get pagesCount(): number {\n return Math.ceil(this.count / this.pageSize);\n }\n\n private get rowsCountInCurrentPage(): number {\n if (!this.gridOptions.isClientSidePagination) {\n return this.rows.length;\n }\n const leftRows = this.rows.length - this.pageSize * (this.currentPage - 1);\n return leftRows >= this.pageSize ? this.pageSize : leftRows;\n }\n\n private isLastRowInPage(): boolean {\n if (this.selectedRow && this.gridOptions.isClientSidePagination) {\n return (\n (this.selectedRow.rowIndex + 1) / this.currentPage === this.rowsCountInCurrentPage || this.selectedRow.rowIndex + 1 === this.count\n );\n }\n return this.selectedRow && this.selectedRow.rowIndex + 1 === this.rowsCountInCurrentPage;\n }\n\n private isFirstRowInPage(): boolean {\n return this.selectedRow && this.selectedRow.rowIndex % this.pageSize === 0;\n }\n\n private isFirstRowInFirstPage(): boolean {\n return this.isFirstRowInPage() && this.currentPage === 1;\n }\n\n private isLastRowInLastPage(): boolean {\n return this.isLastRowInPage() && this.currentPage === this.pagesCount;\n }\n\n private detectRowChange(): void {\n this.rows = clone(this.rows);\n this.changeDetectorRef.detectChanges();\n }\n\n private isClientSidePagination(): boolean {\n return this.gridOptions.isClientSidePagination;\n }\n\n private setIdColumn(): void {\n // To do improve\n if (this.gridOptions && this.gridOptions.idProperty) {\n COLUMN_ID.PROP = this.gridOptions.idProperty;\n } else {\n COLUMN_ID.PROP = 'id';\n }\n }\n\n private initColumns(): void {\n this.initViewColumns();\n if (this.gridOptions && this.gridOptions.addIdColumn) {\n this.addIdColumn();\n }\n }\n\n private configureDialog(dialogConfig: MatDialogConfig): MatDialogConfig {\n dialogConfig.position = {\n top: '15vh',\n left: '20vw',\n };\n dialogConfig.height = '80vh';\n dialogConfig.width = '60vw';\n dialogConfig.panelClass = 'columnshowhide-panel';\n dialogConfig.data = {\n defaultSortedColumns: this.defaultSortedColumns,\n columns: this.viewColumns,\n storageKey: this.storageKey,\n metaDataColumns: this.gridOptions.metaDataColumns,\n };\n dialogConfig.disableClose = false;\n return dialogConfig;\n }\n\n private initViewColumns(): void {\n this.viewColumns = clone(this.columns.filter((x) => x != undefined));\n this.viewColumns.forEach((viewColumn: IDataTableColumn) => {\n if (viewColumn.isVisible === undefined) {\n viewColumn.isVisible = true;\n }\n if (viewColumn.isDisplayValueAsFormControl === undefined) {\n viewColumn.isDisplayValueAsFormControl = false;\n }\n });\n this.searchColumns = this.getSearchableColumns(this.viewColumns);\n }\n\n private addIdColumn(): void {\n this.viewColumns.unshift({\n header: COLUMN_ID.HEADER,\n prop: COLUMN_ID.PROP,\n type: ColumnTypes.Integer,\n isReadOnly: true,\n isVisible: false, // this.isIdColVisible,\n isDisplayValueAsFormControl: false,\n editDisabledMode: ColumnDisableModes.AlwaysDisabled,\n });\n }\n\n private setData(selectableIndex?: number | string): void {\n this.numberOfTableRefresh += 1;\n this.isLoading$.next(true);\n if (!this.gridOptions.isAutoColumn) {\n this.setInitApiParams();\n }\n this.applyDefaultSortingParams();\n this.getListFn(this.apiReqParams)\n .pipe(first(), takeUntil(this.clearSubs$))\n .subscribe(\n (response: any) => {\n // TODO: add error handling\n this.totalItems = response.itemsTotal;\n this.initGetFunc(response, selectableIndex);\n if (this.gridOptions.isDefaultAllRowSelected && this.gridOptions.isClientSidePagination) {\n this.masterSelection.setValue(true);\n this.masterToggle();\n }\n this.isTableDataLoad.emit(true);\n },\n (err) => {\n if (err) {\n this.isLoading$.next(false);\n this.rows = this.rows || [];\n this.changeDetectorRef.detectChanges();\n }\n },\n () => {\n // Empty Method block\n }\n );\n }\n\n private setInitApiParams(): void {\n if (this.numberOfTableRefresh > 1) {\n return;\n }\n this.setInitFilterParams();\n }\n\n private setInitFilterParams(): void {\n this.filterManager.setInitFilterParams(this.columns);\n }\n\n private initGetFunc(response: IListResApi<IKeyValue>, selectableIndex?: number | string): void {\n this.count = this.gridOptions.isClientSidePagination ? response.resultSet.length : response.itemsTotal;\n this.searchedRowCount$.next(response.itemsTotal);\n if (this.gridOptions.isAutoColumn) {\n this.generateColumns(response.resultSet);\n }\n this.rows = this.dataTableService.getRowsFromRowsData(response.resultSet);\n if (this.gridOptions.editable) {\n this.rows.forEach((x) => (x.isEditing = true));\n }\n if (this.gridOptions.isClientSidePagination) {\n this.originalUnsortedRows = cloneDeep(this.rows);\n }\n\n this.filteredRows = cloneDeep(this.rows);\n this.selectedRow = undefined;\n this.isLoading$.next(false);\n this.isClearFilter$.next(false);\n this.isEditing = false;\n this.hasEmptyRow = false;\n if (this.gridOptions.defaultSortProperty.prop) {\n this.applyDefaultSort();\n }\n if (this.isEligibleForAllCheck()) {\n this.checkedAllExceptExcludedRows();\n } else if (this.isRowSelectionEnable && !this.gridOptions.isClientSidePagination) {\n this.setRowChecked();\n }\n if (this.isDefaultFirstRowSelected()) {\n // TODO - refactor\n\n this.emitNextRow(this.getSelectableValidIndex(selectableIndex));\n }\n this.changeDetectorRef.detectChanges();\n }\n\n private isEligibleForAllCheck(): boolean {\n return (\n this.isRowSelectionEnable && !this.gridOptions.isClientSidePagination && !this.masterSelection.pristine && this.masterSelection.value\n );\n }\n\n private getSelectableValidIndex(selectableIndex: number | string): any {\n if (selectableIndex === 'last') {\n selectableIndex = this.pageSize;\n }\n return Number(selectableIndex) > this.rowsCountInCurrentPage - 1 ? this.rowsCountInCurrentPage - 1 : selectableIndex;\n }\n\n private setPaginationData(paginationParams: IPaginationParams): void {\n this.paginationParams = paginationParams;\n }\n\n private checkedAllExceptExcludedRows(): void {\n this.clearPropertyWhenSelectionEnable(this.excludedRows);\n this.selection.clear();\n const excludedCurrentPageRows = this.rows.filter((x) => this.excludedRows.map((e) => JSON.stringify(e)).includes(JSON.stringify(x)));\n this.rows\n .filter((x) => !excludedCurrentPageRows.some((y) => JSON.stringify(x) === JSON.stringify(y)))\n .forEach((row) => {\n if (this.gridOptions.rowDisableFn && isFunction(this.gridOptions.rowDisableFn) && !this.gridOptions.rowDisableFn(row)) {\n this.selection.select(row);\n } else if (!this.gridOptions.rowDisableFn) {\n this.selection.select(row);\n }\n });\n }\n\n private applyDefaultSort(): void {\n if (this.gridOptions.defaultSortProperty.order === SortDirectionEnum.DESC) {\n this.downSort(this.gridOptions.defaultSortProperty);\n } else {\n this.upSort(this.gridOptions.defaultSortProperty);\n }\n }\n\n private applyDefaultSortingParams(): void {\n if (!this.gridOptions.defaultSortProperty.prop) {\n return;\n }\n this.sortedColumn = {};\n if (this.gridOptions.defaultSortProperty.order === SortDirectionEnum.DESC) {\n this.sortedColumn[this.gridOptions.defaultSortProperty.prop] = SortDirectionEnum.DESC;\n } else {\n this.sortedColumn[this.gridOptions.defaultSortProperty.prop] = SortDirectionEnum.ASC;\n }\n }\n\n private setPaginationDataOnSizeChanged(pageSize: number): void {\n this.paginationParams.pageSize = pageSize;\n }\n\n private navigatePage(url: string): void {\n this.router.navigate([url], { relativeTo: this.activatedRoute });\n }\n\n private openDeleteModal(row: IDataTableRow): void {\n this.rowToDelete = row;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n message: this.gridOptions.deleteOptions.confirmationMessage,\n };\n dialogConfig.position = {\n top: '7%',\n };\n dialogConfig.panelClass = 'delete-modal-panel';\n const dialogRef: MatDialogRef<DeleteModalComponent> = this.matDialog.open(DeleteModalComponent, dialogConfig);\n dialogRef\n .afterClosed()\n .pipe(first(), takeUntil(this.clearSubs$))\n .subscribe((result) => this.onClickDeleteModal(result));\n this.changeDetectorRef.detectChanges();\n }\n\n private saveRow(eventData: IDataTableRowSaveEvent): void {\n this.setIdColumn();\n const row = eventData.row,\n saveData = eventData.saveData;\n if (saveData[COLUMN_ID.PROP] === COLUMN_ID.EMPTY_ROW_VAL) {\n this.postDataForAdd(saveData, row);\n } else {\n this.putDataForEdit(saveData, row);\n }\n }\n\n private postDataForAdd(saveData: IRowData, row: IDataTableRow): void {\n this.isSaving = true;\n row.isSaving = true;\n this.postItemFn(saveData)\n .pipe(first(), takeUntil(this.clearSubs$))\n .subscribe(\n (result: IKeyValue) => {\n this.isSaving = false;\n row.isSaving = false;\n this.snackbarService.success(SnackbarTypes.Success, SnackbarTypes.Success);\n if (this.gridOptions.refreshOnAdd) {\n this.setData();\n } else {\n this.hasEmptyRow = false;\n saveData[COLUMN_ID.PROP] = result[COLUMN_ID.PROP];\n this.saveLocalRow(row, saveData);\n }\n },\n () => {\n this.isSaving = false;\n row.isSaving = false;\n this.changeDetectorRef.detectChanges();\n }\n );\n }\n\n private putDataForEdit(saveData: IRowData, row: IDataTableRow): void {\n this.isSaving = true;\n row.isSaving = true;\n this.putItemFn(this.dataTableService.getRowId(row), saveData)\n .pipe(first(), takeUntil(this.clearSubs$))\n .subscribe(\n (returnData: IRowData) => {\n if (returnData) {\n saveData = merge(saveData, returnData);\n }\n this.isSaving = false;\n row.isSaving = false;\n this.snackbarService.info(SnackbarTypes.Update, SnackbarTypes.Update);\n if (!this.isClientSidePagination()) {\n this.setData();\n } else {\n this.saveLocalRow(row, saveData);\n this.onUpdateCompleted.emit({ row });\n }\n },\n () => {\n this.isSaving = false;\n row.isSaving = false;\n this.changeDetectorRef.detectChanges();\n }\n );\n }\n\n private downSort(viewColumn: IDataTableColumn): void {\n this.rows.sort((item1, item2) => {\n return item1.data[viewColumn.prop] <= item2.data[viewColumn.prop] ? 1 : -1;\n });\n this.detectRowChange();\n }\n\n private upSort(viewColumn: IDataTableColumn): void {\n this.rows.sort((item1, item2) => {\n return item1.data[viewColumn.prop] >= item2.data[viewColumn.prop] ? 1 : -1;\n });\n this.detectRowChange();\n }\n\n private unsort(): void {\n this.rows = this.originalUnsortedRows.filter((original) => {\n return this.rows.filter((row) => JSON.stringify(row.data) === JSON.stringify(original.data));\n });\n }\n\n private sortData(viewColumn: IDataTableColumn, isAscending: boolean, isUnsort: boolean = false): void {\n if (!this.gridOptions.isClientSidePagination) {\n this.setData();\n return;\n }\n\n if (isUnsort) {\n this.unsort();\n } else {\n isAscending ? this.upSort(viewColumn) : this.downSort(viewColumn);\n }\n }\n\n private addEmptyRow(depth: number = ROW.ROOT_DEPTH, parentId: string = COLUMN_ID.NO_PARENT_VAL): void {\n this.hasEmptyRow = true;\n this.filterManager.clearFilterParams();\n const newRow = this.getEmptyRow(depth, parentId);\n this.selectedRow = newRow;\n this.rows = this.dataTableService.getRowsWithInsertedRow(parentId, this.rows, newRow);\n }\n\n private removeEmptyRow(): void {\n this.hasEmptyRow = false;\n this.selectedRow = undefined;\n this.removeLocalRow(COLUMN_ID.EMPTY_ROW_VAL);\n }\n\n private onSaveLocalRow(eventData: IDataTableRowSaveEvent): void {\n if (this.dataTableService.isEmptyRow(eventData.row)) {\n this.addLocalRow(eventData.row, eventData.saveData);\n this.onChangeLocalData(ChangeType.ROW_ADDED);\n } else {\n this.editLocalRow(eventData.row, eventData.saveData);\n this.onChangeLocalData(ChangeType.ROW_UPDATED);\n }\n }\n\n private addLocalRow(row: IDataTableRow, saveData: IKeyValue): void {\n this.hasEmptyRow = false;\n this.saveLocalRow(row, { ...saveData, id: this.dataTableService.getNewRowId() });\n }\n\n private editLocalRow(row: IDataTableRow, saveData: IKeyValue): void {\n this.saveLocalRow(row, saveData);\n }\n\n private saveLocalRow(row: IDataTableRow, saveData: IKeyValue): void {\n this.isEditing = false;\n this.updateRowData(row, saveData);\n row.isEditing = false;\n this.detectRowChange();\n }\n\n private updateRowData(row: IDataTableRow, saveData: IKeyValue): void {\n Object.assign(row.data, saveData);\n if (!isUndefined(row.formGroup)) {\n this.formService.fillForm(row.formGroup, row.data);\n }\n }\n\n private removeLocalRow(removeRowId: string): void {\n const index = this.rows.findIndex((x) => x.data[COLUMN_ID.PROP] === removeRowId);\n this.rows = this.dataTableService.getRowsWithRemovedRow(removeRowId, this.rows);\n if (this.isDefaultFirstRowSelected()) {\n this.selectAutoNextRow(index);\n } else if (this.gridOptions.defaultFirstRowSelection && this.rows.length === 0) {\n this.onRowClicked.emit();\n }\n if (this.rows.length && this.rows.length % this.paginationParams.pageSize === 0) {\n this.paginationParams.currentPage--;\n this.searchedRowCount$.next(this.rows.length);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n private selectAutoNextRow(index: number): void {\n if (index !== -1) {\n this.emitNextRow(this.rows.length === index ? this.rows.length - 1 : index);\n }\n }\n\n private isDefaultFirstRowSelected(): boolean {\n return this.gridOptions.defaultFirstRowSelection;\n }\n\n private emitNextRow(index: number = 0): void {\n if (this.rows.length > 0) {\n this.rows.forEach((x) => (x.isSelected = false));\n this.selectedRow = this.rows[index];\n this.selectedRow.rowIndex = index;\n this.rows[index].isSelected = true;\n this.changeDetectorRef.detectChanges();\n this.dataTableBody.detectChange();\n this.onRowClicked.emit(this.rows[index]);\n } else {\n this.onRowClicked.emit();\n }\n }\n\n private toggleRowEditing(row: IDataTableRow, isEditing: boolean): void {\n this.isEditing = isEditing;\n row.isEditing = isEditing;\n this.rows = [...this.rows];\n this.changeDetectorRef.detectChanges();\n }\n\n private toggleRowExpandCollapse(row: IDataTableRow, shouldExpand: boolean): void {\n row.isExpanded = shouldExpand;\n this.rows = [...this.rows];\n this.changeDetectorRef.detectChanges();\n }\n\n private getEmptyRow(depth: number, parentId: string): IDataTableRow {\n return this.dataTableService.getRow(\n this.dataTableService.getEmptyRowData(this.viewColumns, this.defaultRowValues),\n depth,\n parentId,\n true\n );\n }\n\n private onChangeLocalData(changeType: ChangeType = ChangeType.OTHER): void {\n this.changeLocalData.emit({\n rowsData: this.dataTableService.getRowsDataFromRows(this.rows),\n changeType,\n });\n }\n\n private fireInitCompleted(): void {\n this.onInitCompleted.emit(this.getGridApi());\n }\n\n private addCloneRow(row: IDataTableRow, depth: number = ROW.ROOT_DEPTH, parentId: string = COLUMN_ID.NO_PARENT_VAL): void {\n this.hasEmptyRow = true;\n row.data[COLUMN_ID.PROP] = COLUMN_ID.EMPTY_ROW_VAL;\n this.gridOptions.cloneOptions.copyOfClonableProperties.forEach((property: string) => {\n row.data[property] = DataTableConstants.COPY_OF + row.data[property];\n });\n\n const emptyValueColumns = this.viewColumns.filter((col) => {\n return this.gridOptions.cloneOptions.emptyValueProperties.includes(col.prop);\n });\n this.dataTableService.setEmptyValuesInRowData(row, emptyValueColumns);\n\n const clonedRow = this.dataTableService.getRow(row.data, depth, parentId, true);\n this.rows = this.dataTableService.getRowsWithInsertedRow(parentId, this.rows, clonedRow);\n this.selectedRow = clonedRow;\n }\n\n private getGridApi(): GridApi {\n return this.gridApi;\n }\n\n private getSearchableColumns(columns: IDataTableColumn[]): IDataTableColumn[] {\n const searchableColumns = columns.filter(\n (item) => Object.hasOwnProperty.call(item, 'prop') && this.gridOptions.searchableProperties.includes(item.prop)\n );\n return searchableColumns.length === 0 ? columns : searchableColumns;\n }\n\n private masterToggleClientSide(): void {\n this.isAllSelected() ? this.selection.clear() : this.nonDisabledRows.forEach((row) => this.selection.select(row));\n this.changeDetectorRef.detectChanges();\n this.gridApi.detectRowChanges();\n }\n\n private clearPropertyWhenSelectionEnable(checkedRows: IDataTableRow[]): void {\n if (this.isRowSelectionEnable && checkedRows.length) {\n checkedRows.forEach((s) => {\n if (s.hasOwnProperty('isSelected')) {\n delete s.isSelected;\n }\n if (s.hasOwnProperty('rowIndex')) {\n delete s.rowIndex;\n }\n });\n }\n }\n\n private getCheckedRows(): ICheckedRowEvent {\n const checkedRows = this.selection.selected;\n this.clearPropertyWhenSelectionEnable(checkedRows);\n const pageMatchedPreviousCheckedRows = this.rows.filter((row) => {\n return checkedRows.some((item) => JSON.stringify(row) === JSON.stringify(item));\n });\n const pageUnmatchedCheckedRows = checkedRows.filter((e) => {\n return pageMatchedPreviousCheckedRows.findIndex((m) => JSON.stringify(e) === JSON.stringify(m)) < 0;\n });\n return { pageMatchedPreviousCheckedRows: pageMatchedPreviousCheckedRows, pageUnmatchedCheckedRows: pageUnmatchedCheckedRows };\n }\n\n private masterToggleServerSide(): void {\n const previousCheckedRows: ICheckedRowEvent = this.getCheckedRows();\n this.selection.clear();\n this.addUnmatchedRowToSelection(previousCheckedRows.pageUnmatchedCheckedRows);\n if (this.rows.length !== previousCheckedRows.pageMatchedPreviousCheckedRows.length) {\n this.rows.forEach((row) => this.selection.select(row));\n }\n this.changeDetectorRef.detectChanges();\n this.gridApi.detectRowChanges();\n }\n\n private addUnmatchedRowToSelection(rows: IDataTableRow[]): void {\n rows.forEach((row) => this.selection.select(row));\n }\n\n private setRowChecked(): void {\n const previousCheckedRows: ICheckedRowEvent = this.getCheckedRows();\n this.selection.clear();\n this.addUnmatchedRowToSelection(previousCheckedRows.pageUnmatchedCheckedRows);\n\n this.rows\n .filter((e) => {\n return previousCheckedRows.pageMatchedPreviousCheckedRows.some((item) => JSON.stringify(e) === JSON.stringify(item));\n })\n .forEach((row) => {\n this.selection.select(row);\n });\n\n this.changeDetectorRef.detectChanges();\n this.gridApi.detectRowChanges();\n }\n\n private getFilteredDataRow(dataRows: IDataTableRow[]): IDataTableRow[] {\n return dataRows.filter((e) => {\n return this.filteredRows.some((item) => JSON.stringify(e.data) === JSON.stringify(item.data));\n });\n }\n\n private setColumnSource(property: string): string {\n let source: string;\n const index = this.gridOptions.metaDataColumns.findIndex((value: string) => value === property);\n if (index > -1) {\n source = this.sourceTypes.METADATA;\n } else {\n source = this.sourceTypes.DATA_SOURCE;\n }\n return source;\n }\n\n private setColumnsUsingStoredData(defaultColumns: IDataTableColumn[]): IDataTableColumn[] {\n let tempCollection: IDataTableColumn[] = [];\n tempCollection = defaultColumns.filter((x) => x != undefined);\n if (!this.storageKey) {\n return tempCollection;\n }\n let storedColumns = this.localStorageService.getItem(this.storageKey);\n if (storedColumns && storedColumns.length) {\n var index = 0;\n storedColumns\n .filter((x) => x != undefined)\n .forEach((item: ListItem) => {\n const existingColumnIndex = tempCollection.findIndex((x) => x.prop === item.prop);\n if (existingColumnIndex > -1) {\n const existingColumn = tempCollection.find((x) => x.prop === item.prop);\n if (existingColumn) {\n existingColumn.isVisible = true;\n var tempcolumn = tempCollection[index];\n tempCollection[index] = existingColumn;\n tempCollection[existingColumnIndex] = tempcolumn;\n }\n }\n index++;\n });\n // added invisible columns at the end to complete the set\n tempCollection\n .filter((item) => item && storedColumns.findIndex((x) => x.prop === item.prop) < 0)\n .forEach((item: IDataTableColumn) => {\n if (item) {\n item.isVisible = false;\n }\n });\n }\n\n return tempCollection;\n }\n\n private selectedCheckboxPagingConfirmation(selectableIndex?: number | string): void {\n const dialogRef: MatDialogRef<CommonConfirmModalComponent> = this.matDialog.open(CommonConfirmModalComponent, {\n width: '450px',\n data: {\n body: this.confirmationMsgPagination,\n },\n });\n dialogRef\n .afterClosed()\n .pipe()\n .subscribe((confirmation) => {\n if (confirmation) {\n this.setData(selectableIndex);\n }\n });\n }\n\n private isSelectedRow(): number {\n return this.gridApi.getSelectedRows().map((x) => x.data).length;\n }\n\n private searchTable(): void {\n this.searchValue.valueChanges\n .pipe(\n filter((res: string) => res.length >= 2 || res === ''),\n debounceTime(500),\n distinctUntilChanged(),\n takeUntil(this.clearSubs$)\n )\n .subscribe(() => {\n if (!this.isSearchDisabled) {\n this.paginationParams.currentPage = 1;\n this.changeDetectorRef.detectChanges();\n this.setData();\n }\n });\n }\n\n private populateFilterParams(): IFilterParam[] {\n if (!this.gridOptions.isClientSidePagination && this.gridOptions.isSearchBoxVisible && !this.gridOptions.isUpdatedTableDesign) {\n return [{ columnName: 'searchText', filterValue: this.searchValue.value }, ...this.filterManager.getFilterParams()];\n }\n return this.filterManager.getFilterParams();\n }\n\n private getConfiguredColumns(): void {\n if (isFunction(this.gridOptions.storageFn)) {\n this.storageKey = this.gridOptions.storageFn();\n let columns = this.setColumnsUsingStoredData(this.columns);\n this.viewColumns = columns.filter((x) => x != undefined);\n }\n }\n\n private generateColumns(rowData: IKeyValue[]): void {\n this.columns = Object.keys(rowData[0]).map((x) => {\n return <IDataTableColumn>{\n header: x.toUpperCase(),\n prop: x,\n type: ColumnTypes.String,\n rendererTemplate: this.gridOptions.renderTemplatesProp ? this.gridOptions.renderTemplatesProp[x] : undefined,\n };\n });\n this.initColumns();\n this.defaultSortedColumns = clone(this.viewColumns);\n this.changeDetectorRef.detectChanges();\n }\n}\n","<div>\n <section class=\"actions\">\n <section class=\"search\" *ngIf=\"gridOptions.isSearchBoxVisible && !gridOptions.isUpdatedTableDesign\">\n <form ngForm>\n <div class=\"searchbar-wrapper\">\n <i class=\"svg-icon fa-solid fa-magnifying-glass\"></i>\n <input matInput type=\"text\" placeholder=\"Search {{ searchPlaceholder }}\" name=\"search\"\n [formControl]=\"searchValue\" [disabled]=\"isSearchDisabled\"\n (ngModelChange)=\"searchModelChanged()\" />\n </div>\n </form>\n </section>\n <div class=\"toolbar\" *ngIf=\"!gridOptions.hideTopToolbar\">\n <section *ngIf=\"!isOnlyView\" class=\"adding\">\n <ul class=\"row-actions\">\n <ng-container *hasPermission=\"getActionName(actionTypes.ADD)\">\n <li *ngIf=\"!gridOptions.addButtonTemplate\">\n <span *ngIf=\"!isTableInEditState\">\n <a (click)=\"onClickAdd()\"\n [ngClass]=\"{'disabled': isDisabledMainAction(actionTypes.ADD) || (gridOptions.disableIcons && gridOptions.disableIcons.add$ |async)}\">\n <span title=\"{{getTooltipText(toolTips.ADD)}}\" class=\"toolbar-icon icon-plus\"\n [ngClass]=\"(isDisabledMainAction(actionTypes.ADD) || (gridOptions.disableIcons && gridOptions.disableIcons.add$ |async))? 'icon-inactive': 'icon-active'\"></span>\n </a>\n </span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"gridOptions.addButtonTemplate\">\n <li>\n <ng-container *ngTemplateOutlet=\"gridOptions.addButtonTemplate;\"></ng-container>\n </li>\n </ng-container>\n </ul>\n <ng-container *ngIf=\"!isLoading$.getValue()\">\n <app-data-table-actions\n *ngIf=\"!(isOnlyView && !isViewActionVisible) && !gridOptions.isRowActionVisible\"\n [gridApi]=\"gridApi\" [canInlineEdit]=\"canInlineEdit\" [isTreeGrid]=\"isTreeGrid\"\n [gridOptions]=\"gridOptions\" [selectedRow]=\"selectedRow\" [isIconsDisabled]=\"isActionsDisabled\"\n [isEditing]=\"selectedRow?.isEditing\" [isSaving]=\"selectedRow?.isSaving\"\n [isOnlyView]=\"isOnlyView\" [isEditable]=\"isEditable\" (clickAdd)=\"onClickAdd()\"\n [hasEmptyRow]=\"hasEmptyRow\" [isEditing]=\"isEditing\" [isSaving]=\"isSaving\"\n [isCloneVisible]=\"isCloneVisible\" [isDeleteVisible]=\"!checkDeleteDisabled()\">\n </app-data-table-actions>\n </ng-container>\n </section>\n <ul class=\"row-actions\" *ngIf=\"!isOnlyView || gridOptions.isTopLeftActionsForceDisply\">\n <ng-container *ngFor=\"let action of gridOptions.topLeftAdditionalActions\">\n <li>\n <a *hasPermission=\"getLeftActionName(action.actionName)\"\n [ngClass]=\"{'disabled': action.isDisabled}\" (click)=\"ActionClickHandler(action)\"\n class=\"fontIco\">\n <app-icon *ngIf=\"!action.isClass\" [title]=\"getLeftRightActionText(action)\"\n [name]=\"action.iconOrClassName\"></app-icon>\n <span *ngIf=\"action.isClass\" title=\"{{getLeftRightActionText(action)}}\"\n class=\"toolbar-icon {{ action.iconOrClassName }}\"\n [ngClass]=\"(action.actionName===actionTypes.UPLOAD && action.isDisabled)? 'icon-inactive': ''\"></span>\n </a>\n </li>\n <li *ngIf=\"action.loading$ | async\">\n <mat-spinner class=\"mr-1 action-loader\" [diameter]=\"25\"></mat-spinner>\n </li>\n </ng-container>\n\n </ul>\n <ng-container *ngIf=\"gridOptions.leftActionBtnTemplate\">\n <ng-container *ngTemplateOutlet=\"gridOptions.leftActionBtnTemplate\"></ng-container>\n </ng-container>\n <span class=\"toolbar-spacer\"></span>\n\n <ul class=\"row-actions\">\n\n <ng-container *ngFor=\"let action of gridOptions.topRightActions\">\n <li>\n <a (click)=\"ActionClickHandler(action)\" class=\"fontIco\">\n <app-icon [title]=\"getLeftRightActionText(action)\" [name]=\"action.icon\"></app-icon>\n </a>\n </li>\n </ng-container>\n\n </ul>\n <ng-container *ngIf=\"gridOptions.isUpdatedTableDesign\">\n <ng-container *ngIf=\"gridOptions.newTableButtontemplate\">\n <ng-container *ngTemplateOutlet=\"gridOptions.newTableButtontemplate\"></ng-container>\n </ng-container>\n <section class=\"search\" *ngIf=\"gridOptions.isSearchBoxVisible\">\n <form ngForm>\n <div class=\"searchbar-wrapper\">\n <i class=\"svg-icon fa-solid fa-magnifying-glass\"></i>\n <input matInput type=\"text\" placeholder=\"Search\" name=\"search\" [formControl]=\"searchValue\"\n [disabled]=\"isSearchDisabled\" (ngModelChange)=\"searchModelChanged()\" />\n </div>\n </form>\n </section>\n <ng-container *ngIf=\"gridOptions.isFilterEnabled\">\n <button mat-stroked-button color=\"primary\" (click)=\"showHideFilterView()\">\n <em class=\"fas fa-filter inactive-filter\" [ngClass]=\"{'active-filter': isFilterApplied }\"></em>\n Filter\n </button>\n <button [title]=\"'Clear'\" (click)=\"clearGlobalFilter()\" mat-stroked-button color=\"primary\">\n <em class=\"fas fa-broom\"></em>\n </button>\n </ng-container>\n </ng-container>\n\n <ul class=\"row-actions\">\n <li *ngIf=\"!gridOptions.hideColumnConfiguration\">\n <a (click)=\"openColumnShowHideDialogue()\" class=\"fontIco\">\n <app-icon [title]=\"getTooltipText(toolTips.COLUMN_CONFIGURATION)\" [name]=\"ICONS.ColumnSelector\">\n </app-icon>\n </a>\n </li>\n </ul>\n\n </div>\n </section>\n</div>\n\n<mat-card class=\"table-card\" [ngClass]=\"{'transparent-table-design': gridOptions.isTransparentTableDesign}\">\n <app-loader *ngIf=\"isLoading$ | async\" class=\"loader-middle\"></app-loader>\n\n <mat-card-content>\n <div class=\"custom-data-table\" [ngClass]=\"{'default-table-height': isLoading$.getValue(), 'overflow-visible': gridOptions.isAccordionTable }\"\n (scroll)=\"onTableScrolled($event)\" #customDataTable [ngStyle]=\"getCustomTableStyle\">\n <table aria-describedby=\"Generic data table\" *ngIf=\"!gridOptions.isAccordionTable\"\n class=\"table apollo-design-new-data-table\" [ngClass]=\"{ '-tree': isTreeGrid }\" mdbTable>\n <thead *ngIf=\"!gridOptions.hideTableHeader\" class=\"sticky-header\">\n <tr *ngIf=\"gridOptions.isUpdatedTableDesign && isFilterView\" class=\"table-first-header\">\n <th *ngIf=\"isRowSelectionEnable\" scope=\"col\"></th>\n <ng-container *ngFor=\"let viewColumn of viewColumns\">\n <th *ngIf=\"viewColumn.isVisible\" scope=\"col\" class=\"header\"\n [ngClass]=\"{'transparent': !viewColumn.isMetaDataColumn && gridOptions.isUpdatedTableDesign}\">\n <app-data-col-filter *ngIf=\"isFilterEnable(viewColumn.prop)\" [columnName]=\"viewColumn\"\n [ngClass]=\"{'filteredColumn': isFilteredColumn(viewColumn.prop)}\"\n (onFilterClicked)=\"onFilterClicked($event)\" [filterOption]=\"viewColumn.filterOption\"\n [numberOfTableRefresh]=\"numberOfTableRefresh\" [isUpdatedFilterDesign]=\"true\"\n [isClearFilter$]=\"isClearFilter$\" [filterParam]=\"getFilterParam(viewColumn)\">\n </app-data-col-filter>\n </th>\n </ng-container>\n </tr>\n <tr class=\"table-second-header\">\n <th *ngIf=\"isRowSelectionEnable && !isSingleSelect\" scope=\"col\" class=\"hasSelection\">\n <mat-checkbox class=\"table-header-checkbox\" (change)=\"$event ? masterToggle() : null\"\n [formControl]=\"masterSelection\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <th scope=\"col\" *ngIf=\"isRowSelectionEnable && isSingleSelect\" class=\"hasSelection\"></th>\n <ng-container *ngFor=\"let viewColumn of viewColumns; let i = index\">\n <th *ngIf=\"viewColumn.isVisible\" scope=\"col\" class=\"header\" [attr.data-column-prop]=\"viewColumn.prop\"\n [ngClass]=\"{'transparent': !viewColumn.isMetaDataColumn && gridOptions.isUpdatedTableDesign}\">\n <div [ngClass]=\"getHeaderStyle(i, viewColumn)\">\n <app-data-col-filter\n *ngIf=\"isFilterEnable(viewColumn.prop) && !gridOptions.isUpdatedTableDesign\"\n [columnName]=\"viewColumn\"\n [ngClass]=\"{'filteredColumn': isFilteredColumn(viewColumn.prop)}\"\n (onFilterClicked)=\"onFilterClicked($event)\"\n [filterOption]=\"viewColumn.filterOption\"\n [numberOfTableRefresh]=\"numberOfTableRefresh\" [isClearFilter$]=\"isClearFilter$\"\n [filterParam]=\"getFilterParam(viewColumn)\">\n </app-data-col-filter>\n\n <span class=\"header\" [ngClass]=\"{'sort-column': isSortColumn(viewColumn)}\"\n (click)=\"sortTable(viewColumn)\">{{ viewColumn.header }}\n <ng-container *ngIf=\"viewColumn.headerIconClass\">\n <span class=\"header-icon\" [ngClass]=\"viewColumn.headerIconClass\"></span>\n </ng-container>\n <span class=\"sort-icon\"\n *ngIf=\"sortedColumn[viewColumn.prop]=== sortDirectionEnum.DESC\">\n <em class=\"material-icons\">\n arrow_downward\n </em>\n </span>\n <span class=\"sort-icon\"\n *ngIf=\"sortedColumn[viewColumn.prop]=== sortDirectionEnum.ASC\">\n <em class=\"material-icons\">\n arrow_upward\n </em>\n </span>\n </span>\n <ng-container\n *ngIf=\"gridOptions.isUpdatedTableDesign && isFilteredColumn(viewColumn.prop)\">\n <em class=\"fas fa-filter active-filter\"></em>\n </ng-container>\n <div *ngIf=\"gridOptions.draggable\"\n [ngClass]=\"{ 'header-separator': true, 'col-resize-cursor': viewColumn.draggable }\"\n (mousedown)=\"onSeparatorMouseDown($event, i, viewColumn)\"\n (dblclick)=\"onDoubleClickSeparator(i, viewColumn)\">\n </div>\n </div>\n </th>\n </ng-container>\n <th *ngIf=\"!(isOnlyView && !isViewActionVisible) && gridOptions.isRowActionVisible\" scope=\"col\">\n Actions</th>\n <th [ngClass]=\"{'transparent': gridOptions.isUpdatedTableDesign}\"\n *ngIf=\"gridOptions.gridMenuOptions && gridOptions.gridMenuOptions.isMenuEnabled\"></th>\n </tr>\n <ng-container *ngIf=\"gridOptions.hasFixedFirstRow\">\n <tr *ngIf=\"!(isLoading$ | async)\">\n <th *ngIf=\"isRowSelectionEnable && !isSingleSelect\" class=\"transparent\"></th>\n <th *ngIf=\"isRowSelectionEnable && isSingleSelect\" class=\"transparent\"></th>\n <ng-container *ngFor=\"let viewColumn of viewColumns\">\n <th class=\"transparent\">\n <ng-container\n *ngTemplateOutlet=\"viewColumn.fixedFirstRowTemplate; context: { $implicit: { col: viewColumn } }\"></ng-container>\n </th>\n </ng-container>\n </tr>\n </ng-container>\n </thead>\n <tbody *ngIf=\"!isLoading$.getValue()\" app-data-table-body [gridOptions]=\"gridOptions\"\n [selection]=\"selection\"\n [rows]=\"rows | columnFilter : filterManager.getFilterParams() : columns: gridOptions.isClientSidePagination\"\n [viewColumns]=\"viewColumns\" [canInlineEdit]=\"canInlineEdit\" [isTreeGrid]=\"isTreeGrid\"\n [isOnlyView]=\"isOnlyView\" [searchedRowCount$]=\"searchedRowCount$\" [onAddClick]=\"onAddClick\"\n [isOnlyViewRow]=\"isOnlyViewRow\" [isDeleteDisabled]=\"isDeleteDisabled\" [search]=\"searchValue.value\"\n [paginationParams]=\"paginationParams\" [hasEmptyRow]=\"hasEmptyRow\" [isEditing]=\"isEditing\"\n [isRowSelectionEnable]=\"isRowSelectionEnable\" [searchColumns]=\"searchColumns\"\n [isCloneVisible]=\"isCloneVisible\" (clickEdit)=\"onClickEdit($event)\"\n (clickClone)=\"onClickClone($event)\" (clickAction)=\"onClickAction($event)\"\n (clickEditCancel)=\"onClickEditCancel($event)\" (clickEditSave)=\"onClickEditSave($event)\"\n (clickDelete)=\"onClickDeleteRow($event)\" (clickView)=\"onClickView($event)\"\n (clickAdd)=\"onClickRowAdd($event)\" (clickRow)=\"onClickRow($event)\"\n (changeExpandCollapse)=\"onChangeExpandCollapse($event)\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\" [isRowUnchecked]=\"isRowUnchecked\"\n (CheckboxSelect)=\"isCheckboxSelect($event)\">\n </tbody>\n\n </table>\n\n <ng-container *ngIf=\"gridOptions.isAccordionTable\">\n <mat-accordion displayMode=\"flat\" multi class=\"mat-table\" *ngIf=\"gridOptions.isAccordionTable\">\n <mat-expansion-panel *ngIf=\"!gridOptions.hideTableHeader\" class=\"mask-body header-panel\" hideToggle>\n <mat-expansion-panel-header (keydown.Enter)=\"$event.stopImmediatePropagation();\"\n [collapsedHeight]=\"'auto'\" [expandedHeight]=\"'auto'\" class=\"mat-row header-row\">\n <div class=\"mat-checkboxRow\" *ngIf=\"isRowSelectionEnable && !isSingleSelect\"\n (click)=\"$event.stopPropagation()\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [(ngModel)]=\"masterSelection\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </div>\n <ng-container *ngFor=\"let viewColumn of viewColumns\">\n <div *ngIf=\"viewColumn.isVisible\" scope=\"col\" (click)=\"$event.stopPropagation()\"\n class=\"mat-cell d-inline-block\" [ngClass]=\"viewColumn.customCssClass\">\n <app-data-col-filter class=\"filter-column\" *ngIf=\"isFilterEnable(viewColumn.prop)\"\n [columnName]=\"viewColumn\"\n [ngClass]=\"{'filteredColumn': isFilteredColumn(viewColumn.prop)}\"\n (onFilterClicked)=\"onFilterClicked($event)\"\n [filterOption]=\"viewColumn.filterOption\"\n [numberOfTableRefresh]=\"numberOfTableRefresh\"\n [filterParam]=\"getFilterParam(viewColumn)\">\n </app-data-col-filter>\n &nbsp;\n <span [ngClass]=\"nonFilterClassName(viewColumn.prop)\" class=\"table .header\"\n (click)=\"sortTable(viewColumn)\">{{ viewColumn.header }}\n <span class=\"sort-icon\" *ngIf=\"sortedColumn[viewColumn.prop]=='DownSorted'\">\n <em class=\"material-icons\">\n arrow_downward\n </em>\n </span>\n <span class=\"sort-icon\" *ngIf=\"sortedColumn[viewColumn.prop]=='UpSorted'\">\n <em class=\"material-icons\">\n arrow_upward\n </em>\n </span>\n </span>\n </div>\n </ng-container>\n </mat-expansion-panel-header>\n </mat-expansion-panel>\n <ng-container>\n <div *ngIf=\"!isLoading$.getValue()\" app-data-table-body [gridOptions]=\"gridOptions\"\n [selection]=\"selection\"\n [rows]=\"rows | columnFilter : filterManager.getFilterParams() : columns: gridOptions.isClientSidePagination\"\n [viewColumns]=\"viewColumns\" [canInlineEdit]=\"canInlineEdit\" [isTreeGrid]=\"isTreeGrid\"\n [isOnlyView]=\"isOnlyView\" [searchedRowCount$]=\"searchedRowCount$\"\n [isOnlyViewRow]=\"isOnlyViewRow\" [isDeleteDisabled]=\"isDeleteDisabled\"\n [search]=\"searchValue.value\" [paginationParams]=\"paginationParams\"\n [hasEmptyRow]=\"hasEmptyRow\" [isEditing]=\"isEditing\"\n [isRowSelectionEnable]=\"isRowSelectionEnable\" [searchColumns]=\"searchColumns\"\n [isCloneVisible]=\"isCloneVisible\" (clickEdit)=\"onClickEdit($event)\"\n (matExpansionPanelClicked)=\"onExpansionPanelClick($event)\"\n (clickClone)=\"onClickClone($event)\" (clickAction)=\"onClickAction($event)\"\n (clickEditCancel)=\"onClickEditCancel($event)\" (clickEditSave)=\"onClickEditSave($event)\"\n (clickDelete)=\"onClickDeleteRow($event)\" (clickView)=\"onClickView($event)\"\n (clickAdd)=\"onClickRowAdd($event)\" (clickRow)=\"onClickRow($event)\"\n (changeExpandCollapse)=\"onChangeExpandCollapse($event)\"\n (complexDetailClicked)=\"ComplexDetailClicked($event)\"\n (CheckboxSelect)=\"isCheckboxSelect($event)\"></div>\n\n </ng-container>\n </mat-accordion>\n </ng-container>\n </div>\n <section *ngIf=\"hasPagination && selection\" class=\"pagination\">\n <app-data-pagination [selectionCount]=\"selection.selected.length\" class=\"table-pagination-container\" [ngClass]=\"{'transparent-table-design': gridOptions.isTransparentTableDesign}\" [totalRowCount$]=\"this.searchedRowCount$\"\n [count]=\"count\" [page]=\"paginationParams.currentPage\" [size]=\"paginationParams.pageSize\" [hasDropdownStylePageSize]=\"gridOptions.hasDropdownStylePageSize ?? true\"\n (changePage)=\"onChangePage($event)\">\n </app-data-pagination>\n </section>\n </mat-card-content>\n</mat-card>","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, Input, HostBinding } from '@angular/core';\nimport { DataTableActions } from '../../../../modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum';\nimport { DataTableComponent } from '../../../../modules/ui-kit/components/data-table/data-table/data-table.component';\n\n@Component({\n selector: 'app-data-table-wrap',\n templateUrl: './data-table-wrap.component.html',\n styleUrls: ['./data-table-wrap.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DataTableWrapComponent {\n\n @Input() public disabledActions: DataTableActions[] = [];\n\n @HostBinding('class') get classes(): string[] {\n return this.disabledActions\n .map(action => `${action}--disabled `);\n }\n\n @ContentChild(DataTableComponent) set dataTable(table: DataTableComponent) {\n if (!table) {\n throw new Error('Data table must be provided into DataTableWrapComponent!');\n }\n\n this._dataTable = table;\n }\n get dataTable(): DataTableComponent {\n return this._dataTable;\n }\n\n public readonly DATA_TABLE_ACTIONS: typeof DataTableActions = DataTableActions;\n\n private _dataTable: DataTableComponent;\n\n}\n","<ng-content select=\"app-data-table\">\n</ng-content>\n","import { Component, ChangeDetectionStrategy, Output, EventEmitter, Input } from '@angular/core';\nimport { IDataTableAction } from '../../../../interfaces/data-table.interface';\nimport { BaseDataColComponent } from '../base-data-col/base-data-col.component';\nimport { SelectOptionValue } from 'idp-apps-shared-ui/modules/ui-kit/types/select.type';\n\n@Component({\n selector: '[app-data-col-action-button]',\n templateUrl: './data-col-action-button.component.html',\n styleUrls: ['./data-col-action-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataColActionButtonComponent extends BaseDataColComponent {\n\n @Input() public disabled: boolean = false;\n @Output() public actionClick = new EventEmitter<IDataTableAction>();\n\n public onActionClick(type: SelectOptionValue): void {\n if (typeof type === 'string') {\n this.actionClick.emit({ type, payload: this.row.data });\n }\n }\n}\n","<div class=\"btn-group\">\n <button\n *ngFor=\"let columnData of col?.constants | keyvalue\"\n class=\"btn btn-link p-0 btn-sm\"\n [disabled]=\"disabled\"\n (click)=\"onActionClick(columnData.value.value)\"\n >\n {{ columnData.value?.label }}\n </button>\n</div>\n","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormGroup, AbstractControl, FormControl } from '@angular/forms';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { isUndefined } from 'lodash';\nimport { IDataTableColumn, IDataTableRow } from '../../../interfaces/data-table.interface';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\n\n@Component({\n selector: 'app-data-column-filter',\n templateUrl: './data-column-filter.component.html',\n styleUrls: ['./data-column-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataColumnFilterComponent implements OnInit {\n\n @Input() public column: IDataTableColumn = null;\n @Output() public filterFired: EventEmitter<IFilterParameters> = new EventEmitter<IFilterParameters>();\n public uniqueValueSet: Set<string> = new Set<string>([]);\n\n public valueForm: FormGroup;\n public isLoading: false;\n private rows: IDataTableRow[];\n private uniqueData: Array<string> = [];\n\n constructor(private formBuilder: FormBuilder,\n private chagedetector: ChangeDetectorRef) {\n //\n }\n\n @Input()\n set tableRows(values: IDataTableRow[]) {\n this.rows = values;\n this.rows = cloneDeep(this.rows);\n }\n\n public ngOnInit(): void {\n this.uniqueValueSet = this.calculateUniqueValues(this.column);\n this.valueForm = this.createForm(this.uniqueValueSet);\n }\n\n public getControl(value: string): AbstractControl | null {\n if (this.valueForm && this.valueForm.controls[value]) {\n return this.valueForm.controls[value];\n }\n return null;\n }\n\n public isValidValue(value): boolean {\n return !isUndefined(value);\n }\n\n public applyFilter(): void {\n Object.keys(this.valueForm.controls).forEach((key) => {\n if (this.valueForm.controls[key].value) {\n this.uniqueData.push(key);\n }\n });\n this.filterFired.emit({ values: this.uniqueData, property: this.column.prop });\n }\n\n private createForm(values: Set<string>): FormGroup {\n const controlsConfig: IKeyValue = {};\n values.forEach((item) => {\n controlsConfig[item] = new FormControl(false);\n });\n return this.formBuilder.group(controlsConfig);\n }\n\n private calculateUniqueValues(viewColumn: IDataTableColumn): Set<string> {\n const uniqueValues: Set<string> = new Set<string>([]);\n this.rows.forEach((item: IDataTableRow) => {\n uniqueValues.add(item.data[viewColumn.prop]);\n });\n return uniqueValues;\n }\n}\n\nexport interface IFilterParameters {\n values: Array<string>;\n property: string;\n}\n","<!-- <div class=\"filter-icon\">\n <a [mdePopoverTriggerFor]=\"appPopover\" mdePopoverTriggerOn=\"click\" #popoverTrigger=\"mdePopoverTrigger\">\n <i class=\"fas fa-filter\"></i>\n </a>\n <mde-popover #appPopover=\"mdePopover\" [mdePopoverOverlapTrigger]=\"false\" [mdePopoverCloseOnClick]=\"false\">\n <mat-card style=\"max-width: 300px\">\n <mat-card-content *ngIf=\"!isLoading\">\n <form [formGroup]=\"valueForm\">\n <ul>\n <li *ngFor=\"let value of uniqueValueSet.values()\">\n <mat-checkbox [formControl]=\"getControl(value)\" *ngIf=\"isValidValue(value)\">{{value}}</mat-checkbox>\n </li>\n </ul>\n <button mat-button [color]=\"primary\" (click)=\"applyFilter()\">Apply</button>\n </form>\n </mat-card-content>\n </mat-card>\n </mde-popover>\n</div> -->","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IDataTableColumn } from '../../../interfaces/data-table.interface';\n\n@Component({\n selector: 'app-header-row',\n templateUrl: './header-row.component.html',\n styleUrls: ['./header-row.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderRowComponent {\n @Input() public viewColumns: IDataTableColumn[];\n}\n","<th\n *ngFor=\"let viewColumn of viewColumns\"\n scope=\"col\"\n>\n {{ viewColumn.header }}\n</th>\n\n<th>Actions</th>\n","import { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport * as jsps from 'jspreadsheet-ce';\n\nexport interface IExcelColumn {\n type: string;\n width: string | number;\n name: string;\n title: string;\n validateFn?: Function;\n isUniqueValue?: boolean;\n isValueRequired?: boolean;\n isCaseInSensitive?: boolean;\n validateOtherColumnsOnUpdate?: boolean;\n}\n\nexport class ExcelColumn {\n static mapFrom<TColumn extends jsps.BaseColumn>(column: TColumn): IExcelColumn {\n return <IExcelColumn>{\n type: column.type,\n width: column.width,\n name: column.name,\n title: column.title,\n };\n }\n static mapFromJson(jsonValue: Record<string, jsps.CellValue>): IExcelColumn {\n return <IExcelColumn>{\n type: jsonValue['type'],\n width: jsonValue['width'],\n name: jsonValue['name'],\n title: jsonValue['title'],\n };\n }\n static mapTo<TColumn extends jsps.BaseColumn>(column: IExcelColumn): TColumn {\n return <TColumn>{\n type: column.type,\n width: column.width,\n name: column.name,\n title: column.title,\n };\n }\n}\n\nexport interface IExcelCellChangeEvent {\n cellValue: string;\n rowData: IExcelData;\n dataSets: IExcelData[];\n column: IExcelColumn;\n}\n\nexport interface IExcelData extends IKeyValue {\n}\n\nexport class ExcelData { \n static mapTo(excelData: IExcelData[]): jsps.CellValue[][] {\n if (!excelData || excelData.length === 0) {\n return [];\n }\n const cellValues: jsps.CellValue[][] = new Array<jsps.CellValue[]>();\n for (const data of excelData) {\n if (!data) { continue; }\n const values = Object.values(data);\n const d: jsps.CellValue[] = values.map(v => Object(v).toString());\n cellValues.push(d);\n }\n return cellValues;\n }\n}\n","// tslint:disable:typedef\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, AfterViewInit, ElementRef, ViewChild } from '@angular/core';\nimport jsps from 'jspreadsheet-ce';\nimport { IExcelData, IExcelColumn, IExcelCellChangeEvent, ExcelColumn, ExcelData } from './interface/excel-table.interface';\n\n@Component({\n selector: 'app-excel-table',\n templateUrl: './excel-table.component.html',\n styleUrls: ['./excel-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class ExcelTableComponent implements AfterViewInit {\n\n @Input() public rows: IExcelData[] = [];\n @Input() public columns: IExcelColumn[];\n @Input() public isUpdateCellChanged: boolean = false;\n @Input() public spreadsheetOptions?: jsps.JSpreadsheetOptions | null = null;\n @Output() public getRows: EventEmitter<IExcelData[]> = new EventEmitter<IExcelData[]>();\n @ViewChild('spreadsheet') public spreadsheetEl: ElementRef;\n @ViewChild('worksheet') public worksheetEl: ElementRef;\n public table: jsps.JspreadsheetInstance;\n private cellErrorColor: string = '#D0021B';\n private defaultSpreadsheetOptions: jsps.JSpreadsheetOptions;\n\n public ngAfterViewInit(): void {\n this.setDefaultOptions();\n this.loadTable();\n }\n\n private setDefaultOptions(): void {\n this.defaultSpreadsheetOptions = {\n data: ExcelData.mapTo(this.rows),\n columns: this.columns.map(c => ExcelColumn.mapTo(c)),\n style: <any>this.validateStyle(),\n columnSorting: true,\n tableOverflow: true,\n defaultColWidth: 50,\n search: true,\n tableWidth: `${window.innerWidth}`,\n csvHeaders: false,\n allowDeleteRow: true,\n allowInsertRow: true,\n onload: this.onLoad.bind(this),\n onchange: this.onChange.bind(this),\n updateTable: this.updateTable.bind(this),\n };\n }\n\n private mergeSpreadsheetOptionsWithDefault(): jsps.JSpreadsheetOptions {\n return this.spreadsheetOptions !== null\n ? { ...this.defaultSpreadsheetOptions, ...this.spreadsheetOptions }\n : this.defaultSpreadsheetOptions;\n }\n\n private loadTable(): void {\n const opt: jsps.JSpreadsheetOptions = this.mergeSpreadsheetOptionsWithDefault();\n this.table = jsps(this.spreadsheetEl.nativeElement, opt);\n }\n\n private onLoad(element: jsps.JspreadsheetInstanceElement, instance: jsps.JspreadsheetInstance): void {\n const jsonValues = element.jexcel.getJson(false);\n this.getRows.emit(jsonValues);\n }\n\n private onChange(\n element: jsps.JspreadsheetInstanceElement,\n cell: HTMLTableCellElement,\n colIndex: string | number,\n rowIndex: string | number,\n newValue: jsps.CellValue,\n oldValue: jsps.CellValue): void {\n\n if (this.isUpdateCellChanged) {\n return;\n }\n\n const jexcelConfig: Record<string, any> = element.jexcel.getConfig();\n const column: IExcelColumn = jexcelConfig.columns[colIndex];\n const rows: IExcelData[] = element.jexcel.getJson(false);\n\n if (column.validateOtherColumnsOnUpdate) {\n jexcelConfig.columns.forEach((col: jsps.Column, i: number) => {\n const excelColumn = ExcelColumn.mapFrom(col);\n const colEventData: IExcelCellChangeEvent = {\n cellValue: rows[rowIndex][col.name],\n rowData: rows[rowIndex],\n dataSets: rows,\n column: excelColumn,\n };\n this.validateAndSetStyle(excelColumn, colEventData, element.jexcel.rows[rowIndex].cells[i + 1]);\n });\n }\n if (column.validateFn && !column.isUniqueValue) {\n const cellEventData: IExcelCellChangeEvent = {\n cellValue: newValue.toString(),\n rowData: rows[rowIndex],\n dataSets: rows,\n column: column,\n };\n\n this.validateAndSetStyle(column, cellEventData, cell);\n }\n }\n\n private validateAndSetStyle(column: IExcelColumn, cellEventData: IExcelCellChangeEvent, cell: HTMLTableCellElement) {\n if (column.validateFn && !column.validateFn(cellEventData)) {\n cell.style.borderColor = this.cellErrorColor;\n } else {\n cell.style.borderColor = '';\n }\n }\n\n private validateStyle(): object {\n const style = {};\n this.rows.map((data, rowIndex) => {\n this.columns.forEach((column, colIndex) => {\n const rowAddress = String.fromCharCode('A'.charCodeAt(0) + colIndex).toString() + (rowIndex + 1).toString();\n if (column.validateFn) {\n const cellEventData: IExcelCellChangeEvent = {\n cellValue: data[column.name],\n rowData: data,\n dataSets: this.rows,\n column: column,\n };\n if (!column.validateFn(cellEventData)) {\n style[rowAddress] = `border-color: ${this.cellErrorColor}`;\n }\n }\n });\n });\n\n return style;\n }\n\n private updateTable(\n instance: jsps.JspreadsheetInstanceElement,\n cell: HTMLTableCellElement,\n colIndex: number,\n rowIndex: number,\n value: jsps.CellValue,\n displayedValue: string,\n cellName: string): void {\n const column: IExcelColumn = this.columns[colIndex];\n\n let rows: IExcelData[] = instance['jspreadsheet'].getJson instanceof Function ? instance['jspreadsheet'].getJson(false) : this.rows;\n if (column.isUniqueValue || this.isUpdateCellChanged) {\n const cellEventData: IExcelCellChangeEvent = {\n cellValue: value.toString(),\n rowData: rows[rowIndex],\n dataSets: rows,\n column: column,\n };\n if (column.validateFn && column.isUniqueValue) {\n const hasError: boolean = !this.checkUnique(cellEventData) || !column.validateFn(cellEventData);\n (hasError) ? cell.style.borderColor = this.cellErrorColor : cell.style.borderColor = '';\n } else if (column.validateFn) {\n (!column.validateFn(cellEventData)) ? cell.style.borderColor = this.cellErrorColor : cell.style.borderColor = '';\n } else if (column.isUniqueValue) {\n (!this.checkUnique(cellEventData)) ? cell.style.borderColor = this.cellErrorColor : cell.style.borderColor = '';\n }\n }\n\n if (rows.length > 0) {\n this.getRows.emit(rows);\n }\n }\n\n private checkUnique(cellEventData: IExcelCellChangeEvent): boolean {\n let data: IExcelData[] = [];\n if (cellEventData.column.isCaseInSensitive) {\n data = cellEventData.dataSets.filter(x => x[cellEventData.column.name].toString().toUpperCase() === cellEventData.cellValue.toString().toUpperCase());\n\n } else {\n data = cellEventData.dataSets.filter(x => x[cellEventData.column.name] === cellEventData.cellValue);\n }\n\n return (data.length > 1) ? false : true;\n }\n}\n","<div #spreadsheet></div>\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { isFunction, isUndefined } from '../../../../../core/utils/type-checks.utils';\n\n@Component({\n selector: 'app-counter-form-control',\n templateUrl: './counter-form-control.component.html',\n styleUrls: ['./counter-form-control.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => CounterFormControlComponent),\n multi: true,\n },\n ],\n})\nexport class CounterFormControlComponent implements ControlValueAccessor, OnInit {\n\n @Input() public max?: number;\n @Input() public min?: number;\n @Input() public startValue: number = 0;\n\n public onChangeFn: (val: number) => void;\n public onTouchFn: () => void;\n public isDisabled: boolean;\n\n public get value(): number {\n return this._value;\n }\n\n public set value(val: number) {\n if (val === this._value) { return; }\n\n this._value = Math.max(this.min, Math.min(this.max, val));\n\n if (isFunction(this.onChangeFn)) {\n this.onChangeFn(val);\n }\n }\n\n private _value: number;\n\n public ngOnInit(): void {\n this.value = this.startValue;\n }\n\n public registerOnChange(onChangeFn: (val: number) => void): void {\n this.onChangeFn = onChangeFn;\n }\n\n public registerOnTouched(onTouchFn: any): void {\n this.onTouchFn = onTouchFn;\n }\n\n public writeValue(val: number): void {\n if (!isUndefined(val)) {\n this.value = +val;\n }\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<input\n type=\"number\"\n class=\"form-control\"\n [(ngModel)]=\"value\"\n [max]=\"max\"\n [min]=\"min\"\n [disabled]=\"isDisabled\"\n (blur)=\"onTouchFn()\"\n>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { ColorSchemes } from '../../../enums/color-schemes.enum';\nimport { FormTypes } from '../../../enums/form-types.enum';\nimport { IFormData, IInitFormEvent, UnionFormItem } from '../../../interfaces/form.interface';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\nimport { FormService } from '../../../services/form.service';\nimport { GetItemFn, PostItemFn, PutItemFn, SubmitItemApiFn } from '../../../types/function.type';\n\n@Component({\n selector: 'app-form-container',\n templateUrl: './form-container.component.html',\n styleUrls: ['./form-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormContainerComponent implements OnInit {\n @Input() public formFields: UnionFormItem[];\n @Input() public getItemFn: GetItemFn;\n @Input() public postItemFn: PostItemFn;\n @Input() public putItemFn: PutItemFn;\n @Input() public id: string;\n @Input() public formType: FormTypes;\n\n @Output() public initForm: EventEmitter<IInitFormEvent> = new EventEmitter();\n @Output() public submitData: EventEmitter<IKeyValue> = new EventEmitter();\n @Output() public clickCancel: EventEmitter<undefined> = new EventEmitter();\n\n public readonly COLOR_SCHEMES: typeof ColorSchemes = ColorSchemes;\n\n public isLoading: boolean = false;\n public isSubmitting: boolean = false;\n\n private formGroup: FormGroup;\n private formInitData: IFormData;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private formService: FormService,\n ) {\n }\n\n public ngOnInit(): void {\n this.init();\n }\n\n public init(): void {\n this.createForm();\n\n if (this.isItemExisted) {\n this.setFormData();\n } else {\n this.emitInitForm();\n }\n }\n\n public onClickCancel(): void {\n this.clickCancel.emit();\n }\n\n public setFormData(): void {\n this.isLoading = true;\n\n this.getItemFn(this.id).subscribe((data: IFormData) => {\n // TODO: add error handling\n this.isLoading = false;\n this.formInitData = data;\n\n this.formService.fillForm(this.formGroup, data);\n\n if (this.isView) {\n this.disableForm();\n }\n\n this.emitInitForm();\n });\n }\n\n public onClickSubmit(): void {\n this.submitForm();\n }\n\n private submitForm(): void {\n if (this.isSubmitting) {\n return;\n }\n\n // TODO: add validation checks\n this.isSubmitting = true;\n this.disableForm();\n\n this.submitFn(this.formValue).pipe(first()).subscribe((data: IKeyValue) => {\n this.isSubmitting = false;\n this.enableForm();\n this.submitData.emit(data);\n\n this.changeDetectorRef.detectChanges();\n },\n this.handleError.bind(this),\n );\n }\n\n private handleError(): void {\n this.isSubmitting = false;\n this.enableForm();\n }\n\n private get formValue(): IKeyValue {\n return this.formService.getFormValue(this.formGroup);\n }\n\n get isView(): boolean {\n return this.formType === FormTypes.View;\n }\n\n private get isEdit(): boolean {\n return this.formType === FormTypes.Edit;\n }\n\n private get isItemExisted(): boolean {\n return this.isView || this.isEdit;\n }\n\n private get submitFn(): SubmitItemApiFn {\n if (this.isItemExisted) {\n return this.putItemFn.bind(this.putItemFn, this.id);\n }\n\n return this.postItemFn;\n }\n\n private emitInitForm(): void {\n setTimeout(() => {\n this.initForm.emit({\n formGroup: this.formGroup,\n formType: this.formType,\n formData: this.formInitData || {},\n });\n });\n }\n\n private disableForm(): void {\n this.formService.disableForm(this.formGroup);\n }\n\n private enableForm(): void {\n this.formService.enableForm(this.formGroup);\n }\n\n private createForm(): void {\n this.formGroup = this.formService.createForm(this.formFields);\n }\n}\n","<form class=\"form-container\">\n <ng-container *ngIf=\"!isLoading\">\n <section class=\"fields\">\n <ng-content></ng-content>\n </section>\n\n <app-buttons-list class=\"actions\">\n <app-button-control\n *ngIf=\"!isView\"\n [title]=\"'Save'\"\n [colorScheme]=\"COLOR_SCHEMES.Primary\"\n [isLoading]=\"isSubmitting\"\n [isDisabled]=\"isSubmitting\"\n (click)=\"onClickSubmit()\"\n ></app-button-control>\n <app-button-control\n [title]=\"'Cancel'\"\n [colorScheme]=\"COLOR_SCHEMES.Secondary\"\n [isDisabled]=\"isSubmitting\"\n (click)=\"onClickCancel()\"\n ></app-button-control>\n </app-buttons-list>\n </ng-container>\n\n <ng-container *ngIf=\"isLoading\">\n <app-loader class=\"loader\"></app-loader>\n </ng-container>\n</form>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'app-form-group-container',\n templateUrl: './form-group-container.component.html',\n styleUrls: ['./form-group-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormGroupContainerComponent {}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BaseFormControlComponent } from '../base-form-control/base-form-control.component';\n\n@Component({\n selector: 'app-radio-form-control',\n templateUrl: './radio-form-control.component.html',\n styleUrls: ['./radio-form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioFormControlComponent extends BaseFormControlComponent {\n\n @Input() public value: string;\n\n constructor() {\n super();\n }\n\n}\n","<div class=\"custom-control custom-radio\">\n <input\n id=\"{{id}}\"\n class=\"custom-control-input\"\n name=\"{{name}}\"\n type=\"radio\"\n [value]=\"value\"\n [formControl]=\"control\"\n >\n <label\n *ngIf=\"label\"\n class=\"custom-control-label\"\n for=\"{{id}}\"\n >\n {{ label }}\n </label>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-selection-group-container',\n templateUrl: './selection-group-container.component.html',\n styleUrls: ['./selection-group-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionGroupContainerComponent {\n @Input() public title: string;\n @Input() public isVertical: boolean = false;\n}\n","<div class=\"title\">\n {{ title }}\n</div>\n<div class=\"controls\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BaseFormControlComponent } from '../base-form-control/base-form-control.component';\n\n@Component({\n selector: 'app-textarea-form-control',\n templateUrl: './textarea-form-control.component.html',\n styleUrls: ['./textarea-form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextareaFormControlComponent extends BaseFormControlComponent {\n @Input() public rows: number = 5;\n\n constructor() {\n super();\n }\n}\n","<label\n *ngIf=\"label\"\n class=\"form-label\"\n for=\"{{id}}\"\n>{{ label }}</label>\n<textarea\n id=\"{{id}}\"\n class=\"form-control\"\n name=\"{{name}}\"\n type=\"text\"\n placeholder=\"{{placeholder}}\"\n rows=\"{{rows}}\"\n [formControl]=\"control\"\n></textarea>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Icons } from '../../../enums/icons.enum';\nimport { ColorSchemes } from '../../../enums/color-schemes.enum';\n\n@Component({\n selector: 'app-text-icon',\n templateUrl: './text-icon.component.html',\n styleUrls: ['./text-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextIconComponent {\n @Input() public iconName: Icons;\n @Input() public colorScheme: ColorSchemes = ColorSchemes.Primary;\n @Input() public text: string;\n}\n","<a class=\"text-icon text-{{ colorScheme }}\">\n <app-icon\n class=\"icon\"\n [name]=\"iconName\"\n [colorScheme]=\"colorScheme\"\n ></app-icon>\n <span class=\"text\">{{ text }}</span>\n</a>\n","export enum FormUrlParams {\n FormType = 'formType',\n Id = 'id',\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-primary-layout',\n templateUrl: './primary-layout.component.html',\n styleUrls: ['./primary-layout.component.scss'],\n})\nexport class PrimaryLayoutComponent {}\n","<section class=\"primary-layout\">\n <h5 class=\"header\">\n <ng-content select=\"primary-layout-header\"></ng-content>\n </h5>\n <section class=\"body\">\n <ng-content select=\"primary-layout-body\"></ng-content>\n </section>\n</section>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormService } from '../../../services/form.service';\nimport { IBaseFormItem, IInitFormEvent } from '../../../interfaces/form.interface';\nimport { FormUrlParams } from '../../../enums/form-url-params.enum';\nimport { GetItemFn, PostItemFn, PutItemFn } from '../../../types/function.type';\nimport { FormTypes } from 'idp-apps-shared-ui/modules/ui-kit/enums/form-types.enum';\n\n@Component({\n selector: 'app-form-layout',\n templateUrl: './form-layout.component.html',\n styleUrls: ['./form-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormLayoutComponent {\n @Input() public entityName: string;\n @Input() public formFields: IBaseFormItem[];\n @Input() public getItemFn: GetItemFn;\n @Input() public postItemFn: PostItemFn;\n @Input() public putItemFn: PutItemFn;\n\n @Output() public initForm: EventEmitter<IInitFormEvent> = new EventEmitter();\n\n public id: string;\n public formType: FormTypes;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private formService: FormService,\n private router: Router,\n ) {\n this.setDataFromRoute();\n }\n\n public get formHeader(): string {\n return `${this.formService.getTitleByFormType(this.formType)} ${this.entityName}`;\n }\n\n public onInitForm(eventData: IInitFormEvent): void {\n this.initForm.emit(eventData);\n }\n\n public onClickCancel(): void {\n this.navigateBack();\n }\n\n public onSubmitData(): void {\n // TODO: validate if was error and not navigate\n this.navigateBack();\n }\n\n private navigateBack(): void {\n const url: string = this.formService.getBackFormUrl(this.router.url, this.formType);\n this.router.navigate([url]);\n }\n\n private setDataFromRoute(): void {\n this.id = this.activatedRoute.snapshot.paramMap.get(FormUrlParams.Id);\n this.formType =<FormTypes> this.activatedRoute.snapshot.paramMap.get(FormUrlParams.FormType);\n }\n}\n","<app-primary-layout>\n {{ formHeader }}\n\n <app-form-container\n [formFields]=\"formFields\"\n [getItemFn]=\"getItemFn\"\n [postItemFn]=\"postItemFn\"\n [putItemFn]=\"putItemFn\"\n [id]=\"id\"\n [formType]=\"formType\"\n (initForm)=\"onInitForm($event)\"\n (clickCancel)=\"onClickCancel()\"\n (submitData)=\"onSubmitData()\"\n >\n <ng-content select=\"form-layout-controls\"></ng-content>\n </app-form-container>\n <ng-content select=\"form-layout-footer\"></ng-content>\n</app-primary-layout>\n","export enum ConfirmationModalProps {\n DEFAULT_HEADER = 'Confirmation Required!',\n DEFAULT_BODY = 'Do you want to proceed this action?',\n DEFAULT_YES_BTN_TEXT = 'Yes',\n DEFAULT_NO_BTN_TEXT = 'No',\n DEFAULT_OK_BTN_TEXT = 'OK',\n DEFAULT_CANCEL_BTN_TEXT = 'Cancel',\n DEFAULT_DELETE_BTN_TEXT = 'Delete',\n DEFAULT_POSITION_TOP = '7%',\n DEFAULT_PANNEL_CLASS = 'columnshowhide-panel',\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmationModalProps } from '../enums/confirmation-modal.enum';\nimport { IKeyValue } from '../../../interfaces/generic.interface';\n\n@Component({\n selector: 'app-add-business-rules-confirm-modal',\n templateUrl: './common-confirm-modal.component.html',\n styleUrls: ['./common-confirm-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CommonConfirmModalComponent {\n public header: string;\n public body: string;\n public yesButtonText: string;\n public noButtonText: string;\n\n constructor(\n @Inject(MatDialogRef) private matDialogRef: MatDialogRef<CommonConfirmModalComponent>,\n @Inject(MAT_DIALOG_DATA) data,\n ) {\n this.setDefaultData(data);\n this.setDefaultPosition(data);\n this.setDefaultPannelClass(data);\n } \n\n public onClickConfirm(): void {\n this.matDialogRef.close(true);\n }\n\n public closeDialog(): void {\n this.matDialogRef.close(false);\n }\n\n private setDefaultPannelClass(data: IKeyValue): void {\n if (!data.pannelClass) {\n data.pannelClass = ConfirmationModalProps['DEFAULT_PANNEL_CLASS'];\n }\n }\n\n private setDefaultPosition(data: IKeyValue): void {\n if (!data.position) {\n data.position = {\n top: ConfirmationModalProps['DEFAULT_POSITION_TOP'],\n };\n }\n }\n \n private setDefaultData(data: IKeyValue): void {\n this.header = data.header || ConfirmationModalProps.DEFAULT_HEADER;\n this.body = data.body || ConfirmationModalProps.DEFAULT_BODY;\n this.yesButtonText = data.yesButtonText || ConfirmationModalProps.DEFAULT_YES_BTN_TEXT;\n this.noButtonText = data.noButtonText || ConfirmationModalProps.DEFAULT_NO_BTN_TEXT;\n }\n}\n","<div class=\"dialog-window\">\n <div fxLayout=\"row\" class=\"dialog-head\" fxLayoutAlign=\"start center\">\n <span fxFlex class=\"pt-2\" mat-dialog-title>{{ header }}</span>\n <span class=\"mr-3\"><mat-icon (click)=\"closeDialog()\" class=\"close-icon cursor-pointer\">close</mat-icon></span>\n </div>\n <div class=\"dialog-content\" mat-dialog-content>\n {{ body }}\n </div>\n <div fxLayout=\"row\" class=\"dialog-action\" fxLayoutAlign=\"end end\">\n <button mat-flat-button class=\"mr-3 no-btn\" [mat-dialog-close]=\"false\">{{ noButtonText }}</button>\n <button mat-flat-button color=\"primary\" (click)=\"onClickConfirm()\">{{ yesButtonText }}</button>\n </div>\n</div>","export const VERTICAL_ORIENTATION_TABLIST_CLASSES: string = 'nav-stacked flex-column nav-pills';\n","import { Directive, HostBinding, Input, Output, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[appTab]',\n exportAs: 'tabDirective',\n})\nexport class TabDirective {\n\n @HostBinding('attr.id')\n @Input()\n public id: string;\n\n @HostBinding('attr.hidden')\n get hidden(): boolean | null {\n return this.active ? null : true;\n }\n\n @HostBinding('attr.active')\n @Input()\n get active(): boolean {\n return this._active;\n }\n\n set active(active: boolean) {\n if (!this.canChange(active)) {\n return;\n }\n\n if (!active) {\n this.deselect.emit(this);\n this._active = active;\n return;\n }\n\n this._active = active;\n this.selectTab.emit(this);\n }\n\n @Input() public heading: string;\n @Input() public disabled: boolean;\n\n @Output() public selectTab: EventEmitter<TabDirective> = new EventEmitter();\n @Output() public deselect: EventEmitter<TabDirective> = new EventEmitter();\n\n private _active: boolean;\n\n public canChange(active: boolean): boolean {\n return this._active !== active && !this.disabled;\n }\n}\n","import { Component, ChangeDetectionStrategy, QueryList, ContentChildren, ChangeDetectorRef, AfterContentInit, Input } from '@angular/core';\nimport { VERTICAL_ORIENTATION_TABLIST_CLASSES } from '../constants';\nimport { IClassMap } from '../interfaces';\nimport { TabDirective } from '../tab.directive';\n\n@Component({\n selector: 'app-tab-group',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupComponent implements AfterContentInit {\n @Input() public defaultTab: TabDirective;\n @ContentChildren(TabDirective) public tabs?: QueryList<TabDirective> = new QueryList<TabDirective>();\n\n @Input()\n set customListClasses(map: IClassMap) {\n this.classMap = {\n ...this._classMap,\n ...map,\n };\n }\n\n set activeTab(tab: TabDirective) {\n if (tab === this._activeTab || !this.tabs || !this.tabs.find(t => t === tab)) {\n return;\n }\n\n this._activeTab = tab;\n this.tabs.forEach(t => t.active = t === this._activeTab);\n this.changeDetectorRef.detectChanges();\n }\n\n get activeTab(): TabDirective {\n return this._activeTab;\n }\n\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n this._vertical = value;\n this.classMap = {\n ...this.classMap,\n [VERTICAL_ORIENTATION_TABLIST_CLASSES]: value,\n };\n }\n\n get classMap(): IClassMap {\n return this._classMap;\n }\n\n set classMap(map: IClassMap) {\n this._classMap = map;\n }\n\n get tabsHaveItem(): boolean {\n return typeof this.tabs !== 'undefined' && typeof this.tabs.first !== 'undefined';\n }\n\n private _classMap: IClassMap = {};\n private _activeTab: TabDirective;\n private _vertical = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n }\n\n public ngAfterContentInit(): void {\n if (!this.defaultTab && !this.activeTab && this.tabsHaveItem) {\n this.activeTab = this.tabs.first;\n }\n if (this.defaultTab) {\n this.activeTab = this.defaultTab;\n }\n }\n\n public onTabClick(activeTab: TabDirective): void {\n this.activeTab = activeTab;\n }\n}\n","<ul class=\"nav nav-tabs\" [ngClass]=\"classMap\" role=\"tablist\">\n <li class=\"nav-item\"\n [class.disabled]=\"tab.disabled\"\n [class.active]=\"tab.active\"\n (click)=\"onTabClick(tab)\"\n *ngFor=\"let tab of tabs\">\n <a class=\"nav-link\"\n role=\"tab\"\n [attr.aria-controls]=\"tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [class.active]=\"tab.active\">\n {{ tab.heading }}\n </a>\n </li>\n</ul>\n<div class=\"tab-content\">\n <ng-content></ng-content>\n</div>\n\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { debounceTime, map, distinctUntilChanged, switchMap } from 'rxjs/operators';\nimport { IDataTreeViewSchema, IDataTreeViewTable, ItreeConfig } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/tree-view.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport { SnackbarService } from 'idp-apps-shared-ui/modules/ui-kit/services/snackbar.service';\nimport { CommonConfirmModalComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-tree-view',\n templateUrl: './tree-view.component.html',\n styleUrls: ['./tree-view.component.scss']\n})\nexport class TreeViewComponent implements OnInit {\n @Input() public menuList: IDataTreeViewSchema[];\n @Input() public isSearchEnable: boolean;\n @Input() public isServerSideSearch: boolean;\n @Input() public isHeaderSelectionEnable: boolean = false;\n @Input() public config: ItreeConfig;\n @Input() public isExpandCollapse: boolean;\n @Input() public width: string = '30';\n @Input() public isOnlyViewPermission: boolean = false;\n @Input() public isSource: boolean = false;\n @Input() public isPKTableRequired: boolean;\n @Input() public isAllowedMultipleTable: boolean;\n @Input() public isAllowedMultiplePKColumn: boolean;\n\n @Output() public schemaClick: EventEmitter<IKeyValue> = new EventEmitter<IKeyValue>();\n @Output() public objectClick: EventEmitter<IKeyValue> = new EventEmitter<IKeyValue>();\n @Output() public serverSideSearchKeyUp: EventEmitter<IKeyValue> = new EventEmitter<IKeyValue>();\n\n public selectedTable: IDataTreeViewSchema[];\n public parsedData: IDataTreeViewSchema[];\n @ViewChild('searchInput', { static: true }) public searchInput: ElementRef;\n\n public childFlag: boolean = false;\n public isLoading: boolean = false;\n public treeViewConfig: ItreeConfig;\n private keyupSubscription: Subscription;\n\n constructor(\n private cd: ChangeDetectorRef,\n private snacbarService: SnackbarService,\n private matDialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.parsedData = this.menuList;\n this.treeViewConfig = this.config;\n this.setupSearch();\n }\n\n public detectChanges() {\n this.cd.detectChanges();\n }\n\n public selectSchema(schemaObj): void {\n if (schemaObj.tables.length === 0) {\n schemaObj.isLoading = true;\n this.schemaClick.emit({\n schemaName: schemaObj.schemaName,\n cb: (resp) => {\n schemaObj.isLoading = false;\n }\n\n });\n }\n }\n\n public selectObject(schemaName, tableObj: IDataTreeViewTable, selectChildrenOnSuccess?, $event?): void {\n this.selectedTable = this.getSelectedItems();\n if (!this.isAllowedMultipleTable && selectChildrenOnSuccess && this.isAnotherTableSelected(this.selectedTable, tableObj)) {\n this.warnTableSelected();\n return;\n }\n if (tableObj.attributes.length === 0) {\n tableObj.isLoading = true;\n this.objectClick.emit({\n schemaName: schemaName,\n objectName: tableObj.tableName,\n cb: (resp) => {\n tableObj.isLoading = false;\n\n if (resp && resp.length > 0 && selectChildrenOnSuccess) {\n this.checkEvent($event, tableObj);\n }\n }\n });\n }\n }\n\n public setupSearch(): void {\n this.keyupSubscription = fromEvent(this.searchInput.nativeElement, 'keyup')\n .pipe(\n debounceTime(500),\n map((event: unknown) => (<HTMLInputElement>(<Event>event).target).value),\n distinctUntilChanged(),\n switchMap(search => {\n return [search];\n }),\n )\n .subscribe((data: string) => {\n if(this.isServerSideSearch)\n {\n this.serverSideSearch(data);\n }\n else\n {\n this.parsedData = this.search(this.menuList, data);\n }\n this.detectChanges();\n });\n }\n\n public getSelectedItems(): any[] {\n const result = this.getSelected(this.parsedData);\n return result;\n }\n\n public getSelectedTables(tables: any[]): any[] {\n return tables.reduce((acc, item) => {\n if (item.selected && item.attributes.length > 0) {\n acc.push(item);\n }\n return acc;\n }, []);\n }\n\n public getSelected(items: any[]): any[] {\n return items.reduce((acc, item) => {\n if (item.tables.length > 0) {\n const selectedTables = this.getSelectedTables(item.tables);\n if (selectedTables.length > 0) {\n acc.push({\n schemaName: item.schemaName,\n databaseName: '',\n expandFlag: item.expandFlag,\n tables: selectedTables,\n });\n }\n }\n return acc;\n }, []);\n }\n\n public searchTable(items: any[], term: string): any[] {\n return items.reduce((acc, item) => {\n if (this.contains(item.tableName, term)) {\n acc.push(item);\n }\n return acc;\n }, []);\n }\n\n public search(items: any[], term: string): any[] {\n if (!term) {\n return items;\n }\n return items.reduce((acc, item) => {\n if (item.tables && item.tables.length > 0) {\n const newItems = this.searchTable(item.tables, term);\n if (newItems.length > 0) {\n acc.push({\n schemaName: item.schemaName,\n databaseName: '',\n expandFlag: true,\n tables: newItems\n });\n }\n }\n return acc;\n }, []);\n }\n \n public serverSideSearch(term: string): void {\n this.isLoading = true;\n this.serverSideSearchKeyUp.emit({\n searchString: term,\n cb: (resp) => {\n if(resp)\n {\n this.isLoading = false;\n }\n }\n });\n }\n\n public contains(text: string, term: string): boolean {\n return text.toLowerCase().indexOf(term.toLowerCase()) >= 0;\n }\n\n public expandAll(): void {\n this.expand(this.parsedData);\n }\n\n public someChecked(node): boolean {\n if (!node || !node.attributes || this.allChecked(node)) {\n return false;\n }\n return node.attributes.some(attr => attr.selected);\n }\n\n public allChecked(node): boolean {\n if (!node || !node.attributes || node.attributes.length < 1) {\n return false;\n }\n\n return node.attributes.every(attr => attr.selected);\n }\n\n public makeMePK(column, childNode): void {\n if (!this.isAllowedMultiplePKColumn && childNode && childNode.attributes.filter(x => x.primaryKey).length >= 1 && !column.primaryKey) {\n return;\n }\n setTimeout(() => {\n column.primaryKey = !column.primaryKey;\n if (column.isEntityUniqueKey === 'true') {\n column.isEntityUniqueKey = 'false';\n }\n this.checkAttribute({ checked: column.primaryKey }, column, childNode, true);\n }, 100);\n if (childNode.selected) {\n column.selected = true;\n }\n }\n\n public makeMePKTable(table): void {\n if (!table.selected) {\n this.snacbarService.warning(`Table is not selected.`);\n return;\n }\n if (table.isPrimaryTable) {\n table.isPrimaryTable = false;\n return;\n }\n if (this.menuList.map(x=>x.tables).map(x=> x).flatMap(x=>x).some(x=> x.isPrimaryTable)) {\n this.snacbarService.warning(`Multiple table not allowed as primary table.`);\n return;\n }\n table.isPrimaryTable = !table.isPrimaryTable;\n }\n\n public makeMeUK(column, childNode): void {\n const prevUK = childNode.attributes.find(attr => attr.isEntityUniqueKey === 'true');\n if (prevUK && prevUK.attributeName !== column.attributeName) {\n const dialogRef: MatDialogRef<CommonConfirmModalComponent> =\n this.matDialog.open(CommonConfirmModalComponent, {\n data: {\n body: 'Do you want to change unique key?',\n },\n });\n dialogRef.afterClosed()\n .subscribe(dcsn => {\n if (dcsn) {\n prevUK.isEntityUniqueKey = 'false';\n column.isEntityUniqueKey = 'true';\n }\n });\n return;\n } else {\n column.isEntityUniqueKey = column.isEntityUniqueKey === 'true' ? 'false' : 'true';\n if (column.isEntityUniqueKey === 'true') {\n this.checkAttribute({ checked: true }, column, childNode, false);\n }\n }\n }\n\n public makeHeader(column, childNode): void {\n if (!this.isHeaderAlreadyExists(childNode, column)) {\n column.isHeader = !column.isHeader;\n } else {\n this.snacbarService.warning(`Header Column is already selected.`);\n }\n }\n\n public makeSubHeader(column, childNode): void {\n if (!this.isSubHeaderAlreadyExists(childNode, column)) {\n column.isSubheader = !column.isSubheader;\n } else {\n this.snacbarService.warning(`Sub-header Column is already selected.`);\n }\n }\n\n public checkAttribute($event, node, parent, isPrimaryFunc?: boolean): void {\n this.selectedTable = this.getSelectedItems();\n if (!this.isAllowedMultipleTable && this.isAnotherTableSelected(this.selectedTable, parent)) {\n this.warnTableSelected();\n $event.source.toggle();\n return;\n }\n node.selected = $event.checked || isPrimaryFunc;\n parent.selected = this.someChecked(parent) || this.allChecked(parent) ? true : false;\n if (parent.selected) {\n this.checkNodePK(parent);\n }\n }\n\n public collapseAll(): void {\n this.collapse(this.parsedData);\n }\n\n private isHeaderAlreadyExists(childNode, columnSelected): boolean {\n let isExists = false;\n childNode.attributes.forEach(column => {\n if (column.hasOwnProperty(\"isHeader\") && column.isHeader) {\n isExists = !(columnSelected.attributeName === column.attributeName);\n }\n });\n return isExists;\n }\n\n private isSubHeaderAlreadyExists(childNode, columnSelected): boolean {\n let isExists = false;\n childNode.attributes.forEach(column => {\n if (column.hasOwnProperty(\"isSubheader\") && column.isSubheader) {\n isExists = !(columnSelected.attributeName === column.attributeName);\n }\n });\n return isExists;\n }\n\n private expand(items): void {\n for (let i = 0; i < items.length; i++) {\n items[i].expandFlag = true;\n if (items[i].tables.length > 0) {\n this.expand(items[i].tables);\n }\n }\n }\n\n private collapse(items) {\n for (let i = 0; i < items.length; i++) {\n items[i].expandFlag = false;\n if (items[i].tables.length > 0) {\n this.collapse(items[i].tables);\n }\n }\n }\n\n public checkEvent($event, node): void {\n this.selectedTable = this.getSelectedItems();\n if (this.selectedTable.length > 0 && !node.selected && !this.isAllowedMultipleTable) {\n this.unselectNodeAndChildren($event, node);\n return;\n }\n this.selectedTable = this.allChecked(node) ? this.selectedTable : [];\n\n if (!(this.selectedTable.length > 0 || node.attributes.length === 0)) {\n node.selected = $event.checked;\n node.expandFlag = true;\n for (let i = 0; i < node.attributes.length; i++) {\n node.attributes[i].selected = true;\n }\n } else {\n this.unselectNodeAndChildren($event, node);\n }\n }\n\n private unselectNodeAndChildren($event: any, node: any): void {\n $event.source.toggle();\n node.selected = false;\n for (let i = 0; i < node.attributes.length; i++) {\n node.attributes[i].selected = false;\n }\n }\n\n private warnTableSelected() {\n this.snacbarService.warning(`Table ${this.selectedTable[0].tables[0].tableName} is already selected.`);\n }\n\n private isAnotherTableSelected(selectedTable: IDataTreeViewSchema[], parent: any): boolean {\n if (selectedTable.length < 1 || selectedTable[0].tables.length < 1) {\n return false;\n }\n if (selectedTable[0].tables[0].tableName !== parent.tableName) {\n return true;\n }\n return false;\n }\n\n private checkNodePK(node: any): void {\n for (let i = 0; i < node.attributes.length; i++) {\n if (node.attributes[i].primaryKey) {\n node.attributes[i].selected = node.selected;\n }\n }\n }\n}\n","<div class=\"tree-parent-container\">\n <div class=\"search-container\" [hidden]=\"!isSearchEnable\">\n <section class=\"search\">\n <div class=\"searchbar-wrapper\">\n <img src=\"assets/images/icon/search.svg\" alt=\"search\" class=\"svg-icon\">\n <input matInput #searchInput type=\"text\" placeholder=\"Search\" name=\"search\">\n </div>\n </section>\n </div>\n\n <div [style.width.%]=\"width\" class=\"tree-container scrollbar\" id=\"style-3\">\n <fieldset [disabled]=\"isOnlyViewPermission\">\n <div class=\"force-overflow\">\n <div *ngIf=\"isExpandCollapse\" style=\"padding-left: 5%;padding-right: 5%; text-align: right;\">\n <i style=\"padding-left: 3%\" (click)=\"expandAll()\" class=\"fa fa-angle-double-down\"></i>\n <i style=\"padding-left: 3%\" (click)=\"collapseAll()\" class=\"fa fa-angle-double-up\"></i>\n </div>\n <ul class=\"sidebar-menu\" style=\"padding: 1%;\">\n <li class=\"treeview cursor-pointer\" style=\"border-top: solid 1px #dadada;\"\n *ngFor=\"let parentNode of parsedData\">\n <div class=\"schema-view\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n (click)=\"parentNode.expandFlag=!parentNode.expandFlag;selectSchema(parentNode);\">\n <span fxFlex> {{ parentNode.schemaName }}</span>\n <span class=\"ml-15\" *ngIf=\"!parentNode.isLoading\">\n <i *ngIf=\"!parentNode.expandFlag\" style=\"padding-left: 2%\" class=\"fa fa-angle-down pull-right\"></i>\n <i *ngIf=\"parentNode.expandFlag\" style=\"padding-left: 2%\" class=\"fa fa-angle-up pull-right\"></i>\n </span>\n <span class=\"ml-10\">\n <mat-spinner *ngIf=\"parentNode.isLoading\" diameter=\"18\">\n </mat-spinner>\n </span>\n </div>\n <ul [hidden]=\"!parentNode.expandFlag\" class=\"treeview-menu\">\n <li *ngFor=\"let childNode of parentNode.tables\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"schema-li\">\n <mat-checkbox [disabled]=\"childNode.disabled || childNode.isPrimaryTable\"\n (change)=\"selectObject(parentNode.schemaName,childNode, true, $event);checkEvent($event,childNode)\"\n #checkchild [checked]=\"allChecked(childNode)\" [indeterminate]=\"someChecked(childNode)\"\n color=\"primary\" style=\"padding-right: 2%; border-color:brown;\"></mat-checkbox>\n <span *ngIf=\"!childNode.isLoading\" style=\"padding-top: 3px;\">\n <i (click)=\"childNode.expandFlag=!childNode.expandFlag; selectObject(parentNode.schemaName,childNode);\"\n *ngIf=\"!childNode.expandFlag\" class=\"far fa-plus-square\" style=\"padding-right: 2%\"></i>\n <i (click)=\"childNode.expandFlag=!childNode.expandFlag; selectObject(parentNode.schemaName,childNode);\"\n *ngIf=\"childNode.expandFlag \" style=\"padding-right: 2%\" class=\"far fa-minus-square\"></i>\n </span>\n <span style=\"padding-right: 2%\">\n <mat-spinner *ngIf=\"childNode.isLoading\" diameter=\"15\">\n </mat-spinner>\n </span>\n <span style=\"padding-top: 3px;\"\n (click)=\"childNode.expandFlag=!childNode.expandFlag; selectObject(parentNode.schemaName,childNode);\"\n class=\"object-view\">{{childNode.tableName}}</span>\n <span *ngIf=\"childNode.isPrimaryTable\" class=\"pl-10\">\n <i class=\"fas fa-key pk-icon\"></i>\n </span>\n\n\n <span fxFlex></span>\n <!-- modify start -->\n <span *ngIf=\"!childNode.hideAction && isPKTableRequired\">\n <button class=\"dots-btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"action menu\"\n (menuOpened)=\"childNode.isMenuOpen = true\" (menuClosed)=\"childNode.isMenuOpen = false\">\n <mat-icon class=\"dots\">more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button (click)=\"makeMePKTable(childNode)\" mat-menu-item>\n <span><i class=\"fas fa-key pk-icon\"></i> Primary Table</span>\n </button>\n </mat-menu>\n </span>\n <!-- modify end -->\n </div>\n <div [hidden]=\"!(childNode.expandFlag)\">\n <ul [hidden]=\"!childNode.expandFlag\" class=\"treeview-menu\">\n <li *ngFor=\"let grandChildNode of childNode.attributes\" style=\"padding-left: 6%; padding-top: 3px;\"\n [ngStyle]=\"{'background-color': grandChildNode.isMenuOpen ? '#ECF3FF' : ''}\"\n (mouseenter)=\"grandChildNode.actionVisible = true\"\n (mouseleave)=\"grandChildNode.actionVisible = false\">\n <mat-checkbox (change)=\"checkAttribute($event, grandChildNode, childNode)\"\n [disabled]=\"grandChildNode.primaryKey || grandChildNode.disabled\" #checkgrandchild\n [checked]=\"grandChildNode.selected || grandChildNode.primaryKey || grandChildNode.disabled\"\n color=\"primary\" style=\"margin-right: 10px;height: 16px;width: 16px; \">\n </mat-checkbox>\n <span\n [ngClass]=\"{'attribute-select': grandChildNode.selected, 'attribute-view': !grandChildNode.selected }\"\n (click)=\"grandChildNode.expandFlag=!grandChildNode.expandFlag\">\n {{grandChildNode.displayName}}\n </span>\n <span *ngIf=\"grandChildNode.primaryKey\" class=\"pl-10\">\n <i class=\"fas fa-key pk-icon\"\n [ngClass]=\"{'uk-icon': grandChildNode.isEntityUniqueKey === 'true'}\"></i>\n </span>\n <span *ngIf=\"grandChildNode.isHeader && isHeaderSelectionEnable\" class=\"pl-10\"><i\n class=\"fas fa-h1 pk-icon\"></i></span>\n <span *ngIf=\"grandChildNode.isSubheader && isHeaderSelectionEnable\" class=\"pl-10\"><i\n class=\"fas fa-h2 pk-icon\"></i></span>\n <span fxFlex></span>\n <button *ngIf=\"isHeaderSelectionEnable || !grandChildNode.hideAction\"\n [hidden]=\"!grandChildNode.actionVisible && !grandChildNode.isMenuOpen\" class=\"dots-btn\"\n mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"action menu\"\n (menuOpened)=\"grandChildNode.isMenuOpen = true\"\n (menuClosed)=\"grandChildNode.isMenuOpen = false\">\n <mat-icon class=\"dots\">more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button *ngIf=\"!grandChildNode.hideAction\" (click)=\"makeMePK(grandChildNode, childNode);\"\n mat-menu-item>\n <span><i class=\"fas fa-key pk-icon\"></i> Primary Key</span>\n </button>\n <button\n *ngIf=\"!grandChildNode.hideAction && grandChildNode.primaryKey && treeViewConfig?.showisEntityUniqueKey\"\n (click)=\"makeMeUK(grandChildNode, childNode)\" mat-menu-item>\n <span><i class=\"fas fa-key uk-icon\"></i> Entity Unique Key</span>\n </button>\n <button *ngIf=\"isHeaderSelectionEnable\" (click)=\"makeHeader(grandChildNode, childNode)\"\n mat-menu-item>\n <span><i class=\"fas fa-h1 pk-icon\"></i> Set As Header</span>\n </button>\n <button *ngIf=\"isHeaderSelectionEnable\" (click)=\"makeSubHeader(grandChildNode, childNode)\"\n mat-menu-item>\n <span><i class=\"fas fa-h2 pk-icon\"></i> Set As Sub-header</span>\n </button>\n </mat-menu>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </fieldset>\n </div>\n</div>\n<ng-template #smallLoading>\n <mat-spinner diameter=\"20\">\n </mat-spinner>\n</ng-template>","import { PipeTransform, Pipe } from '@angular/core';\n\n@Pipe({ name: 'keys' })\nexport class KeysPipe implements PipeTransform {\n transform(value: object): string[] {\n if (!value || typeof value !== 'object') {\n return [];\n }\n return Object.keys(value);\n }\n}\n","import { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { RouterModule } from '@angular/router';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\nimport { MatCdkModule } from 'idp-apps-shared-ui/modules/material/mat-cdk-module';\nimport { MatActionsButtonComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/mat-actions-button/mat-actions-button';\nimport { AuthorizedDirective } from '../../core/directive/authorize.directive';\nimport { SupportUtilService } from '../../core/site/services/support-util.service';\nimport { MaterialModule } from '../../modules/material/material.module';\nimport { ConfirmModalComponent } from '../../modules/ui-kit/components/modals/confirm-modal/confirm-modal.component';\nimport { AccordionContentComponent } from './components/accordion/accordion-content/accordion-content.component';\nimport { AccordionTriggerDirective } from './components/accordion/accordion-trigger.directive';\nimport { AccordionDirective } from './components/accordion/accordion.directive';\nimport { BannerComponent } from './components/banner/banner.component';\nimport { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\nimport { BreadCrumbService } from './components/breadcrumbs/service/breadcrumb.service';\nimport { ButtonControlComponent } from './components/buttons/button-control/button-control.component';\nimport { ButtonsListComponent } from './components/buttons/buttons-list/buttons-list.component';\nimport { CardContainerComponent } from './components/card-container/card-container.component';\nimport { CommonBreadcrumbsComponent } from './components/common-breadcrumbs/common-breadcrumbs.component';\nimport { DataPaginationComponent } from './components/data-pagination/data-pagination.component';\nimport { DataTableWrapComponent } from './components/data-table-wrap/data-table-wrap.component';\nimport { DataColDispComponent } from './components/data-table/data-col-disp/data-col-disp.component';\nimport { DataColFilterComponent } from './components/data-table/data-col-filter/data-col-filter.component';\nimport { BaseDataColComponent } from './components/data-table/data-col/base-data-col/base-data-col.component';\nimport { DataColActionButtonComponent } from './components/data-table/data-col/data-col-action-button/data-col-action-button.component';\nimport { DataColBooleanComponent } from './components/data-table/data-col/data-col-boolean/data-col-boolean.component';\nimport { DataColMultivalueComponent } from './components/data-table/data-col/data-col-multivalue/data-col-multivalue.component';\nimport { DataColNestedComponent } from './components/data-table/data-col/data-col-nested/data-col-nested.component';\nimport { DataColReferenceComponent } from './components/data-table/data-col/data-col-reference/data-col-reference.component';\nimport { DataColViewComponent } from './components/data-table/data-col/data-col-view/data-col-view.component';\nimport { DataColComponent } from './components/data-table/data-col/data-col/data-col.component';\nimport { DataColumnFilterComponent } from './components/data-table/data-column-filter/data-column-filter.component';\nimport { DataRowComponent } from './components/data-table/data-row/data-row.component';\nimport { DataTableActionsComponent } from './components/data-table/data-table-actions/data-table-actions.component';\nimport { DataTableBodyComponent } from './components/data-table/data-table-body/data-table-body.component';\nimport { DataTableCheckRowsComponent } from './components/data-table/data-table-check-rows/data-table-check-rows.component';\nimport { DataTableRowActionsComponent } from './components/data-table/data-table-row-actions/data-table-row-actions.component';\nimport { DataTableComponent } from './components/data-table/data-table/data-table.component';\nimport { HeaderRowComponent } from './components/data-table/header-row/header-row.component';\nimport { ExcelTableComponent } from './components/excel-table/excel-table.component';\nimport { BaseFormControlComponent } from './components/form/base-form-control/base-form-control.component';\nimport { CheckboxFormControlComponent } from './components/form/checkbox-form-control/checkbox-form-control.component';\nimport { CounterFormControlComponent } from './components/form/counter-form-control/counter-form-control.component';\nimport { FormContainerComponent } from './components/form/form-container/form-container.component';\nimport { FormGroupContainerComponent } from './components/form/form-group-container/form-group-container.component';\nimport { InputFormControlComponent } from './components/form/input-form-control/input-form-control.component';\nimport { CustomInputComponent } from './components/form/multivalue-form-control/custom-input/custom-input.component';\nimport { MultivalueFormControlComponent } from './components/form/multivalue-form-control/multivalue-form-control.component';\nimport { RadioFormControlComponent } from './components/form/radio-form-control/radio-form-control.component';\nimport { SelectFormControlComponent } from './components/form/select-form-control/select-form-control.component';\nimport { SelectionGroupContainerComponent } from './components/form/selection-group-container/selection-group-container.component';\nimport { TextareaFormControlComponent } from './components/form/textarea-form-control/textarea-form-control.component';\nimport { ExpandCollapseIconComponent } from './components/icon/expand-collapse-icon/expand-collapse-icon.component';\nimport { IconComponent } from './components/icon/icon/icon.component';\nimport { TextIconComponent } from './components/icon/text-icon/text-icon.component';\nimport { FormLayoutComponent } from './components/layouts/form-layout/form-layout.component';\nimport { PrimaryLayoutComponent } from './components/layouts/primary-layout/primary-layout.component';\nimport { LoaderComponent } from './components/loader/loader.component';\nimport { CommonConfirmModalComponent } from './components/modals/common-confirm-modal/common-confirm-modal.component';\nimport { DeleteModalComponent } from './components/modals/delete-modal/delete-modal.component';\nimport { SnackbarComponent } from './components/snackbar/snackbar.component';\nimport { TabGroupComponent } from './components/tabs/tab-group/tab-group.component';\nimport { TabDirective } from './components/tabs/tab.directive';\nimport { TreeViewComponent } from './components/tree-view/tree-view.component';\nimport { ColumnFilterPipe } from './pipes/column-filter.pipe';\nimport { FilterByPropPipe } from './pipes/filter-by-prop.pipe';\nimport { FirstLetterTextPipe } from './pipes/first-letter-text.pipe';\nimport { KeysPipe } from './pipes/keys.pipe';\nimport { PaginatePipe } from './pipes/paginate.pipe';\nimport { SearchPipe } from './pipes/search.pipe';\nimport { FormService } from './services/form.service';\nimport { UrlService } from './services/url.service';\nimport { CircleButtonComponent } from 'idp-apps-shared-ui/modules/ui-kit/components/buttons/circle-button/circle-button.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n providers: [\n FormService,\n UrlService,\n BreadCrumbService,\n SupportUtilService,\n SearchPipe,\n ColumnFilterPipe,\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n ],\n //schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n PrimaryLayoutComponent,\n DataTableComponent,\n DataPaginationComponent,\n DeleteModalComponent,\n ConfirmModalComponent,\n CommonConfirmModalComponent,\n LoaderComponent,\n FormContainerComponent,\n InputFormControlComponent,\n BaseFormControlComponent,\n TextareaFormControlComponent,\n SelectFormControlComponent,\n CheckboxFormControlComponent,\n RadioFormControlComponent,\n SelectionGroupContainerComponent,\n FormGroupContainerComponent,\n ButtonControlComponent,\n ButtonsListComponent,\n DataTableRowActionsComponent,\n DataTableActionsComponent,\n IconComponent,\n TextIconComponent,\n CardContainerComponent,\n FormLayoutComponent,\n DataRowComponent,\n DataColComponent,\n HeaderRowComponent,\n DataColBooleanComponent,\n DataColReferenceComponent,\n TabGroupComponent,\n DataColNestedComponent,\n DataTableBodyComponent,\n ExpandCollapseIconComponent,\n DataColViewComponent,\n BaseDataColComponent,\n DataColDispComponent,\n DataColActionButtonComponent,\n AccordionContentComponent,\n AccordionTriggerDirective,\n AccordionDirective,\n KeysPipe,\n TabDirective,\n KeysPipe,\n BreadcrumbsComponent,\n DataColMultivalueComponent,\n MultivalueFormControlComponent,\n CustomInputComponent,\n DataTableCheckRowsComponent,\n SearchPipe,\n FilterByPropPipe,\n ColumnFilterPipe,\n PaginatePipe,\n FirstLetterTextPipe,\n CounterFormControlComponent,\n DataColFilterComponent,\n CommonBreadcrumbsComponent,\n SnackbarComponent,\n DataTableWrapComponent,\n DataColumnFilterComponent,\n ExcelTableComponent,\n AuthorizedDirective,\n TreeViewComponent,\n BannerComponent,\n ConfirmModalComponent,\n MatActionsButtonComponent,\n CircleButtonComponent,\n ],\n imports: [\n CommonModule,\n MaterialModule,\n FormsModule,\n ReactiveFormsModule,\n NgSelectModule,\n RouterModule,\n NgxSliderModule,\n FlexLayoutModule,\n NgbPopoverModule\n ],\n exports: [\n PrimaryLayoutComponent,\n DataTableComponent,\n DataPaginationComponent,\n DeleteModalComponent,\n ConfirmModalComponent,\n LoaderComponent,\n FormContainerComponent,\n InputFormControlComponent,\n BaseFormControlComponent,\n TextareaFormControlComponent,\n SelectFormControlComponent,\n CheckboxFormControlComponent,\n RadioFormControlComponent,\n SelectionGroupContainerComponent,\n FormGroupContainerComponent,\n ButtonControlComponent,\n ButtonsListComponent,\n IconComponent,\n TextIconComponent,\n CardContainerComponent,\n ExpandCollapseIconComponent,\n FormLayoutComponent,\n AccordionContentComponent,\n AccordionDirective,\n AccordionTriggerDirective,\n DataColDispComponent,\n TabGroupComponent,\n KeysPipe,\n TabDirective,\n BreadcrumbsComponent,\n SearchPipe,\n FilterByPropPipe,\n ColumnFilterPipe,\n PaginatePipe,\n FirstLetterTextPipe,\n CounterFormControlComponent,\n MaterialModule,\n MatCdkModule,\n CommonBreadcrumbsComponent,\n NgSelectModule,\n DataTableWrapComponent,\n ExcelTableComponent,\n AuthorizedDirective,\n DataColFilterComponent,\n TreeViewComponent,\n BannerComponent,\n MatActionsButtonComponent,\n CircleButtonComponent,\n ],\n})\nexport class UiKitModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MaterialModule } from '../../modules/material/material.module';\nimport { DynamicCardComponent } from './dynamic-card/dynamic-card/dynamic-card.component';\nimport { FlipCardDirective } from './directives/flip-card.directive';\nimport { DynamicCardBackComponent } from './dynamic-card/dynamic-card-back/dynamic-card-back.component';\nimport { DynamicCardFrontComponent } from './dynamic-card/dynamic-card-front/dynamic-card-front.component';\nimport { DynamicCardFooterComponent } from './dynamic-card/dynamic-card-footer/dynamic-card-footer.component';\nimport { CardListContainerComponent } from './dynamic-card/card-list-container/card-list-container.component';\nimport { SearchPipe } from '../../shared-pipes/pipes/search.pipe';\nimport { UiKitModule } from '../ui-kit/ui-kit.module';\n\n@NgModule({\n declarations: [\n CardListContainerComponent,\n DynamicCardComponent,\n FlipCardDirective,\n DynamicCardFrontComponent,\n DynamicCardBackComponent,\n DynamicCardFooterComponent,\n SearchPipe,\n ],\n imports: [\n CommonModule,\n RouterModule,\n MaterialModule,\n FormsModule,\n UiKitModule,\n ],\n exports: [\n CardListContainerComponent,\n DynamicCardComponent,\n ],\n})\nexport class DynamicCardsModule { }\n","export enum MatcherTypes {\n DISABLED = 'disabled',\n ENABLED = 'enabled',\n HIDDEN = 'hidden',\n VISIBLE = 'visible',\n REQUIRED = 'required',\n OPTIONAL = 'optional',\n}\n","import { InjectionToken } from '@angular/core';\nimport { DynamicFormControlMatcher } from '../interfaces/matchers/form-control-matcher.interface';\n\nexport const DYNAMIC_MATCHERS = new InjectionToken<DynamicFormControlMatcher>('DYNAMIC_MATCHERS');\n","import { StaticProvider } from '@angular/core';\nimport { MatcherTypes } from '../../enums/matcher-types.enum';\nimport { DynamicFormControlMatcher } from '../../interfaces/matchers/form-control-matcher.interface';\nimport { DynamicFormControlModel } from '../../models/form-control/dynamic-form-control.model';\nimport { DYNAMIC_MATCHERS } from '../../tokens/dynamic-matchers.token';\n\nexport const disabledMatcher: DynamicFormControlMatcher = {\n match: MatcherTypes.DISABLED,\n opposingMatch: MatcherTypes.ENABLED,\n onChange(hasMatch: boolean, model: DynamicFormControlModel): void {\n model.disabledUpdates$.next(hasMatch);\n },\n};\n\nexport const hiddenMatcher: DynamicFormControlMatcher = {\n\n match: MatcherTypes.HIDDEN,\n opposingMatch: MatcherTypes.VISIBLE,\n onChange(hasMatch: boolean, model: DynamicFormControlModel): void {\n model.hidden = hasMatch;\n },\n};\n\nexport const DISABLED_MATCHER: StaticProvider = {\n provide: DYNAMIC_MATCHERS,\n useValue: disabledMatcher,\n multi: true,\n};\n\nexport const HIDDEN_MATCHER: StaticProvider = {\n provide: DYNAMIC_MATCHERS,\n useValue: hiddenMatcher,\n multi: true,\n};\n","import { Directive, ElementRef, Input, Renderer2, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[appDynamicId]',\n})\nexport class DynamicIdDirective implements AfterViewInit {\n\n @Input() public appDynamicId: string | boolean;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {\n }\n\n public ngAfterViewInit(): void {\n\n if (this.appDynamicId) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'id', <string>this.appDynamicId);\n }\n }\n}\n","import { Directive, ElementRef, Input, Renderer2, AfterViewInit } from '@angular/core';\nimport { isString } from '../../../../core/utils/type-checks.utils';\n\n@Directive({\n selector: '[appDynamicList]',\n})\nexport class DynamicListDirective implements AfterViewInit {\n\n // tslint:disable-next-line:no-input-rename\n @Input('appDynamicList') public listId: string | null;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {\n }\n\n public ngAfterViewInit(): void {\n\n if (isString(this.listId)) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'list', <string>this.listId);\n }\n }\n}\n","export enum TemplateDirectiveAlignment {\n Start = 'START',\n End = 'END',\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { TemplateDirectiveAlignment } from '../enums/template-directive-alignment';\n\n@Directive({\n selector: 'ng-template[appModelId],ng-template[appModelType]',\n})\nexport class DynamicTemplateDirective {\n\n @Input() public align: string = TemplateDirectiveAlignment.End;\n @Input() public as: string | null = null;\n @Input() public index?: number;\n @Input() public appModelId: string;\n @Input() public appModelType: string;\n\n constructor(public templateRef: TemplateRef<any>) {\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DynamicFormModel } from '../../interfaces/dynamic-form/dynamic-form-model.interface';\nimport { DynamicFormControlModel } from '../../models/form-control/dynamic-form-control.model';\nimport { DynamicFormGroupModel } from '../../models/form-group/dynamic-form-group.model';\n\n@Pipe({\n name: 'findDynamicControlModel',\n})\nexport class FindDynamicControlModelPipe implements PipeTransform {\n /**\n * Takes DynamicFormModel and string path, returns founded layoutControl, matched by path\n * @param model: Dynamic form model\n * @param path: string, divided by dots, where every piece is an id of DynamicFormControlModel layoutControl\n * @example path like 'group.subgroup.propName' will return layoutControl in FormGroupModel with id='group' ->\n * FormGroupModel with id='subgroup' -> FormControlModel with id='propName'\n * @return DynamicFormControlModel.\n */\n public transform(model: DynamicFormModel, path: string): DynamicFormControlModel {\n const lastPathChunk = path.split('.').slice(-1)[0];\n const lastContainer = path\n .split('.')\n .slice(0, -1)\n .reduce((controls, pathChunk) => {\n const field = this.findControl(controls, pathChunk);\n return field && FindDynamicControlModelPipe.isFormGroupControl(field) ? field.group : controls;\n }, model);\n\n return this.findControl(lastContainer, lastPathChunk) || null;\n }\n\n public static isFormGroupControl(control): control is DynamicFormGroupModel {\n return !!control.group;\n }\n\n public findControl(value: DynamicFormModel, path: string): DynamicFormControlModel {\n return value.find(control => control.id === path);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isFunction, isString } from '../../../../core/utils/type-checks.utils';\nimport { IFormErrors } from '../../../../modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant';\n\n@Pipe({\n name: 'getErrorFromKeyValue',\n})\nexport class GetErrorFromKeyValuePipe implements PipeTransform {\n\n public transform(key: string, errorMap: IFormErrors, errorData: any): string {\n if (isFunction(errorMap[key])) {\n return errorMap[key](errorData);\n }\n\n return isString(errorData) ? errorData : '';\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DISABLED_MATCHER, HIDDEN_MATCHER } from './constants/matchers/matchers.constant';\nimport { DynamicIdDirective } from './directives/dynamic-id.directive';\nimport { DynamicListDirective } from './directives/dynamic-list.directive';\nimport { DynamicTemplateDirective } from './directives/dynamic-template.directive';\nimport { FindDynamicControlModelPipe } from './pipes/find-dynamic-control-model/find-dynamic-control-model.pipe';\nimport { GetErrorFromKeyValuePipe } from './pipes/get-error-from-key-value.pipe';\n\nconst shared = [\n FindDynamicControlModelPipe,\n DynamicTemplateDirective,\n DynamicListDirective,\n];\n\n@NgModule({\n declarations: [\n ...shared,\n DynamicIdDirective,\n GetErrorFromKeyValuePipe,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n ...shared,\n GetErrorFromKeyValuePipe,\n ],\n providers: [\n DISABLED_MATCHER,\n HIDDEN_MATCHER,\n ],\n})\nexport class DynamicFormCoreModule {\n}\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appRemoveCancelButton]',\n})\nexport class RemoveCancelButtonDirective implements OnInit {\n\n @Input() public isCancelRemoved: boolean;\n\n constructor(\n private elementRef: ElementRef,\n ) { }\n\n public ngOnInit(): void {\n if (this.isCancelRemoved) {\n this.elementRef.nativeElement.style.display = 'none';\n }\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { DynamicFormControlModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model';\n\n@Component({\n selector: 'app-dynamic-form-control-label',\n templateUrl: './dynamic-form-control-label.component.html',\n styleUrls: ['./dynamic-form-control-label.component.scss'],\n})\nexport class DynamicFormControlLabelComponent {\n\n @Input() public model: DynamicFormControlModel;\n}\n","<label\n *ngIf=\"model\"\n [attr.for]=\"model.id\" class=\"form-label\">\n {{ model.label }}\n</label>\n","export enum FormFieldCssClass {\n INPUT = 'apollo-text-field',\n COUNTER = 'apollo-text-field',\n TEXTAREA = 'apollo-text-area-field',\n SELECT = 'apollo-select',\n DATEPICKER = 'apollo-date-picker',\n}\n","import {\n Component,\n Input,\n OnInit,\n ContentChild,\n ViewChild,\n Optional,\n Inject,\n ChangeDetectionStrategy,\n OnDestroy,\n ChangeDetectorRef, OnChanges, SimpleChanges, ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroup, ValidationErrors, AbstractControl, FormControl } from '@angular/forms';\nimport { MatFormFieldControl, MatFormField } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { DynamicFormFieldMatcher }\n from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher';\nimport { FormValueControlModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport {\n IFormErrors,\n FORM_CONTROL_ERRORS_TOKEN,\n} from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant';\nimport { DynamicFormControlModel }\n from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model';\nimport { DynamicOptionControlModel }\n from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport { Subject, merge } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { FormFieldCssClass } from '../../enums/form-field-css-class.enum';\n\n@Component({\n selector: 'app-dynamic-form-field-control',\n templateUrl: './dynamic-form-field-control.component.html',\n styleUrls: ['./dynamic-form-field-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormFieldControlComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() public model: FormValueControlModel<any>;\n @Input() public group: FormGroup;\n\n @ViewChild(MatFormField, { static: true}) public matFormField: MatFormField;\n @ContentChild(MatFormFieldControl, { static: true}) public formFieldControl: MatFormFieldControl<any>;\n\n public isErrorShowed: boolean = false;\n\n public readonly CONTROL_ERRORS = this.controlErrors;\n public readonly LOADING_FAILED_MESSAGE = 'Cannot load data';\n\n private formFieldCssClass = FormFieldCssClass;\n\n private clearSubs$ = new Subject();\n\n constructor(\n @Optional() @Inject(FORM_CONTROL_ERRORS_TOKEN) private controlErrors: IFormErrors,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n }\n\n get control(): FormControl {\n return <FormControl>this.group.controls[this.model.id];\n }\n\n get errors(): ValidationErrors {\n return this.control.errors;\n }\n\n get firstError(): IKeyValue {\n const [ firstErrorName ] = Object.keys(this.errors);\n\n return {\n key: firstErrorName,\n value: this.errors[firstErrorName],\n };\n }\n\n public ngOnInit(): void {\n this.matFormField._control = this.formFieldControl;\n\n merge(\n this.control.statusChanges.pipe(distinctUntilChanged()),\n this.model.detectChanges$,\n ).pipe(takeUntil(this.clearSubs$))\n .subscribe(this.changeDetectorRef.markForCheck.bind(this.changeDetectorRef));\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const modelChange = changes.model;\n\n if (modelChange && this.isOptionsModel(this.model)) {\n this.setErrorValueSubscription(this.model);\n }\n }\n\n public setErrorValueSubscription(optionsModel: DynamicOptionControlModel<any>): void {\n if (this.matFormField) {\n (<MatSelect>this.formFieldControl).errorStateMatcher = new DynamicFormFieldMatcher(this);\n optionsModel\n .optionsLoadingError$\n .pipe(takeUntil(this.clearSubs$))\n .subscribe(() => { this.isErrorShowed = true; });\n }\n }\n\n public isOptionsModel(model: DynamicFormControlModel): model is DynamicOptionControlModel<any> {\n return model instanceof DynamicOptionControlModel;\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n }\n\n public getClassByFieldType(): string {\n if (this.model.type) {\n return `\n ${this.formFieldCssClass[this.model.type]} \n ${this.model.getAdditional('cssClass', '')}\n ${this.errors && this.control.touched ? 'mat-error-border' : ''}\n `;\n }\n return this.model.getAdditional('cssClass', '');\n }\n}\n","<mat-form-field\n class=\"field-margin\"\n [ngClass]=\"getClassByFieldType()\"\n appearance=\"fill\"\n [color]=\"model.getAdditional('color', 'primary')\"\n [floatLabel]=\"model.getAdditional('floatLabel', 'always')\"\n [formGroup]=\"group\"\n [hideRequiredMarker]=\"model.getAdditional('hideRequiredMarker', false)\"\n>\n <ng-container ngProjectAs=\"mat-label\">\n <mat-label class=\"apollo-mat-label\">{{ model.label }}</mat-label>\n </ng-container>\n <ng-content></ng-content>\n\n <ng-container ngProjectAs=\"mat-error\" *ngIf=\"isOptionsModel(model)\">\n\n <mat-error *ngIf=\"($any(model).optionsLoadingError$ | async) as error\">\n {{ LOADING_FAILED_MESSAGE }}\n </mat-error>\n\n </ng-container>\n\n <mat-error class=\"error-text\" *ngIf=\"errors\">\n {{ firstError.key | getErrorFromKeyValue: CONTROL_ERRORS: firstError.value }}\n </mat-error>\n</mat-form-field>\n","import { Component, Injectable, Input } from '@angular/core';\nimport { DynamicNumberControlTypes }\n from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model';\nimport { DynamicFormControlComponent, DynamicCounterModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\n\n@Component({\n selector: 'app-dynamic-form-counter-control',\n templateUrl: './dynamic-form-counter-control.component.html',\n styleUrls: ['./dynamic-form-counter-control.component.scss'],\n})\n@Injectable()\nexport class DynamicFormCounterControlComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicCounterModel;\n\n get isInteger(): boolean {\n return this.model.numberType === DynamicNumberControlTypes.INTEGER;\n }\n\n public onKeyPress(event: KeyboardEvent): void {\n\n if (this.isInteger && !event.key.match(/^[0-9]*$/)) {\n event.preventDefault();\n }\n\n }\n\n public onInput(): void {\n\n if (this.isGreaterThanMax()) {\n this.control.setValue(this.model.max);\n }\n\n if (this.isLessThanMin()) {\n this.control.setValue(this.model.min);\n }\n }\n\n public isGreaterThanMax(): boolean {\n return this.control.value > this.model.max;\n }\n\n public isLessThanMin(): boolean {\n return this.control.value < this.model.min;\n }\n}\n","<app-dynamic-form-field-control\n [model]=\"model\"\n [group]=\"group\"\n>\n <input\n type=\"number\"\n matInput\n [formControl]=\"control\"\n [attr.hidden]=\"isHidden || null\"\n [max]=\"model.max\"\n [min]=\"model.min\"\n [autocomplete]=\"model.autoComplete\"\n (input)=\"onInput()\"\n (keypress)=\"onKeyPress($event)\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n />\n</app-dynamic-form-field-control>\n","import { Component, Input, ChangeDetectionStrategy, Injectable } from '@angular/core';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules//ui-kit/interfaces/generic.interface';\nimport { DynamicFormControlComponent, DynamicDatePickerModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\n\n@Component({\n selector: 'app-dynamic-form-datepicker-control',\n templateUrl: './dynamic-form-datepicker-control.component.html',\n styleUrls: ['./dynamic-form-datepicker-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@Injectable()\nexport class DynamicFormDatepickerControlComponent extends DynamicFormControlComponent {\n @Input() public override model: DynamicDatePickerModel;\n @Input() public isMatDatepickerDisabled: boolean = false;\n @Input() public matDatepickerFilter: (date: Date) => boolean;\n\n get classMap(): IKeyValue {\n return {\n 'ng-valid': this.isValid,\n 'ng-invalid': this.isInvalid,\n 'ng-touched': this.isTouched,\n };\n }\n\n get minDate(): Date | null {\n const minValue = this.model?.min;\n if (minValue instanceof Date) {\n return minValue;\n }\n if (typeof minValue === 'string') {\n return new Date(minValue);\n }\n\n return null;\n }\n}\n","<app-dynamic-form-field-control\n [group]=\"group\"\n [model]=\"model\"\n>\n\n <div class=\"input-group d-flex align-items-center\" [ngClass]=\"classMap\">\n <input\n matInput\n class=\"input-element\"\n [min]=\"minDate\"\n [matDatepicker]=\"picker\"\n [placeholder]=\"model.placeholder\"\n [formControl]=\"control\"\n [matDatepickerFilter]=\"matDatepickerFilter\"\n >\n <mat-datepicker-toggle\n matSuffix\n [for]=\"picker\"\n class=\"datepicker-toggle\"\n ></mat-datepicker-toggle>\n <mat-datepicker\n [disabled]=\"isMatDatepickerDisabled\"\n #picker\n ></mat-datepicker>\n </div>\n</app-dynamic-form-field-control>\n","import { Component, Input, ChangeDetectionStrategy, Injectable } from '@angular/core';\nimport { DynamicFormControlComponent, DynamicInputModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\n\n@Component({\n selector: 'app-dynamic-form-input-control, [app-dynamic-form-input-control]',\n templateUrl: './dynamic-form-input-control.component.html',\n styleUrls: ['./dynamic-form-input-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@Injectable()\nexport class DynamicFormInputControlComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicInputModel;\n}\n","<app-dynamic-form-field-control\n [group]=\"group\"\n [model]=\"model\"\n>\n <input\n matInput\n [formControl]=\"control\"\n [attr.hidden]=\"isHidden || null\"\n [attr.max]=\"model.max\"\n [attr.min]=\"model.min\"\n [autocomplete]=\"model.autoComplete\"\n [autofocus]=\"model.autoFocus\"\n [id]=\"elementId\"\n [maxlength]=\"model.maxLength\"\n [minlength]=\"model.minLength\"\n [name]=\"model.name\"\n [placeholder]=\"model.placeholder\"\n [readonly]=\"model.readOnly\"\n [required]=\"model.required\"\n [spellcheck]=\"model.spellCheck\"\n [tabindex]=\"model.tabIndex\"\n [type]=\"model.inputType\"\n [value]=\"model.value\"\n (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\"\n (focus)=\"onFocus($event)\"\n />\n <div class=\"spinner-container\" *ngIf=\"control.statusChanges | async as status\">\n <mat-spinner *ngIf=\"status === 'PENDING'\"></mat-spinner>\n </div>\n</app-dynamic-form-field-control>\n","export enum RadioGroupOrientation {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n","import { Component, Injectable, Input } from '@angular/core';\nimport { DynamicFormControlComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicRadioGroupModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport { RadioGroupOrientation } from './enum/radio-group-orientation.enum';\n\n@Component({\n selector: 'app-dynamic-form-radio-group',\n templateUrl: './dynamic-form-radio-group.component.html',\n styleUrls: ['./dynamic-form-radio-group.component.scss'],\n})\n@Injectable()\nexport class DynamicFormRadioGroupComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicRadioGroupModel<string>;\n @Input() public orientation: RadioGroupOrientation = RadioGroupOrientation.Horizontal;\n\n get checkOrientationClass(): string {\n return this.orientation === RadioGroupOrientation.Vertical ? 'radio-group-vertical' : '';\n }\n\n}\n","<div class=\"label-container\" *ngIf=\"model.label\">\n <mat-label>{{ model.label }}</mat-label>\n</div>\n<mat-radio-group\n [ngClass]=\"checkOrientationClass\"\n aria-label=\"Select an option\"\n [formControl]=\"control\"\n (change)=\"onChange($event)\">\n <mat-radio-button\n *ngFor=\"let option of model.options$ | async\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n color=\"primary\"\n >\n {{ option.label }}\n </mat-radio-button>\n</mat-radio-group>\n","import { Observable, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Component, Input, ChangeDetectionStrategy, Injectable } from '@angular/core';\nimport { DynamicFormControlComponent, DynamicSelectModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\n\n@Component({\n selector: 'app-dynamic-form-select-control',\n templateUrl: './dynamic-form-select-control.component.html',\n styleUrls: ['./dynamic-form-select-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@Injectable()\nexport class DynamicFormSelectControlComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicSelectModel<any>;\n\n get isLoading$(): Observable<boolean> {\n return combineLatest(this.model.options$, this.model.optionsLoadingError$)\n .pipe(map(([options, optionsError]) => !(options || optionsError)));\n }\n}\n","<app-dynamic-form-field-control\n [group]=\"group\"\n [model]=\"model\"\n>\n\n <mat-select #matSelect\n [disableOptionCentering]=\"model.getAdditional('disableOptionCentering', false)\"\n [disableRipple]=\"model.getAdditional('disableRipple', false)\"\n [formControl]=\"control\"\n [id]=\"elementId\"\n [multiple]=\"model.multiple\"\n [placeholder]=\"model.placeholder\"\n [required]=\"model.required\"\n [compareWith]=\"model.compareWithFn\"\n (openedChange)=\"onCustomEvent($event, 'openedChange')\"\n (selectionChange)=\"onChange($event)\"\n >\n <mat-option *ngFor=\"let option of model.options$ | async\"\n [disabled]=\"option.disabled\"\n [value]=\"option.value\">\n <span>{{ option.label }}</span>\n </mat-option>\n </mat-select>\n \n <div class=\"spinner-container\" *ngIf=\"isLoading$ | async\">\n <mat-spinner></mat-spinner>\n </div>\n</app-dynamic-form-field-control>\n\n\n\n\n","import { Component, Injectable, Input } from '@angular/core';\nimport { DynamicFormControlComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicSwitchModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model';\n\n@Component({\n selector: 'app-dynamic-form-switch-control',\n templateUrl: './dynamic-form-switch-control.component.html',\n styleUrls: ['./dynamic-form-switch-control.component.scss'],\n})\n@Injectable()\nexport class DynamicFormSwitchControlComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicSwitchModel;\n}\n","<div>\n <label class=\"display-label\">{{ control.value ? 'Active':'Inactive' }}</label>\n</div>\n<div class=\"column-container\">\n <label class=\"switch form-control\">\n <input class=\"custom-control-input\" type=\"checkbox\"\n [formControl]=\"control\">\n <span class=\"slider round\"></span>\n\n </label>\n</div>\n\n","import {\n Component,\n Type,\n ChangeDetectionStrategy,\n Injectable,\n ApplicationRef,\n ComponentFactoryResolver,\n ElementRef,\n Injector,\n} from '@angular/core';\nimport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MatProgressSpinnerDefaultOptions } from '@angular/material/progress-spinner';\nimport { DynamicFormControlContainerComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component';\nimport { DynamicFormControlComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component';\nimport { DynamicFormComponentService } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service';\n\nconst SPINNER_DEFAULT_OPTIONS: MatProgressSpinnerDefaultOptions = {\n diameter: 20,\n};\n\n@Component({\n selector: 'app-dynamic-form-ui-control, [app-dynamic-form-ui-control]',\n templateUrl: './dynamic-form-ui-control.component.html',\n styleUrls: ['./dynamic-form-ui-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, useValue: SPINNER_DEFAULT_OPTIONS }],\n})\n@Injectable()\nexport class DynamicFormUIControlComponent extends DynamicFormControlContainerComponent {\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n injector: Injector,\n applicationRef: ApplicationRef,\n elRef: ElementRef,\n private dynamicFormComponentService: DynamicFormComponentService\n ) {\n super(componentFactoryResolver, injector, applicationRef, elRef);\n }\n\n get hidden(): boolean | null {\n return this.model.hidden || null;\n }\n\n override get componentType(): Type<DynamicFormControlComponent> | null {\n return this.dynamicFormComponentService.getCustomComponentType(this.model);\n }\n}\n","\n","import { Component, EventEmitter, HostBinding, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FormControlEvents } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum';\nimport { IDynamicFormControlEvent }\n from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface';\nimport { DynamicFormModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface';\nimport { IDynamicFormLayout } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface';\nimport { DynamicFormControlModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model';\n\n@Component({\n selector: 'app-dynamic-form-ui-control-list, [app-dynamic-form-ui-control-list]',\n templateUrl: './dynamic-form-ui-control-list.component.html',\n styleUrls: ['./dynamic-form-ui-control-list.component.scss'],\n})\nexport class DynamicFormUiControlListComponent {\n\n @Input() public formGroup: FormGroup;\n @Input() public formModel: DynamicFormModel;\n @Input() public formLayout: IDynamicFormLayout;\n @Input() public key: string;\n\n @Input() public blur: EventEmitter<IDynamicFormControlEvent>;\n @Input() public change: EventEmitter<IDynamicFormControlEvent>;\n @Input() public focus: EventEmitter<IDynamicFormControlEvent>;\n @Input() public customEvent: EventEmitter<IDynamicFormControlEvent>;\n\n @Input() public isInline: boolean = false;\n\n public readonly DEFAULT_CLASS: string = 'controls-list';\n\n public get dynamicClass(): string | null {\n return this.key ? `${ this.key }-${ this.DEFAULT_CLASS }` : null;\n }\n\n public get inlineClass(): string | null {\n return this.isInline ? 'inline-form' : null;\n }\n\n @HostBinding('class') get defaultClass(): string {\n return [this.DEFAULT_CLASS, this.dynamicClass, this.inlineClass].join(' ');\n }\n\n public trackByFn(_index: number, model: DynamicFormControlModel): string {\n return model.id;\n }\n\n public onEvent($event: IDynamicFormControlEvent, type: string): void {\n\n switch (type) {\n\n case FormControlEvents.Blur: {\n this.blur.emit($event);\n break;\n }\n\n case FormControlEvents.Change: {\n this.change.emit($event);\n break;\n }\n\n case FormControlEvents.Focus: {\n this.focus.emit($event);\n break;\n }\n\n case FormControlEvents.Custom: {\n this.customEvent.emit($event);\n break;\n }\n\n default: {\n return;\n }\n\n }\n }\n}\n","<li app-dynamic-form-ui-control\n class=\"dynamic-control dynamic-control-{{ model.id }}\"\n *ngFor=\"let model of formModel; trackBy: trackByFn\"\n [model]=\"model\"\n [layout]=\"formLayout\"\n [group]=\"formGroup\"\n [hidden]=\"model.hidden ? true : null\"\n (change)=\"onEvent($event, model.type)\"\n (blur)=\"onEvent($event, model.type)\"\n (customEvent)=\"onEvent($event, model.type)\"\n (focus)=\"onEvent($event, model.type)\"\n></li>\n","export const ALPHANUMERIC_REGEXP = '^[\\\\w]*$';\nexport const ALPHANUMERIC_WITH_SPACE_REGEXP = '^[\\\\w ]*$';\nexport const HAS_ONE_ALPHA_CHARSET_REGEXP = '^.*[a-zA-Z].*$';\nexport const MUST_BE_START_ALPHA_REGEXP = '^[a-zA-Z].*$';\nexport const MUST_BE_NOT_START_NUMBER_REGEXP = '^[^0-9].*$';\nexport const NOT_EMPTY_REGEXP = '^\\\\s*\\\\S+.*$';\nexport const NOT_ONLY_NUMBER = '^(?!^\\\\d+$)^.+$';\nexport const HAS_ONE_ALPHA_NUMERIC_CHARSET_REGEXP = '^.*[a-zA-Z0-9].*$';\nexport const ALPHANUMERIC_START_WITH_ALPHA_REGEX = '^(?!\\d)\\w+$';\n","import { InjectionToken } from '@angular/core';\nimport {\n ALPHANUMERIC_REGEXP,\n ALPHANUMERIC_WITH_SPACE_REGEXP,\n HAS_ONE_ALPHA_CHARSET_REGEXP,\n MUST_BE_NOT_START_NUMBER_REGEXP,\n MUST_BE_START_ALPHA_REGEXP, NOT_EMPTY_REGEXP, NOT_ONLY_NUMBER,\n} from '../../../../modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant';\n\nexport interface IFormErrors {\n [key: string]: (data) => string;\n}\n\nexport const defaultControlErrors: IFormErrors = {\n required: () => ``,\n pattern: ({ requiredPattern }) => {\n return getErrorByPattern(requiredPattern);\n },\n max: ({ max }) => `Value must not be greater than ${ max }`,\n min: ({ min }) => `Value must not be less than ${ min }`,\n maxlength: ({ requiredLength }) => `Value must not be greater than ${ requiredLength } characters`,\n matDatepickerMin: ({ min }: { min: Date }) => `Value must be greater than ${ min.toLocaleDateString() }`,\n};\n\nfunction getErrorByPattern(pattern: string): string {\n switch (pattern) {\n case ALPHANUMERIC_REGEXP:\n case ALPHANUMERIC_WITH_SPACE_REGEXP:\n return 'The name should be alphanumeric';\n\n case MUST_BE_START_ALPHA_REGEXP:\n case MUST_BE_NOT_START_NUMBER_REGEXP:\n return 'The name should be alphanumeric and start with a letter';\n\n case HAS_ONE_ALPHA_CHARSET_REGEXP:\n case NOT_EMPTY_REGEXP:\n case NOT_ONLY_NUMBER:\n return 'The name should contain at least one letter (a-z or A-Z)';\n\n default: {\n return 'Value does not match the pattern!';\n }\n }\n}\n\nexport const FORM_CONTROL_ERRORS_TOKEN = new InjectionToken<IFormErrors>('FORM_CONTROL_ERRORS', {\n providedIn: 'root',\n factory: () => defaultControlErrors,\n});\n","export enum ControlTypes {\n DYNAMIC_FORM_CONTROL_TYPE_INPUT = 'INPUT',\n DYNAMIC_FORM_CONTROL_TYPE_GROUP = 'GROUP',\n DYNAMIC_FORM_CONTROL_TYPE_ARRAY = 'ARRAY',\n DYNAMIC_FORM_CONTROL_TYPE_SELECT = 'SELECT',\n DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX = 'CHECKBOX',\n DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP = 'CHECKBOX_GROUP',\n DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER = 'COLORPICKER',\n DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER = 'DATEPICKER',\n DYNAMIC_FORM_CONTROL_TYPE_COUNTER = 'COUNTER',\n DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD = 'FILE_UPLOAD',\n DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP = 'RADIO_GROUP',\n DYNAMIC_FORM_CONTROL_TYPE_RATING = 'RATING',\n DYNAMIC_FORM_CONTROL_TYPE_SLIDER = 'SLIDER',\n DYNAMIC_FORM_CONTROL_TYPE_SWITCH = 'SWITCH',\n DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA = 'TEXTAREA',\n DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER = 'TIMEPICKER',\n DYNAMIC_FORM_CONTROL_TYPE_BUTTON = 'BUTTON',\n DYNAMIC_FORM_CONTROL_TYPE_NG_SELECT = 'NG_SELECT',\n}\n","export enum FormHooks {\n Change = 'change',\n Blur = 'blur',\n Submit = 'submit',\n}\n","import { AbstractControlOptions } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { isBoolean } from '../../../../../core/utils/type-checks.utils';\nimport { DynamicFormGroupModel } from '../../../../../modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model';\nimport { IDynamicFormControlLayout, DynamicFormModel } from '../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { FormHooks } from '../../enums/form-hooks.enum';\nimport { IDynamicFormControlModelConfig } from '../../interfaces/models/form-control/form-control-model-config.interface';\nimport { IDynamicFormControlRelation } from '../../interfaces/models/form-control/form-control-relation.interface';\n\nexport abstract class DynamicFormControlModel {\n\n public hidden: boolean;\n public id: string;\n public label: string | null;\n public layout: IDynamicFormControlLayout | null;\n public name: string;\n public _disabled: boolean;\n\n public relations: IDynamicFormControlRelation[];\n public controlOptions: AbstractControlOptions;\n\n public parent?: DynamicFormGroupModel;\n public groupModel?: DynamicFormModel;\n\n public disabledUpdates$: Subject<boolean>;\n public detectChanges$: Subject<undefined>;\n\n public abstract readonly type: string;\n\n protected constructor(config: IDynamicFormControlModelConfig) {\n\n this.hidden = isBoolean(config.hidden) ? config.hidden : false;\n this.id = config.id;\n this.label = config.label || null;\n this.layout = config.layout || null;\n\n this.relations = Array.isArray(config.relations) ? config.relations : [];\n this.controlOptions = config.controlOptions || { updateOn: FormHooks.Change };\n\n this.disabled = isBoolean(config.disabled) ? config.disabled : false;\n this.disabledUpdates$ = new Subject<boolean>();\n this.detectChanges$ = new Subject();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n }\n}\n","import { DynamicFormModel } from '../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { ControlTypes } from '../../enums/control-types.enum';\nimport { IDynamicFormGroupModelConfig } from '../../interfaces/models/form-group/form-group-model-config.interface';\nimport { DynamicFormControlModel } from '../form-control/dynamic-form-control.model';\n\nexport class DynamicFormGroupModel extends DynamicFormControlModel {\n\n public group: DynamicFormModel = [];\n public legend: string | null;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_GROUP;\n\n constructor(config: IDynamicFormGroupModelConfig) {\n\n super(config);\n\n this.group = Array.isArray(config.group) ? config.group : [];\n this.legend = config.legend || null;\n\n this.setLinkToChildren();\n }\n\n public setLinkToChildren(): void {\n this.group.forEach(control => control.parent = this);\n }\n\n public get(index: number): DynamicFormControlModel {\n return this.group[index];\n }\n\n public set(index: number, controlModel: DynamicFormControlModel): void {\n this.group[index] = controlModel;\n }\n\n public add(controlModel: DynamicFormControlModel): void {\n this.group.push(controlModel);\n }\n\n public insert(index: number, controlModel: DynamicFormControlModel): void {\n this.group.splice(index, 0, controlModel);\n }\n\n public move(index: number, step: number): void {\n this.group.splice(index + step, 0, ...this.group.splice(index, 1));\n }\n\n public remove(index: number): void {\n this.group.splice(index, 1);\n }\n\n public size(): number {\n return this.group.length;\n }\n}\n","import { Injectable, QueryList } from '@angular/core';\nimport { isUndefined } from '../../../../core/utils/type-checks.utils';\nimport { DynamicFormModel } from '../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicTemplateDirective } from '../directives/dynamic-template.directive';\nimport { IDynamicFormLayout } from '../interfaces/layout/form-layout.interface';\nimport { DynamicFormGroupModel } from '../models/form-group/dynamic-form-group.model';\nimport { DynamicFormLayoutControlModel } from '../models/layout/layout-control.model';\n\nexport type DynamicFormControlTemplates = QueryList<DynamicTemplateDirective> | DynamicTemplateDirective[] | undefined;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicFormLayoutService {\n\n public getGroupLayout(id: string, layout?: IDynamicFormLayout): DynamicFormLayoutControlModel | null {\n if (isUndefined(layout)) { return null; }\n\n // tslint:disable-next-line:no-unused\n return layout.reduce<DynamicFormLayoutControlModel | null>((acc, next) => {\n return next.id === id ? next : this.getGroupLayout(id, next.layout);\n }, null);\n }\n\n public getById(id: string, layout: IDynamicFormLayout): DynamicFormLayoutControlModel | undefined {\n return layout.find(l => l.id === id);\n }\n\n public getControlModels(formModel: DynamicFormModel, layoutId: string): DynamicFormModel {\n return formModel\n .filter((fm) => fm.layout.id === layoutId)\n .reduce((acc, control) => {\n control instanceof DynamicFormGroupModel ? acc.push(...control.group) : acc.push(control);\n return acc;\n }, []);\n }\n}\n","import { EventEmitter, Input, Output, Injectable, ChangeDetectorRef, Optional, Inject, Directive } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { isString } from '../../../../core/utils/type-checks.utils';\nimport { IFormErrors, FORM_CONTROL_ERRORS_TOKEN } from '../constants/form-errors.constant';\nimport { IDynamicFormControlCustomEvent } from '../interfaces/components/form-control/dynamic-form-control-event.interface';\nimport { IDynamicFormControl } from '../interfaces/components/form-control/dynamic-form-control.interface';\nimport { IDynamicFormLayout } from '../interfaces/layout/form-layout.interface';\nimport { DynamicFormControlModel } from '../models/form-control/dynamic-form-control.model';\nimport { DynamicFormLayoutService } from '../service/dynamic-form-layout.service';\n\n@Directive()\nexport class DynamicFormControlComponent implements IDynamicFormControl {\n\n @Input() public group: FormGroup;\n @Input() public layout: IDynamicFormLayout;\n\n @Input() model: DynamicFormControlModel;\n\n @Output() public blur: EventEmitter<Event> = new EventEmitter();\n @Output() public change: EventEmitter<any> = new EventEmitter();\n @Output() public focus: EventEmitter<Event> = new EventEmitter();\n @Output() public customEvent?: EventEmitter<IDynamicFormControlCustomEvent> = new EventEmitter();\n\n public readonly CONTROL_ERRORS: IFormErrors = this.controlErrors;\n\n private _model: DynamicFormControlModel;\n private _hasFocus: boolean = false;\n\n constructor(\n protected layoutService: DynamicFormLayoutService,\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(FORM_CONTROL_ERRORS_TOKEN) private controlErrors: IFormErrors,\n ) {\n }\n\n get elementId(): string {\n return this.model.id;\n }\n\n get control(): FormControl | never {\n const control = this.group.get(this.elementId);\n if (control === null) {\n throw new Error(`form group does not contain an abstract control with id ${this.model.id}`);\n }\n return <FormControl>control;\n }\n\n get errors(): ValidationErrors {\n return this.control.errors;\n }\n\n public getErrorsMessages(data?: {}): string[] {\n return this.errors\n ? Object.keys(this.errors)\n .map<string>(key => this.CONTROL_ERRORS[key] ? this.CONTROL_ERRORS[key](data) : this.errors[key])\n : [];\n }\n\n get modelFormGroup(): FormGroup {\n return <FormGroup>this.group.controls[this.elementId];\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n get isHidden(): boolean {\n return this.model.hidden;\n }\n\n get isInvalid(): boolean {\n return this.control.invalid;\n }\n\n get isValid(): boolean {\n return this.control.valid;\n }\n\n get isTouched(): boolean {\n return this.control.touched;\n }\n\n get isUntouched(): boolean {\n return this.control.touched;\n }\n\n public onBlur($event: any): void {\n\n if ($event instanceof Event) {\n $event.stopPropagation();\n }\n\n this._hasFocus = false;\n this.blur.emit($event);\n }\n\n public onChange($event: any): void {\n if ($event instanceof Event) {\n $event.stopPropagation();\n }\n\n this.change.emit($event);\n }\n\n public onCustomEvent($event: any, type: string | null = null, bypass: boolean = false): void {\n\n const emitter = <EventEmitter<IDynamicFormControlCustomEvent>>this.customEvent;\n\n if (bypass) {\n\n emitter.emit($event);\n\n } else if (isString(type)) {\n\n emitter.emit({ customEvent: $event, customEventType: type });\n }\n }\n\n public onFocus($event: any): void {\n if ($event instanceof Event) {\n $event.stopPropagation();\n }\n\n this._hasFocus = true;\n this.focus.emit($event);\n }\n\n}\n","import { Directive, Input } from '@angular/core';\nimport { FormArray } from '@angular/forms';\nimport { DynamicFormArrayModel } from '../models/form-array/dynamic-form-array.model';\nimport { DynamicFormControlComponent } from './dynamic-form-control.component';\n\n@Directive()\nexport class DynamicFormArrayComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicFormArrayModel;\n\n get array(): FormArray {\n return <any> this.control;\n }\n}\n","import { Component, Injectable } from '@angular/core';\nimport { DynamicFormArrayComponent } from '../../../dynamic-forms-core/components/dynamic-form-array.component';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-dynamic-form-ui-array',\n templateUrl: './dynamic-form-ui-array.component.html',\n styleUrls: ['./dynamic-form-ui-array.component.scss'],\n})\n\n@Injectable()\nexport class DynamicFormUIArrayComponent extends DynamicFormArrayComponent {\n\n getFormGroup(index: number): FormGroup {\n const control = this.array.at(index);\n if (!(control instanceof FormGroup)) {\n throw new Error(`Expected control at index ${index} to be a FormGroup, but got ${control.constructor.name}`);\n }\n return control as FormGroup;\n }\n}\n","<ng-container [formGroup]=\"group\">\n\n <div>\n\n <div class=\"form-array form-array-{{ elementId }}\"\n [formArrayName]=\"model.id\"\n [id]=\"elementId\">\n\n <div *ngFor=\"let groupModel of model.groups; let idx = index\" role=\"group\"\n [formGroupName]=\"idx\">\n\n <app-dynamic-form-ui-control\n *ngFor=\"let _model of groupModel.group\"\n [group]=\"getFormGroup(idx)\"\n [model]=\"_model\"\n ></app-dynamic-form-ui-control>\n\n </div>\n\n </div>\n\n </div>\n\n</ng-container>\n","export enum FormControlEvents {\n Blur = 'blur',\n Change = 'change',\n Custom = 'custom',\n Focus = 'focus',\n}\n","import { Subject } from 'rxjs';\nimport { isBoolean } from '../../../../../core/utils/type-checks.utils';\nimport { IDynamicFormValueControlModelConfig } from '../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicFormControlModel } from '../form-control/dynamic-form-control.model';\n\nexport abstract class FormValueControlModel<T> extends DynamicFormControlModel {\n\n public additional: { [key: string]: any } | null;\n public hint: string | null;\n public required: boolean;\n public tabIndex: number | null;\n public _value: T | null;\n\n public valueUpdates: Subject<T>;\n\n protected constructor(config: IDynamicFormValueControlModelConfig<T>) {\n\n super(config);\n\n this.additional = config.additional ? config.additional : null;\n this.hint = config.hint || null;\n this.required = isBoolean(config.required) ? config.required : false;\n this.tabIndex = config.tabIndex || null;\n\n this.value = config.value !== null && config.value !== undefined ? config.value : null;\n this.valueUpdates = new Subject<T>();\n this.valueUpdates.subscribe((value: T) => this.value = value);\n }\n\n set value(value: T | null) {\n this._value = value;\n }\n\n get value(): T | null {\n return this._value;\n }\n\n public getAdditional(key: string, defaultValue: any | null | undefined = undefined): any {\n return this.additional !== null && this.additional.hasOwnProperty(key) ? this.additional[key] : defaultValue;\n }\n}\n","import { IDynamicInputControlModelConfig } from '../../interfaces/models/form-input-control/form-input-control-config.interface';\nimport { FormValueControlModel } from '../form-value-control/form-value-control.model';\n\nexport class StaticControlModel<T> extends FormValueControlModel<T> {\n\n public index: number | null;\n public readonly type: string;\n\n constructor(config: IDynamicInputControlModelConfig<T>) {\n super(config);\n }\n}\n","import { EventEmitter, OnChanges, SimpleChanges, Input, Output, Injectable, ChangeDetectorRef, Directive } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FormControlEvents } from '../enums/form-control-events.enum';\nimport { IDynamicFormControlEvent } from '../interfaces/components/form-control/dynamic-form-control-event.interface';\nimport { DynamicFormModel } from '../interfaces/dynamic-form/dynamic-form-model.interface';\nimport { IDynamicFormLayout } from '../interfaces/layout/form-layout.interface';\nimport { DynamicFormControlModel } from '../models/form-control/dynamic-form-control.model';\nimport { StaticControlModel } from './../models/form-static-control/static-control.model';\n@Directive()\nexport class DynamicFormComponent implements OnChanges {\n\n @Input() public formGroupValue: FormGroup;\n @Input() public formModel: DynamicFormModel;\n @Input() public formLayout: IDynamicFormLayout;\n\n public formLayoutMap: Map<string, DynamicFormModel> = new Map();\n\n @Output() public blur: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n @Output() public change: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n @Output() public focus: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n @Output() public customEvent: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n\n public readonly DEFAULT_LAYOUT_KEY = 'default';\n\n protected constructor(\n protected changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n public trackByFn(_index: number, model: DynamicFormControlModel): string {\n return model.id;\n }\n\n public onEvent($event: IDynamicFormControlEvent, type: string): void {\n\n switch (type) {\n\n case FormControlEvents.Blur: {\n this.blur.emit($event);\n break;\n }\n\n case FormControlEvents.Change: {\n this.change.emit($event);\n break;\n }\n\n case FormControlEvents.Focus: {\n this.focus.emit($event);\n break;\n }\n\n case FormControlEvents.Custom: {\n this.customEvent.emit($event);\n break;\n }\n\n default: {\n return;\n }\n\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['formModel']) {\n\n this.formLayoutMap = this.formModel.reduce((map, control) => {\n if (control instanceof StaticControlModel) {\n return map;\n }\n\n const key = control.layout && control.layout.id || this.DEFAULT_LAYOUT_KEY;\n const cache: DynamicFormModel = map.get(key);\n\n if (cache && Array.isArray(cache)) {\n cache.push(control);\n } else {\n map.set(key, [control]);\n }\n\n return map;\n }, new Map());\n\n }\n }\n\n public get defaultControls(): DynamicFormModel {\n return this.formLayoutMap.get(this.DEFAULT_LAYOUT_KEY);\n }\n\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Type,\n Input,\n Output,\n Injector,\n Injectable,\n ApplicationRef,\n EmbeddedViewRef,\n ElementRef,\n ChangeDetectorRef,\n Directive,\n} from '@angular/core';\nimport { FormControl, FormGroup, AbstractControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ControlTypes } from '../enums/control-types.enum';\nimport { isString, isFunction } from '../../../../core/utils/type-checks.utils';\nimport { FormControlEvents } from '../enums/form-control-events.enum';\nimport {\n IDynamicFormControlCustomEvent,\n IDynamicFormControlEvent,\n} from '../interfaces/components/form-control/dynamic-form-control-event.interface';\nimport { IDynamicFormLayout } from '../interfaces/layout/form-layout.interface';\n// noinspection TypeScriptPreferShortImport\nimport { DynamicFormArrayGroupModel } from '../models/form-array/form-array-group/dynamic-form-array-group.model';\nimport { DynamicFormControlModel } from '../models/form-control/dynamic-form-control.model';\n// noinspection TypeScriptPreferShortImport\nimport { FormValueControlModel } from '../models/form-value-control/form-value-control.model';\nimport { DynamicFormControlComponent } from './dynamic-form-control.component';\n\n@Directive()\nexport class DynamicFormControlContainerComponent implements OnInit, OnDestroy {\n\n @Input() public group: FormGroup;\n @Input() public layout: IDynamicFormLayout;\n @Input() public model: DynamicFormControlModel;\n\n @Output() public blur: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n @Output() public change: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n @Output() public focus: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n @Output() public customEvent?: EventEmitter<IDynamicFormControlEvent> = new EventEmitter();\n\n public context: DynamicFormArrayGroupModel | null = null;\n public control: FormControl;\n public hasFocus: boolean;\n\n public controlContainer: ElementRef<HTMLElement> = this.elRef;\n\n protected componentRef: ComponentRef<DynamicFormControlComponent>;\n protected clearControlSubs$ = new Subject();\n\n public get componentType(): Type<DynamicFormControlComponent> | null {\n throw new Error('Component type was not provided');\n }\n\n get hasHint(): boolean {\n return isString((<FormValueControlModel<any>>this.model).hint);\n }\n\n get hint(): string | null {\n return (<FormValueControlModel<any>>this.model).hint || null;\n }\n\n get hasLabel(): boolean {\n return isString(this.model.label);\n }\n\n get isCheckbox(): boolean {\n return this.model.type === ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX;\n }\n\n get isInvalid(): boolean {\n return this.control.invalid;\n }\n\n get isValid(): boolean {\n return this.control.valid;\n }\n\n constructor(\n protected componentFactoryResolver: ComponentFactoryResolver,\n protected injector: Injector,\n protected applicationRef: ApplicationRef,\n private elRef: ElementRef,\n ) {\n }\n\n public ngOnInit(): void {\n if (this.model) {\n this.createFormControlComponent();\n this.setSubscriptions();\n }\n }\n\n public onBlur($event: FocusEvent | IDynamicFormControlEvent | any): void {\n this.hasFocus = false;\n this.blur.emit(this.createDynamicFormControlEvent($event, FormControlEvents.Blur));\n }\n\n public onFocus($event: FocusEvent | FormControlEvents | any): void {\n this.hasFocus = true;\n this.focus.emit(this.createDynamicFormControlEvent($event, FormControlEvents.Focus));\n }\n\n public onChange($event: Event | IDynamicFormControlEvent | any): void {\n this.change.emit(this.createDynamicFormControlEvent($event, FormControlEvents.Change));\n }\n\n public onCustomEvent($event: IDynamicFormControlCustomEvent): void {\n this.customEvent.emit(this.createDynamicFormControlEvent($event.customEvent, $event.customEventType));\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef && this.componentRef.instance) {\n this.destroyFormControlComponent();\n return;\n }\n this.unsubscribe();\n }\n\n public createFormControlComponent(): void {\n\n const componentType = this.componentType;\n\n if (!this.controlContainer) {\n throw new Error('You need to provide controls container element');\n }\n\n if (!componentType) {\n throw new Error('Please provide componentType to create');\n }\n\n this.componentRef = this.componentFactoryResolver\n .resolveComponentFactory(componentType)\n .create(this.injector);\n\n const instance = this.componentRef.instance;\n\n const inputs = {\n group: this.group,\n layout: this.layout,\n model: this.model,\n ...(<FormValueControlModel<{}>>this.model).additional,\n };\n\n this.setInputs(instance, inputs);\n\n this.applicationRef.attachView(this.componentRef.hostView);\n this.controlContainer.nativeElement.appendChild((<EmbeddedViewRef<any>>this.componentRef.hostView).rootNodes[0]);\n this.componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n\n public setSubscriptions(): void {\n this.subscribeOnEvents(this.componentRef.instance);\n\n if (this.group) {\n this.control = <FormControl>this.group.get(this.model.id);\n\n this.subscribeOnValueChange();\n }\n\n this.model.disabledUpdates$.pipe(\n takeUntil(this.clearControlSubs$),\n ).subscribe(value => this.onModelDisabledUpdates(value));\n\n if (this.model instanceof FormValueControlModel) {\n const model = <FormValueControlModel<any>>this.model;\n\n model.valueUpdates.pipe(\n takeUntil(this.clearControlSubs$),\n ).subscribe(value => this.onModelValueUpdates(value));\n }\n\n if (this.model.groupModel && this.model.relations.length > 0) {\n this.setRelationSubscriptions();\n }\n }\n\n public setRelationSubscriptions(): void {\n this.model.relations.forEach(relation => {\n const relatedControl: AbstractControl = this.group.controls[relation.controlId];\n const relatedControlModel: DynamicFormControlModel = this.model.groupModel\n .find(control => control.id === relation.controlId);\n\n if (!relatedControl || !relatedControlModel || !isFunction(relation.onValueChanged)) {\n return;\n }\n\n relatedControl\n .valueChanges\n .pipe(takeUntil(this.clearControlSubs$))\n .subscribe(() => relation.onValueChanged(\n relatedControlModel,\n relatedControl,\n this.model,\n this.group.controls[this.model.id],\n ),\n );\n\n });\n }\n\n public subscribeOnEvents(instance: DynamicFormControlComponent): void {\n instance.blur.pipe(takeUntil(this.clearControlSubs$)).subscribe(($event: any) => this.onBlur($event));\n instance.change.pipe(takeUntil(this.clearControlSubs$)).subscribe(($event: any) => this.onChange($event));\n instance.focus.pipe(takeUntil(this.clearControlSubs$)).subscribe(($event: any) => this.onFocus($event));\n\n if (instance.customEvent !== undefined) {\n instance.customEvent.pipe(takeUntil(this.clearControlSubs$)).subscribe(($event: any) => this.onCustomEvent($event));\n }\n }\n\n public subscribeOnValueChange(): void {\n this.control.valueChanges.pipe(\n takeUntil(this.clearControlSubs$),\n ).subscribe(value => this.onControlValueChanges(value));\n }\n\n protected setInputs(instance, inputs): void {\n Object\n .keys(inputs)\n .forEach(key => instance[key] = inputs[key]);\n }\n\n protected destroyFormControlComponent(): void {\n if (this.componentRef) {\n this.unsubscribe();\n this.applicationRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n }\n }\n\n protected createDynamicFormControlEvent($event: any, type: string): IDynamicFormControlEvent {\n return { $event, context: this.context, control: this.control, group: this.group, model: this.model, type };\n }\n\n protected unsubscribe(): void {\n this.clearControlSubs$.next(null);\n }\n\n protected onControlValueChanges(value: any): void {\n\n if (this.model instanceof FormValueControlModel) {\n\n const model = <FormValueControlModel<any>>this.model;\n\n if (model.value !== value) {\n model.valueUpdates.next(value);\n }\n }\n }\n\n protected onModelValueUpdates(value: any): void {\n\n if (this.control.value !== value) {\n this.control.setValue(value);\n }\n }\n\n protected onModelDisabledUpdates(value: boolean): void {\n value ? this.control.disable() : this.control.enable();\n }\n\n}\n","export enum InputTypes {\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR = 'color',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_HIDDEN = 'hidden',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE = 'date',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL = 'datetime-local',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL = 'email',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE = 'file',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH = 'month',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER = 'number',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD = 'password',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE = 'range',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH = 'search',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL = 'tel',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT = 'text',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME = 'time',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL = 'url',\n DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK = 'week',\n}\n","export enum AutocompleteOptions {\n On = 'on',\n Off = 'off',\n}\n","import { InputTypes } from '../../enums/input-types.enum';\nimport { isBoolean, isNumber } from '../../../../../core/utils/type-checks.utils';\nimport { AutocompleteOptions } from '../../enums/autocomplete.enum';\nimport { IDynamicInputControlModelConfig } from '../../interfaces/models/form-input-control/form-input-control-config.interface';\nimport { FormValueControlModel } from '../form-value-control/form-value-control.model';\n\nexport abstract class DynamicInputControlModel<T> extends FormValueControlModel<T> {\n\n public autoComplete: string;\n public autoFocus: boolean;\n public maxLength: number | null;\n public minLength: number | null;\n public placeholder: string;\n public prefix: string | null;\n public readOnly: boolean;\n public spellCheck: boolean;\n public suffix: string | null;\n public inputType: InputTypes;\n\n protected constructor(config: IDynamicInputControlModelConfig<T>) {\n\n super(config);\n\n this.autoComplete = config.autoComplete || AutocompleteOptions.On;\n this.autoFocus = isBoolean(config.autoFocus) ? config.autoFocus : false;\n this.maxLength = isNumber(config.maxLength) ? config.maxLength : null;\n this.minLength = isNumber(config.minLength) ? config.minLength : null;\n this.placeholder = config.placeholder || '';\n this.prefix = config.prefix || null;\n this.readOnly = isBoolean(config.readOnly) ? config.readOnly : false;\n this.spellCheck = isBoolean(config.spellCheck) ? config.spellCheck : false;\n this.suffix = config.suffix || null;\n this.inputType = config.inputType || InputTypes.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT;\n }\n}\n","import { ControlTypes } from '../../../enums/control-types.enum';\nimport { InputTypes } from '../../../enums/input-types.enum';\nimport {\n IDynamicInputModelConfig,\n UnionInputTypes,\n UnionMaxMinTypes,\n} from '../../../interfaces/models/form-ui-models/input-control-model-config.interface';\nimport { DynamicInputControlModel } from '../../form-input-control/dynamic-input-control.model';\n\nexport class DynamicInputModel extends DynamicInputControlModel<UnionInputTypes> {\n\n public override inputType: InputTypes;\n public max: UnionMaxMinTypes;\n public min: UnionMaxMinTypes;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_INPUT;\n\n constructor(config: IDynamicInputModelConfig) {\n\n super(config);\n\n this.inputType = config.inputType || InputTypes.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT;\n this.max = config.max !== undefined ? config.max : null;\n this.min = config.min !== undefined ? config.min : null;\n }\n\n}\n","import { isBoolean } from '../../../../../core/utils/type-checks.utils';\nimport { IDynamicFormOptionConfig } from '../../interfaces/models/form-option/form-option-config.interface';\n\nexport class FormOption<T> {\n\n public disabled: boolean;\n public label: string | null;\n public value: T;\n\n constructor(config: IDynamicFormOptionConfig<T>) {\n\n this.disabled = isBoolean(config.disabled) ? config.disabled : false;\n this.label = config.label || null;\n this.value = config.value;\n }\n\n public get text(): string {\n return this.label;\n }\n\n public set text(text: string | null) {\n this.label = text;\n }\n}\n","import { Observable, of, isObservable, Subject } from 'rxjs';\nimport { map, tap, shareReplay, catchError } from 'rxjs/operators';\nimport { IDynamicOptionControlModelConfig } from '../../interfaces/models/form-option-control/form-option-control-config.interface';\nimport { IDynamicFormOptionConfig } from '../../interfaces/models/form-option/form-option-config.interface';\nimport { FormOption } from '../form-option/form-option.model';\nimport { FormValueControlModel } from '../form-value-control/form-value-control.model';\n\nexport abstract class DynamicOptionControlModel<T> extends FormValueControlModel<T | T[]> {\n\n public options$: Observable<FormOption<T>[]>;\n public optionsLoadingError$: Subject<Error> = new Subject();\n\n private _options: FormOption<T>[] = [];\n\n protected constructor(config: IDynamicOptionControlModelConfig<T>) {\n\n super(config);\n\n this.options = config.options;\n }\n\n public set options(options: any) {\n\n if (Array.isArray(options)) {\n\n this._options = (<IDynamicFormOptionConfig<T>[]>options).map(optionConfig => {\n return new FormOption<T>(optionConfig);\n });\n\n this.updateOptions$();\n\n } else if (isObservable(options)) {\n\n this.options$ = (<Observable<IDynamicFormOptionConfig<T>[] | undefined>>options)\n .pipe(\n map(\n optionsConfig => optionsConfig\n .map(optionConfig => new FormOption<T>(optionConfig)),\n ),\n tap(_options => this._options = _options),\n catchError((err) => {\n console.error(err);\n this.optionsLoadingError$.next(err);\n return of<undefined>();\n }),\n shareReplay(),\n );\n }\n }\n\n public get options(): any {\n return this._options;\n }\n\n public add(optionConfig: IDynamicFormOptionConfig<T>): FormOption<T> {\n return this.insert(this.options.length, optionConfig);\n }\n\n public get(index: number): FormOption<T> {\n return this.options[index];\n }\n\n public insert(index: number, optionConfig: IDynamicFormOptionConfig<T>): FormOption<T> {\n\n const option = new FormOption(optionConfig);\n\n this.options.splice(index, 0, option);\n this.updateOptions$();\n\n return option;\n }\n\n public remove(...indices: number[]): void {\n\n indices.forEach(index => this.options.splice(index, 1));\n this.updateOptions$();\n }\n\n public abstract select(...indices: number[]): void;\n\n private updateOptions$(): void {\n this.options$ = of(this.options);\n }\n}\n","import { ControlTypes } from '../../../enums/control-types.enum';\nimport { IDynamicRadioGroupModelConfig } from '../../../interfaces/models/form-ui-models/radio-group-model-config.interface';\nimport { DynamicOptionControlModel } from '../../form-option-control/dynamic-option-control.model';\n\nexport class DynamicRadioGroupModel<T> extends DynamicOptionControlModel<T> {\n\n public legend: string | null;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP;\n\n constructor(config: IDynamicRadioGroupModelConfig<T>) {\n\n super(config);\n\n this.legend = config.legend || null;\n }\n\n public select(index: number): void {\n this.valueUpdates.next(this.get(index).value);\n }\n}\n","import { isBoolean, isFunction } from '../../../../../../core/utils/type-checks.utils';\nimport { ControlTypes } from '../../../enums/control-types.enum';\nimport { IDynamicSelectModelConfig } from '../../../interfaces/models/form-ui-models/select-control-model-config.interface';\nimport { DynamicOptionControlModel } from '../../form-option-control/dynamic-option-control.model';\n\nexport class DynamicSelectModel<T> extends DynamicOptionControlModel<T> {\n\n public filterable: boolean;\n public multiple: boolean;\n public placeholder: string;\n public compareWithFn: (o1: T, o2: T) => boolean;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_SELECT;\n\n constructor(config: IDynamicSelectModelConfig<T>) {\n\n super(config);\n \n this.compareWithFn = isFunction(config.compareWithFn) ? config.compareWithFn : (a, b) => a === b;\n this.filterable = isBoolean(config.filterable) ? config.filterable : false;\n this.multiple = isBoolean(config.multiple) ? config.multiple : false;\n this.placeholder = config.placeholder || '';\n }\n\n public select(...indices: number[]): void {\n\n const value = this.multiple ? indices.map(index => this.get(index).value) : this.get(indices[0]).value;\n\n this.valueUpdates.next(value);\n }\n}\n","import {\n DynamicDateControlValue,\n IDynamicDateControlModelConfig,\n} from '../../interfaces/models/form-date-control/date-control-model-config.interface';\nimport { FormValueControlModel } from '../form-value-control/form-value-control.model';\n\nexport abstract class DynamicDateControlModel extends FormValueControlModel<DynamicDateControlValue> {\n\n public format: string | null;\n public max: DynamicDateControlValue | null;\n public min: DynamicDateControlValue | null;\n public placeholder: string | null;\n\n protected constructor(config: IDynamicDateControlModelConfig) {\n\n super(config);\n\n this.format = config.format || null;\n this.max = config.max || null;\n this.min = config.min || null;\n this.placeholder = config.placeholder || null;\n }\n}\n","import { isBoolean, isString } from '../../../../../../core/utils/type-checks.utils';\nimport { ControlTypes } from '../../../enums/control-types.enum';\nimport { DynamicDateControlValue } from '../../../interfaces/models/form-date-control/date-control-model-config.interface';\nimport { IDynamicDatePickerModelConfig } from '../../../interfaces/models/form-ui-models/datepicker-control-model-config.interface';\nimport { DynamicDateControlModel } from '../../form-date-control/dynamic-date-control.model';\n\nexport class DynamicDatePickerModel extends DynamicDateControlModel {\n\n public autoFocus: boolean;\n public focusedDate: DynamicDateControlValue | null;\n public inline: boolean;\n public prefix: string | null;\n public readOnly: boolean;\n public suffix: string | null;\n public toggleIcon: string | null;\n public toggleLabel: string | null;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER;\n\n constructor(config: IDynamicDatePickerModelConfig) {\n\n super(config);\n\n this.autoFocus = isBoolean(config.autoFocus) ? config.autoFocus : false;\n this.focusedDate = config.focusedDate || null;\n this.inline = isBoolean(config.inline) ? config.inline : false;\n this.prefix = config.prefix || null;\n this.readOnly = isBoolean(config.readOnly) ? config.readOnly : false;\n this.toggleIcon = isString(config.toggleIcon) ? config.toggleIcon : null;\n this.toggleLabel = isString(config.toggleLabel) ? config.toggleLabel : null;\n this.suffix = config.suffix || null;\n }\n}\n","import { isBoolean } from '../../../../../core/utils/type-checks.utils';\nimport { IDynamicCheckControlModelConfig } from '../../interfaces/models/form-check-control/check-control-model-config.interface';\nimport { FormValueControlModel } from '../form-value-control/form-value-control.model';\n\nexport abstract class DynamicCheckControlModel extends FormValueControlModel<boolean> {\n\n public labelPosition: string | null;\n\n protected constructor(config: IDynamicCheckControlModelConfig) {\n\n super(config);\n\n this.labelPosition = config.labelPosition || null;\n this.value = isBoolean(this.value) ? this.value : false;\n }\n\n get checked(): boolean {\n return !!this.value;\n }\n\n set checked(checked: boolean) {\n this.valueUpdates.next(checked);\n }\n\n public toggle(): void {\n this.checked = !this.checked;\n }\n}\n","import { ControlTypes } from '../../../enums/control-types.enum';\nimport { IDynamicSwitchModelConfig } from '../../../interfaces/models/form-ui-models/switch-control-model-config.interface';\nimport { DynamicCheckControlModel } from '../../form-check-control/dynamic-check-control.model';\n\nexport class DynamicSwitchModel extends DynamicCheckControlModel {\n\n public offLabel: string | null;\n public onLabel: string | null;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_SWITCH;\n\n constructor(config: IDynamicSwitchModelConfig) {\n\n super(config);\n\n this.offLabel = config.offLabel || null;\n this.onLabel = config.onLabel || null;\n }\n}\n","import { IFormNumberControlConfig } from '../../interfaces/models/form-number-control/form-number-control-config.interface';\nimport { DynamicInputControlModel } from '../form-input-control/dynamic-input-control.model';\n\nexport enum DynamicNumberControlTypes {\n INTEGER = 'integer',\n DOUBLE = 'double',\n}\n\nexport abstract class DynamicNumberControlModel extends DynamicInputControlModel<number> {\n\n public min: number;\n public max: number;\n public numberType: DynamicNumberControlTypes;\n\n constructor(config: IFormNumberControlConfig) {\n super(config);\n\n this.min = config.min;\n this.max = config.max;\n this.numberType = config.numberType || DynamicNumberControlTypes.INTEGER;\n }\n}\n","import { InputTypes } from '../../../enums/input-types.enum';\nimport { ControlTypes } from '../../../enums/control-types.enum';\nimport { DynamicNumberControlModel } from '../../form-number-control/dynamic-number-control.model';\n\nexport class DynamicCounterModel extends DynamicNumberControlModel {\n public index: number | null;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_COUNTER;\n public override readonly inputType = InputTypes.DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER;\n}\n","import { isBoolean } from '../../../../../../core/utils/type-checks.utils';\nimport { ControlTypes } from '../../../enums/control-types.enum';\nimport { IDynamicCheckboxModelConfig } from '../../../interfaces/models/form-ui-models/checkbox-control-model-config.interface';\nimport { DynamicCheckControlModel } from '../../form-check-control/dynamic-check-control.model';\n\nexport class DynamicCheckboxModel extends DynamicCheckControlModel {\n\n public indeterminate: boolean;\n public title: string;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX;\n\n constructor(config: IDynamicCheckboxModelConfig) {\n\n super(config);\n\n this.indeterminate = isBoolean(config.indeterminate) ? config.indeterminate : false;\n\n this.title = config.title ?? config.label ?? '';\n\n }\n}\n","import { DynamicFormModel } from '../../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicFormControlModel } from '../../form-control/dynamic-form-control.model';\nimport { DynamicFormArrayModel } from '../dynamic-form-array.model';\n\nexport class DynamicFormArrayGroupModel {\n\n public $implicit: DynamicFormArrayGroupModel;\n public context: DynamicFormArrayModel;\n public group: DynamicFormModel;\n public index: number;\n\n constructor(context: DynamicFormArrayModel, group: DynamicFormModel = [], index: number = -1) {\n\n this.$implicit = this;\n this.context = context;\n this.group = group;\n this.index = index;\n }\n\n public get parent(): DynamicFormArrayModel {\n return this.context;\n }\n\n public get(index: number): DynamicFormControlModel {\n return this.group[index];\n }\n}\n","import { isNumber, isFunction } from '../../../../../core/utils/type-checks.utils';\nimport { DynamicFormModel } from '../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { ControlTypes } from '../../enums/control-types.enum';\nimport { IDynamicFormArrayModelConfig } from '../../interfaces/models/form-array/form-array-model-config.interface';\nimport { DynamicFormControlModel } from '../form-control/dynamic-form-control.model';\nimport { DynamicFormArrayGroupModel } from './form-array-group/dynamic-form-array-group.model';\n\nexport class DynamicFormArrayModel extends DynamicFormControlModel {\n\n public groups: DynamicFormArrayGroupModel[];\n public initialCount: number;\n\n public groupFactory: () => DynamicFormModel;\n\n public readonly type: string = ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_ARRAY;\n\n constructor(config: IDynamicFormArrayModelConfig) {\n\n super(config);\n\n this.initialCount = isNumber(config.initialCount) ? config.initialCount : 0;\n\n this.groups = config.groups ?\n config.groups.map(groupModel => new DynamicFormArrayGroupModel(this, groupModel))\n : [];\n\n if (isFunction(config.groupFactory)) {\n this.groupFactory = config.groupFactory;\n\n for (let index = 0; index < this.initialCount; index++) {\n this.addGroup();\n }\n }\n }\n\n get size(): number {\n return this.groups.length;\n }\n\n public get(index: number): DynamicFormArrayGroupModel {\n return this.groups[index];\n }\n\n public addGroup(): DynamicFormArrayGroupModel {\n return this.insertGroup(this.groups.length);\n }\n\n public insertGroup(index: number): DynamicFormArrayGroupModel {\n\n const group = new DynamicFormArrayGroupModel(this, this.groupFactory());\n\n this.groups.splice(index, 0, group);\n this.updateGroupIndex();\n\n return group;\n }\n\n public moveGroup(index: number, step: number): void {\n\n this.groups.splice(index + step, 0, ...this.groups.splice(index, 1));\n this.updateGroupIndex();\n }\n\n public removeGroup(index: number): void {\n\n this.groups.splice(index, 1);\n this.updateGroupIndex();\n }\n\n public clear(): void {\n this.groups.splice(0);\n this.updateGroupIndex();\n }\n\n private updateGroupIndex(): void {\n this.groups.forEach((group, index) => group.index = index);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValidatorsMap } from '../interfaces/validators/validators.interface';\n\nexport const DYNAMIC_VALIDATORS = new InjectionToken<ValidatorsMap>('DYNAMIC_VALIDATORS');\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { AsyncValidatorFn, ValidatorFn, NG_VALIDATORS, NG_ASYNC_VALIDATORS } from '@angular/forms';\nimport { ValidatorsMap } from '../interfaces/validators/validators.interface';\nimport { DYNAMIC_VALIDATORS } from '../tokens/validators.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicFormValidationService {\n\n constructor(@Optional() @Inject(NG_VALIDATORS) private validatorFns: ValidatorFn[],\n @Optional() @Inject(NG_ASYNC_VALIDATORS) private asyncValidatorFns: AsyncValidatorFn[],\n @Optional() @Inject(DYNAMIC_VALIDATORS) private dynamicValidators: ValidatorsMap) {\n }\n\n}\n","/**\n * Components\n */\n\nexport * from './components/dynamic-form-control.component';\nexport * from './components/dynamic-form-array.component';\nexport * from './components/dynamic-form-component';\nexport * from './components/dynamic-form-control-container.component';\nexport * from './components/dynamic-form-control-container.component';\n\n/**\n * Models\n */\n\nexport * from './models/form-ui-models/input/dynamic-input.model';\nexport * from './models/form-ui-models/radio/dynamic-radio-group.model';\nexport * from './models/form-ui-models/select/dynamic-select.model';\nexport * from './models/form-value-control/form-value-control.model';\nexport * from './models/form-ui-models/datepicker/dynamic-datepicker.model';\nexport * from './models/form-ui-models/switch/dynamic-switch.model';\nexport * from './models/form-ui-models/counter/dynamic-counter.model';\nexport * from './models/form-ui-models/checkbox/dynamic-checkbox.model';\nexport * from './models/form-static-control/static-control.model';\nexport * from './models/form-array/dynamic-form-array.model';\nexport * from './models/form-array/form-array-group/dynamic-form-array-group.model';\n\n/**\n * Interfaces\n */\n\nexport * from './interfaces/models/form-option/form-option-config.interface';\nexport * from './interfaces/models/form-value-control/form-value-control.interface';\nexport * from './interfaces/layout/form-control-layout.interface';\nexport * from './interfaces/dynamic-form/dynamic-form-model.interface';\n\n/**\n * Enums\n */\n\nexport * from './enums/input-types.enum';\n\n/**\n * Services\n */\n\nexport * from './service/dynamic-form-layout.service';\nexport * from './service/dynamic-form-validation.service';\n","import { EventEmitter, QueryList, TemplateRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicFormModel } from '../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicTemplateDirective } from '../directives/dynamic-template.directive';\nimport { FormControlEvents } from '../enums/form-control-events.enum';\nimport { IDynamicFormControlEvent } from '../interfaces/components/form-control/dynamic-form-control-event.interface';\nimport { IDynamicFormLayout } from '../interfaces/layout/form-layout.interface';\nimport { DynamicFormLayoutControlModel } from '../models/layout/layout-control.model';\nimport { DynamicFormLayoutService } from '../service/dynamic-form-layout.service';\nimport { DynamicFormService } from '../service/dynamic-form.service';\nimport { DynamicFormControlContainerComponent } from './dynamic-form-control-container.component';\n\nexport abstract class DynamicFormLayoutComponent {\n\n public formGroupValue: FormGroup;\n public formModel: DynamicFormModel;\n public formLayout: IDynamicFormLayout;\n public formLayoutMap: Map<string, DynamicFormModel>;\n public renderTemplate: TemplateRef<{}>;\n\n public components: QueryList<DynamicFormControlContainerComponent>;\n public templates: QueryList<DynamicTemplateDirective>;\n\n public blur: EventEmitter<IDynamicFormControlEvent>;\n public change: EventEmitter<IDynamicFormControlEvent>;\n public focus: EventEmitter<IDynamicFormControlEvent>;\n public customEvent: EventEmitter<IDynamicFormControlEvent>;\n\n protected constructor(\n protected formService: DynamicFormService,\n protected layoutService: DynamicFormLayoutService,\n ) { }\n\n public trackByFn(_index: number, model: DynamicFormLayoutControlModel): string {\n return model.id;\n }\n\n public onEvent($event: IDynamicFormControlEvent, type: string): void {\n\n switch (type) {\n\n case FormControlEvents.Blur: {\n this.blur.emit($event);\n break;\n }\n\n case FormControlEvents.Change: {\n this.change.emit($event);\n break;\n }\n\n case FormControlEvents.Focus: {\n this.focus.emit($event);\n break;\n }\n\n case FormControlEvents.Custom: {\n this.customEvent.emit($event);\n break;\n }\n\n default: {\n return;\n }\n\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControlOptions, AbstractControl, FormArray, FormGroup, FormControl } from '@angular/forms';\nimport { DynamicFormArrayGroupModel } from '../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { FormTypes } from '../../../ui-kit/enums/form-types.enum';\nimport { ControlTypes } from '../enums/control-types.enum';\nimport { DynamicFormModel, DynamicUnionFormModel } from '../interfaces/dynamic-form/dynamic-form-model.interface';\nimport { DynamicFormArrayModel } from '../models/form-array/dynamic-form-array.model';\nimport { DynamicFormControlModel } from '../models/form-control/dynamic-form-control.model';\nimport { DynamicFormGroupModel } from '../models/form-group/dynamic-form-group.model';\nimport { FormValueControlModel } from '../models/form-value-control/form-value-control.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicFormService {\n\n public getTitleByFormType(formType: string): string {\n if (formType === FormTypes.Add) {\n return 'Create';\n }\n\n if (formType === FormTypes.View) {\n return 'View';\n }\n\n if (formType === FormTypes.Edit) {\n return 'Edit';\n }\n return '';\n }\n\n public resolveFormItem(model: DynamicFormControlModel): FormArray | FormControl | FormGroup {\n switch (model.type) {\n\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_ARRAY: {\n return this.createFormArray(<DynamicFormArrayModel>model);\n }\n\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_GROUP:\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP: {\n const groupModel = <DynamicFormGroupModel>model;\n\n return this.createFormGroup(groupModel.group, groupModel.controlOptions);\n }\n\n default: {\n return this.createFormControl(<FormValueControlModel<any>>model);\n }\n }\n }\n\n public createFormArray(\n formArrayModel: DynamicFormArrayModel,\n ): FormArray {\n\n const controls: AbstractControl[] = [];\n\n for (let index = 0; index < formArrayModel.size; index++) {\n\n const groupModel = formArrayModel.get(index);\n\n controls.push(this.createFormGroup(groupModel.group));\n }\n\n const formArray = new FormArray(controls, formArrayModel.controlOptions);\n\n if (formArrayModel.disabled) {\n formArray.disable();\n }\n\n return formArray;\n }\n\n public createFormControl(\n controlModel: DynamicFormControlModel,\n ): FormControl {\n\n let controlState = { value: '', disabled: false };\n\n if (controlModel instanceof FormValueControlModel) {\n controlState = { value: controlModel.value, disabled: controlModel.disabled };\n }\n\n return new FormControl(controlState, controlModel.controlOptions);\n }\n\n public createFormGroup(formModel: DynamicFormModel, options: AbstractControlOptions | null = null): FormGroup {\n\n const controls: { [controlId: string]: AbstractControl; } = {};\n\n formModel.forEach(model => {\n model.groupModel = formModel;\n\n controls[model.id] = this.resolveFormItem(model);\n });\n\n return new FormGroup(controls, options);\n }\n\n public static findById(id: string, formModel: DynamicFormModel): DynamicFormControlModel | null {\n\n let result = null;\n const findByIdFn = (_id: string, groupModel: DynamicFormModel): void => {\n\n for (const controlModel of groupModel) {\n\n if (controlModel.id === _id) {\n result = controlModel;\n break;\n }\n\n if (controlModel instanceof DynamicFormGroupModel) {\n findByIdFn(_id, (<DynamicFormGroupModel>controlModel).group);\n }\n }\n };\n\n findByIdFn(id, formModel);\n\n return result;\n }\n\n public updateControl(\n formGroup: FormGroup,\n formModel: DynamicFormModel,\n controlId: string,\n newControlModel: DynamicFormControlModel,\n ): DynamicFormModel | null {\n\n const targetControlIdx = formModel.findIndex(c => c.id === controlId);\n\n if (targetControlIdx >= 0) {\n const startChunk = formModel.slice(0, targetControlIdx);\n const endChunk = formModel.slice(targetControlIdx, formModel.length - 1);\n\n formGroup.controls[controlId] = this.resolveFormItem(newControlModel);\n\n return startChunk.concat([newControlModel, ...endChunk]);\n }\n\n throw Error(`There's no control with id='${controlId}' in provided model`);\n }\n\n public updateFormGroup(formGroup: FormGroup, formModel: DynamicFormModel, targetFormModel: DynamicFormModel): void {\n const newControls = [];\n const oldControls = [];\n\n targetFormModel.forEach(control => {\n const actualControlModel: DynamicFormControlModel = DynamicFormService.findById(control.id, formModel);\n\n if (!actualControlModel || actualControlModel !== control) {\n newControls.push(control);\n if (actualControlModel) {\n oldControls.push(actualControlModel);\n }\n }\n\n });\n\n formModel.forEach(control => {\n const targetControlModel = DynamicFormService.findById(control.id, targetFormModel);\n\n if (!targetControlModel) {\n oldControls.push(control);\n }\n });\n\n this.removeFormControls(formGroup, formModel, ...oldControls);\n this.insertFormControls(formGroup, formModel, formModel.length, ...newControls);\n }\n\n public insertFormControls(formGroup: FormGroup, formModel: DynamicFormModel, idx: number, ...controls: DynamicFormModel): void {\n const startChunk = formModel.slice(0, idx);\n const endChunk = formModel.slice(idx, formModel.length);\n const newFormModel = startChunk.concat(...controls, ...endChunk);\n\n controls.forEach(c => formGroup.addControl(c.id, this.createFormControl(c)));\n formModel.splice(0, formModel.length);\n formModel.push(...newFormModel);\n }\n\n public removeFormControls(formGroup: FormGroup, formModel: DynamicFormModel, ...controls: DynamicFormModel): void {\n controls.forEach(controlToDelete => {\n\n const idx = formModel.findIndex(modelControl => modelControl.id === controlToDelete.id);\n\n if (idx >= 0) {\n const startChunk = formModel.slice(0, idx);\n const endChunk = formModel.slice(idx + 1, formModel.length);\n\n formModel.splice(0, formModel.length);\n formModel.push(...startChunk, ...endChunk);\n\n formGroup.removeControl(controlToDelete.id);\n }\n });\n }\n\n public addFormGroupControl(formGroup: FormGroup, formModel: DynamicUnionFormModel, ...models: DynamicFormModel): void {\n\n if (formModel instanceof DynamicFormGroupModel) {\n\n this.insertFormGroupControl(formModel.size(), formGroup, formModel, ...models);\n\n } else {\n\n const _formModel = <DynamicFormModel>formModel;\n this.insertFormGroupControl(_formModel.length, formGroup, _formModel, ...models);\n }\n }\n\n public moveFormGroupControl(index: number, step: number, formModel: DynamicUnionFormModel): void {\n\n if (formModel instanceof DynamicFormGroupModel) {\n\n formModel.move(index, step);\n\n } else {\n\n const _formModel = <DynamicFormModel>formModel;\n _formModel.splice(index + step, 0, ..._formModel.splice(index, 1));\n }\n }\n\n public insertFormGroupControl(\n index: number,\n formGroup: FormGroup,\n formModel: DynamicUnionFormModel,\n ...models: DynamicFormModel\n ): void {\n\n const controls = this.createFormGroup(models).controls;\n\n Object.keys(controls).forEach((controlName, idx) => {\n\n const controlModel = models[idx];\n\n if (formModel instanceof DynamicFormGroupModel) {\n formModel.insert(index, controlModel);\n\n } else {\n (<DynamicFormModel>formModel).splice(index, 0, controlModel);\n }\n\n formGroup.addControl(controlName, controls[controlName]);\n });\n }\n\n public removeFormGroupControl(index: number, formGroup: FormGroup, formModel: DynamicUnionFormModel): void {\n\n if (formModel instanceof DynamicFormGroupModel) {\n\n formGroup.removeControl(formModel.get(index).id);\n formModel.remove(index);\n\n } else {\n\n formGroup.removeControl(formModel[index].id);\n (<DynamicFormModel>formModel).splice(index, 1);\n }\n }\n\n public addFormArrayGroup(formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\n\n const groupModel = formArrayModel.addGroup();\n\n formArray.push(this.createFormGroup(groupModel.group));\n }\n\n public insertFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\n\n const groupModel = formArrayModel.insertGroup(index);\n\n formArray.insert(index, this.createFormGroup(groupModel.group));\n }\n\n public removeFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\n\n formArray.removeAt(index);\n formArrayModel.removeGroup(index);\n }\n\n public clearFormArray(formArray: FormArray, formArrayModel?: DynamicFormArrayModel): void {\n while (formArray.length !== 0) {\n formArray.removeAt(0);\n }\n\n if (formArrayModel) {\n formArrayModel.clear();\n }\n }\n\n public static markAsTouchedAbstractControl(control: AbstractControl): void {\n\n if (control instanceof FormGroup || control instanceof FormArray) {\n (<any>Object).values(control.controls)\n .forEach(c => {\n this.markAsTouchedAbstractControl(c);\n });\n return;\n }\n\n control.markAsTouched();\n }\n\n public updateValidityInAbstractControl(control: AbstractControl): void {\n\n if (control instanceof FormGroup || control instanceof FormArray) {\n (<any>Object).values(control.controls)\n .forEach(c => {\n this.updateValidityInAbstractControl(c);\n });\n return;\n }\n\n control.updateValueAndValidity();\n }\n\n public static detectChangesInModel(model: DynamicFormModel): void {\n model.forEach(control => {\n control.detectChanges$.next(null);\n\n if (control instanceof DynamicFormGroupModel) {\n this.detectChangesInModel(control.group);\n return;\n }\n\n if (control instanceof DynamicFormArrayGroupModel) {\n this.detectChangesInModel(control.group);\n return;\n }\n\n if (control instanceof DynamicFormArrayModel) {\n control.groups.forEach(arrGroup => this.detectChangesInModel(arrGroup.group));\n return;\n }\n });\n }\n\n}\n","export enum DynamicFormLayoutControlTypes {\n Row = 'row',\n Col = 'col',\n Group = 'group',\n}\n","import { Component, Input, HostBinding, QueryList } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicTemplateDirective } from '../../../../../../modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive';\nimport { DynamicFormModel } from '../../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { IDynamicFormLayout } from '../../../../../../modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface';\nimport { DynamicFormLayoutControlTypes } from '../../../../dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum';\nimport { DynamicFormLayoutControlModel } from '../../../../dynamic-forms-core/models/layout/layout-control.model';\n\n@Component({\n selector: 'app-dynamic-form-layout-item, [app-dynamic-form-layout-item]',\n templateUrl: './dynamic-form-layout-item.component.html',\n styleUrls: ['./dynamic-form-layout-item.component.scss'],\n})\nexport class DynamicFormLayoutItemComponent {\n\n @Input() public layoutControl: DynamicFormLayoutControlModel;\n @Input() public formModel: DynamicFormModel = [];\n @Input() public formLayoutMap: Map<string, DynamicFormModel>;\n @Input() public formGroupValue: FormGroup;\n @Input() public formLayout: IDynamicFormLayout;\n\n @Input() public templates: QueryList<DynamicTemplateDirective>;\n\n public readonly LAYOUT_CONTROL_TYPES = DynamicFormLayoutControlTypes;\n\n public get layoutClass(): string {\n if (!this.layoutControl) { return ''; }\n\n switch (this.layoutControl.type) {\n\n case DynamicFormLayoutControlTypes.Col: {\n return 'col';\n }\n case DynamicFormLayoutControlTypes.Row: {\n return 'row';\n }\n default: {\n return '';\n }\n\n }\n }\n\n public get defaultClass(): string {\n if (!this.layoutControl) { return ''; }\n\n return `${this.layoutControl.type}-${this.layoutControl.id}`;\n }\n\n public get customClass(): string {\n if (!this.layoutControl || !this.layoutControl.customClass) {\n return '';\n }\n\n return this.layoutControl.customClass.join(' ');\n }\n\n @HostBinding('class') get getClass(): string {\n return `${this.layoutClass} ${this.customClass} ${this.defaultClass}`.toLocaleLowerCase();\n }\n}\n","<ul app-dynamic-form-ui-control-list\n *ngIf=\"formLayoutMap && formLayoutMap.get(layoutControl.id) as controls\"\n [key]=\"layoutControl.id\"\n [formGroup]=\"formGroupValue\"\n [formLayout]=\"formLayout\"\n [formModel]=\"controls\"\n></ul>\n\n<ng-container *ngIf=\"layoutControl?.type !== LAYOUT_CONTROL_TYPES.Group\">\n <div\n *ngFor=\"let _control of layoutControl.layout\"\n app-dynamic-form-layout-item\n [layoutControl]=\"_control\"\n [formGroupValue]=\"formGroupValue\"\n [formLayoutMap]=\"formLayoutMap\"\n [templates]=\"templates\"\n [formModel]=\"formModel\"\n [formLayout]=\"formLayout\"\n ></div>\n</ng-container>\n","import { Component, Input, QueryList } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicTemplateDirective } from '../../../../../modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive';\nimport { DynamicFormModel } from '../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { IDynamicFormLayout } from '../../../../../modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface';\nimport { DynamicFormLayoutService } from '../../../../../modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicFormService } from '../../../../../modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service';\nimport { DynamicFormLayoutComponent } from '../../../dynamic-forms-core/components/dynamic-form-layout.component';\n\n@Component({\n selector: 'app-dynamic-form-layout, [app-dynamic-form-layout]',\n templateUrl: './dynamic-form-layout.component.html',\n styleUrls: ['./dynamic-form-layout.component.scss'],\n})\nexport class DynamicFormLayoutUIComponent extends DynamicFormLayoutComponent {\n\n @Input() public override formModel: DynamicFormModel = [];\n @Input() public override formLayout: IDynamicFormLayout = [];\n @Input() public override formGroupValue: FormGroup;\n @Input() public override formLayoutMap: Map<string, DynamicFormModel>;\n\n @Input() public override templates: QueryList<DynamicTemplateDirective>;\n\n constructor(\n protected dynamicFormService: DynamicFormService,\n protected dynamicFormLayoutService: DynamicFormLayoutService,\n ) {\n super(dynamicFormService, dynamicFormLayoutService);\n }\n}\n","<ng-container *ngIf=\"formLayout\">\n <ng-container *ngFor=\"let controlLayout of formLayout; trackBy: trackByFn\">\n\n <div app-dynamic-form-layout-item\n [layoutControl]=\"controlLayout\"\n [formGroupValue]=\"formGroupValue\"\n [formModel]=\"formModel\"\n [templates]=\"templates\"\n [formLayoutMap]=\"formLayoutMap\"\n [formLayout]=\"formLayout\"\n ></div>\n\n </ng-container>\n</ng-container>\n","import { Component, OnInit, Input, OnDestroy, Output, EventEmitter, ContentChildren, QueryList, Injectable, ChangeDetectorRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FormTypes } from '../../../../ui-kit/enums/form-types.enum';\nimport { DynamicFormComponent } from '../../../dynamic-forms-core';\nimport { DynamicTemplateDirective } from '../../../dynamic-forms-core/directives/dynamic-template.directive';\nimport { IBaseFormAction } from './base-form-actions/interfaces/base-form-action.interface';\n\n@Component({\n selector: 'app-dynamic-form, [app-dynamic-form]',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['./dynamic-form.component.scss'],\n})\n@Injectable()\nexport class DynamicFormUIComponent extends DynamicFormComponent implements OnInit, OnDestroy {\n\n @Input()\n public set disabled(val: boolean) {\n if (val === this._disabled) {\n return;\n }\n this._disabled = val;\n this._disabled ? this.formGroupValue.disable() : this.formGroupValue.enable();\n }\n\n constructor( private cd: ChangeDetectorRef) {\n super(cd )\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() public patchValue$: Observable<any>;\n // tslint:disable-next-line:no-input-rename\n @Input() public formType: FormTypes;\n @Input() public isInline: boolean = false;\n\n @ContentChildren(DynamicTemplateDirective) public templates: QueryList<DynamicTemplateDirective>;\n\n @Output() public actionClick = new EventEmitter<IBaseFormAction>();\n @Output() public submit = new EventEmitter<{}>();\n\n private clearSubs$ = new Subject();\n private _disabled: boolean = false;\n\n public ngOnInit(): void {\n if (this.patchValue$) {\n this.patchValue$.pipe(\n takeUntil(this.clearSubs$),\n ).subscribe(this.formGroupValue.patchValue.bind(this.formGroupValue));\n }\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n }\n\n}\n","<ng-container [formGroup]=\"formGroupValue\" *ngIf=\"formGroupValue\">\n <ng-container *ngIf=\"formModel\">\n\n <div *ngIf=\"formLayout && formLayout.length > 0\"\n app-dynamic-form-layout\n class=\"dynamic-forms__layout-wrap\"\n [formGroupValue]=\"formGroupValue\"\n [formLayoutMap]=\"formLayoutMap\"\n [formLayout]=\"formLayout\"\n [formModel]=\"formModel\"\n [templates]=\"templates\"\n ></div>\n\n <ul *ngIf=\"defaultControls?.length > 0\"\n app-dynamic-form-ui-control-list\n class=\"dynamic-forms__controls-list\"\n key=\"{{ DEFAULT_LAYOUT_KEY }}\"\n [formGroup]=\"formGroupValue\"\n [formLayout]=\"formLayout\"\n [formModel]=\"defaultControls\"\n [isInline]=\"isInline\"\n >\n </ul>\n\n </ng-container>\n <ng-content></ng-content>\n\n</ng-container>\n","import { Component, Directive, Injectable, Input } from '@angular/core';\nimport { DynamicFormControlComponent } from '../../../dynamic-forms-core';\nimport { DynamicFormGroupModel } from '../../../dynamic-forms-core/models/form-group/dynamic-form-group.model';\nimport { DynamicFormLayoutControlModel } from '../../../dynamic-forms-core/models/layout/layout-control.model';\n\n@Component({\n selector: 'app-dynamic-form-group',\n templateUrl: './dynamic-form-group.component.html',\n styleUrls: ['./dynamic-form-group.component.scss'],\n})\n\nexport class DynamicFormGroupComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicFormGroupModel;\n\n public get hidden(): boolean | null {\n return this.model.hidden || null;\n }\n\n get groupLayout(): DynamicFormLayoutControlModel | null {\n if (this.model.layout) {\n return this.layoutService.getGroupLayout(this.model.layout.id, this.layout);\n }\n return null;\n }\n\n}\n","<ng-container *ngIf=\"group\" [formGroup]=\"group\">\n\n <div\n *ngIf=\"model?.group\"\n class=\"form-group form-group-{{ model.id }}\"\n app-dynamic-form\n [formGroupName]=\"model.id\"\n [formModel]=\"model.group\"\n [formLayout]=\"groupLayout?.layout || layout\"\n [formGroupValue]=\"modelFormGroup\"\n ></div>\n\n</ng-container>\n\n<ng-content></ng-content>\n\n","export enum BaseFormActionTypes {\n Create = 'create',\n Update = 'update',\n Cancel = 'cancel',\n}\n","import { Component, ChangeDetectionStrategy, Output, EventEmitter, Input } from '@angular/core';\nimport { ColorSchemes } from '../../../../../ui-kit/enums/color-schemes.enum';\nimport { FormTypes } from '../../../../../ui-kit/enums/form-types.enum';\nimport { BaseFormActionTypes } from './enums/base-form-action-types';\n\n@Component({\n selector: 'app-base-form-actions',\n templateUrl: './base-form-actions.component.html',\n styleUrls: ['./base-form-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseFormActionsComponent {\n\n public readonly BASE_ACTION_TYPES = BaseFormActionTypes;\n public readonly FORM_TYPES = FormTypes;\n public readonly COLOR_SCHEMES = ColorSchemes;\n @Input()\n public isCancelRemoved: boolean = false;\n\n @Input() public disabled = false;\n @Input() public formType: FormTypes;\n @Input() public isSubmitDisabled: boolean = false;\n\n @Output() public actionClick = new EventEmitter<BaseFormActionTypes>();\n\n public onActionClick(actionType: BaseFormActionTypes, event: MouseEvent): void {\n if (actionType === BaseFormActionTypes.Cancel) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.actionClick.emit(actionType);\n }\n\n public get isReadonly(): boolean {\n return FormTypes.View === this.formType;\n }\n}\n","<app-buttons-list appRemoveCancelButton>\n <button mat-flat-button [disabled]=\"disabled\" color=\"accent\"\n (click)=\"onActionClick(BASE_ACTION_TYPES.Cancel, $event)\"\n appRemoveCancelButton [isCancelRemoved]=\"isCancelRemoved\" class=\"odp-button\n b-mr\">\n {{ isReadonly ? 'Back' : 'Cancel' }}\n </button>\n <button *ngIf=\"formType === FORM_TYPES.Add\" [disabled]=\"disabled ||\n isSubmitDisabled\" mat-flat-button color=\"primary\"\n (click)=\"onActionClick(BASE_ACTION_TYPES.Create, $event)\" class=\"mr-3\">\n Create\n </button>\n <button *ngIf=\"formType === FORM_TYPES.Edit\" [disabled]=\"disabled ||\n isSubmitDisabled\" mat-raised-button\n color=\"primary\" class=\"odp-button\"\n (click)=\"onActionClick(BASE_ACTION_TYPES.Update, $event)\">\n Save\n </button>\n</app-buttons-list>","import { Component, Input, HostBinding } from '@angular/core';\nimport { FormControl, ValidationErrors } from '@angular/forms';\nimport { IFormErrors } from '../../../../../modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant';\n\n@Component({\n selector: 'app-errors-block',\n templateUrl: './errors-block.component.html',\n styleUrls: ['./errors-block.component.scss'],\n})\nexport class ErrorsBlockComponent {\n @Input() public control: FormControl;\n @Input() public defaultErrors: IFormErrors;\n\n @HostBinding('attr.hidden') get hidden(): boolean | null {\n return this.control.touched && this.errors ? null : true;\n }\n\n get errors(): ValidationErrors {\n return this.control.errors;\n }\n}\n","<div *ngFor=\"let item of control.errors | keyvalue\">\n <span>{{ defaultErrors[item.key] ? defaultErrors[item.key](item.value) : item.value }}</span>\n</div>\n","import { Component, Injectable, Input, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormControlComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicButtonModel } \n from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model';\n\n@Component({\n selector: 'app-dynamic-form-button-control',\n templateUrl: './dynamic-form-button-control.component.html',\n styleUrls: ['./dynamic-form-button-control.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\n\n@Injectable()\nexport class DynamicFormButtonControlComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicButtonModel;\n \n public onClick(): void {\n this.model.checked = !this.model.checked;\n }\n\n public getClass(): string {\n return this.model.additional \n && this.model.additional.cssClass \n ? this.model.additional.cssClass \n : '';\n } \n}\n","<button\n (click)=\"onClick()\"\n [disabled]=\"model._disabled\"\n [ngClass]=\"model['additional']['cssClass']\">\n <span *ngIf=\"model.icon\" class=\"pr-1\" [ngClass]=\"model.icon\"></span>\n <img *ngIf=\"model.iconUrl\" class=\"pr-1\" [src]=\"model.iconUrl\">\n {{model.label}}\n</button>","import { Component, Input, ChangeDetectionStrategy, Injectable } from '@angular/core';\nimport { DynamicFormControlComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicTextAreaModel } \nfrom 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model';\n\n@Component({\n selector: 'app-dynamic-form-text-area-control, [app-dynamic-form-text-area-control]',\n templateUrl: './dynamic-form-text-area-control.component.html',\n styleUrls: ['./dynamic-form-text-area-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@Injectable()\nexport class DynamicFormTextAreaControlComponent extends DynamicFormControlComponent {\n\n @Input() public override model: DynamicTextAreaModel;\n}\n","<app-dynamic-form-field-control\n [group]=\"group\"\n [model]=\"model\"\n>\n <textarea\n matInput\n [formControl]=\"control\"\n [attr.hidden]=\"isHidden || null\"\n [autofocus]=\"model.autoFocus\"\n [id]=\"elementId\"\n [maxlength]=\"model.maxLength\"\n [minlength]=\"model.minLength\"\n [name]=\"model.name\"\n [placeholder]=\"model.placeholder\"\n [readonly]=\"model.readOnly\"\n [required]=\"model.required\"\n [spellcheck]=\"model.spellCheck\"\n [rows]=\"model.rows\"\n [tabindex]=\"model.tabIndex\"\n [type]=\"model.inputType\"\n [value]=\"model.value\"\n (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\"\n (focus)=\"onFocus($event)\">\n </textarea>\n <div class=\"spinner-container\" *ngIf=\"control.statusChanges | async as status\">\n <mat-spinner *ngIf=\"status === 'PENDING'\"></mat-spinner>\n </div>\n</app-dynamic-form-field-control>\n","import { Component, Input, ChangeDetectionStrategy, Injectable } from '@angular/core';\nimport { DynamicFormControlComponent } from '@app/shared/modules/dynamic-forms/dynamic-forms-core';\nimport { Observable, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DynamicNgSelectModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model';\n\n@Component({\n selector: 'app-dynamic-form-ng-select-control',\n templateUrl: './dynamic-form-ng-select-control.component.html',\n styleUrls: ['./dynamic-form-ng-select-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@Injectable()\nexport class DynamicFormNgSelectControlComponent extends DynamicFormControlComponent {\n @Input() public override model: DynamicNgSelectModel<any>;\n\n get isLoading$(): Observable<boolean> {\n return combineLatest(this.model.options$, this.model.optionsLoadingError$)\n .pipe(map(([options, optionsError]) => !(options || optionsError)));\n }\n}\n","<div class=\"ng-select-main-container\">\n <label>{{model.label}}</label>\n <ng-select \n appendTo=\"body\" \n [id]=\"model.id\"\n [items]=\"model.options$ | async\"\n [addTag] = \"model.addTags\"\n [multiple] = \"model.multiple\" \n bindValue = \"{{model.addTags?'label':'value'}}\"\n [formControl] =\"control\"\n bindLabel = \"label\">\n </ng-select>\n <div class=\"spinner-container\" *ngIf=\"isLoading$ | async\">\n <mat-spinner></mat-spinner>\n </div>\n</div>\n\n\n\n\n\n","import { Component, Injectable, Input } from '@angular/core';\nimport { DynamicFormControlComponent } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core';\nimport { DynamicCheckboxModel } from 'idp-apps-shared-ui/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model';\n\n@Component({\n selector: 'app-dynamic-form-checkbox-control',\n templateUrl: './dynamic-form-checkbox-control.component.html',\n styleUrls: ['./dynamic-form-checkbox-control.component.scss'],\n})\n@Injectable()\nexport class DynamicFormCheckboxControlComponent extends DynamicFormControlComponent {\n \n @Input() public override model: DynamicCheckboxModel;\n}\n","<div class=\"column-container\">\n <mat-checkbox [title]=\"model.title\" [formControl]=\"control\"> {{ model.label }}</mat-checkbox>\n</div>","import { InjectionToken } from '@angular/core';\nimport { DynamicFormControlMapFn } from '../interfaces/components/form-control/dynamic-form-control.interface';\n\nexport const DYNAMIC_FORM_CONTROL_MAP_FN = new InjectionToken<DynamicFormControlMapFn>('DYNAMIC_FORM_CONTROL_MAP_FN');\n","import { Provider } from '@angular/core';\r\nimport { DYNAMIC_FORM_CONTROL_MAP_FN } from '../../dynamic-forms-core/tokens/form-control-map.token';\r\nimport { DynamicFormControlModel } from '../../dynamic-forms-core/models/form-control/dynamic-form-control.model';\r\nimport { DynamicFormControlComponent } from '../../dynamic-forms-core/components/dynamic-form-control.component';\r\nimport { ControlTypes } from '../../dynamic-forms-core/enums/control-types.enum';\r\nimport { Type } from '@angular/core';\r\n\r\nimport { DynamicFormUIArrayComponent } from '../components/dynamic-form-array/dynamic-form-ui-array.component';\r\nimport {\r\n DynamicFormCheckboxControlComponent,\r\n DynamicFormDatepickerControlComponent,\r\n DynamicFormGroupComponent,\r\n DynamicFormInputControlComponent,\r\n DynamicFormRadioGroupComponent,\r\n DynamicFormSelectControlComponent,\r\n DynamicFormTextAreaControlComponent,\r\n DynamicFormButtonControlComponent,\r\n DynamicFormNgSelectControlComponent,\r\n} from 'idp-apps-shared-ui/public-api';\r\nimport { DynamicFormCounterControlComponent } from '../components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component';\r\nimport { DynamicFormSwitchControlComponent } from '../components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component';\r\n\r\nexport function uiFormControlMapFn(model: DynamicFormControlModel): Type<DynamicFormControlComponent> | null {\r\n switch (model.type) {\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_ARRAY:\r\n return DynamicFormUIArrayComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX:\r\n return DynamicFormCheckboxControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP:\r\n return null;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER:\r\n return DynamicFormDatepickerControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_GROUP:\r\n return DynamicFormGroupComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_INPUT:\r\n return DynamicFormInputControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP:\r\n return DynamicFormRadioGroupComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_RATING:\r\n return null;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_SELECT:\r\n return DynamicFormSelectControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA:\r\n return DynamicFormTextAreaControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER:\r\n return null;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_COUNTER:\r\n return DynamicFormCounterControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_SWITCH:\r\n return DynamicFormSwitchControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_BUTTON:\r\n return DynamicFormButtonControlComponent;\r\n\r\n case ControlTypes.DYNAMIC_FORM_CONTROL_TYPE_NG_SELECT:\r\n return DynamicFormNgSelectControlComponent;\r\n\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nexport const UI_FORM_CONTROL_MAP_PROVIDER: Provider = {\r\n provide: DYNAMIC_FORM_CONTROL_MAP_FN,\r\n useValue: uiFormControlMapFn,\r\n};\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RemoveCancelButtonDirective } from '../../../directives/remove-cancel-button.directive';\nimport { UiKitModule } from '../../ui-kit/ui-kit.module';\nimport { DynamicFormCoreModule } from '../dynamic-forms-core/dynamic-form-core.module';\nimport { DynamicFormControlLabelComponent } from './components/controls/dynamic-form-control-label/dynamic-form-control-label.component';\nimport { DynamicFormCounterControlComponent } from './components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component';\nimport { DynamicFormDatepickerControlComponent } from './components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component';\nimport { DynamicFormFieldControlComponent } from './components/controls/dynamic-form-field-control/dynamic-form-field-control.component';\nimport { DynamicFormInputControlComponent } from './components/controls/dynamic-form-input-control/dynamic-form-input-control.component';\nimport { DynamicFormRadioGroupComponent } from './components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component';\nimport { DynamicFormSelectControlComponent } from './components/controls/dynamic-form-select-control/dynamic-form-select-control.component';\nimport { DynamicFormSwitchControlComponent } from './components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component';\nimport { DynamicFormUiControlListComponent } from './components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component';\nimport { DynamicFormUIControlComponent } from './components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component';\nimport { DynamicFormUIArrayComponent } from './components/dynamic-form-array/dynamic-form-ui-array.component';\nimport { DynamicFormGroupComponent } from './components/dynamic-form-group/dynamic-form-group.component';\nimport { DynamicFormLayoutItemComponent } from './components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component';\nimport { DynamicFormLayoutUIComponent } from './components/dynamic-form-layout/dynamic-form-layout.component';\nimport { BaseFormActionsComponent } from './components/dynamic-form/base-form-actions/base-form-actions.component';\nimport { DynamicFormUIComponent } from './components/dynamic-form/dynamic-form-ui.component';\nimport { ErrorsBlockComponent } from './components/errors-block/errors-block.component';\nimport { DynamicFormButtonControlComponent } from './components/controls/dynamic-form-button-control/dynamic-form-button-control.component';\nimport { DynamicFormTextAreaControlComponent } from './components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component';\nimport { DynamicFormNgSelectControlComponent } from './components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component';\nimport { DynamicFormCheckboxControlComponent } from './components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component';\nimport { UI_FORM_CONTROL_MAP_PROVIDER } from './providers/ui-form-control-map.provider';\n\nconst shared = [\n DynamicFormInputControlComponent,\n DynamicFormFieldControlComponent,\n DynamicFormControlLabelComponent,\n DynamicFormUIComponent,\n DynamicFormSelectControlComponent,\n DynamicFormNgSelectControlComponent,\n DynamicFormGroupComponent,\n DynamicFormRadioGroupComponent,\n DynamicFormDatepickerControlComponent,\n BaseFormActionsComponent,\n DynamicFormUIArrayComponent,\n DynamicFormUIControlComponent,\n DynamicFormButtonControlComponent,\n DynamicFormTextAreaControlComponent,\n DynamicFormCheckboxControlComponent,\n];\n\n@NgModule({\n declarations: [\n shared,\n DynamicFormLayoutUIComponent,\n DynamicFormLayoutItemComponent,\n DynamicFormUiControlListComponent,\n DynamicFormCounterControlComponent,\n DynamicFormSwitchControlComponent,\n ErrorsBlockComponent,\n RemoveCancelButtonDirective,\n ],\n imports: [UiKitModule, CommonModule, ReactiveFormsModule, DynamicFormCoreModule],\n // entryComponents: [\n // DynamicFormInputControlComponent,\n // DynamicFormSelectControlComponent,\n // DynamicFormNgSelectControlComponent,\n // DynamicFormGroupComponent,\n // DynamicFormDatepickerControlComponent,\n // DynamicFormRadioGroupComponent,\n // DynamicFormUIArrayComponent,\n // DynamicFormCounterControlComponent,\n // DynamicFormSwitchControlComponent,\n // DynamicFormButtonControlComponent,\n // DynamicFormTextAreaControlComponent,\n // ],\n exports: [shared, ErrorsBlockComponent],\n providers: [UI_FORM_CONTROL_MAP_PROVIDER],\n})\nexport class DynamicFormUIModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DynamicFormCoreModule } from './dynamic-forms-core/dynamic-form-core.module';\nimport { DynamicFormUIModule } from './dynamic-form-UI/dynamic-form-ui.module';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n DynamicFormUIModule,\n DynamicFormCoreModule,\n ],\n exports: [\n DynamicFormUIModule,\n DynamicFormCoreModule,\n ],\n})\nexport class DynamicFormsModule {\n}\n","import { TableColumnTypes } from 'idp-apps-shared-ui/core/interfaces/filters.api.interface';\nimport { ConditionOperator } from 'idp-apps-shared-ui/modules/query-builder/interfaces/query-builder.interface';\n\nexport const alphanumericTypeOperators: ConditionOperator[] = [\n ConditionOperator.EQUAL,\n ConditionOperator.NOT_EQUAL,\n ConditionOperator.CONTAINS,\n ConditionOperator.DOES_NOT_CONTAIN,\n ConditionOperator.STARTS_WITH,\n ConditionOperator.DOES_NOT_START_WITH,\n ConditionOperator.ENDS_WITH,\n ConditionOperator.DOES_NOT_END_WITH,\n ConditionOperator.IN,\n ConditionOperator.NOT_IN,\n ConditionOperator.IS_NULL,\n ConditionOperator.IS_NOT_NULL,\n];\n\nexport const numericTypeOperators: ConditionOperator[] = [\n ConditionOperator.EQUAL,\n ConditionOperator.NOT_EQUAL,\n ConditionOperator.IN,\n ConditionOperator.NOT_IN,\n ConditionOperator.BETWEEN,\n ConditionOperator.NOT_BETWEEN,\n ConditionOperator.GREATER_THAN,\n ConditionOperator.LESS_THAN,\n ConditionOperator.GREATER_THAN_OR_EQUAL,\n ConditionOperator.LESS_THAN_OR_EQUAL,\n ConditionOperator.IS_NULL,\n ConditionOperator.IS_NOT_NULL,\n];\n\nexport const dateTypeOperators: ConditionOperator[] = [\n ConditionOperator.EQUAL,\n ConditionOperator.NOT_EQUAL,\n ConditionOperator.BETWEEN,\n ConditionOperator.NOT_BETWEEN,\n ConditionOperator.GREATER_THAN,\n ConditionOperator.LESS_THAN,\n ConditionOperator.GREATER_THAN_OR_EQUAL,\n ConditionOperator.LESS_THAN_OR_EQUAL,\n ConditionOperator.IS_NULL,\n ConditionOperator.IS_NOT_NULL,\n];\n\nexport const boolTypeOperators: ConditionOperator[] = [\n ConditionOperator.EQUAL,\n ConditionOperator.NOT_EQUAL,\n ConditionOperator.IS_NULL,\n ConditionOperator.IS_NOT_NULL,\n];\n\nexport const tableColToOperatorsMap: Map<TableColumnTypes, ConditionOperator[]> =\n new Map<TableColumnTypes, ConditionOperator[]>([\n [TableColumnTypes.TEXT, alphanumericTypeOperators],\n [TableColumnTypes.NUMBER, numericTypeOperators],\n [TableColumnTypes.FIXED, numericTypeOperators],\n [TableColumnTypes.DATE, dateTypeOperators],\n [TableColumnTypes.TIMESTAMP_LTZ, dateTypeOperators],\n [TableColumnTypes.TIMESTAMP_NTZ, dateTypeOperators],\n [TableColumnTypes.BOOL, boolTypeOperators],\n ]);\n \nexport const ONE_VALUE_OPERATORS: Set<ConditionOperator> = new Set<ConditionOperator>([\n ConditionOperator.EQUAL,\n ConditionOperator.NOT_EQUAL,\n ConditionOperator.GREATER_THAN,\n ConditionOperator.LESS_THAN,\n ConditionOperator.GREATER_THAN_OR_EQUAL,\n ConditionOperator.LESS_THAN_OR_EQUAL,\n ConditionOperator.CONTAINS,\n ConditionOperator.DOES_NOT_CONTAIN,\n ConditionOperator.STARTS_WITH,\n ConditionOperator.DOES_NOT_START_WITH,\n ConditionOperator.ENDS_WITH,\n ConditionOperator.DOES_NOT_END_WITH,\n ConditionOperator.LIKE,\n ConditionOperator.NOT_LIKE,\n]);\n\nexport const NO_VALUE_OPERATORS: Set<ConditionOperator> = new Set<ConditionOperator>([\n ConditionOperator.IS_NULL,\n ConditionOperator.IS_NOT_NULL,\n]);\n\nexport const TWO_VALUE_OPERATORS: Set<ConditionOperator> = new Set<ConditionOperator>([\n ConditionOperator.BETWEEN,\n ConditionOperator.NOT_BETWEEN,\n]);\n\nexport const MULTI_VALUE_OPERATORS: Set<ConditionOperator> = new Set<ConditionOperator>([\n ConditionOperator.IN,\n ConditionOperator.NOT_IN,\n]);\n\nexport const OPERATORS_VALUE_LABEL_MAP: Map<ConditionOperator, string> = new Map<ConditionOperator, string>([\n [ConditionOperator.IN, 'In'],\n [ConditionOperator.NOT_IN, 'Not In'],\n [ConditionOperator.CONTAINS, 'Contains'],\n [ConditionOperator.DOES_NOT_CONTAIN, 'Does not Contain'],\n [ConditionOperator.NOT_EQUAL, 'Not Equal'],\n [ConditionOperator.EQUAL, 'Equal'],\n [ConditionOperator.NOT_BETWEEN, 'Not Between'],\n [ConditionOperator.BETWEEN, 'Between'],\n [ConditionOperator.GREATER_THAN, 'Greater than'],\n [ConditionOperator.GREATER_THAN_OR_EQUAL, 'Greater than or Equal'],\n [ConditionOperator.LESS_THAN, 'Less than'],\n [ConditionOperator.LESS_THAN_OR_EQUAL, 'Less than or Equal'],\n [ConditionOperator.STARTS_WITH, 'Starts with'],\n [ConditionOperator.DOES_NOT_START_WITH, 'Does not Start with'],\n [ConditionOperator.ENDS_WITH, 'Ends with'],\n [ConditionOperator.DOES_NOT_END_WITH, 'Does not End with'],\n [ConditionOperator.LIKE, 'Like'],\n [ConditionOperator.NOT_LIKE, 'Not Like'],\n [ConditionOperator.IS_NULL, 'Is Null'],\n [ConditionOperator.IS_NOT_NULL, 'Is Not Null'],\n]);\n","import { ConditionOperator } from 'idp-apps-shared-ui/modules/query-builder/interfaces/query-builder.interface';\nimport { OPERATORS_VALUE_LABEL_MAP } from '../constants/operators-sets';\n\nexport interface IConditionOption { label: string; value: ConditionOperator; }\n\nexport function mapConditionOperator(operator: ConditionOperator): IConditionOption {\n return {\n label: OPERATORS_VALUE_LABEL_MAP.get(operator) || operator,\n value: operator,\n };\n}\n","import { isUndefined, isNull } from '../../../../../../core/utils/type-checks.utils';\n\nexport function mapMultiValueToDTO(val: (number | string)[]): string | null {\n if (!Array.isArray(val) || val.length === 0) {\n return null;\n }\n \n return '('\n + val\n .reduce<string>((acc, next, idx) => {\n const isFirst: boolean = idx === 0;\n\n acc += isFirst ? `$$${next}$$` : `,$$${next}$$`;\n\n return acc;\n }, '')\n + ')';\n}\n\nexport function parseValueToStringArray(value: string): string[] {\n const isMultiValue = !!value.match(/^\\(.*\\)$/g);\n if (isMultiValue) {\n const quotedValue = value.slice(1, -1);\n const sliceAmount = quotedValue.startsWith('$$') ? 2 : quotedValue.startsWith('\\'') ? 1: 0;\n const trimmedValue = sliceAmount == 0 ? quotedValue : quotedValue.slice(sliceAmount, -sliceAmount);\n return trimmedValue\n .split(sliceAmount == 1 ? /'\\s*,\\s*'/ : /\\$\\$\\s*,\\s*\\$\\$/);\n }\n \n const isTwoValue = !!value.match(/^\\$\\$.*\\$\\$ AND \\$\\$.*\\$\\$$/g);\n if (isTwoValue) {\n return value\n .split(/ AND /g)\n .map(x => {\n const sliceAmount = x.startsWith('\\'') ? 1 : 2;\n return x.slice(sliceAmount, -sliceAmount);\n });\n }\n\n return [value];\n}\n\nexport function parseMultiValueNumberArray(value: string): number[] {\n const isMultivalue = !!value.match(/^\\(.*\\)$/);\n\n if (!isMultivalue) {\n return [];\n }\n\n return value\n .split(',')\n .map(chunk => +chunk.replace(/[\\D]/g, ''));\n}\n\nexport function parseTwoValueNumber(value): number[] {\n const isTwoValue = !!value.match(/^'.*' (AND) '.*'$/gi);\n\n if (!isTwoValue) {\n return [];\n }\n\n return value\n .split(/AND/i)\n .map(chunk => +chunk.replace(/[\\D]/gi, ''));\n}\n\nexport function parseTwoValueDate(value: string): Date[] {\n const isTwoValue = !!value.match(/^'.*' (AND) '.*'$/gi);\n\n if (!isTwoValue) {\n return [];\n }\n\n return value\n .split(/AND/i)\n .map(chunk =>\n new Date(chunk.replace(/[']/gi, '')),\n );\n}\n\nexport function mapTwoValueNumbersToDTO(val: number[] | string[]): string | null {\n const isArrayValidForTwoValueCondition = Array.isArray(val) && !(\n isUndefined(val[0]) || isNull(val[0])\n || isUndefined(val[1]) || isNull(val[1])\n );\n\n if (!isArrayValidForTwoValueCondition) {\n return null;\n }\n\n return `$$${val[0]}$$ AND $$${val[1]}$$`;\n}\n\nexport function mapTwoValueDatesToDTO(val: Date[]): string | null {\n if (\n !Array.isArray(val)\n || isUndefined(val[0]) || isNull(val[0])\n || isUndefined(val[1]) || isNull(val[1])\n ) {\n return null;\n }\n\n return `'${val[0].toISOString()}' AND '${val[1].toISOString()}'`;\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnChanges,\n OnInit, SimpleChanges, ViewChild, ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS } from '@angular/material/progress-spinner';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { ngSelectRightValueClass } from 'idp-apps-shared-ui/constants/query-design-custom-class.constant';\nimport { isNull } from 'idp-apps-shared-ui/core/utils/type-checks.utils';\nimport { ConditionOperator } from 'idp-apps-shared-ui/modules/query-builder/interfaces/query-builder.interface';\nimport { INgSelectCustomCssObject } from 'idp-apps-shared-ui/modules/query-builder/interfaces/select-custom-css-object';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, share, switchMap, tap } from 'rxjs/operators';\nimport { isNullOrUndefined } from 'idp-apps-shared-ui/core/utils/type-checks.utils';\nimport { MULTI_VALUE_OPERATORS, ONE_VALUE_OPERATORS, TWO_VALUE_OPERATORS } from '../../constants/operators-sets';\nimport { mapMultiValueToDTO, mapTwoValueNumbersToDTO, parseValueToStringArray } from '../../helpers/control-values-mapper';\n\n\n@Component({\n selector: 'query-alphanumeric-control',\n templateUrl: './alphanumeric-control.component.html',\n styleUrls: ['./alphanumeric-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => AlphanumericControlComponent),\n multi: true,\n },\n { provide: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, useValue: { diameter: 20 } },\n ],\n})\nexport class AlphanumericControlComponent implements OnInit, ControlValueAccessor, OnChanges {\n public body;\n @Input() public isRvalueText: boolean = false;\n @Input() public ngSelectCustomCss: INgSelectCustomCssObject = { appendToBody: null, rightValueClass: ngSelectRightValueClass };\n @Input() public tableName: string;\n @Input() public columnName: string;\n @Input() public condition: ConditionOperator;\n @Input() public schemaName: string;\n @Input() public searchHandler: (tableName: string, columnName: string, searchKeyword: string, schemaName?: string) => Observable<string[]>;\n @ViewChild(NgSelectComponent) public ngSelect: NgSelectComponent;\n\n public ruleValueOptions$: Observable<string[]>;\n public rValueInput$: Subject<string> = new Subject<string>();\n public rValueOptionsLoading = false;\n\n public isDisabled = false;\n public changeFn;\n public touchFn;\n\n public readonly ONE_VALUE_OPERATORS: Set<ConditionOperator> = ONE_VALUE_OPERATORS;\n public readonly TWO_VALUE_OPERATORS: Set<ConditionOperator> = TWO_VALUE_OPERATORS;\n public readonly MULTI_VALUE_OPERATORS: Set<ConditionOperator> = MULTI_VALUE_OPERATORS;\n\n set value(val: string[]) {\n this._value = val;\n }\n\n get value(): string[] {\n return this._value;\n }\n\n get isOneValueOperator(): boolean {\n if (isNullOrUndefined(this.condition)) {\n return true;\n }\n return this.ONE_VALUE_OPERATORS.has(this.condition);\n }\n\n get isTwoValueCondition(): boolean {\n return this.TWO_VALUE_OPERATORS.has(this.condition);\n }\n\n get isMultiValueCondition(): boolean {\n return this.MULTI_VALUE_OPERATORS.has(this.condition);\n }\n\n private _value: string[] = [];\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit(): void {\n this.setRValueAutoComplete();\n }\n\n public inputModelChange(value?: string): void {\n this.rValueInput$.next(value);\n\n this.triggerControlValueChange();\n }\n\n public triggerControlValueChange(): void {\n if (!this.changeFn) {\n return;\n }\n\n if (!this.isRvalueText) {\n this.changeFn(this._value || null);\n return;\n }\n\n if (this.isOneValueOperator) {\n this.changeFn(this._value[0] || null);\n return;\n }\n\n if (this.isTwoValueCondition) {\n return this.changeFn(mapTwoValueNumbersToDTO(this.value));\n }\n\n this.changeFn(mapMultiValueToDTO(this._value));\n }\n\n public setRValueAutoComplete(): void {\n this.ruleValueOptions$ = this.rValueInput$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n tap(() => {\n this.rValueOptionsLoading = !!(this.tableName && this.columnName);\n this.changeDetectorRef.detectChanges();\n }),\n switchMap(\n (searchKeyword) => (this.columnName) ?\n this.searchHandler(this.tableName, this.columnName, searchKeyword, this.schemaName)\n .pipe(\n catchError(() => of([])),\n tap(() => this.rValueOptionsLoading = false),\n ) : of([]),\n ),\n share(),\n );\n }\n\n public registerOnChange(fn: any): void {\n this.changeFn = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.touchFn = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public writeValue(val: string | null | string[]): void {\n if (isNull(val)) {\n this.value = [];\n return;\n }\n\n if (Array.isArray(val)) {\n this.value = val;\n return;\n }\n\n this.value = parseValueToStringArray(val);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.condition) {\n this.triggerControlValueChange();\n }\n }\n}\n","<div class=\"query-line\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTwoValueCondition\" [ngTemplateOutlet]=\"twoValueOperatorControls\"></ng-container>\n <ng-container *ngSwitchCase=\"isOneValueOperator\" [ngTemplateOutlet]=\"oneValueOperator\"></ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"multiValueControl\"></ng-container>\n </ng-container>\n <ng-template #oneValueOperator>\n <mat-form-field class=\"apollo-text-field search-value-field\" style=\"width: auto !important\"\n [floatLabel]=\"'always'\">\n <mat-label>Enter search value</mat-label>\n <input matInput class=\"custom-input-field\" placeholder=\"Enter search value\"\n #trigger=\"matAutocompleteTrigger\" appAutocompletePosition=\"trigger\" type=\"text\" [matAutocomplete]=\"auto\"\n [(ngModel)]=\"value[0]\" (ngModelChange)=\"inputModelChange($event)\" />\n </mat-form-field>\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let item of ruleValueOptions$ | async\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-autocomplete>\n </ng-template>\n <div class=\"spinner-container\" *ngIf=\"rValueOptionsLoading\">\n <mat-spinner></mat-spinner>\n </div>\n <ng-template #twoValueOperatorControls>\n <div class=\"d-flex\">\n <mat-form-field class=\"apollo-text-field search-value-field\"\n style=\"width: auto !important; margin-right: 5px\" [floatLabel]=\"'always'\">\n <mat-label>Enter search value</mat-label>\n <input matInput class=\"custom-input-field\" autocomplete=\"off\" [matAutocomplete]=\"auto\"\n [(ngModel)]=\"value[0]\" (ngModelChange)=\"inputModelChange($event)\" required />\n </mat-form-field>\n <mat-form-field class=\"apollo-text-field search-value-field\" style=\"width: auto !important\"\n [floatLabel]=\"'always'\">\n <mat-label>Enter search value</mat-label>\n <input matInput class=\"custom-input-field\" autocomplete=\"off\" [matAutocomplete]=\"auto\"\n [(ngModel)]=\"value[1]\" (ngModelChange)=\"inputModelChange($event)\" required />\n </mat-form-field>\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let item of ruleValueOptions$ | async\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-autocomplete>\n </div>\n </ng-template>\n <ng-template #multiValueControl>\n <span class=\"selection-parent\">\n <ng-select [appendTo]=\"ngSelectCustomCss?.appendToBody\" [ngClass]=\"ngSelectCustomCss?.rightValueClass\"\n [items]=\"ruleValueOptions$ | async\" [multiple]=\"true\" [addTag]=\"true\" [loading]=\"rValueOptionsLoading\"\n [hideSelected]=\"true\" [typeahead]=\"rValueInput$\" [(ngModel)]=\"value\"\n (ngModelChange)=\"triggerControlValueChange()\">\n </ng-select>\n </span>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, forwardRef, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isFunction } from '../../../../../../../core/utils/type-checks.utils';\nimport { TWO_VALUE_OPERATORS } from '../../constants/operators-sets';\nimport { parseTwoValueDate } from '../../helpers/control-values-mapper';\nimport { ConditionOperator } from 'idp-apps-shared-ui/modules/query-builder/interfaces/query-builder.interface';\n\n@Component({\n selector: 'query-date-control',\n templateUrl: './date-control.component.html',\n styleUrls: ['./date-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => DateControlComponent),\n multi: true,\n },\n ],\n})\nexport class DateControlComponent implements ControlValueAccessor, OnChanges {\n\n @Input() public condition: ConditionOperator;\n\n public readonly TWO_VALUE_OPERATORS: Set<ConditionOperator> = TWO_VALUE_OPERATORS;\n\n private onChangeFn;\n private onTouchFn;\n private _value: Date[];\n\n get value(): Date[] {\n return this._value;\n }\n\n set value(val: Date[]) {\n this._value = val;\n }\n\n get isTwoValueCondition(): boolean {\n return this.TWO_VALUE_OPERATORS.has(this.condition);\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n public writeValue(val: string): void {\n if (!val) {\n this.value = [];\n return;\n }\n\n if (this.isTwoValueCondition) {\n this.value = parseTwoValueDate(val);\n return;\n }\n\n this.value = [new Date(val)];\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.condition) {\n this.triggerControlValueChange();\n }\n }\n\n public triggerControlValueChange(): void {\n if (!isFunction(this.onChangeFn)) {\n return;\n }\n this.onChangeFn(this.value || null);\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchFn = fn;\n }\n}\n","<mat-form-field class=\"ng-select-input-field\" floatLabel=\"auto\">\n <mat-label>Enter date value</mat-label>\n <input matInput disabled [matDatepicker]=\"datepickerFrom\" [(ngModel)]=\"value[0]\"\n (ngModelChange)=\"triggerControlValueChange()\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerFrom\"></mat-datepicker-toggle>\n <mat-datepicker #datepickerFrom [disabled]=\"false\"></mat-datepicker>\n</mat-form-field>\n\n<mat-form-field *ngIf=\"isTwoValueCondition\" class=\"ng-select-input-field end-date\" floatLabel=\"auto\">\n <mat-label>Enter date value</mat-label>\n <input matInput disabled [matDatepicker]=\"datepickerTo\" [(ngModel)]=\"value[1]\"\n (ngModelChange)=\"triggerControlValueChange()\">\n <mat-datepicker-toggle matSuffix [for]=\"datepickerTo\"></mat-datepicker-toggle>\n <mat-datepicker #datepickerTo [disabled]=\"false\"></mat-datepicker>\n</mat-form-field>","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnChanges,\n OnDestroy, SimpleChanges, ViewChild, OnInit\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { fromEvent, Subject, Subscription, Observable, of } from 'rxjs';\nimport { filter, takeUntil, tap, debounceTime, distinctUntilChanged, switchMap, catchError, share } from 'rxjs/operators';\nimport { isFunction } from '../../../../../../../core/utils/type-checks.utils';\nimport { MULTI_VALUE_OPERATORS, TWO_VALUE_OPERATORS } from '../../constants/operators-sets';\nimport {\n parseMultiValueNumberArray,\n parseTwoValueNumber,\n mapMultiValueToDTO,\n mapTwoValueNumbersToDTO\n} from '../../helpers/control-values-mapper';\nimport { ConditionOperator } from 'idp-apps-shared-ui/modules/query-builder/interfaces/query-builder.interface';\n\n@Component({\n selector: 'query-numeric-control',\n templateUrl: './numeric-control.component.html',\n styleUrls: ['./numeric-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => NumericControlComponent),\n multi: true,\n },\n ],\n //encapsulation: ViewEncapsulation.None,\n})\nexport class NumericControlComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n\n @Input() public isRvalueText: boolean = false;\n @Input() public tableName: string;\n @Input() public columnName: string;\n @Input() public condition: ConditionOperator;\n @Input() public schemaName: string;\n @Input() public searchHandler: (tableName: string, columnName: string, searchKeyword: string, schemaName?: string) => Observable<string[]>;\n @ViewChild(NgSelectComponent) public ngSelect: NgSelectComponent;\n\n public onChangeFn;\n public onTouchedFn;\n\n public readonly TWO_VALUE_OPERATORS: Set<ConditionOperator> = TWO_VALUE_OPERATORS;\n public readonly MULTI_VALUE_OPERATORS: Set<ConditionOperator> = MULTI_VALUE_OPERATORS;\n public readonly ALLOWED_KEYCODES: Set<string> = new Set<string>([\n 'Backspace',\n 'Enter',\n 'Escape',\n 'Tab',\n ]);\n public ruleValueOptions$: Observable<string[]>;\n public rValueInput$: Subject<string> = new Subject<string>();\n public rValueOptionsLoading = false;\n private _value: number[] = [];\n private clearSubs$ = new Subject();\n private ngSelectSubscription?: Subscription;\n\n get isTwoValueCondition(): boolean {\n return this.TWO_VALUE_OPERATORS.has(this.condition);\n }\n\n get isMultiValueCondition(): boolean {\n return this.MULTI_VALUE_OPERATORS.has(this.condition);\n }\n\n get value(): number[] {\n return this._value;\n }\n\n set value(val: number[]) {\n this._value = val;\n }\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit(): void {\n this.setRValueAutoComplete();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.condition) {\n this.changeDetectorRef.detectChanges();\n\n this.triggerControlValueChange();\n\n if (this.ngSelect) {\n this.setNumericInputFilter();\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.clearSubs$.next(null);\n this.clearSubs$.complete();\n }\n\n public setNumericInputFilter(): void {\n if (this.ngSelectSubscription && !this.ngSelectSubscription.closed) {\n this.ngSelectSubscription.unsubscribe();\n }\n\n this.ngSelectSubscription = fromEvent<KeyboardEvent>(this.ngSelect.searchInput.nativeElement, 'keydown')\n .pipe(\n takeUntil(this.clearSubs$),\n filter(evt => !this.isKeyCodeAllowed(evt.key)),\n tap(evt => evt.preventDefault()),\n ).subscribe();\n\n this.ngSelectSubscription = fromEvent<MouseEvent>(this.ngSelect.searchInput.nativeElement, 'paste')\n .pipe(\n takeUntil(this.clearSubs$),\n filter(evt => !this.pasteIsAllowed(evt)),\n tap(evt => evt.preventDefault()),\n ).subscribe();\n }\n\n public isKeyCodeAllowed(keyCode: any): boolean {\n const regex = (this.ngSelect.searchTerm || '').indexOf('.') === -1 ? `^(\\.\\d+|\\d+(\\.\\d*)?|\\.)$` : `^0|[1-9]\\d*$`;\n return this.ALLOWED_KEYCODES.has(keyCode) || !!keyCode.match(regex);\n }\n\n public pasteIsAllowed(keyCode: any): boolean {\n return !!keyCode.clipboardData.getData('text').match(/^0|[1-9]\\d*$/);\n }\n\n public inputModelChange(value: string): void {\n this.rValueInput$.next(value);\n\n this.triggerControlValueChange();\n }\n\n public triggerControlValueChange(): void {\n if (!isFunction(this.onChangeFn)) {\n return;\n }\n\n if (!this.isRvalueText) {\n this.onChangeFn(this.value || null);\n return;\n }\n\n if (this.isMultiValueCondition) {\n return this.onChangeFn(mapMultiValueToDTO(this.value));\n }\n if (this.isTwoValueCondition) {\n return this.onChangeFn(mapTwoValueNumbersToDTO(this.value));\n }\n this.onChangeFn(this.value ? this.value[0] : null);\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n public writeValue(val?: string | null): void {\n if (!val) {\n this.value = [];\n return;\n }\n\n if (this.isTwoValueCondition) {\n this.value = parseTwoValueNumber(val);\n return;\n }\n\n if (this.isMultiValueCondition) {\n this.value = parseMultiValueNumberArray(val);\n return;\n }\n\n if (Array.isArray(val)) {\n this.value = val;\n return;\n }\n }\n\n public setRValueAutoComplete(): void {\n this.ruleValueOptions$ = this.rValueInput$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n tap(() => {\n this.rValueOptionsLoading = true;\n this.changeDetectorRef.detectChanges();\n }),\n switchMap(\n (searchKeyword) => (this.columnName) ?\n this.searchHandler(this.tableName, this.columnName, searchKeyword, this.schemaName)\n .pipe(\n catchError(() => of([])),\n tap(() => this.rValueOptionsLoading = false),\n ) : of([]),\n ),\n share(),\n );\n }\n}\n","<div class=\"query-line\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTwoValueCondition\" [ngTemplateOutlet]=\"twoValueOperatorControls\"></ng-container>\n <ng-container *ngSwitchCase=\"isMultiValueCondition\" [ngTemplateOutlet]=\"multiValueControl\"></ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"oneValueOperatorControl\"></ng-container>\n </ng-container>\n\n <ng-template #twoValueOperatorControls>\n <div class=\"d-flex\">\n <mat-form-field class=\"apollo-text-field search-value-field\" style=\"width: auto !important\"\n [floatLabel]=\"'always'\">\n <mat-label>Enter search value</mat-label>\n <input matInput class=\"custom-input-field\" autocomplete=\"off\" type=\"number\" [(ngModel)]=\"value[0]\"\n (ngModelChange)=\"triggerControlValueChange()\" required />\n </mat-form-field>\n\n <mat-form-field class=\"apollo-text-field search-value-field\" style=\"width: auto !important\"\n [floatLabel]=\"'always'\">\n <mat-label>Enter search value</mat-label>\n <input class=\"custom-input-field\" matInput autocomplete=\"off\" type=\"number\" [(ngModel)]=\"value[1]\"\n (ngModelChange)=\"triggerControlValueChange()\" required />\n </mat-form-field>\n </div>\n </ng-template>\n <ng-template #oneValueOperatorControl>\n <mat-form-field class=\"apollo-text-field search-value-field\" style=\"width: auto !important\"\n [floatLabel]=\"'always'\">\n <mat-label>Enter search value</mat-label>\n <input matInput class=\"custom-input-field\" placeholder=\"Enter search value\" type=\"number\"\n [matAutocomplete]=\"auto\" [(ngModel)]=\"value[0]\" (ngModelChange)=\"inputModelChange($event)\" required />\n </mat-form-field>\n\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option [matTooltip]=\"item\" [matTooltipPosition]=\"'above'\"\n *ngFor=\"let item of ruleValueOptions$ | async\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-autocomplete>\n </ng-template>\n\n <ng-template #multiValueControl>\n <span class=\"selection-parent\">\n <ng-select appendTo=\"body\" [items]=\"ruleValueOptions$ | async\" [multiple]=\"true\" [addTag]=\"true\"\n [loading]=\"rValueOptionsLoading\" [hideSelected]=\"true\" [typeahead]=\"rValueInput$\" [(ngModel)]=\"value\"\n (ngModelChange)=\"triggerControlValueChange()\" placeholder=\"Enter search value\"></ng-select>\n </span>\n </ng-template>\n\n <ng-template #oneValueSpinner>\n <span class=\"progress-wrapper\" *ngIf=\"rValueOptionsLoading\">\n <mat-progress-spinner [color]=\"'primary'\" [mode]=\"'indeterminate'\" [diameter]=\"20\" [value]=\"50\">\n </mat-progress-spinner>\n </span>\n </ng-template>\n</div>","import {\n ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild\n} from '@angular/core';\nimport { uuid } from 'idp-apps-shared-ui/core/utils/uuid-generator.utils';\nimport { ISelectOption } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/select.interface';\nimport { AlphanumericControlComponent } from 'idp-apps-shared-ui/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component';\nimport { DateControlComponent } from 'idp-apps-shared-ui/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component';\nimport { NumericControlComponent } from 'idp-apps-shared-ui/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component';\nimport { INgSelectCustomCssObject } from 'idp-apps-shared-ui/modules/query-builder/interfaces/select-custom-css-object';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\nimport { isNullOrUndefined } from 'idp-apps-shared-ui/core/utils/type-checks.utils';\nimport { MULTI_VALUE_OPERATORS, tableColToOperatorsMap } from './constants/operators-sets';\nimport { IConditionOption, mapConditionOperator } from './helpers/condition-operators.mapper';\nimport { ITableColumn, ITableColumns, TableColumnTypes } from 'idp-apps-shared-ui/core/interfaces/filters.api.interface';\nimport { ConditionOperator, ConjunctionOperator, IDataSourceColumnDetails, IQueryRule } from 'idp-apps-shared-ui/modules/query-builder/interfaces/query-builder.interface';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport { convertSQLToFilterDataType } from 'idp-apps-shared-ui/core/utils/sql-to-filter-datatype-converter';\n\n@Component({\n selector: 'query-rule-line',\n templateUrl: './rule-line.component.html',\n styleUrls: ['./rule-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RuleLineComponent implements OnChanges, OnDestroy, OnInit {\n @Input() public isReadOnly: boolean = false;\n @Input() public isNewRuleDesign: boolean = false;\n @Input() public isRootRule: boolean = false;\n @Input() public ngSelectCustomCss: INgSelectCustomCssObject = { appendToBody: null };\n @Input() public tableColumns: ITableColumns;\n @Input() public lineNumber: number;\n @Input() public rule: IQueryRule;\n @Input() public rules: IQueryRule[];\n @Input() public tableName: string;\n @Input() public schemaName: string;\n @Input() public isLoaderForColumns: boolean;\n @Input() public searchHandler: (tableName: string, columnName: string, searchKeyword: string, schemaName?: string) => Observable<string[]>;\n @Input() public getTableColumnsHandler: (isSource: boolean, tableId?: string) => IDataSourceColumnDetails[];\n @Input() public isSource: boolean;\n @Input() public isMultiTableSelection: boolean;\n public body;\n\n public readonly conjunctionOperatorItems: ISelectOption[] = [\n { value: ConjunctionOperator['AND'], label: ConjunctionOperator['AND'] },\n { value: ConjunctionOperator['OR'], label: ConjunctionOperator['OR'] },\n ];\n\n @Output() public onRuleChange = new EventEmitter<IQueryRule>();\n @Output() public onValueChange = new EventEmitter<IQueryRule>();\n @Output() public onRuleRemove = new EventEmitter();\n @Output() public rulesChange = new EventEmitter<IQueryRule[]>();\n public readonly MULTI_VALUE_OPERATORS: Set<ConditionOperator> = MULTI_VALUE_OPERATORS;\n public defaultColumn: ITableColumn = { displayName: '', name: '', type: TableColumnTypes.TEXT };\n public activeTableColumn$: BehaviorSubject<ITableColumn> = new BehaviorSubject<ITableColumn>(this.defaultColumn);\n public tables: IKeyValue[];\n public readonly conditionOperatorItems$: Observable<IConditionOption[]> = this.activeTableColumn$.pipe(\n filter(Boolean),\n map<ITableColumn, IConditionOption[]>((column) =>\n tableColToOperatorsMap\n .get(column.type)\n .map(mapConditionOperator),\n ),\n );\n\n public readonly COLUMN_TYPES: typeof TableColumnTypes = TableColumnTypes;\n @ViewChild(AlphanumericControlComponent)\n private alphanumericComponent: AlphanumericControlComponent;\n @ViewChild(NumericControlComponent)\n private numericComponent: NumericControlComponent;\n @ViewChild(DateControlComponent)\n private dateControlComponent: DateControlComponent;\n private _clearSubs$ = new Subject();\n\n get isValidRightValue(): boolean {\n return this.rule && !(this.rule.conditionOperator === ConditionOperator.IS_NULL\n || this.rule.conditionOperator === ConditionOperator.IS_NOT_NULL);\n }\n\n get isMultiValueCondition(): boolean {\n return this.MULTI_VALUE_OPERATORS.has(this.rule.conditionOperator);\n }\n\n public isFirstChild(): boolean {\n return this.lineNumber === 0;\n }\n\n ngOnInit(): void {\n if (this.isMultiTableSelection) {\n this.getTables();\n if (this.rule?.tableId) {\n this.setTableAndColumns();\n }\n }\n }\n\n public addNewRuleLine(): void {\n const newRule: IQueryRule = {\n id: uuid(),\n childRules: [],\n };\n if (isNullOrUndefined(this.rule.childRules)) {\n this.rule.childRules = [];\n }\n this.rule.childRules.push(newRule);\n this.onRuleChange.emit(this.rule);\n }\n\n public removeLine(): void {\n this.onRuleRemove.emit();\n }\n\n public handleRuleChange(): void {\n this.onRuleChange.emit(this.rule);\n }\n\n public handleLineRemove(index: number): void {\n this.rule.childRules.splice(index, 1);\n this.onRuleChange.emit(this.rule);\n }\n\n public getTables() {\n let tables = this.getTableColumnsHandler(this.isSource);\n let listOfTables = tables.filter((ItemsList, index, self) => index === self.findIndex((t) => t.tableId == ItemsList.tableId));\n this.tables = listOfTables.map(x => <IKeyValue>{ id: x.tableId, name: `${x.schema_Name}_${x.table_Name}` });\n }\n\n public lValueChanged(value: string): void {\n this.activeTableColumn$.next(this.getTableColumnByName(value));\n this.rule.rValue = null;\n const conditionOperatorsForNewValue = this.conditionOperatorItems$\n .pipe(take(1), takeUntil(this._clearSubs$))\n .toPromise();\n\n conditionOperatorsForNewValue.then(operators => {\n const isCurrentOperatorAllowed: boolean = operators\n .findIndex(operator => operator.value === this.rule.conditionOperator) >= 0;\n\n if (!isCurrentOperatorAllowed) {\n this.rule.conditionOperator = operators[0].value;\n }\n\n });\n\n this.modelChanged();\n }\n\n public tableValueChanged() {\n this.rule.lValue = undefined;\n this.rule.conditionOperator = undefined;\n this.rule.rValue = [];\n this.setTableAndColumns();\n }\n\n private setTableAndColumns() {\n let tableDetail = this.getTableColumnsHandler(this.isSource, this.rule.tableId);\n this.tableName = tableDetail[0].table_Name;\n this.schemaName = tableDetail[0].schema_Name;\n this.tableColumns = tableDetail.map(x => <ITableColumn>{\n name: x.column_Name,\n type: x.dataTypeName,\n displayName: x.column_Name\n });\n\n if (this.rule.lValue) {\n this.activeTableColumn$.next(this.getTableColumnByName(this.rule.lValue));\n }\n }\n\n public modelChanged(): void {\n this.onRuleChange.emit(this.rule);\n }\n\n public operatorValueChanged(): void {\n if (this.alphanumericComponent) {\n this.alphanumericComponent.ruleValueOptions$ = of([]);\n this.alphanumericComponent.setRValueAutoComplete();\n }\n if (this.numericComponent) {\n this.numericComponent.value = [];\n this.numericComponent.ruleValueOptions$ = of([]);\n this.numericComponent.setRValueAutoComplete();\n }\n\n if (this.dateControlComponent) {\n this.dateControlComponent.value = [];\n }\n }\n\n public rValueChanged(): void {\n if (!isNullOrUndefined(this.rule.rValue) && this.rule.rValue.length !== 0) {\n this.unsetPrevLastChange(this.rules);\n this.rule.isLastChange = true;\n this.onValueChange.emit(this.rule);\n }\n }\n\n public ngOnDestroy(): void {\n this._clearSubs$.next(null);\n this._clearSubs$.complete();\n }\n\n public getTableColumnByName(name: string): ITableColumn | null {\n if (!this.tableColumns) {\n return null;\n }\n\n let column = this.tableColumns.find(column => column.name === name);\n column.type = convertSQLToFilterDataType(column.type);\n return column;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (isNullOrUndefined(this.rule.rValue)) {\n this.rule.rValue = [];\n }\n if (changes.tableColumns && this.rule.lValue) {\n this.activeTableColumn$.next(this.getTableColumnByName(this.rule.lValue));\n }\n }\n\n public getTableName(tableId: string): string {\n return this.tables.find(x => x.id === tableId)?.name;\n }\n \n private unsetPrevLastChange(rules: IQueryRule[]): void {\n rules.forEach(rule => {\n if (rule.isLastChange) {\n rule.isLastChange = false;\n }\n if (rule.childRules) {\n this.unsetPrevLastChange(rule.childRules);\n }\n });\n }\n}\n","<ng-container *ngIf=\"isReadOnly; else editableQueryLine\">\n <div class=\"readonly-rule-line\">\n <div class=\"single-rule-line\">\n <div class=\"elbow\" *ngIf=\"!isRootRule\"></div>\n <div class=\"readonly-conjunction-operator\">{{lineNumber === 0 ? 'WHEN' : rule.conjunctionOperator}}</div>\n <div class=\"empty-line\"></div>\n <div [title]=\"rule.lValue\" class=\"readonly-columnName text-truncate\">{{rule.lValue}}</div>\n <div class=\"empty-line\"></div>\n <div [title]=\"rule.conditionOperator\" class=\"readonly-condition-operator\">{{rule.conditionOperator}}</div>\n <div class=\"empty-line\"></div>\n <div [title]=\"rule.rValue.toString()\" class=\"value-field text-truncate\">{{rule.rValue.toString()}}</div>\n </div>\n <div class=\"child-rule\">\n <query-rule-line *ngFor=\"let ruleLine of rule.childRules; let i = index\" [tableName]=\"tableName\"\n [schemaName]=\"schemaName\" [searchHandler]=\"searchHandler\" [isNewRuleDesign]=\"isNewRuleDesign\"\n [isReadOnly]=\"isReadOnly\" [tableColumns]=\"tableColumns\" [lineNumber]=\"i\" [rule]=\"ruleLine\"\n [rules]=\"rules\" (onRuleChange)=\"handleRuleChange()\" (onRuleRemove)=\"handleLineRemove(i)\"\n [getTableColumnsHandler]=\"getTableColumnsHandler\" [isSource]=\"isSource\"\n [isMultiTableSelection]=\"isMultiTableSelection\"></query-rule-line>\n </div>\n </div>\n</ng-container>\n<ng-template #editableQueryLine>\n <div class=\"rule-line-wrap\" [ngClass]=\"{'rule-line-multiple-value': isMultiValueCondition}\" fxLayout=\"row\"\n fxLayoutAlign=\"start center\">\n <div class=\"editable-elbow\" *ngIf=\"!isRootRule\"></div>\n <ng-container>\n <div class=\"conjunction-operator\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <ng-select *ngIf=\"!isFirstChild()\" [(ngModel)]=\"rule.conjunctionOperator\" [appendTo]=\"'body'\"\n [ngClass]=\"ngSelectCustomCss?.rightValueClass\" bindValue=\"value\" [clearable]=\"false\"\n [searchable]=\"false\" [items]=\"conjunctionOperatorItems\" (change)=\"handleRuleChange()\"\n placeholder=\"AND/OR\"></ng-select>\n <div *ngIf=\"isFirstChild()\" class=\"when\">\n When\n </div>\n </div>\n </ng-container>\n <div class=\"left-value\" *ngIf=\"this.isMultiTableSelection\">\n <ng-select [(ngModel)]=\"rule.tableId\" [appendTo]=\"'body'\" [title]=\"getTableName(rule?.tableId)\" [ngClass]=\"ngSelectCustomCss?.rightValueClass\"\n bindValue=\"id\" bindLabel=\"name\" [clearable]=\"false\" [searchable]=\"true\" [items]=\"tables\"\n (ngModelChange)=\"tableValueChanged();\" placeholder=\"Select table\"></ng-select>\n </div>\n <div class=\"left-value\">\n <ng-select [(ngModel)]=\"rule.lValue\" [appendTo]=\"'body'\" [ngClass]=\"ngSelectCustomCss?.rightValueClass\"\n bindValue=\"name\" bindLabel=\"displayName\" [clearable]=\"false\" [searchable]=\"true\"\n [loading]=\"!tableColumns && isLoaderForColumns\" [items]=\"tableColumns\"\n (ngModelChange)=\"lValueChanged(rule.lValue); operatorValueChanged()\"\n placeholder=\"Select column\"></ng-select>\n </div>\n <div class=\"condition-operator\" *ngIf=\"conditionOperatorItems$ | async as conditionOperators\">\n <ng-select [(ngModel)]=\"rule.conditionOperator\" class=\"condition-operator-select\" [appendTo]=\"'body'\"\n [ngClass]=\"ngSelectCustomCss?.rightValueClass\" bindValue=\"value\" [clearable]=\"false\" [searchable]=\"true\"\n [items]=\"conditionOperators\" (change)=\"modelChanged(); operatorValueChanged()\"\n placeholder=\"Select operator\">\n </ng-select>\n </div>\n <div *ngIf=\"isValidRightValue && activeTableColumn$ | async as activeColumn\" class=\"right-value\">\n <ng-container [ngSwitch]=\"activeColumn.type\">\n <query-alphanumeric-control *ngSwitchCase=\"COLUMN_TYPES.TEXT\" [searchHandler]=\"searchHandler\"\n [tableName]=\"tableName\" [schemaName]=\"schemaName\" [columnName]=\"rule.lValue\"\n [condition]=\"rule.conditionOperator\" [(ngModel)]=\"rule.rValue\" [isRvalueText]=false\n (ngModelChange)=\"modelChanged();rValueChanged()\">\n </query-alphanumeric-control>\n <query-numeric-control *ngSwitchCase=\"COLUMN_TYPES.NUMBER\" [searchHandler]=\"searchHandler\"\n [tableName]=\"tableName\" [schemaName]=\"schemaName\" [columnName]=\"rule.lValue\"\n [condition]=\"rule.conditionOperator\" [(ngModel)]=\"rule.rValue\" [isRvalueText]=false\n (ngModelChange)=\"modelChanged();rValueChanged()\">\n </query-numeric-control>\n <query-numeric-control *ngSwitchCase=\"COLUMN_TYPES.FIXED\" [searchHandler]=\"searchHandler\"\n [tableName]=\"tableName\" [schemaName]=\"schemaName\" [columnName]=\"rule.lValue\"\n [condition]=\"rule.conditionOperator\" [(ngModel)]=\"rule.rValue\" [isRvalueText]=false\n (ngModelChange)=\"modelChanged();rValueChanged()\">\n </query-numeric-control>\n <query-date-control *ngSwitchCase=\"COLUMN_TYPES.DATE\" [condition]=\"rule.conditionOperator\"\n [(ngModel)]=\"rule.rValue\" (ngModelChange)=\"modelChanged();rValueChanged()\">\n </query-date-control>\n <query-boolean-control *ngSwitchCase=\"COLUMN_TYPES.BOOL\" [condition]=\"rule.conditionOperator\"\n [(ngModel)]=\"rule.rValue\" [isRvalueText]=false (ngModelChange)=\"modelChanged();rValueChanged()\">\n </query-boolean-control>\n </ng-container>\n </div>\n <ul class=\"rule-line-controls row-actions\" title=\"Controls\">\n <li><a (click)=\"addNewRuleLine()\" title=\"Add new rule\">\n <span class=\"toolbar-icon icon-plus\"></span>\n </a></li>\n <li><a (click)=\"removeLine()\" title=\"Delete\">\n <span class=\"toolbar-icon icon-trash-alt\"></span>\n </a></li>\n </ul>\n </div>\n <div class=\"children\" [ngClass]=\"{'no-outline': isNewRuleDesign}\">\n <query-rule-line *ngFor=\"let ruleLine of rule.childRules; let i = index\" [tableName]=\"tableName\"\n [schemaName]=\"schemaName\" [searchHandler]=\"searchHandler\" [isNewRuleDesign]=\"isNewRuleDesign\"\n [tableColumns]=\"tableColumns\" [lineNumber]=\"i\" [rule]=\"ruleLine\" [(rules)]=\"rules\"\n (onRuleChange)=\"handleRuleChange()\" (onRuleRemove)=\"handleLineRemove(i)\"\n [getTableColumnsHandler]=\"getTableColumnsHandler\" [isSource]=\"isSource\"\n [isMultiTableSelection]=\"isMultiTableSelection\"></query-rule-line>\n </div>\n</ng-template>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ColorSchemes } from '../../../../modules/ui-kit/enums/color-schemes.enum';\nimport { IDataSourceColumnDetails, IQueryRule } from '../../../../modules/query-builder/interfaces/query-builder.interface';\nimport { ITableColumns } from 'idp-apps-shared-ui/core/interfaces/filters.api.interface';\nimport { isFunction } from 'lodash';\n\n@Component({\n selector: 'app-query-design',\n templateUrl: './query-design.component.html',\n styleUrls: ['./query-design.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QueryDesignComponent implements OnInit {\n @Input() public isReadOnly: boolean = false;\n @Input() public isApplyNewRuleBuilderDesign: boolean = false;\n @Input() public isSetInitRules: boolean = false;\n @Input() public tableName: string;\n @Input() public schemaName: string;\n @Input() public tableColumns: ITableColumns;\n @Input() public rules: IQueryRule[];\n @Input() public isLoaderForColumns: boolean = true;\n @Input() public searchActionText: string = 'Search';\n @Input() public isRuleSaveMode: boolean = true;\n @Input() public isSingleLineQuery: boolean = false;\n @Input() public isAddIconVisible: boolean = true;\n @Input() public searchHandler: (tableName: string, columnName: string, searchKeyword: string, schemaName?: string) => Observable<string[]>;\n @Input() public getTableColumnsHandler: (isSource: boolean, tableId: string) => IDataSourceColumnDetails[];\n @Input() public isSource: boolean;\n @Input() public isMultiTableSelection: boolean;\n @Output() public onRulesChanged = new EventEmitter<IQueryRule[]>();\n @Output() public onSearch = new EventEmitter();\n\n public readonly COLOR_SCHEMES: typeof ColorSchemes = ColorSchemes;\n\n public ngOnInit(): void {\n if (!this.isSetInitRules) {\n this.resetRules();\n }\n }\n\n public handleRuleChange(): void {\n this.onRulesChanged.emit(this.rules);\n }\n\n public handleLineRemove(index: number): void {\n this.rules.splice(index, 1);\n this.onRulesChanged.emit(this.rules);\n }\n\n public addNewRuleLine(): void {\n const newRule: IQueryRule = {\n childRules: [],\n };\n\n this.rules.push(newRule);\n this.onRulesChanged.emit(this.rules);\n }\n\n public searchClick(): void {\n this.onSearch.emit();\n }\n\n public resetRules(): void {\n if (this.isSingleLineQuery) {\n this.rules = [{\n childRules: [],\n }];\n } else {\n\n this.rules = [{\n childRules: [],\n },\n {\n childRules: [],\n }];\n }\n this.onRulesChanged.emit(this.rules);\n }\n}\n","<div class=\"rule-design-wrapper\" [ngClass]=\"{'rule-builder-mask': isApplyNewRuleBuilderDesign}\">\n <ng-container *ngIf=\"!isApplyNewRuleBuilderDesign\">\n <div class=\"rule-add-new mb-20\" *ngIf=\"isAddIconVisible && !isReadOnly\">\n <a (click)=\"addNewRuleLine()\" title=\"Add new rule\">\n <em class=\"fa fa-plus plus-icon\"></em>\n </a>\n </div>\n <app-circle-button [customStyle]=\"{'margin-bottom': '15px'}\" *ngIf=\"!isAddIconVisible && !isReadOnly\"\n [tooltip]=\"'Add rule'\" [ngClass]=\"{'page-disabled': isReadOnly }\" [name]=\"'Add new'\"\n (onClick)=\"addNewRuleLine()\"></app-circle-button>\n </ng-container>\n <query-rule-line *ngFor=\"let ruleLine of rules; let i = index\" [searchHandler]=\"searchHandler\"\n [isNewRuleDesign]=\"isApplyNewRuleBuilderDesign\" [isRootRule]=\"true\" [isReadOnly]=\"isReadOnly\"\n [tableName]=\"tableName\" [schemaName]=\"schemaName\" [tableColumns]=\"tableColumns\"\n [isLoaderForColumns]=\"isLoaderForColumns\" [lineNumber]=\"i\" [rule]=\"ruleLine\" [rules]=\"rules\"\n (onRuleChange)=\"handleRuleChange()\" (onRuleRemove)=\"handleLineRemove(i)\"\n [isMultiTableSelection]=\"isMultiTableSelection\" [getTableColumnsHandler]=\"getTableColumnsHandler\"\n [isSource]=\"isSource\">\n </query-rule-line>\n <ng-container *ngIf=\"!isReadOnly\">\n <div class=\"action-button\" *ngIf=\"isRuleSaveMode\">\n <button mat-raised-button color=\"primary\" class=\"odp-button b-mr\" (click)=searchClick()> {{ searchActionText\n }}</button>\n <button mat-raised-button class=\"odp-secondary-button\" (click)=resetRules()>Reset</button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isReadOnly && isApplyNewRuleBuilderDesign\">\n <button mat-stroked-button class=\"new-plus-button\" color=\"primary\" (click)=\"addNewRuleLine()\">\n <em class=\"fal fa-plus plus-icon\"></em>\n Add new constraint\n </button>\n </ng-container>\n</div>\n<ng-template #newAddButtonTemplate>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { BooleanControlComponent } from 'idp-apps-shared-ui/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component';\nimport { AutocompletePositionDirective } from 'idp-apps-shared-ui/modules/query-builder/directive/auto-complete-position.directive';\nimport { MaterialModule } from '../../modules/material/material.module';\nimport { QueryDesignComponent } from '../../modules/query-builder/components/query-design/query-design.component';\nimport {\n AlphanumericControlComponent\n} from '../../modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component';\nimport {\n DateControlComponent\n} from '../../modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component';\nimport {\n NumericControlComponent\n} from '../../modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component';\nimport { RuleLineComponent } from '../../modules/query-builder/components/query-design/rule-line/rule-line.component';\nimport { UiKitModule } from 'idp-apps-shared-ui/modules/ui-kit/ui-kit.module';\n\n@NgModule({\n declarations: [\n QueryDesignComponent,\n RuleLineComponent,\n AlphanumericControlComponent,\n DateControlComponent,\n NumericControlComponent,\n BooleanControlComponent,\n AutocompletePositionDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgSelectModule,\n MaterialModule,\n UiKitModule,\n ],\n exports: [\n QueryDesignComponent,\n AlphanumericControlComponent,\n DateControlComponent,\n NumericControlComponent,\n AutocompletePositionDirective,\n ],\n})\nexport class QueryBuilderModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgLetModule } from './directives/let.directive';\nimport { DynamicCardsModule } from './modules/dynamic-cards/dynamic-cards.module';\nimport { DynamicFormsModule } from './modules/dynamic-forms/dynamic-forms.module';\nimport { UiKitModule } from './modules/ui-kit/ui-kit.module';\nimport { QueryBuilderModule } from './modules/query-builder/query-builder.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n NgLetModule,\n DynamicFormsModule,\n UiKitModule,\n DynamicCardsModule,\n QueryBuilderModule,\n ],\n exports: [\n NgLetModule,\n DynamicFormsModule,\n FlexLayoutModule,\n UiKitModule,\n DynamicCardsModule,\n QueryBuilderModule,\n ],\n})\nexport class SharedModule {\n}\n","import { NgModule } from '@angular/core';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\n@NgModule({\n exports: [\n ScrollingModule,\n ],\n})\nexport class MatCdkModule {}\n","\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } \nfrom '@angular/core';\nimport { IKeyValue } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\nimport { IActionsButton } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/mat-action-buttons.interface';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-mat-actions-button',\n templateUrl: './mat-actions-button.html',\n styleUrls: ['./mat-actions-button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class MatActionsButtonComponent {\n @Input() public actionButtons: IActionsButton[];\n @Output() public matMenuOpend: EventEmitter<IKeyValue> = new EventEmitter();\n private clearSubs$ = new Subject();\n\n // tslint:disable-next-line: no-empty\n constructor() {}\n\n public onMatMenuOpend(): void {\n this.matMenuOpend.emit();\n }\n\n public ActionClickHandler(action: IActionsButton): void {\n if (action.clickHandler) {\n action.clickHandler();\n }\n }\n}\n","<button mat-raised-button [matMenuTriggerFor]=\"actions\" class=\"dropdown-toggle odp-secondary-button\"\n (menuOpened)=\"onMatMenuOpend()\">\n <span>Actions</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"odb-mat-menu-panel\">\n <ng-container *ngFor=\"let action of actionButtons\">\n <ng-container *ngIf=\"!action.childActions || action.childActions?.length === 0\">\n <ng-container *hasPermission=\"action.actionPermission ? action.actionPermission: 'all'\">\n <span [ngClass]=\"{'disabled': action.isDisabled$ | async}\" class=\"custom-mat-menu-item\"\n [title]=\"action.tooltipText ? action.tooltipText : action.name\"\n (click)=\"ActionClickHandler(action)\">{{action.name}}\n <em class=\"action-icon\" *ngIf=\"action.isIconShow$ | async\" [ngClass]=\"action.iconClassName\"></em>\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"action.childActions?.length\">\n <span [ngClass]=\"{'disabled': action?.isDisabled$ | async}\" (click)=\"$event.stopPropagation()\" mat-raised-button [matMenuTriggerFor]=\"actions\" class=\"dropdown-toggle custom-mat-menu-item\">\n <span [title]=\"action.tooltipText\">{{action.name}}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"odb-mat-menu-panel\">\n <ng-container *ngFor=\"let childAction of action.childActions\">\n <ng-container *hasPermission=\"action.childActions ? childAction.actionPermission: 'all'\">\n <span [ngClass]=\"{'disabled': childAction?.isDisabled$ | async}\" class=\"custom-mat-menu-item\"\n [title]=\"childAction.tooltipText ? childAction.tooltipText : childAction.name\"\n (click)=\"ActionClickHandler(childAction)\">{{childAction.name}}\n <em class=\"action-icon\" *ngIf=\"childAction.isIconShow$ | async\" [ngClass]=\"childAction.iconClassName\"></em>\n </span>\n </ng-container>\n </ng-container>\n </mat-menu>\n </span>\n </ng-container>\n </ng-container>\n</mat-menu>\n</button>","import { InjectionToken } from '@angular/core';\n\nexport const CLIENT_ID = new InjectionToken<string>('CLIENT_ID');\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { CLIENT_ID } from '../token/client-injection-token';\n\n@Injectable()\nexport class LocalStorageService {\n constructor(@Optional() @Inject(CLIENT_ID) private clientId: string) {}\n\n public readonly KEYS = {\n LANG: 'lang_',\n USER: 'user',\n USER_POLICY_DATA: `user_policy_data_${this.clientId}`,\n };\n\n /**\n * Method will convert any data to the JSON and store it in the localStorage\n * @param {string} key\n * @param data\n * @return {void}\n */\n public setItem(key: string, data: any): void {\n localStorage.setItem(key, JSON.stringify({ data }));\n }\n\n /**\n * Method will return any data from localStorage by key or null\n * @param {string} key\n * @return {any|null} stored data\n */\n public getItem(key: string): any {\n const item = localStorage.getItem(key);\n return JSON.parse(item) ? JSON.parse(item).data : null;\n }\n\n /**\n * Will remove all data from localStorage\n */\n public clearAll(): void {\n localStorage.clear();\n }\n\n /**\n * Will remove one field from localStorage by key\n * @param {string} key\n */\n public clear(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isUndefined } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GridOptions } from 'idp-apps-shared-ui/modules/ui-kit/interfaces/data-table.interface';\nimport { MenuElementsDto } from 'idp-apps-shared-ui/core/models/menu-elements-dto';\nimport { LocalStorageService } from './local-storage.service';\n\nexport const APP_MENU_PERMISSION_NAME = 'menu permission';\n\nexport interface UserPolicyData {\n name?: string;\n systemName?: string;\n appClientId?: string;\n actions?: Action[];\n userActions?: Action[];\n}\n\nexport interface Action {\n name?: string;\n systemName?: string;\n resources?: Resource[];\n userResources?: Resource[];\n}\n\nexport interface Resource {\n name?: string;\n systemName?: string;\n resourceCategory?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserManagementService {\n public userPolicyData: UserPolicyData[];\n\n constructor(private localStorageService: LocalStorageService) {}\n\n public getUserPolicyData(): UserPolicyData[] {\n const userPolicyData = <UserPolicyData[]>this.localStorageService.getItem(this.localStorageService.KEYS.USER_POLICY_DATA);\n if (userPolicyData) {\n return userPolicyData;\n }\n return [];\n }\n\n public hasPermission(actionValue: any): boolean {\n let action: string = '';\n if (!actionValue) {\n return false;\n }\n if (actionValue === 'all') {\n return true;\n }\n this.userPolicyData = this.getUserPolicyData();\n if (typeof actionValue === 'object') {\n return (\n this.userPolicyData\n .flatMap((up) => up.actions)\n .filter((ac) => ac.name === actionValue.action)\n .map((res) => res.resources)\n .flatMap((resources) => resources)\n .filter((resource) => resource.systemName === actionValue.resourceId || resource.systemName === '*all-projects*').length > 0\n );\n }\n action = actionValue;\n const actionFound = this.getAllActions().filter((x) => x.name.toLowerCase() === action.toLowerCase() || x.name.toLowerCase() === 'all');\n return !isUndefined(actionFound) && actionFound.length > 0;\n }\n\n public getActionName(gridOptions: GridOptions, prop: string): string {\n if (gridOptions.actionsPermission) {\n return gridOptions.actionsPermission[prop];\n }\n return 'all';\n }\n\n public getLeftActionName(gridOptions: GridOptions, prop: string): string {\n if (gridOptions.leftActionsPermission) {\n return gridOptions.leftActionsPermission[prop];\n }\n return 'all';\n }\n\n public getMenuItems(menuItems: MenuElementsDto[], strictMode: boolean = false): MenuElementsDto[] {\n if (this.isAllFound() || this.isResourceAllFound()) {\n return menuItems;\n }\n\n const menuResourcesData = this.getAllMenuResource();\n if (!strictMode && menuResourcesData.length === 0) {\n return menuItems;\n }\n\n const menuItem = menuItems[0].children.filter(\n (x) => menuResourcesData.filter((y) => y.name.toLowerCase() === x.name.toLowerCase()).length > 0\n );\n menuItems[0].children = menuItem;\n return menuItems;\n }\n\n private isAllFound(): boolean {\n const action = this.getAllActions().find((x) => x.name.toLowerCase() === 'all');\n return !isUndefined(action);\n }\n\n private isResourceAllFound(): boolean {\n const menuResourcesData = this.getAllMenuResource();\n const actionFound = menuResourcesData.filter((x) => x.name.toLowerCase() === 'all menu');\n return !isUndefined(actionFound) && actionFound.length > 0;\n }\n\n private getAllMenuResource(): Resource[] {\n let menuResourcesData = [];\n const actionData = this.getAllActions();\n const menuAction = actionData.filter((x) => x.name.toLowerCase() === APP_MENU_PERMISSION_NAME.toLowerCase());\n menuAction.forEach((x) => {\n menuResourcesData = menuResourcesData.concat(x.resources || x.userResources);\n });\n return menuResourcesData;\n }\n\n private getAllActions(): Action[] {\n let actionData = [];\n const appData = this.getUserPolicyData();\n appData.forEach((x) => {\n actionData = actionData.concat(x.actions || x.userActions);\n });\n return actionData;\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\n\n@Directive({\n selector: '[appAutocompletePosition]',\n exportAs : 'appAutocompletePosition'\n})\nexport class AutocompletePositionDirective implements OnDestroy {\n public constructor(\n private readonly matAutocompleteTrigger: MatAutocompleteTrigger,\n ) {\n window.addEventListener('scroll', this.scrollEvent, true);\n }\n\n public ngOnDestroy(): void {\n window.removeEventListener('scroll', this.scrollEvent, true);\n }\n\n private scrollEvent = (): void => {\n if (this.matAutocompleteTrigger === null) {\n return;\n }\n if (this.matAutocompleteTrigger.panelOpen) {\n this.matAutocompleteTrigger.updatePosition();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, HostBinding, Output, EventEmitter } from '@angular/core';\nimport { IKeyValue} from 'idp-apps-shared-ui/modules/ui-kit/interfaces/generic.interface';\n@Component({\n selector: 'app-circle-button',\n templateUrl: './circle-button.component.html',\n styleUrls: ['./circle-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CircleButtonComponent {\n @Input() public name: string;\n @Input() public tooltip: string;\n @Input() public disabled: boolean;\n @Input() public customStyle: IKeyValue = {};\n @Input() public customClass: string;\n @Output() public onClick = new EventEmitter();\n public onButtonClick(): void {\n this.onClick.emit();\n }\n\n get getCassClass(): string {\n return this.disabled ? 'btn-disabled' : 'btn-enabled'\n }\n}\n\nexport interface IIconProp {\n name?: string;\n iconClass?: string;\n tooltip?: string;\n}\n","<button \n [disabled]=\"disabled\" \n [ngStyle]=\"customStyle\" \n [title]=\"tooltip\" \n mat-stroked-button \n color=\"primary\" \n (click)=\"onButtonClick()\"\n [ngClass]=\"{ 'circle-button': true, 'customClass': true, 'grey-background': disabled }\">\n <span class=\"add-icon\">\n <mat-icon class=\"plus-button\">add</mat-icon>\n </span>\n <span>{{name}}</span>\n\n</button>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.FirstLetterTextPipe","i3.DynamicCardFooterComponent","i3.FlipCardDirective","i4.DynamicCardFrontComponent","i5.DynamicCardBackComponent","i6.DynamicCardFooterComponent","DataTableColumnFilterTypes","isUndefined","isNull","isFunction","i1.DataTableService","SearchPipe","i2","i3","i4.DynamicCardComponent","i5.SearchPipe","i4","i1.AccordionDirective","i6","i2.BreadCrumbService","i2.LoaderComponent","i1.BreadcrumbService","i3.SelectFormControlComponent","cloneDeep","i5","i7","i9","i1.UrlService","i3.FormDataTableMapperService","i2.BannerService","i1.SnackbarService","i4.IconComponent","i2.InputFormControlComponent","i3.CheckboxFormControlComponent","i2.IconComponent","i3.ExpandCollapseIconComponent","i2.SelectFormControlComponent","i3.DataColViewComponent","BaseDataColComponent","BaseFormControlComponent","i3.CustomInputComponent","i1.MultivalueFormControlComponent","i1.DataTableContextService","i2.FormService","i1.FormService","i7.DataTableRowActionsComponent","i8.DataColComponent","i9.DataColBooleanComponent","i10.DataColReferenceComponent","i11.DataColNestedComponent","i12.DataColViewComponent","i13.DataColMultivalueComponent","i14.DataTableCheckRowsComponent","i5.DataRowComponent","i6.SearchPipe","i7.PaginatePipe","i2.SnackbarService","i6.IconComponent","i7.AuthorizedDirective","i1.FilterValueExecutorProvider","i8","i10","i11","i13","i14","i16","i17","i19.FilterByPropPipe","CommonConfirmModalComponent","i4.SnackbarService","i9.FormService","i10.DataTableContextService","i12","i15","i18","i19","i20.DataPaginationComponent","i21.LoaderComponent","i22.DataTableActionsComponent","i23.IconComponent","i24.DataTableBodyComponent","i25.DataColFilterComponent","i26.AuthorizedDirective","i27.ColumnFilterPipe","i4.LoaderComponent","i5.ButtonControlComponent","i6.ButtonsListComponent","i1.IconComponent","i3.PrimaryLayoutComponent","i4.FormContainerComponent","MatActionsButtonComponent","CircleButtonComponent","MatCdkModule","shared","merge","DynamicOptionControlModel","FORM_CONTROL_ERRORS_TOKEN","i4.GetErrorFromKeyValuePipe","DynamicFormControlComponent","DynamicNumberControlTypes","i3.DynamicFormFieldControlComponent","i6.DynamicFormFieldControlComponent","i5.DynamicFormFieldControlComponent","DynamicFormControlContainerComponent","FormControlEvents","i2.DynamicFormUIControlComponent","i3.DynamicFormUIControlComponent","i3.DynamicFormUiControlListComponent","i1.DynamicFormService","i2.DynamicFormLayoutService","i4.DynamicFormLayoutItemComponent","i3.DynamicFormLayoutUIComponent","i4.DynamicFormUiControlListComponent","i3.DynamicFormUIComponent","i1.ButtonsListComponent","i4.RemoveCancelButtonDirective","DynamicFormCheckboxControlComponent","DynamicFormDatepickerControlComponent","DynamicFormGroupComponent","DynamicFormInputControlComponent","DynamicFormRadioGroupComponent","DynamicFormSelectControlComponent","DynamicFormTextAreaControlComponent","DynamicFormButtonControlComponent","DynamicFormNgSelectControlComponent","isNullOrUndefined","AlphanumericControlComponent","NumericControlComponent","DateControlComponent","i4.AlphanumericControlComponent","i5.DateControlComponent","i6.NumericControlComponent","i4.RuleLineComponent","AutocompletePositionDirective","UiKitModule","i5.AuthorizedDirective","i1.LocalStorageService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;;AAGG;MAEU,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;QACS,IAAS,CAAA,SAAA,GAAQ,IAAI,CAAC;QACtB,IAAK,CAAA,KAAA,GAAQ,IAAI,CAAC;KAC1B;AAAA,CAAA;MAKY,cAAc,CAAA;IAGzB,IACI,KAAK,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;KACvD;IAED,WAAoB,CAAA,IAAsB,EAAU,YAAuC,EAAA;QAAvE,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;QAAU,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2B;AAPnF,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;KAQrC;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChE;+GAbU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACpB,iBAAA,CAAA;+GAKK,KAAK,EAAA,CAAA;sBADR,KAAK;;MAiBK,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAX,WAAW,EAAA,YAAA,EAAA,CApBX,cAAc,CAAA,EAAA,OAAA,EAAA,CAAd,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;gHAoBd,WAAW,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;oBAC9B,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCgEY,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAlDvB,UAAU;;YAEV,eAAe;;YAEf,cAAc;YACd,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,cAAc;YACd,oBAAoB;YACpB,eAAe;YACf,qBAAqB;YACrB,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,aAAa;YACb,aAAa;YACb,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,wBAAwB;YACxB,cAAc;YACd,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,aAAa;YACb,YAAY;YACZ,eAAe;YACf,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAlDvB,UAAU;;YAEV,eAAe;;YAEf,cAAc;YACd,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,cAAc;YACd,oBAAoB;YACpB,eAAe;YACf,qBAAqB;YACrB,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,aAAa;YACb,aAAa;YACb,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,wBAAwB;YACxB,cAAc;YACd,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,aAAa;YACb,YAAY;YACZ,eAAe;YACf,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGT,cAAc,EAAA,UAAA,EAAA,CAAA;kBApD1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,UAAU;;wBAEV,eAAe;;wBAEf,cAAc;wBACd,gBAAgB;wBAChB,cAAc;wBACd,aAAa;wBACb,cAAc;wBACd,qBAAqB;wBACrB,cAAc;wBACd,oBAAoB;wBACpB,eAAe;wBACf,qBAAqB;wBACrB,aAAa;wBACb,iBAAiB;wBACjB,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,kBAAkB;wBAClB,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,mBAAmB;wBACnB,kBAAkB;wBAClB,oBAAoB;wBACpB,wBAAwB;wBACxB,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,oBAAoB;wBACpB,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,gBAAgB;wBAChB,aAAa;wBACb,aAAa;wBACb,YAAY;wBACZ,eAAe;wBACf,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;;;MC1FY,iBAAiB,CAAA;AAE1B,IAAA,WAAA,CAAoB,QAAmB,EAC3B,EAAc,EACd,MAAc,EAAA;QAFN,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAC3B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KACzB;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,KAAI;YAC3D,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;aACxC;iBAAM;gBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;AACL,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,QAAQ,CAAC,IAAS,EAAA;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACzC;KACJ;IAEM,qBAAqB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C;KACJ;+GA7BQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;4HAGmB,WAAW,EAAA,CAAA;sBAA1B,KAAK;;;MCLG,mBAAmB,CAAA;AACvB,IAAA,SAAS,CAAE,KAAa,EAAA;QAC7B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;SACX;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxC;+GANU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;;;MCOpB,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,kHCTtC,6kBAUe,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,6kBAAA,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,CAAA;8BAMlB,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;;;MEFK,0BAA0B,CAAA;AAIrC,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAK;AAEhC,IAAA,SAAS,CAAC,KAAiB,EAAA;QAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;+GATU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,mGCVvC,sGAEM,EAAA,MAAA,EAAA,CAAA,wJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDQO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sGAAA,EAAA,MAAA,EAAA,CAAA,wJAAA,CAAA,EAAA,CAAA;2EAK/B,SAAS,EAAA,CAAA;sBAAxB,KAAK;;;MEHK,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,+FCTrC,uhBAUe,EAAA,MAAA,EAAA,CAAA,kmDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDDF,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uhBAAA,EAAA,MAAA,EAAA,CAAA,kmDAAA,CAAA,EAAA,CAAA;8BAI/B,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;MEDK,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,0FCVjC,whCAkBA,EAAA,MAAA,EAAA,CAAA,orDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,whCAAA,EAAA,MAAA,EAAA,CAAA,orDAAA,CAAA,EAAA,CAAA;8BAK/B,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;AEVD,MAAM,SAAS,GAAc;AAChC,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,KAAa,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;AACD,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,aAAa,EAAE,IAAI;CACtB;;ACbD,IAAY,WAOX,CAAA;AAPD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,QAAkB,CAAA;AAClB,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAPW,WAAW,KAAX,WAAW,GAOtB,EAAA,CAAA,CAAA;;ACLM,MAAM,GAAG,GAAc;AAC5B,IAAA,UAAU,EAAE,CAAC;CACd;;MCCY,iCAAiC,CAAA;AACnC,IAAA,cAAc,CAAC,WAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AAC9D,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,QAAA,OAAO,CAAI,CAAA,EAAA,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,CAAU,OAAA,EAAA,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;KAChG;IAEM,oBAAoB,CAAC,QAAmB,EAAE,WAAsB,EAAA;AACnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAO,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;KAChD;AAEM,IAAA,aAAa,CAAC,OAAO,EAAA;AACxB,QAAA,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;QAC/G,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,oBAAoB,KAAK,CAAC,EAAE;YAC5B,YAAY,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS;gBAClD,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;kBACrE,EAAE,CAAC;SACZ;AAAM,aAAA,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC3D,YAAY,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;gBAClD,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;kBACtE,EAAE,CAAC;SACZ;aAAM;AACH,YAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACnF,gBAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,YAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACnF,gBAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAC3E;QACD,MAAM,SAAS,GAAG,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrF,IAAI,OAAO,GAAG,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjF,IAAI,CAAC,qBAAqB,EAAE;AACxB,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/C;QACD,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7D,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD,QAAA,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAClC,QAAA,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KACnC;AAEM,IAAA,aAAa,CAAC,OAAO,EAAA;AACxB,QAAA,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;KAC5C;AAEM,IAAA,UAAU,CAAC,OAAO,EAAA;AACrB,QAAA,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjE;AAEO,IAAA,YAAY,CAAC,OAAO,EAAE,GAAW,EAAE,GAAW,EAAA;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAClB,OAAO;SACV;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAChE,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7D;AAEO,IAAA,2BAA2B,CAAC,SAAiB,EAAA;QACjD,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,OAAO,EAAE,CAAC;SACb;QACD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACjD;IAEO,eAAe,CAAC,QAAmB,EAAE,KAAe,EAAA;QACxD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAChG;AACJ;;MCvEY,kCAAkC,CAAA;AAEpC,IAAA,cAAc,CAAC,WAAsB,EAAA;AACxC,QAAA,OAAO,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;KAChD;IAEM,oBAAoB,CAAC,QAAmB,EAAE,WAAsB,EAAA;QACnE,OAAO,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC7D;AAEM,IAAA,aAAa,CAAC,OAAO,EAAA;QACxB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;AACjF,QAAA,IAAI,oBAAoB,KAAK,CAAC,EAAE;AAC5B,YAAA,WAAW,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;SACpE;aAAM,IAAI,WAAW,EAAE;AACpB,YAAA,WAAW,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;SACpE;AACD,QAAA,OAAO,CAAC,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC;KAClD;AAEM,IAAA,aAAa,CAAC,OAAO,EAAA;AACxB,QAAA,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;KACrC;AAEM,IAAA,UAAU,CAAC,OAAO,EAAA;AACrB,QAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACpC;AACJ;;MC1BY,4BAA4B,CAAA;AAE9B,IAAA,cAAc,CAAC,YAA2B,EAAE,WAAsB,EAAE,IAAe,EAAA;QACtF,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,CAAC,WAAW,EAAE;YACd,WAAW,GAAG,EAAE,CAAC;SACpB;AACD,QAAA,IAAI,YAAY,CAAC,QAAQ,EAAE;AACvB,YAAA,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,YAAA,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;AACV,gBAAA,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aAC9B;AAAM,iBAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACnB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;aACjD;SACJ;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,oBAAoB,CAAC,YAA2B,EAAE,WAAsB,EAAE,IAAe,EAAA;QAC5F,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,WAAW,EAAE;YACd,WAAW,GAAG,EAAE,CAAC;SACpB;AACD,QAAA,IAAI,YAAY,CAAC,QAAQ,EAAE;AACvB,YAAA,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAChE;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAEM,IAAA,cAAc,CAAC,WAAqB,EAAE,oBAAoB,GAAG,KAAK,EAAA;QACrE,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,oBAAoB,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;KAChG;IAEM,oBAAoB,CAAC,QAAmB,EAAE,WAAsB,EAAA;AACnE,QAAA,OAAO,WAAW,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACjE;AAEM,IAAA,aAAa,CAAC,OAAO,EAAA;QACxB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;AACpE,QAAA,IAAI,oBAAoB,KAAK,CAAC,EAAE;YAC5B,OAAO,CAAC,kBAAkB,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS;gBAChE,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;kBACjE,EAAE,CAAC;SACZ;aAAM;YACH,OAAO,CAAC,kBAAkB,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;gBAChE,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;kBAClE,EAAE,CAAC;SACZ;KACJ;AAEM,IAAA,aAAa,CAAC,OAAO,EAAA;AACxB,QAAA,OAAO,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;KAC/E;AAEM,IAAA,UAAU,CAAC,OAAO,EAAA;AACrB,QAAA,OAAO,CAAC,kBAAkB,GAAG,EAAE,CAAC;KACnC;AAEO,IAAA,2BAA2B,CAAC,SAAiB,EAAA;QACjD,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,OAAO,EAAE,CAAC;SACb;QACD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACjD;AACJ;;ACzED,IAAY,0BAMX,CAAA;AAND,CAAA,UAAY,0BAA0B,EAAA;AAClC,IAAA,0BAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,0BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,0BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,0BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EANW,0BAA0B,KAA1B,0BAA0B,GAMrC,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,+BAMX,CAAA;AAND,CAAA,UAAY,+BAA+B,EAAA;AACvC,IAAA,+BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,+BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,+BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,+BAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,+BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EANW,+BAA+B,KAA/B,+BAA+B,GAM1C,EAAA,CAAA,CAAA;;MCFY,2BAA2B,CAAA;AAJxC,IAAA,WAAA,GAAA;AAMY,QAAA,IAAA,CAAA,OAAO,GAAiC,IAAI,4BAA4B,EAAE,CAAC;AAC3E,QAAA,IAAA,CAAA,YAAY,GAAsC,IAAI,iCAAiC,EAAE,CAAC;AAC1F,QAAA,IAAA,CAAA,aAAa,GAAuC,IAAI,kCAAkC,EAAE,CAAC;AAC7F,QAAA,IAAA,CAAA,kBAAkB,GAAuC,IAAI,gCAAgC,EAAE,CAAC;AAoB3G,KAAA;AAlBU,IAAA,8BAA8B,CAAC,IAAY,EAAA;QAC9C,QAAQ,IAAI;YACR,KAAK,0BAA0B,CAAC,QAAQ,CAAC;YACzC,KAAK,+BAA+B,CAAC,IAAI;gBACrC,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,KAAK,0BAA0B,CAAC,EAAE,CAAC;YACnC,KAAK,+BAA+B,CAAC,QAAQ,CAAC;YAC9C,KAAK,+BAA+B,CAAC,SAAS;gBAC1C,OAAO,IAAI,CAAC,OAAO,CAAC;YACxB,KAAK,0BAA0B,CAAC,OAAO,CAAC;YACxC,KAAK,+BAA+B,CAAC,UAAU;gBAC3C,OAAO,IAAI,CAAC,YAAY,CAAC;YAC7B,KAAK,+BAA+B,CAAC,MAAM;gBACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACnC,YAAA;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC;SACjC;KACJ;+GAxBQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAHxB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAGT,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACVD,IAAY,YAuBX,CAAA;AAvBD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,QAAa,CAAA;AACb,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,YAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,iBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,YAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,YAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACrC,CAAC,EAvBW,YAAY,KAAZ,YAAY,GAuBvB,EAAA,CAAA,CAAA;;MCHY,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAMS,QAAA,IAAA,CAAA,iBAAiB,GAAoB,IAAI,OAAO,EAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,2BAA2B,GAAgC,IAAI,2BAA2B,EAAE,CAAC;QAC7F,IAAY,CAAA,YAAA,GAAGC,4BAA0B,CAAC;AAgOnD,KAAA;AA9NQ,IAAA,YAAY,CAAC,OAAiB,EAAA;QACnC,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;KAC3D;AAEM,IAAA,QAAQ,CAAC,GAAkB,EAAA;QAChC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACpC;IAEM,sBAAsB,CAAC,GAAkB,EAAE,YAAoB,EAAA;AACpE,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC/B;AAEM,IAAA,UAAU,CAAC,GAAkB,EAAA;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACtC;AAEM,IAAA,cAAc,CAAC,OAAiB,EAAA;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC;KAC/D;AAEM,IAAA,mBAAmB,CAAC,QAAoB,EAAA;AAC7C,QAAA,MAAM,WAAW,GAAe,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEpD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;KAChE;AAEM,IAAA,WAAW,CAAC,YAA4B,EAAE,OAA2B,EAAE,QAAyB,EAAA;AACrG,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC5B,YAAA,OAAO,YAAY;AAClB,iBAAA,KAAK,CAAC,CAAC,WAAW,KAAI;gBACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAG;oBAChC,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;AACpD,iBAAC,CAAC,CAAC;AACH,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvD,OAAO,CAACC,aAAW,CAAC,KAAK,CAAC,IAAI,CAACC,QAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;AAE7G,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,WAAW,CAAC,QAA2B,EAAE,MAAwB,EAAE,OAA0B,EAAA;AAClG,QAAA,OAAOC,YAAU,CAAC,MAAM,CAAC,WAAW,CAAC;cACjC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;AACvC,cAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KACpC;AAEM,IAAA,mBAAmB,CAAC,IAAqB,EAAA;AAC9C,QAAA,MAAM,OAAO,GAAoB,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;KACnD;AAEM,IAAA,4BAA4B,CAAC,IAAqB,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAkB,KAAI;YACrC,MAAM,OAAO,GAAa,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAEtD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAClD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAClB,CAAC;aACH;AAED,YAAA,OAAO,OAAO,CAAC;AACjB,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,iBAAiB,CAAC,GAAkB,EAAA;QACzC,OAAO;YACL,GAAG,GAAG,CAAC,IAAI;AACX,YAAA,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7C,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;SAC5B,CAAC;KACH;AAEM,IAAA,MAAM,CACX,OAAqB,GAAA,EAAE,EAAE,KAAA,GAAgB,GAAG,CAAC,UAAU,EAAE,QAAA,GAAmB,SAAS,CAAC,aAAa,EAAE,OAAO,GAAG,KAAK,EAAA;QAEpH,OAAO;AACL,YAAA,IAAI,EAAE;AACJ,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,GAAG,OAAO;AACX,aAAA;AACD,YAAA,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACvC,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;YACjB,KAAK;YACL,QAAQ;YACR,OAAO;SACR,CAAC;KACH;AAEM,IAAA,cAAc,CAAC,GAAkB,EAAA;AACtC,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ;YACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;KAChC;IAEM,eAAe,CAAC,WAA+B,EAAE,gBAA2B,EAAA;QACjF,MAAM,YAAY,GAAc,EAAE,CAAC;AAEnC,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,MAAwB,KAAI;AAC/C,YAAA,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC;AACnF,kBAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/B,kBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,YAAY,CAAC;KACrB;AAEM,IAAA,sBAAsB,CAAC,QAAgB,EAAE,IAAqB,EAAE,WAA0B,EAAA;AAC/F,QAAA,MAAM,OAAO,GAAoB,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,aAAa,EAAE;AACxC,YAAA,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;SACrE;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;IAEM,8BAA8B,CAAC,QAAgB,EAAE,IAAqB,EAAE,WAA0B,EAAE,OAAO,GAAG,KAAK,EAAA;AACxH,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAkB,KAAI;YAClC,IAAI,OAAO,EAAE;gBACX,OAAO;aACR;YAED,MAAM,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEzC,YAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;gBACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,gBAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;gBACtB,OAAO,GAAG,IAAI,CAAC;aAChB;AAAM,iBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACnC,gBAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;aACxF;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,qBAAqB,CAAC,WAAmB,EAAE,IAAqB,EAAA;AACrE,QAAA,MAAM,OAAO,GAAoB,SAAS,CAAC,IAAI,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAEpD,QAAA,OAAO,OAAO,CAAC;KAChB;AAEM,IAAA,wBAAwB,CAAC,WAAmB,EAAE,IAAqB,EAAE,OAAO,GAAG,KAAK,EAAA;AACzF,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAkB,KAAI;YAClC,IAAI,OAAO,EAAE;gBACX,OAAO;aACR;YAED,MAAM,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEzC,YAAA,IAAI,KAAK,KAAK,WAAW,EAAE;AACzB,gBAAA,MAAM,CAAC,IAAW,EAAE,CAAC,SAAwB,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,CAAC;gBAC5F,OAAO,GAAG,IAAI,CAAC;aAChB;AAAM,iBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACnC,gBAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,QAA2B,EAAE,OAAO,CAAC,CAAC;aAC3F;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;QAChB,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;KACxC;IAEM,uBAAuB,CAAC,GAAkB,EAAE,OAA2B,EAAA;AAC5E,QAAA,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;AACpB,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAA;AAC5D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;AACvF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B;AACtD,aAAA,8BAA8B,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtG,OAAO,gBAAgB,CAAC,oBAAoB,CAAO,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;KAC7F;IAEO,iBAAiB,CACvB,QAAqB,EAAE,KAAgB,GAAA,GAAG,CAAC,UAAU,EAAE,QAAA,GAAmB,SAAS,CAAC,aAAa,EAAA;QAEjG,KAAK,IAAI,CAAC,CAAC;AAEX,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAkB,KAAI;AACzC,YAAA,MAAM,YAAY,GAAkB,IAAI,CAAC,MAAM,CAC7C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,CACN,CAAC;AAEF,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACrC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACjD,YAAY,CAAC,IAAI,CAAC,QAAQ,EAC1B,KAAK,EACL,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAC3B,CAAC;aACH;AACD,YAAA,OAAO,YAAY,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,iBAAiB,CAAC,MAAwB,EAAA;AAChD,QAAA,IAAI,GAAqB,CAAC;QAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AAClC,YAAA,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC;SAC/B;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,OAAO,EAAE;YAC9C,GAAG,GAAG,KAAK,CAAC;SACb;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,cAAc,EAAE;YACtD,GAAG,GAAG,CAAC,CAAC;SACT;aAAM;YACL,GAAG,GAAG,IAAI,CAAC;SACZ;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,eAAe,CAAC,QAA2B,EAAA;QACjD,OAAOF,aAAW,CAAC,QAAQ,CAAC,IAAIC,QAAM,CAAC,QAAQ,CAAC;AAC9C,cAAE,EAAE;AACJ,cAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;KACzB;+GApOU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;yBCbY,UAAU,CAAA;AAErB,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAK;AAEpD,IAAA,SAAS,CAAC,KAAY,EAAE,MAAc,EAAE,OAAkB,EAAA;AAE/D,QAAA,IAAID,aAAW,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO,GAAG,EAAE,CAAC;SACd;QAED,IAAI,MAAM,EAAE;YACV,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC5B,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAClD;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,aAAC,CAAC,CAAC;SACJ;QAED,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC5D;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,QAAQ,CAAC,IAAS,EAAE,MAAc,EAAE,OAAiB,EAAA;AAC3D,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACvC;AAED,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAC/E,CAAC,MAAM,GAAG,CAAC,CAAC;KAChB;AAEO,IAAA,gBAAgB,CAAC,IAAe,EAAA;AACtC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAEO,SAAS,CAAC,IAAS,EAAE,WAAmB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACtF;IAEO,mBAAmB,CAAC,IAAS,EAAE,YAAoB,EAAA;AACzD,QAAA,OAAO,CAACA,aAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAACC,QAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;KACxE;+GA9CU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAVC,YAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,IAAI;mBAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;;;MCOX,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,qICZvC,u2BAuBM,EAAA,MAAA,EAAA,CAAA,0zDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDXO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,u2BAAA,EAAA,MAAA,EAAA,CAAA,0zDAAA,CAAA,EAAA,CAAA;8BAK/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;;;METK,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CACU,OAAmB,EACnB,WAA6B,EAC7B,aAA+B,EAC/B,oBAA2C,EAAA;QAH3C,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAC7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAuB;KAEpD;IAED,IACI,aAAa,CAAC,GAAG,EAAA;QACnB,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;YAChD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzD;aAAM;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC5B;KACF;IACD,IACI,iBAAiB,CAAC,GAAG,EAAA;QACvB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3D;KACF;+GAvBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,IAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA,CAAA;8KAYK,aAAa,EAAA,CAAA;sBADhB,KAAK;gBASF,iBAAiB,EAAA,CAAA;sBADpB,KAAK;;;MCbK,kBAAkB,CAAA;IAEtB,OAAO,0BAA0B,CAAI,QAAa,EAAA;QACvD,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;KAC7D;IAEM,OAAO,wBAAwB,CAAC,QAAyB,EAAA;QAC9D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAoB,EAAE,IAAmB,KAAI;YACnE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AAC7B,YAAA,OAAO,IAAI,CAAC;SACb,EAAE,EAAE,CAAC,CAAC;KACR;AAEM,IAAA,OAAO,iCAAiC,CAC7C,EAAE,UAAU,EAAE,aAAa,EAAqE,EAAA;QAChG,UAAU,CAAC,OAAO,CAAC,CAAC,IAA0B,EAAE,KAAa,KAAI;YAC/D,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACJ;IAEM,OAAO,MAAM,CAAI,UAAe,EAAE,IAAY,EAAE,QAAgB,KAAK,EAAA;AAC1E,QAAA,MAAM,UAAU,GAAG,KAAK,KAAK,KAAK;AAChC,cAAE,CAAC;cACD,KAAK,KAAK,MAAM;kBAChB,CAAC,CAAC;kBACF,CAAC,CAAC;AAEN,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;KAC1F;AAEM,IAAA,wBAAwB,CAAC,WAAmB,EAAE,WAAoB,IAAI,EAAE,UAAkB,CAAC,EAAA;QAChG,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;QAEtC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE;YAClC,OAAO,WAAW,GAAG,IAAI,CAAC;SAC3B;QAED,MAAM,KAAK,GAAG,QAAQ;AACpB,cAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAClD,cAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAE7D,QAAA,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;AACd,QAAA,MAAM,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;AAExB,QAAA,GAAG;YACD,WAAW,IAAI,MAAM,CAAC;AACtB,YAAA,EAAE,IAAI,CAAC;AACT,SAAC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;AAE9E,QAAA,OAAO,CAAG,EAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;KACzD;IAEO,yBAAyB,CAAC,WAAmB,EAAE,CAAS,EAAE,MAAc,EAAE,IAAY,EAAE,KAAe,EAAA;QAC7G,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KACvF;+GAtDU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAHjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAGP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,qBAAqB,CAAA;IAMhC,WACgC,CAAA,YAAiD,EACtD,IAAI,EAAA;QADC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqC;QAL1E,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QACpB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AAMzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KAC3B;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAChC;+GArBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAOtB,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AARd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,oDCRlC,8sBAgBM,EAAA,MAAA,EAAA,CAAA,6gBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8sBAAA,EAAA,MAAA,EAAA,CAAA,6gBAAA,CAAA,EAAA,CAAA;;0BAS5C,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,eAAe,CAAA;;;MEXd,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;QAKS,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAKvB,KAAA;IAHQ,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B;+GANU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;;MCIY,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAmB,SAA6B,EAAA;QAA7B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoB;KAAK;+GAD1C,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,6DCRtC,wDACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDOa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAA;;;MEEtB,yBAAyB,CAAA;AAKpC,IAAA,WAAA,CAAoB,SAA6B,EAAA;QAA7B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoB;QAFjC,IAAM,CAAA,MAAA,GAAG,SAAS,CAAC;KAGlC;IAGM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;KAC7B;+GAdU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AAClC,iBAAA,CAAA;oFAIiB,MAAM,EAAA,CAAA;sBADrB,WAAW;uBAAC,cAAc,CAAA;gBAOpB,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;MCLV,eAAe,CAAA;IAG1B,WACU,CAAA,aAA4B,EAC5B,MAAc,EAAA;QADd,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KACnB;IAEE,QAAQ,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,MAAM;AACf,aAAA,SAAS,CACR,CAAC,KAAK,KAAI;AACR,YAAA,IAAI,KAAK,YAAY,eAAe,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;aACrC;AACH,SAAC,CAAC,CAAC;QACP,IAAI,CAAC,aAAa,CAAC,kBAAkB;aAClC,SAAS,CAAC,OAAO,IAAG;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;gBACpB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE;oBAC3C,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClB,qBAAC,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;iBAC/B;AAAM,qBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC/B,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACjB,EAAE,IAAI,CAAC,CAAC;iBACV;AAEH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,KAAK,CAAC,MAAe,EAAA;QAC1B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;AACjD,YAAA,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SACtC;KACF;+GAxCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kDCT5B,4nBASA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDAa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,4nBAAA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA,CAAA;;;AELlB,SAAU,SAAS,CAAC,KAAU,EAAA;AAClC,IAAA,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AACK,SAAU,UAAU,CAAC,KAAU,EAAA;AACnC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAU,EAAA;AACjC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAU,EAAA;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAU,EAAA;AACjC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAEK,SAAU,WAAW,CAAC,KAAU,EAAA;AACpC,IAAA,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC;AACtC,CAAC;AAEK,SAAU,MAAM,CAAC,KAAU,EAAA;IAC/B,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAEK,SAAU,kBAAkB,CAAC,KAAsB,EAAA;IACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACxC,QAAA,OAAO,IAAI,CAAC;KACd;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAEK,SAAU,6BAA6B,CAAC,KAAa,EAAA;AACzD,IAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAEK,SAAU,iBAAiB,CAAC,KAA6B,EAAA;AAC7D,IAAA,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/C;;ACxCA,IAAY,gBAKX,CAAA;AALD,CAAA,UAAY,gBAAgB,EAAA;AACvB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,UAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACpB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAK3B,EAAA,CAAA,CAAA;;MCIY,iBAAiB,CAAA;AAI5B,IAAA,WAAA,CAA2C,OAAuB,EAAA;QAAvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;AAF1D,QAAA,IAAA,CAAA,eAAe,GAA0B,IAAI,KAAK,EAAkB,CAAC;KAEN;IAEhE,kBAAkB,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAEM,oBAAoB,GAAA;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC5C;AAEM,IAAA,oBAAoB,CAAC,MAAsB,EAAA;AAChD,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;KAClC;AAEM,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;KACxC;AAEM,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;KACjE;AAEM,IAAA,mBAAmB,CAAC,MAAsB,EAAA;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;SAC3B;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC5C;AAEO,IAAA,QAAQ,CAAC,MAAsB,EAAA;AACrC,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAoB,MAAM,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACvF;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAEO,IAAA,eAAe,CAAC,eAAsC,EAAA;QAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;KAC5D;AApDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAIR,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAJtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAKc,MAAM;2BAAC,aAAa,CAAA;;;MCHtB,oBAAoB,CAAA;IAI/B,WAAoB,CAAA,MAAc,EACd,iBAAoC,EAAA;QADpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAK;AAEtD,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3G;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;KACpE;+GAdU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,uDCVjC,8uBAoBM,EAAA,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDVO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,8uBAAA,EAAA,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA,CAAA;;;AEN7B,IAAY,cAGX,CAAA;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;AACZ,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;AACd,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA;;ACHD,IAAY,YAUX,CAAA;AAVD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAVW,YAAY,KAAZ,YAAY,GAUvB,EAAA,CAAA,CAAA;;MCCY,eAAe,CAAA;AAN5B,IAAA,WAAA,GAAA;AAOkB,QAAA,IAAA,CAAA,WAAW,GAAiB,YAAY,CAAC,OAAO,CAAC;AAUlE,KAAA;AAPC,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,OAAO,CAAQ,KAAA,EAAA,IAAI,CAAC,WAAW,EAAE,CAAC;KACnC;AAED,IAAA,IAAW,oBAAoB,GAAA;AAC7B,QAAA,OAAO,EAAE,CAAC,CAAkB,eAAA,EAAA,IAAI,CAAC,aAAa,CAAE,CAAA,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;KACzE;+GAVU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,0HCX5B,uJAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uJAAA,EAAA,CAAA;8BAG/B,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;;;MEHK,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;QAkBkB,IAAe,CAAA,eAAA,GAA0B,cAAc,CAAC;AAkBzE,KAAA;AAvBC,IAAA,IACI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;KACtC;AAID,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,UAAU,CAAC;SACnB;AAED,QAAA,OAAO,CAAO,IAAA,EAAA,IAAI,CAAC,WAAW,EAAE,CAAC;KAClC;AAED,IAAA,IAAW,iBAAiB,GAAA;QAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,OAAO,EAAE;YAC7C,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QAED,OAAO,YAAY,CAAC,IAAI,CAAC;KAE1B;+GA7BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,uPCVnC,wXAiBA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wXAAA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA,CAAA;8BAG/B,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAGF,aAAa,EAAA,CAAA;sBADhB,WAAW;uBAAC,eAAe,CAAA;;;METjB,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wDCRjC,6EAGA,EAAA,MAAA,EAAA,CAAA,oMAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6EAAA,EAAA,MAAA,EAAA,CAAA,oMAAA,CAAA,EAAA,CAAA;;;MEEpC,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0DCRnC,oaAaA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oaAAA,EAAA,CAAA;;;AEN1C,MAAM,cAAc,GAAG,YAAY;;MCU7B,iBAAiB,CAAA;AAI5B,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,CAC1C,oBAAoB,EAAE,CACvB,CAAC;KACH;IAED,IAAI,WAAW,CAAC,KAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;KAChC;AAMD,IAAA,WAAA,CACU,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AArBhB,QAAA,IAAA,CAAA,YAAY,GAAuC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAgBlE,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;AAExB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AAKjC,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,GAAG,IAAI,GAAG,YAAY,aAAa,CAAC,EAC3C,oBAAoB,EAAE,EACtB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACjD;IAEM,kBAAkB,GAAA;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;aACvE,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;KACtD;AAEM,IAAA,eAAe,CAAC,cAA8B,EAAE,WAAA,GAAsB,EAAE,EAAA;QAE7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC5E,QAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU;cAC9C,IAAI,CAAC,eAAe,CACpB,cAAc,CAAC,UAAU,EACzB,iBAAiB,GAAG,CAAA,EAAG,iBAAiB,CAAC,KAAK,GAAG,GAAG,EAAE,CACvD;cACC,EAAE,CAAC;QAEP,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,gBAAgB,CAAC;SACzB;QAED,OAAO;YACL,iBAAiB;AACjB,YAAA,GAAG,gBAAgB;SACpB,CAAC;KAEH;IAEM,eAAe,CAAC,cAA8B,EAAE,MAAc,EAAA;AACnE,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,SAAS,CAAC;SAClB;QAED,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACnD,KAAK,EAAE,MAAM,GAAG,OAAO;SACxB,CAAC;KACH;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;+GA1EU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,0BAA0B,CAAA;AAWrC,IAAA,WAAA,CAAoB,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QATjD,IAAQ,CAAA,QAAA,GAAQ,SAAS,CAAC;AAEjC;;;;AAIG;QACa,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;KAE4B;IAErD,QAAQ,GAAA;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;KACzD;+GAfU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,kGCXvC,i9BA0BA,EAAA,MAAA,EAAA,CAAA,yoBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,i9BAAA,EAAA,MAAA,EAAA,CAAA,yoBAAA,CAAA,EAAA,CAAA;mFAW/B,SAAS,EAAA,CAAA;sBAAxB,KAAK;;;AEpBR,IAAY,gBAOX,CAAA;AAPD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,EAAS,CAAA;AACT,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,YAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,QAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAc,CAAA;AAClB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,GAO3B,EAAA,CAAA,CAAA;;MCEY,wBAAwB,CAAA;AAQ5B,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE;YAC1C,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;AAEO,IAAA,wBAAwB,CAAC,OAAsB,EAAA;QACrD,OAAO,OAAO,CAAC,OAAO;AAChB,aAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI;AACrC,gBAAA,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;KACpD;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;KACpC;+GAtBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,kMAHzB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;8BAEiB,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,GAAG,EAAA,CAAA;sBAAlB,KAAK;;;ACJR;AAOM,MAAO,0BAA2B,SAAQ,wBAAwB,CAAA;AAmBtE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AAlBM,QAAA,IAAA,CAAA,uBAAuB,GAA6B,EAAE,YAAY,EAAE,MAAM,EAAC,CAAA;QAC3E,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAI3B,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AACnC,QAAA,IAAA,CAAA,YAAY,GAA4B,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,eAAe,GAA4B,IAAI,YAAY,EAAE,CAAC;AAE/D,QAAA,IAAA,CAAA,UAAU,GAAW,gBAAgB,CAAC,KAAK,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAW,gBAAgB,CAAC,KAAK,CAAC;KAM3D;IAED,IACI,OAAO,CAAC,KAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;KACrC;AAEe,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChD,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACxD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC5C;KACF;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SACpD;KACF;AAEM,IAAA,cAAc,CAAC,KAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAES,IAAA,iBAAiB,CAAC,KAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;+GA/CU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC1B,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnB9B,+kBAwBA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDNa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+kBAAA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,CAAA;wDAGQ,QAAQ,EAAA,CAAA;sBAA9D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAC9B,uBAAuB,EAAA,CAAA;sBAAtC,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAEU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;gBACW,YAAY,EAAA,CAAA;sBAA5B,MAAM;gBACU,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBAYH,OAAO,EAAA,CAAA;sBADV,KAAK;;;ME3BK,uBAAuB,CAAA;AAyBlC,IAAA,WAAA,CAAoB,cAAiC,EAAA;QAAjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QApBrC,IAAe,CAAA,eAAA,GAAa,EAAE,CAAC;QAE/B,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAwB,CAAA,wBAAA,GAAY,IAAI,CAAC;AAOxC,QAAA,IAAA,CAAA,UAAU,GAAoC,IAAI,YAAY,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,cAAc,GAAoC,IAAI,YAAY,EAAE,CAAC;AAC/E,QAAA,IAAA,CAAA,iBAAiB,GAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;QAC1D,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;AAIhC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KAIlC;IAEM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,eAAe,GAAG,iBAAiB,EAAE,CAAC;SAC5C;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEM,oBAAoB,GAAA;QACzB,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,EAAE,CAAA,CAAE,CAAC;KACzD;AAED,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;KACvC;AAED,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;KACvC;AAED,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;KAC/B;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;KACtC;AAED,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;KACxB;IAEM,QAAQ,GAAA;AACb,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;AAEzD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QACxC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAE7C,QAAA,IAAI,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAK,OAAO,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAG;AACvD,YAAA,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;SAC9D;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;AAEvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAE,CAAC;KAC5F;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAEM,IAAA,eAAe,CAAC,IAAY,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACnF;AAEM,IAAA,iBAAiB,CAAC,gBAAwB,EAAA;QAC/C,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,gBAAgB,CAAC,CAAC;KACjF;IAEM,iBAAiB,GAAA;QACtB,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,YAAA,oBAAoB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;SACpD;AACD,QAAA,OAAO,oBAAoB,CAAC;KAC7B;IAEO,aAAa,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3D;IAEO,YAAY,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACnE;IAEO,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,cAAc;AAClB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,aAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;IAEO,8BAA8B,CAAC,oBAA4B,EAAE,gBAAwB,EAAA;AAC3F,QAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,SAAS,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACvE;AAED,IAAA,IAAY,UAAU,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1C;AAEO,IAAA,gBAAgB,CAAC,YAAsB,EAAA;AAC7C,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC/B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACjD,SAAC,CAAC,CAAC;KACJ;+GA5JU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,0XCdpC,+1EA+CM,EAAA,MAAA,EAAA,CAAA,gzEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDjCO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+1EAAA,EAAA,MAAA,EAAA,CAAA,gzEAAA,CAAA,EAAA,CAAA;sFAI/B,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,wBAAwB,EAAA,CAAA;sBAAvC,KAAK;gBAOW,UAAU,EAAA,CAAA;sBAA1B,MAAM;gBACU,cAAc,EAAA,CAAA;sBAA9B,MAAM;;AA+IT,SAAS,iBAAiB,GAAA;IACxB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B;;AEhLA,IAAY,gBAKX,CAAA;AALD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAK3B,EAAA,CAAA,CAAA;;ACLD,IAAY,UAKX,CAAA;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA;;MCLY,kBAAkB,CAAA;aACL,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC,EAAA;aACnB,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC,EAAA;aAC/B,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC,EAAA;aAC9B,IAAO,CAAA,OAAA,GAAW,UAAU,CAAC,EAAA;;;ACJvD,IAAY,kBAIX,CAAA;AAJD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,kBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACzC,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA;;ACJD,IAAY,SAIX,CAAA;AAJD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA;;ACJD,IAAY,KAqBX,CAAA;AArBD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,mBAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,kBAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,aAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,WAAkB,CAAA;AAClB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,aAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,mBAA+B,CAAA;AAC/B,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,qBAAmC,CAAA;AACnC,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,2BAA0C,CAAA;AAC1C,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,aAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,iBAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,oBAA2B,CAAA;AAC3B,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,8BAAuC,CAAA;AACvC,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,oBAA6B,CAAA;AAC7B,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,oBAA2B,CAAA;AAC3B,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,iBAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC5B,CAAC,EArBW,KAAK,KAAL,KAAK,GAqBhB,EAAA,CAAA,CAAA;;ACrBD,IAAY,aAKX,CAAA;AALD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA;;MCIY,oBAAoB,CAAA;IAQ/B,WAA0C,CAAA,YAAgD,EACvD,IAA4B,EAAA;QADrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAoC;QACvD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwB;AAPxD,QAAA,IAAA,CAAA,OAAO,GAAa,CAAC,oCAAoC,CAAC,CAAC;AAQ9D,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AACtC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5C,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACzB;KACJ;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAChC;+GAzBU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAQX,YAAY,EAAA,EAAA,EAAA,KAAA,EACtB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AATd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oDCTjC,+3BAkBA,EAAA,MAAA,EAAA,CAAA,whBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDTa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+3BAAA,EAAA,MAAA,EAAA,CAAA,whBAAA,CAAA,EAAA,CAAA;;0BAUlC,MAAM;2BAAC,YAAY,CAAA;;0BAC7B,MAAM;2BAAC,eAAe,CAAA;;;MEZd,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;QAEU,IAAY,CAAA,YAAA,GAA4B,EAAE,CAAC;KAkDpD;IAhDQ,eAAe,GAAA;AACpB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAClC,aAAA,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;KACvC;AAEM,IAAA,cAAc,CAAC,MAAwB,EAAA;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACvC;AAEM,IAAA,eAAe,CAAC,WAAyB,EAAA;AAC9C,QAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;SACtC;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;SACnC;KACF;AAEM,IAAA,mBAAmB,CAAC,OAA2B,EAAA;AACpD,QAAA,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;AACpB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE;gBACzD,IAAI,CAAC,eAAe,CAAC;oBACnB,UAAU,EAAE,GAAG,CAAC,IAAI;oBACpB,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,IAAIN,4BAA0B,CAAC,QAAQ;AACxE,oBAAA,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,SAAS;AACvC,oBAAA,YAAY,EAAE,GAAG;AAClB,iBAAA,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;AAEO,IAAA,oBAAoB,CAAC,WAAyB,EAAA;AACpD,QAAA,OAAO,CAACC,aAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;KACvE;AAEO,IAAA,eAAe,CAAC,WAAyB,EAAA;AAC/C,QAAA,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACxE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;SAChE;KACF;AAEO,IAAA,kBAAkB,CAAC,WAAyB,EAAA;QAClD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACnC;AACF;;MCnDY,OAAO,CAAA;IAClB,WAAmB,CAAA,SAA8B,EAAS,WAAwB,EAAA;QAA/D,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;QAAS,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;IAE/E,kBAAkB,CAAC,QAAgB,EAAE,WAAmB,EAAA;QAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC5D,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAA4B,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;KACjG;IAEM,gBAAgB,GAAA;AACrB,QAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;KACjF;IAEM,cAAc,GAAA;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7D;IAEM,mBAAmB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KAChE;IAEM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;KACvC;IAEM,iBAAiB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACzC;IAEM,kBAAkB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACpC;IAEM,OAAO,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC5B;IAEM,gBAAgB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC/B;AAEM,IAAA,eAAe,CAAC,QAA4B,EAAA;QACjD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;KAC1D;AAEM,IAAA,gBAAgB,CAAC,QAA4B,EAAA;QAClD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;KAC3D;AAEM,IAAA,kBAAkB,CAAC,QAA4B,EAAA;QACpD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;KAC7D;AAEM,IAAA,oBAAoB,CAAC,QAA4B,EAAA;QACtD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC;KAC/D;AAEM,IAAA,cAAc,CAAC,QAA4B,EAAA;QAChD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;KACzD;IAEM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC7B;IAEM,0BAA0B,GAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAClC;IAEM,sBAAsB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAC9E;AAEO,IAAA,sBAAsB,CAAC,GAAkB,EAAA;QAC/C,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,KAAI;AACnD,YAAA,OAAO,YAAY,CAAC,GAAG,KAAK,GAAG,CAAC;AAClC,SAAC,CAAC,CAAC;KACJ;IAEO,gBAAgB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC;KACnD;AAEO,IAAA,mBAAmB,CAAC,QAAgB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC;KAC1E;AAEO,IAAA,QAAQ,CAAC,GAAkB,EAAA;QACjC,OAAO,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;KAChF;AACF;;MC5EY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIS,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAa,CAAC;QAC9C,IAAW,CAAA,WAAA,GAAc,EAAE,CAAC;AAyDpC,KAAA;IAvDQ,IAAI,CAAC,OAAe,EAAE,MAAsB,EAAA;AACjD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;SAC3F;AAED,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KAC3F;IAEM,OAAO,CAAC,OAAe,EAAE,MAAsB,EAAA;AACpD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;SACxF;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACjF;IAEM,OAAO,CAAC,OAAe,EAAE,MAAsB,EAAA;AACpD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;SAChG;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACzF;IAEM,KAAK,CAAC,OAAe,EAAE,MAAsB,EAAA;AAClD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;SACtF;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KAC/E;AAEM,IAAA,SAAS,CAAC,EAAU,EAAA;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACjC;KACF;IAEO,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAqB,EAAA;AAC1E,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;AAC/B,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,MAAM,EAAE,MAAM;SACf,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;AACjC,YAAA,OAAa,MAAM,CAAC;SACrB;AACD,QAAA,OAAO,EAAE,CAAC;KACX;+GA1DU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCJY,oBAAoB,CAAA;AAa/B,IAAA,WAAA,CACU,mBAAwC,EACxC,MAAqB,EACtB,SAA6C,EACpB,IAAgB,EAAA;QAHxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoC;QACpB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAf3C,IAAmB,CAAA,mBAAA,GAAuB,EAAE,CAAC;QAC7C,IAAoB,CAAA,oBAAA,GAAe,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,YAAY,EAAE,CAAC;QAKhD,IAAW,CAAA,WAAA,GAA2B,eAAe,CAAC;KASrE;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,iCAAiC,GAAGgB,WAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC;AAClE,aAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACT,YAAA,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAClF,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACvD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACvD;AAEM,IAAA,eAAe,CAAC,MAAwB,EAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAsB,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACxG,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC3C;KACF;AAEM,IAAA,YAAY,CAAC,MAAwB,EAAA;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAsB,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACxG,QAAA,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;KACnB;AAEM,IAAA,gBAAgB,CAAC,MAAgB,EAAA;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAsB,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACzG,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC5C;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACtD;IAEO,iBAAiB,GAAA;QACvB,IAAI,MAAM,GAAe,EAAE,CAAC;AAC5B,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,MAAM,EAAA;AACvC,YAAA,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,IAAI,EAAA;gBACjD,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,aAAa,CAAC,MAAwB,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAsB,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACzG,QAAA,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;KACnB;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAC5C;AAEO,IAAA,yBAAyB,CAAC,eAAmC,EAAA;AACnE,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACzB,OAAO;SACR;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAG;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAe,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YACrF,OAAO,KAAK,GAAG,CAAC,CAAC;AACnB,SAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAA;AACnB,YAAA,OAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACrG,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACrD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACzC;IAEM,iBAAiB,GAAA;AACtB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACvD;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACzC;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;cACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;cAC3B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACzD;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;AAEM,IAAA,6BAA6B,CAAC,MAAc,EAAA;QACjD,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;AAChE,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACzD,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,mDAAA,CAAqD,CAAC,CAAC;KAC5E;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;AACpF,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC1G,gBAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;iBACnE;aACF;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACtD;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;YACpF,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC1G,gBAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;iBAClE;aACF;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACtD;AAEO,IAAA,WAAW,CAAC,IAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC5B;AAEO,IAAA,WAAW,CAAC,WAA+B,EAAA;AACjD,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAsB,KAAI;YAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAA,IAAI,eAAe,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aAC1G;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACvD;IAEO,WAAW,GAAA;QACjB,MAAM,cAAc,GAAqC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAc,KAAI;YAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;aAC7B;AACD,YAAA,OAAO,UAAU,CAAC;AACpB,SAAC,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5F,aAAA,OAAO,CAAC,CAAC,IAAsB,KAAI;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;AACL,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAEzE,QAAA,OAAO,cAAc,CAAC;KACvB;AAEO,IAAA,YAAY,CAAC,OAAmB,EAAE,KAAa,EAAE,SAAiB,EAAA;AACxE,QAAA,IAAI,eAAe,GAAG,KAAK,GAAG,SAAS,CAAC;QACxC,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE;AAC5D,YAAA,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC5C,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;SAC7B;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAEM,IAAA,qBAAqB,CAAC,OAA2B,EAAA;AACtD,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KAC7D;IAEM,sBAAsB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,mCAAmC,EAAE;AAC7C,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5F;aAAM;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5F;AACD,QAAA,IAAI,CAAC,mCAAmC,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC;KACtF;IAEM,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAClF;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAClF;AACD,QAAA,IAAI,CAAC,iCAAiC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC;KAClF;IAEM,mBAAmB,GAAA;QACxB,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;AAC3D,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/H,SAAC,CAAC,CAAC;KACJ;IAEM,qBAAqB,GAAA;QAC1B,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;YAChE,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACJ;IAEO,gCAAgC,GAAA;AACtC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KACrG;AA7PU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,6GAiBrB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAjBd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,8HCfjC,0mKAsGA,EAAA,MAAA,EAAA,CAAA,olFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvFa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,0mKAAA,EAAA,MAAA,EAAA,CAAA,olFAAA,CAAA,EAAA,CAAA;;0BAsB1B,MAAM;2BAAC,eAAe,CAAA;yCAbR,yBAAyB,EAAA,CAAA;sBAAzC,MAAM;;;MEJI,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAsBmB,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,oBAAoB,GAA0B,IAAI,YAAY,EAAE,CAAC;AA0DnF,KAAA;AA1EC,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;KAC5D;AAED,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACtC;IAYM,YAAY,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;AAC7B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACjC;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAClC;KACF;AAEM,IAAA,cAAc,CAAC,OAAgB,EAAA;QACpC,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxB;aAAM;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvB;KACF;;;AAIM,IAAA,OAAO,CAAC,OAAY,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAChC;AAEM,IAAA,WAAW,CAAC,QAA2B,EAAA;AAC5C,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AACrC,cAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C,cAAE,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KACpD;IAEM,oBAAoB,CAAC,aAA6B,EAAE,KAAwB,EAAA;QACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAqB,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAC/F,IAAI,QAAQ,EAAE;YACZ,OAAO,QAAQ,CAAC,KAAK,CAAC;SACvB;AACD,QAAA,OAAO,EAAE,CAAC;KACX;IAEM,aAAa,GAAA;QAClB,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAChC,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;SACxC,CAAC;KACH;AAEuB,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,CAAC,QAA2B,KACpE,WAAW,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC;AACvC,UAAE,EAAE;AACJ,UAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAA;+GA3Ef,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,4RAHrB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAE,CAAA;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;8BAWiB,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAEW,cAAc,EAAA,CAAA;sBAA9B,MAAM;gBACU,oBAAoB,EAAA,CAAA;sBAApC,MAAM;;;ACjCT,IAAY,YAIX,CAAA;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;;MCDY,UAAU,CAAA;AACd,IAAA,wBAAwB,CAAC,SAAiB,EAAA;AAC/C,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC7B;IAEM,8BAA8B,CAAC,SAAiB,EAAE,KAAa,EAAA;QACpE,MAAM,QAAQ,GAAa,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACpE,QAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5C;+GARU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAV,UAAU,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;;MCKE,0BAA0B,CAAA;AAC9B,IAAA,8BAA8B,CAAC,OAA2B,EAAA;QAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAwB,MAAM;YAChD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;AAC9B,SAAA,CAAC,CAAC,CAAC;KACL;+GANU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCKY,WAAW,CAAA;AACtB,IAAA,WAAA,CACU,UAAsB,EACtB,WAAwB,EACxB,0BAAsD,EAAA;QAFtD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;KAC5D;AAEG,IAAA,WAAW,CAAC,SAAoB,EAAA;QACrC,SAAS,CAAC,OAAO,EAAE,CAAC;KACrB;AAEM,IAAA,UAAU,CAAC,SAAoB,EAAA;QACpC,SAAS,CAAC,MAAM,EAAE,CAAC;KACpB;AAEM,IAAA,YAAY,CAAC,SAAoB,EAAA;QACtC,OAAO,SAAS,CAAC,KAAK,CAAC;KACxB;AAEM,IAAA,kBAAkB,CAAC,QAAgB,EAAA;AACxC,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,GAAG,EAAE;AAC9B,YAAA,OAAO,QAAQ,CAAC;SACjB;AAED,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE;AAC/B,YAAA,OAAO,MAAM,CAAC;SACf;AAED,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE;AAC/B,YAAA,OAAO,MAAM,CAAC;SACf;AAED,QAAA,OAAO,EAAE,CAAC;KACX;IAEM,cAAc,CAAC,UAAkB,EAAE,QAAgB,EAAA;AACxD,QAAA,IAAI,gBAAwB,CAAC;AAE7B,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,GAAG,EAAE;YAC9B,gBAAgB,GAAG,CAAC,CAAC;SACtB;aAAM;YACL,gBAAgB,GAAG,CAAC,CAAC;SACtB;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;KACrF;AAEM,IAAA,UAAU,CAAC,UAA2B,EAAA;QAC3C,MAAM,cAAc,GAAc,EAAE,CAAC;AAErC,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAwB,KAAI;AAE9C,YAAA,QAAQ,SAAS,CAAC,IAAI;AACpB,gBAAA,KAAK,YAAY,CAAC,KAAK,EAAE;AACvB,oBAAA,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAClE,MAAM;iBACP;AACD,gBAAA,KAAK,YAAY,CAAC,KAAK,EAAE;oBACvB,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAC5C,SAAS,CAAC,SAAS,IAAI,EAAE,EACzB,SAAS,CAAC,UAAU,IAAI,EAAE,CAC3B,CAAC;oBACF,MAAM;iBACP;gBACD,SAAS;oBACP,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAC9C,SAAS,CAAC,SAAS,IAAI,IAAI,EAC3B,SAAS,CAAC,UAAU,IAAI,EAAE,CAC3B,CAAC;iBACH;aACF;AAEH,SAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;KAC/C;IAEM,QAAQ,CAAC,SAAoB,EAAE,IAAe,EAAA;AACnD,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AACtD,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,mBAAmB,CAAI,SAAoB,EAAE,GAAW,EAAE,GAAM,EAAA;QACrE,MAAM,WAAW,GAAoB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzE,QAAA,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC3B;IAEM,mBAAmB,CAAI,SAAoB,EAAE,GAAW,EAAA;QAC7D,MAAM,WAAW,GAAoB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzE,OAAO,WAAW,CAAC,KAAK,CAAC;KAC1B;IAEM,cAAc,CAAC,SAAoB,EAAE,GAAW,EAAA;AACrD,QAAA,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC3B;AAEM,IAAA,sBAAsB,CAAC,OAA2B,EAAA;QACvD,MAAM,UAAU,GAAoB,IAAI,CAAC,0BAA0B,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;AAC5G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;KACpC;+GApGU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAX,WAAW,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;ACVX,IAAY,QAGX,CAAA;AAHD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;MCMY,iBAAiB,CAAA;IAC5B,WACS,CAAA,WAA8C,EAClB,IAAkB,EAAA;QAD9C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmC;QAClB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;KAEtD;AALU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kDAGlB,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAHjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,oDCT9B,yKAGW,EAAA,MAAA,EAAA,CAAA,+PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDME,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,yKAAA,EAAA,MAAA,EAAA,CAAA,+PAAA,CAAA,EAAA,CAAA;;0BAOrB,MAAM;2BAAC,kBAAkB,CAAA;;;MEZjB,iBAAiB,CAAA;aACL,IAAQ,CAAA,QAAA,GAAW,IAAI,CAAC,EAAA;;;MCWpC,eAAe,CAAA;IAC1B,WACS,CAAA,QAAqB,EACpB,aAA4B,EAAA;QAD7B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QACpB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAEM,OAAO,CAAC,OAAe,EAAE,MAA+B,EAAA;QAC7D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;KACjF;IAEM,IAAI,CAAC,OAAe,EAAE,MAA+B,EAAA;QAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;KAC9E;IAEM,KAAK,CAAC,OAAe,EAAE,MAA+B,EAAA;QAC3D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;KAC/E;IAEM,OAAO,CAAC,OAAe,EAAE,MAA+B,EAAA;QAC7D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;KACjF;IAEO,YAAY,CAAC,IAAkB,EAAE,UAAkB,EAAA;AACzD,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACjD,kBAAkB,EAAE,QAAQ,CAAC,KAAK;YAClC,gBAAgB,EAAE,QAAQ,CAAC,GAAG;YAC9B,IAAI;YACJ,UAAU;YACV,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;AACrC,SAAA,CAAC,CAAC;KACJ;+GA/BU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA7B,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,aAAa,CAAA;AAN1B,IAAA,WAAA,GAAA;AAUkB,QAAA,IAAA,CAAA,WAAW,GAAiB,YAAY,CAAC,OAAO,CAAC;QACjD,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAU7C,KAAA;AARC,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,CAAQ,KAAA,EAAA,IAAI,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1E;AAED,IAAA,IAAY,iBAAiB,GAAA;QAC3B,OAAO,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;KAC1C;+GAdU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,oLCV1B,0HAIA,EAAA,MAAA,EAAA,CAAA,kGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0HAAA,EAAA,MAAA,EAAA,CAAA,kGAAA,CAAA,EAAA,CAAA;8BAI/B,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;;;MELK,4BAA4B,CAAA;AAsBvC,IAAA,WAAA,CAAqB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QApBrC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAQzB,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAyB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,YAAY,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,SAAS,GAAyB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,YAAY,EAAE,CAAC;QAEvD,IAAK,CAAA,KAAA,GAAiB,KAAK,CAAC;QAC5B,IAAkB,CAAA,kBAAA,GAA4B,gBAAgB,CAAC;KAErB;AAEnD,IAAA,cAAc,CAAC,UAA4B,EAAA;QAChD,OAAO,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,CAAC;KAC/B;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC7B;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;SACzE;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC3B;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;SAC/E;KACF;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;KACzE;AAED,IAAA,IAAW,kBAAkB,GAAA;QAC3B,OAAO,IAAI,CAAC,UAAU;YACf,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACzB;AAED,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACzB;AAED,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,eAAe;YACzB,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACpB;AAED,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,cAAc;YACxB,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACpB;+GA1FU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAkB,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,2iBCXzC,m5CA0CA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD/Ba,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m5CAAA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,CAAA;iFAG/B,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBAEW,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBACU,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,QAAQ,EAAA,CAAA;sBAAxB,MAAM;gBACU,UAAU,EAAA,CAAA;sBAA1B,MAAM;;;AEnBH,MAAO,yBAA0B,SAAQ,wBAAwB,CAAA;AAErE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KACxB;+GARU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,qFCTtC,udAmBA,EAAA,MAAA,EAAA,CAAA,qNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDVa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,udAAA,EAAA,MAAA,EAAA,CAAA,qNAAA,CAAA,EAAA,CAAA;;;AEG3C,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AACxD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;+GAHU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAFhB,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,iDCR/E,yXAUA,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDAa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAA,gBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,yXAAA,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,CAAA;;;AECzE,MAAO,4BAA6B,SAAQ,wBAAwB,CAAA;AAGxE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;QAHM,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;KAI3C;+GALU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,8HCTzC,kZAqBA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kZAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,CAAA;wDAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;;;AEAF,MAAO,uBAAwB,SAAQ,oBAAoB,CAAA;AAG/D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;+GALU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAFvB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,iDCRtF,msBAegB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGjB,eAAA,EAAA,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAA,uBAAyB,EAAE,CAAC,EAAA,QAAA,EAAA,msBAAA,EAAA,CAAA;wDAGpE,YAAY,EAAA,CAAA;sBAA3B,KAAK;;;AEXR,IAAY,kBAGX,CAAA;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AAC3B,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA;;ACHD,IAAY,YAIX,CAAA;AAJD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AACjC,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;;MCKY,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;QAOkB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAA0B,IAAI,YAAY,EAAE,CAAC;QAEvD,IAAK,CAAA,KAAA,GAAiB,KAAK,CAAC;AAK7C,KAAA;AAHQ,IAAA,WAAW,CAAC,YAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACnC;+GATU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,2ICTxC,qSAYY,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDHC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACE,0BAA0B,EAAA,eAAA,EAGnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qSAAA,EAAA,CAAA;8BAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAEW,SAAS,EAAA,CAAA;sBAAzB,MAAM;;;AEGH,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;AAP9D,IAAA,WAAA,GAAA;;AAoB4B,QAAA,IAAA,CAAA,oBAAoB,GAA0B,IAAI,YAAY,EAAE,CAAC;QAE1E,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;AA0CzC,KAAA;AAxCC,IAAA,IAAW,gBAAgB,GAAA;AAEzB,QAAA,IAAI,QAAQ,GAAsB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC5B,YAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;SACvB;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAG;YAChC,IAAI,WAAW,GAAU,GAAG,CAAC;AAC7B,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACjE,gBAAA,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aAClE;AACD,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClF,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC;KACxD;AAEM,IAAA,qBAAqB,CAAC,YAAqB,EAAA;AAChD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;AAED,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;SAC7C;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;AAGD,IAAA,IAAW,eAAe,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,EAAG,CAAC;KACxF;AAEO,IAAA,aAAa,CAAC,GAAG,EAAA;AACvB,QAAA,QAAQ,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;KACjD;+GAzDU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,iDCbnF,itBAa8I,EAAA,MAAA,EAAA,CAAA,spBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuB,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDEjI,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uCAAuC,EAGhC,eAAA,EAAA,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAA,oBAAsB,EAAE,CAAC,EAAA,QAAA,EAAA,itBAAA,EAAA,MAAA,EAAA,CAAA,spBAAA,CAAA,EAAA,CAAA;8BAGxD,GAAG,EAAA,CAAA;sBAA3B,KAAK;gBACmB,QAAQ,EAAA,CAAA;sBAAhC,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACmB,GAAG,EAAA,CAAA;sBAA3B,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAGoB,oBAAoB,EAAA,CAAA;sBAA7C,MAAM;;;AEPH,MAAO,yBAA0B,SAAQ,oBAAoB,CAAA;IAcjE,IAAkD,gBAAgB,CAAC,OAAmC,EAAA;AACpG,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;KAC9B;AAED,IAAA,WAAA,CACU,cAAiC,EAAA;AAEzC,QAAA,KAAK,EAAE,CAAC;QAFA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAd3B,IAAO,CAAA,OAAA,GAAoB,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,oBAAoB,GAAoC,IAAI,YAAY,EAAE,CAAC;QAGrF,IAAQ,CAAA,QAAA,GAAQ,YAAY,CAAC;QAC7B,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;AAC1C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KAUlC;AAED,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;SACjC;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEe,IAAA,OAAO,CAAC,OAAY,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACtC;;IAGM,6BAA6B,GAAA;AAClC,QAAA,MAAM,SAAS,GAAsB;AACnC,YAAA,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,aAAa,EAAE,kBAAkB,CAAC,SAAS;SAC5C,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAE3C;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,eAAe;AACrB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,iBAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtB,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;SACN;AAAM,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,iBAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtB,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;SAEN;aAAM;AACL,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,KAAK,EAAE;AACzC,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACvC;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;AAEO,IAAA,cAAc,CAAC,OAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;AACxG,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACrC;+GA9EU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAFzB,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,EAgB3E,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,0BAA0B,uECnCvC,sqCA6BA,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,aAAA,EAAA,KAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAA,yBAA2B,EAAE,CAAC,EAAA,QAAA,EAAA,sqCAAA,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA,CAAA;sFAKtE,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACW,oBAAoB,EAAA,CAAA;sBAApC,MAAM;gBAO2C,gBAAgB,EAAA,CAAA;sBAAjE,SAAS;uBAAC,0BAA0B,CAAA;;;AEtBjC,MAAO,sBAAuB,SAAQC,sBAAoB,CAAA;AAK9D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;QAJM,IAAO,CAAA,OAAA,GAAoB,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,oBAAoB,GAAoC,IAAI,YAAY,EAAE,CAAC;KAI3F;;IAGM,0BAA0B,GAAA;AAC/B,QAAA,MAAM,SAAS,GAAsB;AACnC,YAAA,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,aAAa,EAAE,kBAAkB,CAAC,MAAM;SACzC,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3C;+GAjBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAFtB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAEA,sBAAoB,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,iDCXrF,4FAEe,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDWF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAEA,sBAAoB,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,4FAAA,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA,CAAA;wDAInE,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACW,oBAAoB,EAAA,CAAA;sBAApC,MAAM;;;MEPI,oBAAoB,CAAA;AAS/B,IAAA,WAAA,CAAoB,EAAe,EAAA;QAAf,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAJnB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAElB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAGtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;AACxC,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,WAAW,CAAC,KAAK,EAAA;AACtB,QAAA,MAAM,eAAe,GAAqB;YACxC,QAAQ,EAAE,IAAI,CAAC,WAAW;AAC1B,YAAA,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SAClC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC7C;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACjE;+GAzBU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAvC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mJCTjC,sKAOA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,sKAAA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,CAAA;kFAMZ,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAKY,gBAAgB,EAAA,CAAA;sBAAjC,MAAM;;;AEAH,MAAO,8BAA+B,SAAQwC,0BAAwB,CAAA;AAa1E,IAAA,WAAA,CAAoB,WAAwB,EAAA;AAC1C,QAAA,KAAK,EAAE,CAAC;QADU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAPrC,IAAmB,CAAA,mBAAA,GAAG,gBAAgB,CAAC;QAEvC,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAe,CAAA,eAAA,GAAQ,IAAI,CAAC;QAOjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzC,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACvE,SAAA,CAAC,CAAC;KACJ;IAEM,QAAQ,GAAA;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE/E,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;SACxE;KACH;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;KAC3C;AAEM,IAAA,SAAS,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAEM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;SACnH;aAAM;AACP,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;SACtF;KACF;AAEM,IAAA,eAAe,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;KAC3C;AAEM,IAAA,YAAY,CAAC,KAAK,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;+GA3DU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,kKChB3C,+kCAkCA,EAAA,MAAA,EAAA,CAAA,kwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,+kCAAA,EAAA,MAAA,EAAA,CAAA,kwBAAA,CAAA,EAAA,CAAA;kFAMvB,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;;;AEZF,MAAO,0BAA2B,SAAQF,sBAAoB,CAAA;AAIlE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;+GANU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,0HCRvC,oLAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDCa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,oLAAA,EAAA,CAAA;wDAMrB,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;AEPD,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAsB,oBAAoB,CAAC,CAAC;MAKnF,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;QAIU,IAAkB,CAAA,kBAAA,GAA+B,IAAI,CAAC;AAa/D,KAAA;AAXC,IAAA,qBAAqB,CAAC,SAA8B,EAAA;AAClD,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;KACrC;IAED,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAChC;+GAbU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCOY,2BAA2B,CAAA;AAQtC,IAAA,WAAA,CACkD,SAA8B,EACtE,gBAAyC,EAC1C,WAAwB,EAAA;QAFiB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;QACtE,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;QAC1C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AANhB,QAAA,IAAA,CAAA,cAAc,GAAgC,IAAI,YAAY,EAAiB,CAAC;AAQ/F,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAC3F,IAAI,kBAAkB,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAClE;KACF;AAED,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;YAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChD;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACpE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpC;IAEO,gBAAgB,GAAA;QACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACjC;AArCU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAShB,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAT7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,8NCdxC,2NAEe,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDYF,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,2NAAA,EAAA,CAAA;;0BAalC,QAAQ;;0BAAI,MAAM;2BAAC,kBAAkB,CAAA;mGARxB,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACW,cAAc,EAAA,CAAA;sBAA9B,MAAM;;;AEnBT;MA0Ca,gBAAgB,CAAA;IAC3B,IAA+C,mBAAmB,CAAC,OAAwC,EAAA;AACzG,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;KACjC;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;KAC/F;AAED,IAAA,IAAY,eAAe,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAA4B,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC;KACtF;IAyCD,WAAoB,CAAA,WAAwB,EAAS,iBAAoC,EAAA;QAArE,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAAS,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AA3BxE,QAAA,IAAA,CAAA,WAAW,GAAmC,IAAI,YAAY,EAAE,CAAC;AAQjE,QAAA,IAAA,CAAA,QAAQ,GAA4B,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAA4B,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,eAAe,GAA4B,IAAI,YAAY,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,aAAa,GAA4B,IAAI,YAAY,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,SAAS,GAAqC,IAAI,YAAY,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,WAAW,GAA4B,IAAI,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,oBAAoB,GAA0B,IAAI,YAAY,EAAE,CAAC;QAE3E,IAAW,CAAA,WAAA,GAAuB,WAAW,CAAC;QACrC,IAAkB,CAAA,kBAAA,GAA8B,kBAAkB,CAAC;AAClE,QAAA,IAAA,CAAA,UAAU,GAA4B,IAAI,YAAY,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,oBAAoB,GAAoC,IAAI,YAAY,EAAE,CAAC;AAE3E,QAAA,IAAA,CAAA,cAAc,GAAgC,IAAI,YAAY,EAAE,CAAC;KAMW;IAEtF,mBAAmB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACxC;IAEM,WAAW,GAAA;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,0BAA0B,EAAE,EAAE;YAClG,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;AAEM,IAAA,aAAa,CAAC,UAA4B,EAAA;AAC/C,QAAA,QACE,CAAC,UAAU,CAAC,aAAa;AACzB,aAAC,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzE,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,EAC9C;KACH;IAEM,0BAA0B,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,2BAA2B,CAAC,CAAC;KACxE;;AAGM,IAAA,aAAa,CAAC,MAAwB,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxC;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KACxC;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAEM,IAAA,sBAAsB,CAAC,YAAqB,EAAA;AACjD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;IAEM,aAAa,CAAC,UAA4B,EAAE,GAAS,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC9D,YAAA,MAAM,IAAI,GAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,iBAAiB,EAAE;gBAC9H,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;AACD,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,oBAAoB,CAAC,UAA4B,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KACrF;AAEM,IAAA,iBAAiB,CAAC,UAA4B,EAAA;AACnD,QAAA,OAAO,UAAU,KAAK,IAAI,CAAC,eAAe,CAAC;KAC5C;AAEM,IAAA,0BAA0B,CAAC,UAA4B,EAAA;AAC5D,QAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;KAC/G;AAEM,IAAA,kBAAkB,CAAC,UAA4B,EAAA;AACpD,QAAA,IAAI,UAAU,CAAC,gBAAgB,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAC1C;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;AACrC,YAAA,OAAO,yBAAyB,CAAC;SAClC;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,gBAAgB,CAAC,UAA4B,EAAA;AAClD,QAAA,QAAQ,UAAU,CAAC,gBAAgB;AACjC,YAAA,KAAK,kBAAkB,CAAC,cAAc,EAAE;AACtC,gBAAA,OAAO,IAAI,CAAC;aACb;AACD,YAAA,KAAK,kBAAkB,CAAC,eAAe,EAAE;AACvC,gBAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;aACxB;AACD,YAAA,KAAK,kBAAkB,CAAC,gBAAgB,EAAE;AACxC,gBAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aACzB;YACD,SAAS;AACP,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;KACF;IAEM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC;KAClE;AAED,IAAA,IAAW,mBAAmB,GAAA;AAC5B,QAAA,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,2BAA2B,KAAK,KAAK,CAAC,CAAC;KACtF;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;YAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChD;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,oBAAoB,CAAC,SAA4B,EAAA;AACtD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3C;AAEM,IAAA,kBAAkB,CAAC,IAAsB,EAAA;AAC9C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxB;KACF;AAEM,IAAA,gBAAgB,CAAC,GAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;IAEO,WAAW,GAAA;QACjB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1D;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;SACrC;KACF;;IAGO,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9C;KACF;+GAvNU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EACb,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CpC,qnXAuSA,EAAA,MAAA,EAAA,CAAA,6JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2B,4BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,aAAA,EAAA,KAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,KAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Pa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,iBAIX,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qnXAAA,EAAA,MAAA,EAAA,CAAA,6JAAA,CAAA,EAAA,CAAA;6GAGA,mBAAmB,EAAA,CAAA;sBAAjE,YAAY;uBAAC,oBAAoB,CAAA;gBAYlB,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBAEW,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACS,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBAEW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;gBACU,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBACU,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,oBAAoB,EAAA,CAAA;sBAApC,MAAM;gBAIU,UAAU,EAAA,CAAA;sBAA1B,MAAM;gBACU,oBAAoB,EAAA,CAAA;sBAApC,MAAM;gBAEU,cAAc,EAAA,CAAA;sBAA9B,MAAM;;;MEhFI,UAAU,CAAA;AAErB,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAK;AAEpD,IAAA,SAAS,CAAC,KAAY,EAAE,MAAc,EAAE,OAA4B,EAAE,sBAAA,GAAkC,IAAI,EAChH,iBAAqC,GAAA,IAAI,OAAO,EAAE,EAAA;QACnD,IAAI,CAAC,sBAAsB,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,IAAI7C,aAAW,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO,GAAG,EAAE,CAAC;SACd;QAED,IAAI,MAAM,EAAE;YACV,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC5B,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAClD;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,KAAK,IAAI,sBAAsB,EAAE;AACnC,YAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACtC;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,QAAQ,CAAC,IAAS,EAAE,MAAc,EAAE,OAA2B,EAAA;AACrE,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;AACxC,eAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAC9F,CAAC,MAAM,GAAG,CAAC,CAAC;KAChB;AAEO,IAAA,gBAAgB,CAAC,IAAe,EAAA;AACtC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAEO,SAAS,CAAC,IAAS,EAAE,WAAmB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACtF;IAEO,mBAAmB,CAAC,IAAS,EAAE,YAAoB,EAAA;AACzD,QAAA,OAAO,CAACA,aAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAACC,QAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;KACxE;+GA7CU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,IAAI;mBAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;;;MCFX,YAAY,CAAA;AACd,IAAA,SAAS,CAAC,IAAqB,EAAE,gBAAmC,EAAE,sBAA+B,EAAA;QACxG,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;SACb;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;KAC/E;IAEO,OAAO,aAAa,CAAC,gBAAmC,EAAA;QAC5D,OAAO,gBAAgB,CAAC,WAAW,GAAG,gBAAgB,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;KAC/F;IAEO,OAAO,WAAW,CAAC,gBAAmC,EAAA;AAC1D,QAAA,OAAO,gBAAgB,CAAC,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC;KACnE;AAEO,IAAA,OAAO,OAAO,CAAC,IAAqB,EAAE,gBAAmC,EAAE,sBAA+B,EAAA;QAChH,IAAI,sBAAsB,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAC5C,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAC3C,CAAC;SACH;AACD,QAAA,OAAO,IAAI,CAAC;KACb;+GAxBQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,IAAI;mBAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;;;MCqBb,sBAAsB,CAAA;IAwCjC,IAA2C,mBAAmB,CAAC,KAAkC,EAAA;AAC/F,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAED,WAAmB,CAAA,gBAAkC,EAAU,EAAqB,EAAA;QAAjE,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AAlCnE,QAAA,IAAA,CAAA,WAAW,GAAmC,IAAI,YAAY,EAAE,CAAC;AAcjE,QAAA,IAAA,CAAA,SAAS,GAAqC,IAAI,YAAY,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,eAAe,GAAqC,IAAI,YAAY,EAAE,CAAC;AACvE,QAAA,IAAA,CAAA,aAAa,GAAyC,IAAI,YAAY,EAAE,CAAC;AACzE,QAAA,IAAA,CAAA,SAAS,GAAqC,IAAI,YAAY,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,WAAW,GAAqC,IAAI,YAAY,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,QAAQ,GAAqC,IAAI,YAAY,EAAE,CAAC;AAChE,QAAA,IAAA,CAAA,QAAQ,GAAqC,IAAI,YAAY,EAAE,CAAC;AAChE,QAAA,IAAA,CAAA,oBAAoB,GAAgD,IAAI,YAAY,EAAE,CAAC;AACvF,QAAA,IAAA,CAAA,oBAAoB,GAAoC,IAAI,YAAY,EAAE,CAAC;AAC3E,QAAA,IAAA,CAAA,UAAU,GAAqC,IAAI,YAAY,EAAE,CAAC;AAClE,QAAA,IAAA,CAAA,wBAAwB,GAAqC,IAAI,YAAY,EAAE,CAAC;AAEhF,QAAA,IAAA,CAAA,cAAc,GAAgC,IAAI,YAAY,EAAE,CAAC;KAQO;AACzF,IAAA,IAAW,qBAAqB,GAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;AACrC,YAAA,OAAO,sBAAsB,CAAC;SAC/B;AACD,QAAA,OAAO,kBAAkB,CAAC;KAC5B;AAED,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;KAC/B;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KACzB;AAEO,IAAA,WAAW,CAAC,GAAkB,EAAA;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC9B;AAEM,IAAA,YAAY,CAAC,GAAkB,EAAA;QACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC/B;AAEM,IAAA,iBAAiB,CAAC,GAAkB,EAAA;QACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACpC;IAEM,eAAe,CAAC,GAAkB,EAAE,QAAmB,EAAA;QAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC5C;AAEM,IAAA,aAAa,CAAC,GAAkB,EAAA;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAChC;AAEM,IAAA,YAAY,CAAC,GAAkB,EAAA;QACpC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC;KAC/D;AAEM,IAAA,uBAAuB,CAAC,GAAkB,EAAA;AAC/C,QAAA,GAAG,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACnD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC7C;AAEM,IAAA,WAAW,CAAC,SAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;AAEM,IAAA,aAAa,CAAC,MAAwB,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;AAEM,IAAA,UAAU,CAAC,GAAkB,EAAA;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC7B;AAEM,IAAA,UAAU,CAAC,GAAkB,EAAE,MAAW,EAAE,KAAa,EAAA;QAC9D,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACzD,OAAO;SACR;QACD,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,OAAO;SACR;AACD,QAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC7B;AAEM,IAAA,QAAQ,CAAC,GAAkB,EAAA;AAChC,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;KACzB;IAEM,sBAAsB,CAAC,GAAkB,EAAE,YAAqB,EAAA;QACrE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;KACvD;IAEM,SAAS,CAAC,KAAa,EAAE,IAAmB,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KAC3B;AAEM,IAAA,kBAAkB,CAAC,GAAkB,EAAA;QAC1C,OAAO,IAAI,CAAC,UAAU;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC;YACzC,GAAG,CAAC,UAAU,CAAC;KAClB;AAEM,IAAA,oBAAoB,CAAC,SAA4B,EAAA;AACtD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3C;AAED,IAAA,IAAW,sBAAsB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC;KAChD;AAEM,IAAA,kBAAkB,CAAC,GAAkB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AAClC,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SAChC;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,mBAAmB,CAAC,GAAkB,EAAA;AAC3C,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SACnC;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,gBAAgB,CAAC,GAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;+GAlKU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAW,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAwCnB,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjEhC,kgOA+Fc,EAAA,MAAA,EAAA,CAAA,4pDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,gBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDtED,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kgOAAA,EAAA,MAAA,EAAA,CAAA,4pDAAA,CAAA,EAAA,CAAA;kHAG/B,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACW,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACS,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAEU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBAEW,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBACU,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,QAAQ,EAAA,CAAA;sBAAxB,MAAM;gBACU,QAAQ,EAAA,CAAA;sBAAxB,MAAM;gBACU,oBAAoB,EAAA,CAAA;sBAApC,MAAM;gBACU,oBAAoB,EAAA,CAAA;sBAApC,MAAM;gBACU,UAAU,EAAA,CAAA;sBAA1B,MAAM;gBACU,wBAAwB,EAAA,CAAA;sBAAxC,MAAM;gBACS,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACW,cAAc,EAAA,CAAA;sBAA9B,MAAM;gBAIoC,mBAAmB,EAAA,CAAA;sBAA7D,YAAY;uBAAC,gBAAgB,CAAA;;;ME7CnB,yBAAyB,CAAA;IAqBpC,WACU,CAAA,qBAA4C,EAC5C,eAAgC,EAAA;QADhC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QArB1B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAUzB,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,YAAY,EAAE,CAAC;QAErD,IAAK,CAAA,KAAA,GAAiB,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAwB,YAAY,CAAC;QACjD,IAAY,CAAA,YAAA,GAA2B,eAAe,CAAC;QACvD,IAAkB,CAAA,kBAAA,GAA4B,gBAAgB,CAAC;KAKxE;AAEA,IAAA,cAAc,CAAC,UAA4B,EAAA;QAChD,OAAO,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,CAAC;KAC/B;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAIhD,aAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACjC,OAAO;SACR;AACD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACtC;IAEM,YAAY,GAAA;AACjB,QAAA,IAAIA,aAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACjC,OAAO;SACR;AACD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACvC;IAEM,aAAa,GAAA;AAClB,QAAA,IAAIA,aAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACjC,OAAO;SACR;AACD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACxC;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;SAC5C;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;SACzE;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;SAC1C;aAAM;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;SAC/E;KACF;AAED,IAAA,IAAW,kBAAkB,GAAA;QAC3B,OAAO,IAAI,CAAC,UAAU;YACf,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACzB;AAED,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,UAAU;YAChB,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,eAAe;YACzB,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACpB;AAED,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,cAAc;YACxB,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,UAAU,CAAC;KACpB;AAED,IAAA,IAAW,gBAAgB,GAAA;QACzB,OAAOA,aAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;KAC9D;AAED,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;KAC7C;AAED,IAAA,IAAW,eAAe,GAAA;AACxB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;KAC9C;AAED,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;KAChD;AAEM,IAAA,cAAc,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACxE,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC5C;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACnC;AAEM,IAAA,aAAa,CAAC,IAAY,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACzE;AAEM,IAAA,oBAAoB,CAAC,UAAkB,EAAA;QAC5C,OAAO,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;KAC9G;+GAlIU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAyD,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,2dCpBtC,+1HAmEK,EAAA,MAAA,EAAA,CAAA,8PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7C,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD/CQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+1HAAA,EAAA,MAAA,EAAA,CAAA,8PAAA,CAAA,EAAA,CAAA;uHAG/B,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;ME7BI,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAgB;AAET,IAAA,SAAS,CAAC,KAAY,EAAE,IAAY,EAAE,WAAmB,EAAA;AAE9D,QAAA,IAAIN,aAAW,CAAC,KAAK,CAAC,EAAE;YACtB,KAAK,GAAG,EAAE,CAAC;SACZ;AAED,QAAA,IAAI,IAAI,IAAI,WAAW,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAG;AACzB,gBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3E;AACD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,OAAO,KAAK,CAAC;KACd;+GApBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,IAAI;mBAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;;;MCqBjB,sBAAsB,CAAA;IAuCjC,WACU,CAAA,2BAAwD,EACxD,EAAqB,EAAA;QADrB,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;QACxD,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AAxCf,QAAA,IAAA,CAAA,cAAc,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAC/E,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAKvC,QAAA,IAAA,CAAA,gBAAgB,GAAiC,IAAI,eAAe,CAAc,IAAI,CAAC,CAAC;AACxF,QAAA,IAAA,CAAA,UAAU,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAgB,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;;AAE1C,QAAA,IAAA,CAAA,eAAe,GAA+B,IAAI,YAAY,EAAgB,CAAC;QAEzF,IAAkB,CAAA,kBAAA,GAAG,IAAI,SAAS,CAAC;AACxC,YAAA,SAAS,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC9B,YAAA,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC7B,SAAA,CAAC,CAAC;QACI,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,QAAQ,EAAE,CAAC;SACZ,CAAC;AAEK,QAAA,IAAA,CAAA,UAAU,GAAgB,IAAI,WAAW,EAAE,CAAC;QAC5C,IAAY,CAAA,YAAA,GAAG,0BAA0B,CAAC;QAC1C,IAAkB,CAAA,kBAAA,GAAG,+BAA+B,CAAC;AACrD,QAAA,IAAA,CAAA,oBAAoB,GAAY;AACrC,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,GAAG;SACV,CAAC;AACK,QAAA,IAAA,CAAA,UAAU,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAI1E,IAAe,CAAA,eAAA,GAAgB,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,aAAa,GAAoB,IAAI,OAAO,EAAE,CAAC;QAMrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KACjH;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAkB,IAAI,CAAC,kBAAmB,CAAC,MAAM,GAAG,CAAC,IAAe,IAAI,CAAC,kBAAmB,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;KACrI;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;KAC7G;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;KAC3G;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC;KAC7C;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;YAC/D,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,+BAA+B,CAAC,SAAS,CAAC,EAAE;YAC/F,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B;AACrD,aAAA,8BAA8B,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC3C;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;QACvC,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;SACjF;KACF;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;aAAM;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAC9B;AACD,QAAA,IAAI,CAAC,eAAe,CAAW,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACzD;IAEM,mBAAmB,GAAA;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;KACzB;IAEM,wBAAwB,GAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;KACzB;IAEM,YAAY,GAAA;QACjB,IAAI,CAAC,uBAAuB,GAAGgB,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC9B;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9D,OAAO;SACR;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,YAAY,IAAId,YAAU,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;AACvE,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACnC,iBAAA,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrG,iBAAA,SAAS,CAAC,CAAC,GAAqB,KAAI;AACnC,gBAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC3D,gBAAA,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAChC,gBAAA,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,aAAC,CAAC,CAAC;YACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;KACF;AAEM,IAAA,cAAc,CAAC,EAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC;AAC/B,QAAA,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACtB,QAAA,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,EAAS,EAAE,CAAC,CAAC;KACzH;IAGM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC5B;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;KACzB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KAC9B;IAEM,mBAAmB,GAAA;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAClD;IAEM,kBAAkB,GAAA;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACjD;AAEM,IAAA,wBAAwB,CAAC,IAAe,EAAA;QAC7C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AACjH,QAAA,IAAI,CAAC,eAAe,CAAW,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACzD;IAEM,qBAAqB,GAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAC9C;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QACnE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QACnE,IAAI,CAAC,eAAe,EAAE,CAAC;KAExB;AAEM,IAAA,YAAY,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAC9B;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QACrF,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AAClE,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;SAChD;KACF;AAEM,IAAA,aAAa,CAAC,IAAe,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;KACrG;IAEM,aAAa,GAAA;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAClD;IAEO,cAAc,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClG;AAEO,IAAA,eAAe,CAAC,WAA+B,EAAA;AACrD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,YAAY,EAAE,IAAI,CAAC,UAAU;AAC7B,YAAA,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;AAC9D,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;AAChC,YAAA,UAAU,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ;AACtF,SAAA,CAAC,CAAC;KACJ;IAEO,kBAAkB,GAAA;QACxB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACjD,SAAS,CAAC,MAAK;AACd,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACnD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;AAC5D,iBAAA,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrG,iBAAA,SAAS,CAAC,CAAC,QAA0B,KAAI;AACxC,gBAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAEO,uBAAuB,GAAA;AAC7B,QAAA,MAAM,cAAc,GAAQ,IAAI,CAAC,kBAAkB,CAAC;AACpD,QAAA,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,IAAG;AAC/B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC9H,OAAkB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC;AACzG,SAAC,CAAC,CAAC;KACJ;IAEO,2BAA2B,CAAC,aAA0B,EAAE,YAAyB,EAAA;AACvF,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAG;AACxB,YAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpH,YAAA,IAAI,QAAQ,KAAK,CAAE,CAAC,EAAE;AACpB,gBAAA,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aAClC;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,iBAAiB,GAAA;QACvB,MAAM,UAAU,GAAa,EAAE,CAAC;AAChC,QAAA,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACnE,QAAA,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACjE,QAAA,OAAO,UAAU,CAAC;KACnB;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;QAC7B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;SACX;AACD,QAAA,OAAO,CAAG,EAAA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA,CAAA,EAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;KACvG;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE;YACjF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9D,OAAO;SACR;QACD,IAAIA,YAAU,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClE,iBAAA,SAAS,CAAC,CAAC,GAAqB,KAAI;gBACnC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjC;AACH,aAAC,CAAC,CAAC;SACN;KACF;IAEO,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrE,aAAA,SAAS,CAAC,CAAC,SAAiB,KAAI;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACxB,YAAY,EAAE,IAAI,CAAC,UAAU;AAC7B,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;AAChC,gBAAA,UAAU,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ;AACtF,aAAA,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACL;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,YAAA,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,EAAE;AAC/E,YAAA,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,EAAE;AAC/E,YAAA,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,EAAE;AAClF,SAAA,CAAC,CAAC;KACJ;+GA/TU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAkD,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2cCzBnC,sscAyRA,EAAA,MAAA,EAAA,CAAA,w/FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAtD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAuD,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDhQa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sscAAA,EAAA,MAAA,EAAA,CAAA,w/FAAA,CAAA,EAAA,CAAA;6HAG/B,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,qBAAqB,EAAA,CAAA;sBAApC,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAKW,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBAoB0B,UAAU,EAAA,CAAA;sBAA1C,SAAS;uBAAC,YAAY,CAAA;;;MElDZ,gBAAgB,CAAA;AAE3B,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAK;AAEpD,IAAA,SAAS,CAAC,KAAsB,EAAE,YAA4B,EAAE,OAA4B,EAAE,sBAAgC,EAAA;QAEnI,IAAI,sBAAsB,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SACxE;AACD,QAAA,OAAO,KAAK,CAAC;KACd;+GAVU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApE,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,IAAI;mBAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;;;ACL9B;AACA;MA+Fa,kBAAkB,CAAA;;AAE7B,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACvC;IAED,IACW,gBAAgB,CAAC,SAAiC,EAAA;AAC3D,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;KAChC;AAED,IAAA,IAAW,wBAAwB,GAAA;AACjC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC;KAClD;AAED,IAAA,IAAW,iCAAiC,GAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC;KAC3D;AAED,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;KAC7C;AAED,IAAA,IAAW,mBAAmB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC;KACrD;AAED,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;KACpG;AAED,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC;KAC3C;AAED,IAAA,IAAY,YAAY,GAAA;QACtB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,WAAW,EAAE,IAAI,CAAC,QAAQ;AAC1B,YAAA,YAAY,EAAE,IAAI,CAAC,oBAAoB,EAAE;AACzC,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAClC,GAAG,IAAI,CAAC,aAAa;SACtB,CAAC;KACH;AAED,IAAA,IAAI,aAAa,GAAA;QACf,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC3C,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACvC;IAgKD,WACS,CAAA,gBAAkC,EACjC,MAAc,EACd,cAA8B,EAC9B,SAAoB,EACrB,iBAAoC,EACnC,eAAgC,EAChC,qBAA4C,EAC5C,UAA4B,EAC5B,UAAsB,EACtB,mBAAwC,EACzC,MAAiB,EACjB,WAAwB,EACvB,gBAAyC,EAAA;QAZ1C,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACjC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACrB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;QAC5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACzC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACvB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;QA3KnC,IAAK,CAAA,KAAA,GAAiB,KAAK,CAAC;QAC5B,IAAiB,CAAA,iBAAA,GAA6B,iBAAiB,CAAC;QAChE,IAAQ,CAAA,QAAA,GAAwB,YAAY,CAAC;QAC7C,IAAW,CAAA,WAAA,GAA2B,eAAe,CAAC;AACtD,QAAA,IAAA,CAAA,iBAAiB,GAAW,kBAAkB,CAAC,iBAAiB,CAAC;AACjE,QAAA,IAAA,CAAA,iBAAiB,GAAW,kBAAkB,CAAC,iBAAiB,CAAC;QAEjE,IAAyB,CAAA,yBAAA,GAAW,iCAAiC,CAAC;QACtE,IAAgB,CAAA,gBAAA,GAAc,EAAE,CAAC;QAMjC,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QAGpB,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAG5B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAC3B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QAGtC,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QAKtC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;;QAIjC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAI3B,QAAA,IAAA,CAAA,eAAe,GAAiD,IAAI,YAAY,EAAE,CAAC;AACnF,QAAA,IAAA,CAAA,WAAW,GAAmC,IAAI,YAAY,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,sBAAsB,GAAoC,IAAI,YAAY,EAAqB,CAAC;AAChG,QAAA,IAAA,CAAA,aAAa,GAAqC,IAAI,YAAY,EAAsB,CAAC;AACzF,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,wBAAwB,GAAqC,IAAI,YAAY,EAAE,CAAC;AAChF,QAAA,IAAA,CAAA,iBAAiB,GAAqC,IAAI,YAAY,EAAE,CAAC;AACzE,QAAA,IAAA,CAAA,iBAAiB,GAAqC,IAAI,YAAY,EAAE,CAAC;AACzE,QAAA,IAAA,CAAA,UAAU,GAA8B,IAAI,YAAY,EAAe,CAAC;AACxE,QAAA,IAAA,CAAA,cAAc,GAAoC,IAAI,YAAY,EAAE,CAAC;AACrE,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;QAE7C,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QASzB,IAAW,CAAA,WAAA,GAA2B,eAAe,CAAC;AAG/D,QAAA,IAAA,CAAA,eAAe,GAAgB,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,gBAAgB,GAAsB;YAC3C,WAAW,EAAE,IAAI,CAAC,iBAAiB;YACnC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;SACjC,CAAC;AACK,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAU,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACtE,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAY,CAAA,YAAA,GAAoB,EAAE,CAAC;QACnC,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAIlB,QAAA,IAAA,CAAA,UAAU,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAC3E,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAKjB,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAEhB,IAAoB,CAAA,oBAAA,GAAG,CAAC,CAAC;AAGxB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAE3B,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QAEvB,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QACnB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAU,CAAA,UAAA,GAAuB,IAAI,CAAC;QACtC,IAAe,CAAA,eAAA,GAAuB,IAAI,CAAC;QAC3C,IAAU,CAAA,UAAA,GAAoB,IAAI,CAAC;AAGnC,QAAA,IAAA,CAAA,kBAAkB,GAAgB;AACxC,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,iCAAiC,EAAE,KAAK;AACxC,YAAA,2BAA2B,EAAE,IAAI;AACjC,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,SAAS,CAAC,IAAI;AAC1B,YAAA,sBAAsB,EAAE,IAAI;AAC5B,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,YAAY,EAAE;AACZ,gBAAA,wBAAwB,EAAE,EAAE;AAC5B,gBAAA,oBAAoB,EAAE,EAAE;AACzB,aAAA;AACD,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,aAAa,EAAE,EAAE;YACjB,oBAAoB,EAAE,IAAI,CAAC,MAAM;AACjC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,wBAAwB,EAAE,EAAE;AAC5B,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,YAAY,EAAE;AACZ,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,IAAI,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AACzC,gBAAA,KAAK,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AAC1C,gBAAA,OAAO,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AAC5C,gBAAA,KAAK,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AAC3C,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,SAAS,EAAE,EAAE;AACd,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,KAAK,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AAC1C,gBAAA,KAAK,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AAC1C,gBAAA,OAAO,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC;AAC7C,aAAA;SACF,CAAC;AAipBM,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAiB,KAAU;AAChD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;aACnE;AACH,SAAC,CAAC;QAEM,IAAS,CAAA,SAAA,GAAG,MAAW;YAC7B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC;AA7oBA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;KACnD;AAED,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACzD;AAED,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;KAChC;AAED,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;KACvC;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;AAED,IAAA,IAAW,mBAAmB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YAClC,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SACnG;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,eAAe,CAAC,CAAQ,EAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAA4B,CAAC;AACtE,QAAA,MAAM,KAAK,GAAgB;AACzB,YAAA,GAAG,CAAC;YACJ,cAAc,EAAE,IAAI,CAAC,eAAe;AACpC,YAAA,qBAAqB,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE;SAC/E,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAEM,IAAA,oBAAoB,CAAC,QAAwB,EAAA;AAClD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAA4B,CAAC;QACtE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC5C;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;AAEM,IAAA,oBAAoB,CAAC,UAAkB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;KACnF;AAEM,IAAA,kBAAkB,CAAC,UAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACjE,YAAA,OAAO,+BAA+B,CAAC;SACxC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,OAAO,iBAAiB,CAAC;SAC1B;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,cAAc,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;KAChI;AAEM,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3F;AAED,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;KACxD;AAED,IAAA,IAAW,eAAe,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAIU,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;YAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAA4B,CAAC;YACtE,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9C,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SAChD;KACF;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAIA,YAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAACF,aAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACvE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACxE,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;AAC3C,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;SACvE;QACD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC7H;AAEM,IAAA,YAAY,CAAC,UAA4B,EAAA;AAC9C,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1H;IAEM,0BAA0B,GAAA;AAC/B,QAAA,IAAI,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,QAAA,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAClD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QACvE,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;AAClC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACxC;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AACjE,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,OAAO;SACR;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAC5C,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACnF;aAAM;YACL,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1F;KACF;AAEM,IAAA,gBAAgB,CAAC,GAAkB,EAAA;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AAC7C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,UAAU,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAChG,YAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;gBAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aACxC;SACF;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE3F,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;SACtD;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACxD;KACF;IAEM,OAAO,GAAA;QACZ,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAEM,IAAA,aAAa,CAAC,MAAwB,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAIE,YAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;YACzE,OAAO;SACR;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAClC;KACF;AAEM,IAAA,UAAU,CAAC,SAA6B,EAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACrD,QAAA,IAAI,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;YAC3B,OAAO;SACR;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;SAClD;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;SACrC;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;AACjC,QAAA,SAAS,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;AAChC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB;AACvD,cAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACjE,cAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACvC;AAEM,IAAA,aAAa,CAAC,SAA6B,EAAA;QAChD,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1F;KACF;AAEM,IAAA,WAAW,CAAC,SAA6B,EAAA;QAC9C,IAAIA,YAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE;YACxH,OAAO;SACR;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aAC5C;SACF;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SACpF;KACF;AAEM,IAAA,YAAY,CAAC,SAA6B,EAAA;QAC/C,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtD,YAAA,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SACpC;KACF;AAEM,IAAA,WAAW,CAAC,SAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;KAC3E;AAEM,IAAA,oBAAoB,CAAC,SAA4B,EAAA;AACtD,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7C;AAEM,IAAA,kBAAkB,CAAC,MAAuB,EAAA;AAC/C,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAClC;KACF;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACxC;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAEM,YAAY,CAAC,gBAAmC,EAAE,eAAiC,EAAA;AACxF,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAC5E,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;aAC1G;iBAAM;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;aAC1D;SACF;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3B;AAEM,IAAA,qBAAqB,CAAC,SAA6B,EAAA;AACxD,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/C;AAEM,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AACtC,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;AAEM,IAAA,cAAc,CAAC,MAAwB,EAAA;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KAClD;AAEM,IAAA,gBAAgB,CAAC,UAAkB,EAAA;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KAC/G;AAEM,IAAA,eAAe,CAAC,WAAyB,EAAA;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAC3C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EACpC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CACxC,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;aAAM;;SAEN;KACF;AAEM,IAAA,iBAAiB,CAAC,SAA6B,EAAA;AACpD,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7C;KACF;AAEM,IAAA,eAAe,CAAC,SAAiC,EAAA;AACtD,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAIA,YAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE;YACxH,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;SAChC;aAAM;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzB;KACF;AAEM,IAAA,sBAAsB,CAAC,SAAwC,EAAA;QACpE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;KACrE;AAEM,IAAA,oBAAoB,CAAC,SAA6B,EAAA;QACvD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;AAC9D,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;SAC5G;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACtD;IAEM,cAAc,CAAC,IAAY,EAAE,EAAU,EAAA;AAC5C,QAAA,MAAM,GAAG,GAAW,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAE,CAAA,GAAG,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,EAAE,EAAE,CAAC;AACrI,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;KACxB;AAEM,IAAA,gBAAgB,CAAC,SAA6B,EAAA;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACrC;AAEM,IAAA,kBAAkB,CAAC,YAAY,EAAA;QACpC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACtE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC/C,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvD;iBAAM;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;SACF;KACF;AAEM,IAAA,wBAAwB,CAAC,UAA8B,EAAA;AAC5D,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC/B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;KACjD;IAEM,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,CAAC;AACrB,YAAA,WAAW,EAAEF,aAAW,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW;YACtF,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAEM,IAAA,SAAS,CAAC,UAA4B,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,OAAO;SACR;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YACpH,OAAO;SACR;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACpD,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACjC;AAAM,aAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,GAAG,EAAE;YACvE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC5D,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SAClC;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACxC;KACF;AAEM,IAAA,SAAS,CAAC,GAAkB,EAAA;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;aAC/B,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;gBACT,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,gBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;AAC3E,gBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,OAAO,EAAE,CAAC;iBAChB;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACrC,oBAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;iBAC9B;AACD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACxD;YACD,KAAK,EAAE,MAAK;;aAEX;AACF,SAAA,CAAC,CAAC;KACN;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAC3C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,CAAC,sBAAsB,EACvC,IAAI,CAAC,iBAAiB,CACvB,CAAC;AACF,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzF,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACxC;KACF;AAEM,IAAA,cAAc,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACxE,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC5C;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACnC;AAEM,IAAA,aAAa,CAAC,IAAqB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACzE;AAEM,IAAA,iBAAiB,CAAC,IAAqB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC7E;AAEM,IAAA,sBAAsB,CAAC,IAAe,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;AAED,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,KAAK,IAAI,CAAC;KACrE;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;KACvC;AAED,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;KAC1C;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC1B,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC;AAC3G,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SACjD;KACF;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC;YAC3H,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;SAClD;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SACjD;KACF;IAEM,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACjC;IAEM,sBAAsB,CAAC,KAAa,EAAE,UAA4B,EAAA;AACvE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACxD,OAAO;SACR;AAED,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAA,qBAAA,EAAwB,UAAU,CAAC,IAAI,CAAA,MAAA,CAAQ,CAAgB,CAAC;AACvG,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAwB,qBAAA,EAAA,UAAU,CAAC,IAAI,CAAA,EAAA,CAAI,EAAE,IAAI,CAAa,CAAC;QACtG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACxC,OAAO;SACR;AAED,QAAA,UAAU,CAAC,aAAa,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;AACrD,QAAA,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEM,cAAc,CAAC,KAAa,EAAE,UAA4B,EAAA;QAC/D,IAAI,OAAO,GAAa,EAAE,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,UAAU,EAAE,aAAa,KAAK,IAAI,EAAE;AACzE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7B;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AAC1C,YAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAClC;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AAEM,IAAA,oBAAoB,CAAC,KAAiB,EAAE,KAAa,EAAE,UAA4B,EAAA;AACxF,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACxD,OAAO;aACR;AAED,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACvB,gBAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACxC;AAED,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAA,qBAAA,EAAwB,UAAU,CAAC,IAAI,CAAA,MAAA,CAAQ,CAAgB,CAAC;AACvG,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAwB,qBAAA,EAAA,UAAU,CAAC,IAAI,CAAA,EAAA,CAAI,EAAE,IAAI,CAAa,CAAC;AACtG,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAwB,qBAAA,EAAA,UAAU,CAAC,IAAI,CAAQ,MAAA,CAAA,CAAgB,CAAC;YACnG,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CAAgB,CAAC;AAE9F,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpE,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAE3D,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;wBAC/B,MAAM,KAAK,GAAiB,IAAK,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;AACtE,wBAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzC,wBAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,qBAAC,CAAC,CAAC;iBACJ;AAED,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;aAClF;SACF,EAAE,GAAG,CAAC,CAAC;QAER,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE;YACtD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1D;QAED,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACtD;AAEO,IAAA,eAAe,CAAC,QAAgB,EAAE,WAAA,GAAuB,KAAK,EAAA;QACpE,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACtE;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KACnE;AAEO,IAAA,eAAe,CAAC,UAA4B,EAAA;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC/B,MAAM,KAAK,GAAiB,IAAK,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;AACtE,gBAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACtC,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AACnC,oBAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;iBACvC;AACH,aAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC/B,MAAM,KAAK,GAAiB,IAAK,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;AACtE,gBAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzC,gBAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,aAAC,CAAC,CAAC;SACJ;KACF;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC/B,MAAM,KAAK,GAAiB,IAAK,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;AACtE,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;AAiBO,IAAA,iBAAiB,CAAC,OAAe,EAAE,OAAe,EAAE,eAAuB,EAAA;AACjF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,OAAO,CAAA,EAAA,CAAI,CAAC;SAC9C;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC/B,MAAM,GAAG,GAAiB,IAAK,CAAC,aAAa,CAAC,iBAAiB,CAAgB,CAAC;gBAEhF,IAAI,GAAG,EAAE;oBACP,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,OAAO,IAAI,CAAC;iBAClC;AACH,aAAC,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;AAC3C,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC;YAC7G,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,iBAAiB,CAAA,EAAA,CAAI,CAAC;SAC7D;KACF;IAEO,cAAc,CAAC,OAAoB,EAAE,MAAc,EAAA;AACzD,QAAA,IAAI,KAAa,CAAC;AAClB,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACrD,QAAA,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;AAE1C,QAAA,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE;YAC/B,KAAK,GAAG,MAAM,CAAC;SAChB;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,IAAY,UAAU,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9C;AAED,IAAA,IAAY,sBAAsB,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SACzB;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC3E,QAAA,OAAO,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC7D;IAEO,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;AAC/D,YAAA,QACE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAClI;SACH;AACD,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC;KAC1F;IAEO,gBAAgB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;KAC5E;IAEO,qBAAqB,GAAA;QAC3B,OAAO,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;KAC1D;IAEO,mBAAmB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC;KACvE;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;IAEO,sBAAsB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC;KAChD;IAEO,WAAW,GAAA;;QAEjB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YACnD,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;SAC9C;aAAM;AACL,YAAA,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;SACvB;KACF;IAEO,WAAW,GAAA;QACjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;AAEO,IAAA,eAAe,CAAC,YAA6B,EAAA;QACnD,YAAY,CAAC,QAAQ,GAAG;AACtB,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,IAAI,EAAE,MAAM;SACb,CAAC;AACF,QAAA,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAA,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC;AAC5B,QAAA,YAAY,CAAC,UAAU,GAAG,sBAAsB,CAAC;QACjD,YAAY,CAAC,IAAI,GAAG;YAClB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,YAAA,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe;SAClD,CAAC;AACF,QAAA,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC;KACrB;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAA4B,KAAI;AACxD,YAAA,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE;AACtC,gBAAA,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;aAC7B;AACD,YAAA,IAAI,UAAU,CAAC,2BAA2B,KAAK,SAAS,EAAE;AACxD,gBAAA,UAAU,CAAC,2BAA2B,GAAG,KAAK,CAAC;aAChD;AACH,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAClE;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,WAAW,CAAC,OAAO;AACzB,YAAA,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,KAAK;AAChB,YAAA,2BAA2B,EAAE,KAAK;YAClC,gBAAgB,EAAE,kBAAkB,CAAC,cAAc;AACpD,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,OAAO,CAAC,eAAiC,EAAA;AAC/C,QAAA,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aAC9B,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA,SAAS,CACR,CAAC,QAAa,KAAI;;AAEhB,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACtC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC5C,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,uBAAuB,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;AACvF,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAC,EACD,CAAC,GAAG,KAAI;YACN,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACxC;SACF,EACD,MAAK;;AAEL,SAAC,CACF,CAAC;KACL;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE;YACjC,OAAO;SACR;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEO,mBAAmB,GAAA;QACzB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtD;IAEO,WAAW,CAAC,QAAgC,EAAE,eAAiC,EAAA;QACrF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC1C;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1E,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAC3C,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC7C,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;AACD,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,4BAA4B,EAAE,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAChF,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;;YAGpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;SACjE;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;IAEO,qBAAqB,GAAA;QAC3B,QACE,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EACrI;KACH;AAEO,IAAA,uBAAuB,CAAC,eAAgC,EAAA;AAC9D,QAAA,IAAI,eAAe,KAAK,MAAM,EAAE;AAC9B,YAAA,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;SACjC;QACD,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC,GAAG,eAAe,CAAC;KACtH;AAEO,IAAA,iBAAiB,CAAC,gBAAmC,EAAA;AAC3D,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KAC1C;IAEO,4BAA4B,GAAA;AAClC,QAAA,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrI,QAAA,IAAI,CAAC,IAAI;AACN,aAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,aAAA,OAAO,CAAC,CAAC,GAAG,KAAI;YACf,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAIE,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;AACrH,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;AAAM,iBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACzC,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;AACH,SAAC,CAAC,CAAC;KACN;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,KAAK,iBAAiB,CAAC,IAAI,EAAE;YACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;SACnD;KACF;IAEO,yBAAyB,GAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC9C,OAAO;SACR;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,KAAK,iBAAiB,CAAC,IAAI,EAAE;AACzE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC;SACvF;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC;SACtF;KACF;AAEO,IAAA,8BAA8B,CAAC,QAAgB,EAAA;AACrD,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC3C;AAEO,IAAA,YAAY,CAAC,GAAW,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;KAClE;AAEO,IAAA,eAAe,CAAC,GAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AACvB,QAAA,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,IAAI,GAAG;AAClB,YAAA,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mBAAmB;SAC5D,CAAC;QACF,YAAY,CAAC,QAAQ,GAAG;AACtB,YAAA,GAAG,EAAE,IAAI;SACV,CAAC;AACF,QAAA,YAAY,CAAC,UAAU,GAAG,oBAAoB,CAAC;AAC/C,QAAA,MAAM,SAAS,GAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAC9G,SAAS;AACN,aAAA,WAAW,EAAE;aACb,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;AAEO,IAAA,OAAO,CAAC,SAAiC,EAAA;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EACvB,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAChC,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,aAAa,EAAE;AACxD,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACpC;KACF;IAEO,cAAc,CAAC,QAAkB,EAAE,GAAkB,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;aACtB,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA,SAAS,CACR,CAAC,MAAiB,KAAI;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;AAC3E,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;iBAAM;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aAClC;SACF,EACD,MAAK;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,SAAC,CACF,CAAC;KACL;IAEO,cAAc,CAAC,QAAkB,EAAE,GAAkB,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;aAC1D,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA,SAAS,CACR,CAAC,UAAoB,KAAI;YACvB,IAAI,UAAU,EAAE;AACd,gBAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aACxC;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AACtE,YAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBAClC,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;iBAAM;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;aACtC;SACF,EACD,MAAK;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,SAAC,CACF,CAAC;KACL;AAEO,IAAA,QAAQ,CAAC,UAA4B,EAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;YAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEO,IAAA,MAAM,CAAC,UAA4B,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;YAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAI;AACxD,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/F,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,QAAQ,CAAC,UAA4B,EAAE,WAAoB,EAAE,WAAoB,KAAK,EAAA;AAC5F,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;SACR;QAED,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;AACL,YAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACnE;KACF;IAEO,WAAW,CAAC,QAAgB,GAAG,CAAC,UAAU,EAAE,QAAA,GAAmB,SAAS,CAAC,aAAa,EAAA;AAC5F,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACvF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC9C;AAEO,IAAA,cAAc,CAAC,SAAiC,EAAA;QACtD,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC9C;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAChD;KACF;IAEO,WAAW,CAAC,GAAkB,EAAE,QAAmB,EAAA;AACzD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;KAClF;IAEO,YAAY,CAAC,GAAkB,EAAE,QAAmB,EAAA;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KAClC;IAEO,YAAY,CAAC,GAAkB,EAAE,QAAmB,EAAA;AAC1D,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClC,QAAA,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,aAAa,CAAC,GAAkB,EAAE,QAAmB,EAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,CAACF,aAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;SACpD;KACF;AAEO,IAAA,cAAc,CAAC,WAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC/B;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,CAAC,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9E,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC/E,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/C;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;SAC7E;KACF;IAEO,yBAAyB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC;KAClD;IAEO,WAAW,CAAC,QAAgB,CAAC,EAAA;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1C;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC1B;KACF;IAEO,gBAAgB,CAAC,GAAkB,EAAE,SAAkB,EAAA;AAC7D,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;IAEO,uBAAuB,CAAC,GAAkB,EAAE,YAAqB,EAAA;AACvE,QAAA,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;IAEO,WAAW,CAAC,KAAa,EAAE,QAAgB,EAAA;QACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CACjC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAC9E,KAAK,EACL,QAAQ,EACR,IAAI,CACL,CAAC;KACH;AAEO,IAAA,iBAAiB,CAAC,UAAA,GAAyB,UAAU,CAAC,KAAK,EAAA;AACjE,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,UAAU;AACX,SAAA,CAAC,CAAC;KACJ;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KAC9C;IAEO,WAAW,CAAC,GAAkB,EAAE,KAAgB,GAAA,GAAG,CAAC,UAAU,EAAE,QAAA,GAAmB,SAAS,CAAC,aAAa,EAAA;AAChH,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,QAAgB,KAAI;AAClF,YAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AACxD,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/E,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAEtE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;KAC9B;IAEO,UAAU,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAEO,IAAA,oBAAoB,CAAC,OAA2B,EAAA;AACtD,QAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,IAAI,KAAK,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAChH,CAAC;AACF,QAAA,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,iBAAiB,CAAC;KACrE;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClH,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACjC;AAEO,IAAA,gCAAgC,CAAC,WAA4B,EAAA;QACnE,IAAI,IAAI,CAAC,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE;AACnD,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACxB,gBAAA,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;oBAClC,OAAO,CAAC,CAAC,UAAU,CAAC;iBACrB;AACD,gBAAA,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;oBAChC,OAAO,CAAC,CAAC,QAAQ,CAAC;iBACnB;AACH,aAAC,CAAC,CAAC;SACJ;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC5C,QAAA,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;YAC9D,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,SAAC,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;YACxD,OAAO,8BAA8B,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtG,SAAC,CAAC,CAAC;QACH,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,CAAC;KAC/H;IAEO,sBAAsB,GAAA;AAC5B,QAAA,MAAM,mBAAmB,GAAqB,IAAI,CAAC,cAAc,EAAE,CAAC;AACpE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC9E,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,8BAA8B,CAAC,MAAM,EAAE;AAClF,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACxD;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACjC;AAEO,IAAA,0BAA0B,CAAC,IAAqB,EAAA;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KACnD;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,mBAAmB,GAAqB,IAAI,CAAC,cAAc,EAAE,CAAC;AACpE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAE9E,QAAA,IAAI,CAAC,IAAI;AACN,aAAA,MAAM,CAAC,CAAC,CAAC,KAAI;YACZ,OAAO,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvH,SAAC,CAAC;AACD,aAAA,OAAO,CAAC,CAAC,GAAG,KAAI;AACf,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACjC;AAEO,IAAA,kBAAkB,CAAC,QAAyB,EAAA;AAClD,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AAC3B,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,eAAe,CAAC,QAAgB,EAAA;AACtC,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAa,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC;AAChG,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;SACpC;aAAM;AACL,YAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;SACvC;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,yBAAyB,CAAC,cAAkC,EAAA;QAClE,IAAI,cAAc,GAAuB,EAAE,CAAC;AAC5C,QAAA,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,cAAc,CAAC;SACvB;AACD,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtE,QAAA,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;YACzC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,aAAa;iBACV,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AAC7B,iBAAA,OAAO,CAAC,CAAC,IAAc,KAAI;AAC1B,gBAAA,MAAM,mBAAmB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAClF,gBAAA,IAAI,mBAAmB,GAAG,CAAC,CAAC,EAAE;AAC5B,oBAAA,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxE,IAAI,cAAc,EAAE;AAClB,wBAAA,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;AAChC,wBAAA,IAAI,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACvC,wBAAA,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC;AACvC,wBAAA,cAAc,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC;qBAClD;iBACF;AACD,gBAAA,KAAK,EAAE,CAAC;AACV,aAAC,CAAC,CAAC;;YAEL,cAAc;iBACX,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClF,iBAAA,OAAO,CAAC,CAAC,IAAsB,KAAI;gBAClC,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;AACH,aAAC,CAAC,CAAC;SACN;AAED,QAAA,OAAO,cAAc,CAAC;KACvB;AAEO,IAAA,kCAAkC,CAAC,eAAiC,EAAA;QAC1E,MAAM,SAAS,GAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC6D,6BAA2B,EAAE;AAC5G,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,yBAAyB;AACrC,aAAA;AACF,SAAA,CAAC,CAAC;QACH,SAAS;AACN,aAAA,WAAW,EAAE;AACb,aAAA,IAAI,EAAE;AACN,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;YAC1B,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAC/B;AACH,SAAC,CAAC,CAAC;KACN;IAEO,aAAa,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;KACjE;IAEO,WAAW,GAAA;QACjB,IAAI,CAAC,WAAW,CAAC,YAAY;AAC1B,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,GAAW,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,EACtD,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;aACA,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;AACH,SAAC,CAAC,CAAC;KACN;IAEO,oBAAoB,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE;YAC7H,OAAO,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;SACrH;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;KAC7C;IAEO,oBAAoB,GAAA;QAC1B,IAAI3D,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;SAC1D;KACF;AAEO,IAAA,eAAe,CAAC,OAAoB,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YAC/C,OAAyB;AACvB,gBAAA,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE;AACvB,gBAAA,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,WAAW,CAAC,MAAM;gBACxB,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS;aAC7G,CAAC;AACJ,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;+GAjkDU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAyD,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA7C,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAoC,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAPlB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,kBAAkB;AAChC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQU,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EA0GC,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChN/C,oqrBA6SW,EAAA,MAAA,EAAA,CAAA,g1GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApB,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAqB,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD7ME,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAoB,kBAAA;AAChC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,oqrBAAA,EAAA,MAAA,EAAA,CAAA,g1GAAA,CAAA,EAAA,CAAA;2aASU,gBAAgB,EAAA,CAAA;sBAD1B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAuDpC,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBAGU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAEU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAEW,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBACU,sBAAsB,EAAA,CAAA;sBAAtC,MAAM;gBACU,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,YAAY,EAAA,CAAA;sBAA5B,MAAM;gBACU,YAAY,EAAA,CAAA;sBAA5B,MAAM;gBACU,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,wBAAwB,EAAA,CAAA;sBAAxC,MAAM;gBACU,iBAAiB,EAAA,CAAA;sBAAjC,MAAM;gBACU,iBAAiB,EAAA,CAAA;sBAAjC,MAAM;gBACU,UAAU,EAAA,CAAA;sBAA1B,MAAM;gBACU,cAAc,EAAA,CAAA;sBAA9B,MAAM;gBACU,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBAOA,WAAW,EAAA,CAAA;sBADjB,SAAS;uBAAC,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGtD,eAAe,EAAA,CAAA;sBADrB,SAAS;uBAAC,iBAAiB,CAAA;gBAGrB,cAAc,EAAA,CAAA;sBADpB,SAAS;uBAAC,gBAAgB,CAAA;;;MEzMhB,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QASkB,IAAe,CAAA,eAAA,GAAuB,EAAE,CAAC;QAkBzC,IAAkB,CAAA,kBAAA,GAA4B,gBAAgB,CAAC;AAIhF,KAAA;AApBC,IAAA,IAA0B,OAAO,GAAA;QAC/B,OAAO,IAAI,CAAC,eAAe;aACxB,GAAG,CAAC,MAAM,IAAI,CAAG,EAAA,MAAM,CAAa,WAAA,CAAA,CAAC,CAAC;KAC1C;IAED,IAAsC,SAAS,CAAC,KAAyB,EAAA;QACvE,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;+GAlBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EASnB,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBlC,yDAEA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDSa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,mBAGd,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yDAAA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA,CAAA;8BAIrB,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBAEoB,OAAO,EAAA,CAAA;sBAAhC,WAAW;uBAAC,OAAO,CAAA;gBAKkB,SAAS,EAAA,CAAA;sBAA9C,YAAY;uBAAC,kBAAkB,CAAA;;;AET5B,MAAO,4BAA6B,SAAQ,oBAAoB,CAAA;AANtE,IAAA,WAAA,GAAA;;QAQkB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAoB,CAAC;AAOrE,KAAA;AALQ,IAAA,aAAa,CAAC,IAAuB,EAAA;AAC1C,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SACzD;KACF;+GATU,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,sKCXzC,4RAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDCa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,8BAA8B,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4RAAA,EAAA,CAAA;8BAI/B,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACW,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;MEDI,yBAAyB,CAAA;IAWpC,WAAoB,CAAA,WAAwB,EAClC,aAAgC,EAAA;QADtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmB;QAV1B,IAAM,CAAA,MAAA,GAAqB,IAAI,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAoC,IAAI,YAAY,EAAqB,CAAC;AAC/F,QAAA,IAAA,CAAA,cAAc,GAAgB,IAAI,GAAG,CAAS,EAAE,CAAC,CAAC;QAKjD,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;;KAKtC;IAED,IACI,SAAS,CAAC,MAAuB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACvD;AAEM,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACvC;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,YAAY,CAAC,KAAK,EAAA;AACvB,QAAA,OAAO,CAACQ,aAAW,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEM,WAAW,GAAA;AAChB,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC3B;AACH,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;KAChF;AAEO,IAAA,UAAU,CAAC,MAAmB,EAAA;QACpC,MAAM,cAAc,GAAc,EAAE,CAAC;AACrC,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACtB,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;KAC/C;AAEO,IAAA,qBAAqB,CAAC,UAA4B,EAAA;AACxD,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAmB,KAAI;AACxC,YAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,YAAY,CAAC;KACrB;+GA7DU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,6JCbtC,g9BAkBU,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLG,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g9BAAA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,CAAA;kHAI/B,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACW,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBAcH,SAAS,EAAA,CAAA;sBADZ,KAAK;;;MEpBK,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,8FCT/B,6HAQA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDCa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6HAAA,EAAA,CAAA;8BAG/B,WAAW,EAAA,CAAA;sBAA1B,KAAK;;;MEKK,WAAW,CAAA;IACtB,OAAO,OAAO,CAAkC,MAAe,EAAA;QAC7D,OAAqB;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;KACH;IACD,OAAO,WAAW,CAAC,SAAyC,EAAA;QAC1D,OAAqB;AACnB,YAAA,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;AACvB,YAAA,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;AACzB,YAAA,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;AACvB,YAAA,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;SAC1B,CAAC;KACH;IACD,OAAO,KAAK,CAAkC,MAAoB,EAAA;QAChE,OAAgB;YACd,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;KACH;AACF,CAAA;MAYY,SAAS,CAAA;IACpB,OAAO,KAAK,CAAC,SAAuB,EAAA;QAClC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,YAAA,OAAO,EAAE,CAAC;SACX;AACD,QAAA,MAAM,UAAU,GAAuB,IAAI,KAAK,EAAoB,CAAC;AACrE,QAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;aAAE;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,MAAM,CAAC,GAAqB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpB;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;AACF;;AClED;MAYa,mBAAmB,CAAA;AAPhC,IAAA,WAAA,GAAA;QASkB,IAAI,CAAA,IAAA,GAAiB,EAAE,CAAC;QAExB,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAkB,CAAA,kBAAA,GAAqC,IAAI,CAAC;AAC3D,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB,CAAC;QAIhF,IAAc,CAAA,cAAA,GAAW,SAAS,CAAC;AA6J5C,KAAA;IA1JQ,eAAe,GAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,yBAAyB,GAAG;YAC/B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,YAAA,KAAK,EAAO,IAAI,CAAC,aAAa,EAAE;AAChC,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,UAAU,EAAE,CAAA,EAAG,MAAM,CAAC,UAAU,CAAE,CAAA;AAClC,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;SACzC,CAAC;KACH;IAEO,kCAAkC,GAAA;AACxC,QAAA,OAAO,IAAI,CAAC,kBAAkB,KAAK,IAAI;cACnC,EAAE,GAAG,IAAI,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACnE,cAAE,IAAI,CAAC,yBAAyB,CAAC;KACpC;IAEO,SAAS,GAAA;AACf,QAAA,MAAM,GAAG,GAA6B,IAAI,CAAC,kCAAkC,EAAE,CAAC;AAChF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAC1D;IAEO,MAAM,CAAC,OAAyC,EAAE,QAAmC,EAAA;QAC3F,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/B;IAEO,QAAQ,CACd,OAAyC,EACzC,IAA0B,EAC1B,QAAyB,EACzB,QAAyB,EACzB,QAAwB,EACxB,QAAwB,EAAA;AAExB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO;SACR;QAED,MAAM,YAAY,GAAwB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACrE,MAAM,MAAM,GAAiB,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAiB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEzD,QAAA,IAAI,MAAM,CAAC,4BAA4B,EAAE;YACvC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,CAAS,KAAI;gBAC3D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7C,gBAAA,MAAM,YAAY,GAA0B;oBAC1C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,oBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,MAAM,EAAE,WAAW;iBACpB,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,aAAC,CAAC,CAAC;SACJ;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AAC9C,YAAA,MAAM,aAAa,GAA0B;AAC3C,gBAAA,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;AAC9B,gBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,MAAM;aACf,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;SACvD;KACF;AAEO,IAAA,mBAAmB,CAAC,MAAoB,EAAE,aAAoC,EAAE,IAA0B,EAAA;AAChH,QAAA,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;SAC9C;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;SAC7B;KACF;IAEO,aAAa,GAAA;QACnB,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAI;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAI;gBACxC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC5G,gBAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,oBAAA,MAAM,aAAa,GAA0B;AAC3C,wBAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,wBAAA,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,IAAI,CAAC,IAAI;AACnB,wBAAA,MAAM,EAAE,MAAM;qBACf,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;wBACrC,KAAK,CAAC,UAAU,CAAC,GAAG,iBAAiB,IAAI,CAAC,cAAc,CAAA,CAAE,CAAC;qBAC5D;iBACF;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,WAAW,CACjB,QAA0C,EAC1C,IAA0B,EAC1B,QAAgB,EAChB,QAAgB,EAChB,KAAqB,EACrB,cAAsB,EACtB,QAAgB,EAAA;QAChB,MAAM,MAAM,GAAiB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEpD,QAAA,IAAI,IAAI,GAAiB,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,YAAY,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpI,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACpD,YAAA,MAAM,aAAa,GAA0B;AAC3C,gBAAA,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC3B,gBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,MAAM;aACf,CAAC;YACF,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,aAAa,EAAE;AAC7C,gBAAA,MAAM,QAAQ,GAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAChG,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;aACzF;AAAM,iBAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AAC5B,gBAAA,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;aAClH;AAAM,iBAAA,IAAI,MAAM,CAAC,aAAa,EAAE;AAC/B,gBAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;aACjH;SACF;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;KACF;AAEO,IAAA,WAAW,CAAC,aAAoC,EAAA;QACtD,IAAI,IAAI,GAAiB,EAAE,CAAC;AAC5B,QAAA,IAAI,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE;AAC1C,YAAA,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;SAEvJ;aAAM;YACL,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC;SACrG;AAED,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;KACzC;+GAtKU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,qaCZhC,4BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDWa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4BAAA,EAAA,CAAA;8BAK/B,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;gBACU,kBAAkB,EAAA,CAAA;sBAAjC,KAAK;gBACW,OAAO,EAAA,CAAA;sBAAvB,MAAM;gBAC0B,aAAa,EAAA,CAAA;sBAA7C,SAAS;uBAAC,aAAa,CAAA;gBACO,WAAW,EAAA,CAAA;sBAAzC,SAAS;uBAAC,WAAW,CAAA;;;MEHX,2BAA2B,CAAA;AAbxC,IAAA,WAAA,GAAA;QAiBkB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;AA2CxC,KAAA;AArCC,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAW,KAAK,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO;SAAE;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE1D,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACtB;KACF;IAIM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;KAC9B;AAEM,IAAA,gBAAgB,CAAC,UAAiC,EAAA;AACvD,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAEM,IAAA,iBAAiB,CAAC,SAAc,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;AAEM,IAAA,UAAU,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;SACnB;KACF;AAEM,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;+GA9CU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAT3B,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;;AAE1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfH,4KASA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDQa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAbvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGzB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;;AAE1B,4BAAA,WAAW,EAAE,UAAU,CAAC,iCAAiC,CAAC;AAC1D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,4KAAA,EAAA,CAAA;8BAIe,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;;;MELK,sBAAsB,CAAA;IAoBjC,WACU,CAAA,iBAAoC,EACpC,WAAwB,EAAA;QADxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAdjB,QAAA,IAAA,CAAA,QAAQ,GAAiC,IAAI,YAAY,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,UAAU,GAA4B,IAAI,YAAY,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,WAAW,GAA4B,IAAI,YAAY,EAAE,CAAC;QAE3D,IAAa,CAAA,aAAA,GAAwB,YAAY,CAAC;QAE3D,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;KASpC;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEM,IAAI,GAAA;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;AAElB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAEtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAe,KAAI;;AAEpD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAEzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEhD,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;SACR;;AAGD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAe,KAAI;AACtE,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACxC,EACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;KACH;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAED,IAAA,IAAY,SAAS,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC;KACzC;AAED,IAAA,IAAY,MAAM,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC;KACzC;AAED,IAAA,IAAY,aAAa,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;KACnC;AAED,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SACrD;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAEO,YAAY,GAAA;QAClB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;AAClC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEO,WAAW,GAAA;QACjB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9C;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7C;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/D;+GAvIU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA6C,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,mSChBnC,g1BA4BA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuE,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g1BAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA;6GAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAEW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;gBACU,UAAU,EAAA,CAAA;sBAA1B,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;MElBI,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,gECRxC,6BACA,EAAA,MAAA,EAAA,CAAA,gKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDOa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACE,0BAA0B,EAAA,eAAA,EAGnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gKAAA,CAAA,EAAA,CAAA;;;AEG3C,MAAO,yBAA0B,SAAQ,wBAAwB,CAAA;AAIrE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;+GANU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,iHCTtC,uVAiBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uVAAA,EAAA,CAAA;wDAI/B,KAAK,EAAA,CAAA;sBAApB,KAAK;;;MEHK,gCAAgC,CAAA;AAN7C,IAAA,WAAA,GAAA;QAQkB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC7C,KAAA;+GAHY,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,2HCR7C,+GAMA,EAAA,MAAA,EAAA,CAAA,iPAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;+BACE,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+GAAA,EAAA,MAAA,EAAA,CAAA,iPAAA,CAAA,EAAA,CAAA;8BAG/B,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;;;AEDF,MAAO,4BAA6B,SAAQ,wBAAwB,CAAA;AAGxE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;QAHM,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;KAIhC;+GALU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,kHCTzC,4RAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4RAAA,EAAA,CAAA;wDAG/B,IAAI,EAAA,CAAA;sBAAnB,KAAK;;;MEAK,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;AAQkB,QAAA,IAAA,CAAA,WAAW,GAAiB,YAAY,CAAC,OAAO,CAAC;AAElE,KAAA;+GAJY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,iICV9B,+MAQA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2E,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+MAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;8BAG/B,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;;;AEbR,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA;;MCIY,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0DCPnC,4PAQA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,4PAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;;;MEWnB,mBAAmB,CAAA;AAY9B,IAAA,WAAA,CACU,cAA8B,EAC9B,WAAwB,EACxB,MAAc,EAAA;QAFd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AARP,QAAA,IAAA,CAAA,QAAQ,GAAiC,IAAI,YAAY,EAAE,CAAC;QAU3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,UAAU,EAAE,CAAC;KACnF;AAEM,IAAA,UAAU,CAAC,SAAyB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEM,YAAY,GAAA;;QAEjB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,GAAG,GAAW,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,QAAQ,GAAc,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC9F;+GA7CU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA5C,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oOCdhC,+iBAkBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6C,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+iBAAA,EAAA,CAAA;+HAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAEW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;AErBT,IAAY,sBAUX,CAAA;AAVD,CAAA,UAAY,sBAAsB,EAAA;AAC9B,IAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,wBAAyC,CAAA;AACzC,IAAA,sBAAA,CAAA,cAAA,CAAA,GAAA,qCAAoD,CAAA;AACpD,IAAA,sBAAA,CAAA,sBAAA,CAAA,GAAA,KAA4B,CAAA;AAC5B,IAAA,sBAAA,CAAA,qBAAA,CAAA,GAAA,IAA0B,CAAA;AAC1B,IAAA,sBAAA,CAAA,qBAAA,CAAA,GAAA,IAA0B,CAAA;AAC1B,IAAA,sBAAA,CAAA,yBAAA,CAAA,GAAA,QAAkC,CAAA;AAClC,IAAA,sBAAA,CAAA,yBAAA,CAAA,GAAA,QAAkC,CAAA;AAClC,IAAA,sBAAA,CAAA,sBAAA,CAAA,GAAA,IAA2B,CAAA;AAC3B,IAAA,sBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AACjD,CAAC,EAVW,sBAAsB,KAAtB,sBAAsB,GAUjC,EAAA,CAAA,CAAA;;MCCY,2BAA2B,CAAA;IAMtC,WACgC,CAAA,YAAuD,EAC5D,IAAI,EAAA;QADC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2C;AAGrF,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;KAClC;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAChC;AAEO,IAAA,qBAAqB,CAAC,IAAe,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;SACnE;KACF;AAEO,IAAA,kBAAkB,CAAC,IAAe,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG;AACd,gBAAA,GAAG,EAAE,sBAAsB,CAAC,sBAAsB,CAAC;aACpD,CAAC;SACH;KACF;AAEO,IAAA,cAAc,CAAC,IAAe,EAAA;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,sBAAsB,CAAC,cAAc,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,sBAAsB,CAAC,YAAY,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,sBAAsB,CAAC,oBAAoB,CAAC;QACvF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC,mBAAmB,CAAC;KACrF;+GA1CU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAO5B,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AARd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4ECXxC,0rBAYM,EAAA,MAAA,EAAA,CAAA,+RAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1F,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDDO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACE,sCAAsC,EAAA,eAAA,EAG/B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0rBAAA,EAAA,MAAA,EAAA,CAAA,+RAAA,CAAA,EAAA,CAAA;;0BAS5C,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,eAAe,CAAA;;;AEnBpB,MAAM,oCAAoC,GAAW,mCAAmC;;MCMlF,YAAY,CAAA;AAJzB,IAAA,WAAA,GAAA;AAuCmB,QAAA,IAAA,CAAA,SAAS,GAA+B,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAA+B,IAAI,YAAY,EAAE,CAAC;AAO5E,KAAA;AArCC,IAAA,IACI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;KAClC;AAED,IAAA,IAEI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAED,IAAI,MAAM,CAAC,MAAe,EAAA;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;AAUM,IAAA,SAAS,CAAC,MAAe,EAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;KAClD;+GA1CU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAZ,YAAY,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;8BAKQ,EAAE,EAAA,CAAA;sBAFR,WAAW;uBAAC,SAAS,CAAA;;sBACrB,KAAK;gBAIF,MAAM,EAAA,CAAA;sBADT,WAAW;uBAAC,aAAa,CAAA;gBAOtB,MAAM,EAAA,CAAA;sBAFT,WAAW;uBAAC,aAAa,CAAA;;sBACzB,KAAK;gBAoBU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAEW,SAAS,EAAA,CAAA;sBAAzB,MAAM;gBACU,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;MC/BI,iBAAiB,CAAA;IAI5B,IACI,iBAAiB,CAAC,GAAc,EAAA;QAClC,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,GAAG,GAAG;SACP,CAAC;KACH;IAED,IAAI,SAAS,CAAC,GAAiB,EAAA;QAC7B,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAC5E,OAAO;SACR;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,IAAI,CAAC,QAAQ;YAChB,CAAC,oCAAoC,GAAG,KAAK;SAC9C,CAAC;KACH;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAI,QAAQ,CAAC,GAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;KACtB;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC;KACnF;AAMD,IAAA,WAAA,CAAoB,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AArDlB,QAAA,IAAA,CAAA,IAAI,GAA6B,IAAI,SAAS,EAAgB,CAAC;QAiD7F,IAAS,CAAA,SAAA,GAAc,EAAE,CAAC;QAE1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAGzB;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;YAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SAClC;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;SAClC;KACF;AAEM,IAAA,UAAU,CAAC,SAAuB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;+GArEU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAEX,YAAY,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/B,uhBAmBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uhBAAA,EAAA,CAAA;sFAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACgC,IAAI,EAAA,CAAA;sBAAzC,eAAe;uBAAC,YAAY,CAAA;gBAGzB,iBAAiB,EAAA,CAAA;sBADpB,KAAK;gBAuBF,QAAQ,EAAA,CAAA;sBADX,KAAK;;;MEvBK,iBAAiB,CAAA;AA2B5B,IAAA,WAAA,CACU,EAAqB,EACrB,cAA+B,EAC/B,SAAoB,EAAA;QAFpB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;QAC/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QA1Bd,IAAuB,CAAA,uBAAA,GAAY,KAAK,CAAC;QAGzC,IAAK,CAAA,KAAA,GAAW,IAAI,CAAC;QACrB,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAKzB,QAAA,IAAA,CAAA,WAAW,GAA4B,IAAI,YAAY,EAAa,CAAC;AACrE,QAAA,IAAA,CAAA,WAAW,GAA4B,IAAI,YAAY,EAAa,CAAC;AACrE,QAAA,IAAA,CAAA,qBAAqB,GAA4B,IAAI,YAAY,EAAa,CAAC;QAMzF,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAQ7B;IAEE,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KACzB;AAEM,IAAA,YAAY,CAAC,SAAS,EAAA;QAC3B,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,UAAU,EAAE,SAAS,CAAC,UAAU;AAChC,gBAAA,EAAE,EAAE,CAAC,IAAI,KAAI;AACX,oBAAA,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC7B;AAEF,aAAA,CAAC,CAAC;SACJ;KACF;AAEM,IAAA,YAAY,CAAC,UAAU,EAAE,QAA4B,EAAE,uBAAwB,EAAE,MAAO,EAAA;AAC7F,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,uBAAuB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE;YACxH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;SACR;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAA,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,gBAAA,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,QAAQ,CAAC,SAAS;AAC9B,gBAAA,EAAE,EAAE,CAAC,IAAI,KAAI;AACX,oBAAA,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;oBAE3B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB,EAAE;AACtD,wBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;qBACnC;iBACF;AACF,aAAA,CAAC,CAAC;SACJ;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC;aACxE,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,CAAC,KAAc,KAAgC,KAAM,CAAC,MAAO,CAAC,KAAK,CAAC,EACxE,oBAAoB,EAAE,EACtB,SAAS,CAAC,MAAM,IAAG;YACjB,OAAO,CAAC,MAAM,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,IAAY,KAAI;AAC1B,YAAA,IAAG,IAAI,CAAC,kBAAkB,EAC1B;AACE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC7B;iBAED;AACE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACpD;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAEM,gBAAgB,GAAA;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjD,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,iBAAiB,CAAC,MAAa,EAAA;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AACjC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/C,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChB;AACD,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACR;AAEM,IAAA,WAAW,CAAC,KAAY,EAAA;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3D,gBAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,GAAG,CAAC,IAAI,CAAC;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,wBAAA,YAAY,EAAE,EAAE;wBAChB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,wBAAA,MAAM,EAAE,cAAc;AACvB,qBAAA,CAAC,CAAC;iBACJ;aACF;AACD,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACR;IAEM,WAAW,CAAC,KAAY,EAAE,IAAY,EAAA;QAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;AACvC,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChB;AACD,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACR;IAEM,MAAM,CAAC,KAAY,EAAE,IAAY,EAAA;QACtC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,KAAK,CAAC;SACd;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AAChC,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,gBAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,GAAG,CAAC,IAAI,CAAC;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,wBAAA,YAAY,EAAE,EAAE;AAChB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,MAAM,EAAE,QAAQ;AACjB,qBAAA,CAAC,CAAC;iBACJ;aACF;AACD,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACR;AAEM,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAC9B,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,EAAE,EAAE,CAAC,IAAI,KAAI;gBACX,IAAG,IAAI,EACP;AACE,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IAEM,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;KAC5D;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC9B;AAEM,IAAA,WAAW,CAAC,IAAI,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACtD,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpD;AAEM,IAAA,UAAU,CAAC,IAAI,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrD;IAEM,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACpI,OAAO;SACR;QACD,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;AACvC,YAAA,IAAI,MAAM,CAAC,iBAAiB,KAAK,MAAM,EAAE;AACvC,gBAAA,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC;aACpC;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;SAC9E,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;AACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;KACF;AAEM,IAAA,aAAa,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,sBAAA,CAAwB,CAAC,CAAC;YACtD,OAAO;SACR;AACD,QAAA,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,YAAA,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAC7B,OAAO;SACR;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAG,CAAC,CAAC,cAAc,CAAC,EAAE;AACtF,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,4CAAA,CAA8C,CAAC,CAAC;YAC5E,OAAO;SACR;AACD,QAAA,KAAK,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;KAC9C;IAEM,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC;QACpF,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,EAAE;YAC3D,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAACwD,6BAA2B,EAAE;AAC/C,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,mCAAmC;AAC1C,iBAAA;AACF,aAAA,CAAC,CAAC;YACL,SAAS,CAAC,WAAW,EAAE;iBACpB,SAAS,CAAC,IAAI,IAAG;gBAChB,IAAI,IAAI,EAAE;AACR,oBAAA,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC;AACnC,oBAAA,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC;iBACnC;AACH,aAAC,CAAC,CAAC;YACL,OAAO;SACR;aAAM;AACL,YAAA,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAClF,YAAA,IAAI,MAAM,CAAC,iBAAiB,KAAK,MAAM,EAAE;AACvC,gBAAA,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aAClE;SACF;KACF;IAEM,UAAU,CAAC,MAAM,EAAE,SAAS,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;AAClD,YAAA,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;SACpC;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,kCAAA,CAAoC,CAAC,CAAC;SACnE;KACF;IAEM,aAAa,CAAC,MAAM,EAAE,SAAS,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;AACrD,YAAA,MAAM,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;SAC1C;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,sCAAA,CAAwC,CAAC,CAAC;SACvE;KACF;AAEM,IAAA,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAuB,EAAA;AACjE,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE;YAC3F,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,aAAa,CAAC;QAChD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACrF,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAC1B;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChC;IAEO,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAA;QACrD,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,QAAA,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAG;YACpC,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACxD,QAAQ,GAAG,EAAE,cAAc,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,CAAC,CAAC;aACrE;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,QAAQ,CAAC;KACjB;IAEO,wBAAwB,CAAC,SAAS,EAAE,cAAc,EAAA;QACxD,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,QAAA,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAG;YACpC,IAAI,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE;gBAC9D,QAAQ,GAAG,EAAE,cAAc,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,CAAC,CAAC;aACrE;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEO,IAAA,MAAM,CAAC,KAAK,EAAA;AAClB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aAC9B;SACF;KACF;AAEO,IAAA,QAAQ,CAAC,KAAK,EAAA;AACpB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;YAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aAChC;SACF;KACF;IAEM,UAAU,CAAC,MAAM,EAAE,IAAI,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7C,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACnF,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO;SACR;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAErE,QAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACpE,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aACpC;SACF;aAAM;AACL,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC5C;KACF;IAEO,uBAAuB,CAAC,MAAW,EAAE,IAAS,EAAA;AACpD,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;SACrC;KACF;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAS,MAAA,EAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAuB,qBAAA,CAAA,CAAC,CAAC;KACxG;IAEO,sBAAsB,CAAC,aAAoC,EAAE,MAAW,EAAA;AAC9E,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAClE,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE;AAC7D,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,WAAW,CAAC,IAAS,EAAA;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC7C;SACF;KACF;+GArXU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAArE,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,ouBCd9B,uoRAyIc,EAAA,MAAA,EAAA,CAAA,45DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3HD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,uoRAAA,EAAA,MAAA,EAAA,CAAA,45DAAA,CAAA,EAAA,CAAA;8IAKT,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,kBAAkB,EAAA,CAAA;sBAAjC,KAAK;gBACU,uBAAuB,EAAA,CAAA;sBAAtC,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,sBAAsB,EAAA,CAAA;sBAArC,KAAK;gBACU,yBAAyB,EAAA,CAAA;sBAAxC,KAAK;gBAEW,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,qBAAqB,EAAA,CAAA;sBAArC,MAAM;gBAI4C,WAAW,EAAA,CAAA;sBAA7D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ME/B/B,QAAQ,CAAA;AACnB,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAA,OAAO,EAAE,CAAC;SACX;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;+GANU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB,IAAI;mBAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;;;MC4NT,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBAjIpB,sBAAsB;YACtB,kBAAkB;YAClB,uBAAuB;YACvB,oBAAoB;YACpB,qBAAqB;YACrB,2BAA2B;YAC3B,eAAe;YACf,sBAAsB;YACtB,yBAAyB;YACzB,wBAAwB;YACxB,4BAA4B;YAC5B,0BAA0B;YAC1B,4BAA4B;YAC5B,yBAAyB;YACzB,gCAAgC;YAChC,2BAA2B;YAC3B,sBAAsB;YACtB,oBAAoB;YACpB,4BAA4B;YAC5B,yBAAyB;YACzB,aAAa;YACb,iBAAiB;YACjB,sBAAsB;YACtB,mBAAmB;YACnB,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,yBAAyB;YACzB,iBAAiB;YACjB,sBAAsB;YACtB,sBAAsB;YACtB,2BAA2B;YAC3B,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,4BAA4B;YAC5B,yBAAyB;YACzB,yBAAyB;YACzB,kBAAkB;YAClB,QAAQ;YACR,YAAY;YACZ,QAAQ;YACR,oBAAoB;YACpB,0BAA0B;YAC1B,8BAA8B;YAC9B,oBAAoB;YACpB,2BAA2B;YAC3B,UAAU;YACV,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;YACnB,2BAA2B;YAC3B,sBAAsB;YACtB,0BAA0B;YAC1B,iBAAiB;YACjB,sBAAsB;YACtB,yBAAyB;YACzB,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;YACjB,eAAe;YACf,qBAAqB;YACrB4B,2BAAyB;AACzB,YAAAC,uBAAqB,aAGrB,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,YAAY;YACZ,eAAe;YACf,gBAAgB;AAChB,YAAA,gBAAgB,aAGhB,sBAAsB;YACtB,kBAAkB;YAClB,uBAAuB;YACvB,oBAAoB;YACpB,qBAAqB;YACrB,eAAe;YACf,sBAAsB;YACtB,yBAAyB;YACzB,wBAAwB;YACxB,4BAA4B;YAC5B,0BAA0B;YAC1B,4BAA4B;YAC5B,yBAAyB;YACzB,gCAAgC;YAChC,2BAA2B;YAC3B,sBAAsB;YACtB,oBAAoB;YACpB,aAAa;YACb,iBAAiB;YACjB,sBAAsB;YACtB,2BAA2B;YAC3B,mBAAmB;YACnB,yBAAyB;YACzB,kBAAkB;YAClB,yBAAyB;YACzB,oBAAoB;YACpB,iBAAiB;YACjB,QAAQ;YACR,YAAY;YACZ,oBAAoB;YACpB,UAAU;YACV,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;YACnB,2BAA2B;YAC3B,cAAc;YACdC,cAAY;YACZ,0BAA0B;YAC1B,cAAc;YACd,sBAAsB;YACtB,mBAAmB;YACnB,mBAAmB;YACnB,sBAAsB;YACtB,iBAAiB;YACjB,eAAe;YACfF,2BAAyB;YACzBC,uBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EA7IX,SAAA,EAAA;YACT,WAAW;YACX,UAAU;YACV,iBAAiB;YACjB,kBAAkB;YAClB,UAAU;YACV,gBAAgB;AAChB,YAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE;AACvC,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC3C,SAAA,EAAA,OAAA,EAAA,CAuEC,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,YAAY;YACZ,eAAe;YACf,gBAAgB;AAChB,YAAA,gBAAgB,EAuChB,cAAc;YACdC,cAAY;YAEZ,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWL,WAAW,EAAA,UAAA,EAAA,CAAA;kBA9IvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;wBACT,WAAW;wBACX,UAAU;wBACV,iBAAiB;wBACjB,kBAAkB;wBAClB,UAAU;wBACV,gBAAgB;AAChB,wBAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE;AACvC,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC3C,qBAAA;;AAED,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,kBAAkB;wBAClB,uBAAuB;wBACvB,oBAAoB;wBACpB,qBAAqB;wBACrB,2BAA2B;wBAC3B,eAAe;wBACf,sBAAsB;wBACtB,yBAAyB;wBACzB,wBAAwB;wBACxB,4BAA4B;wBAC5B,0BAA0B;wBAC1B,4BAA4B;wBAC5B,yBAAyB;wBACzB,gCAAgC;wBAChC,2BAA2B;wBAC3B,sBAAsB;wBACtB,oBAAoB;wBACpB,4BAA4B;wBAC5B,yBAAyB;wBACzB,aAAa;wBACb,iBAAiB;wBACjB,sBAAsB;wBACtB,mBAAmB;wBACnB,gBAAgB;wBAChB,gBAAgB;wBAChB,kBAAkB;wBAClB,uBAAuB;wBACvB,yBAAyB;wBACzB,iBAAiB;wBACjB,sBAAsB;wBACtB,sBAAsB;wBACtB,2BAA2B;wBAC3B,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;wBACpB,4BAA4B;wBAC5B,yBAAyB;wBACzB,yBAAyB;wBACzB,kBAAkB;wBAClB,QAAQ;wBACR,YAAY;wBACZ,QAAQ;wBACR,oBAAoB;wBACpB,0BAA0B;wBAC1B,8BAA8B;wBAC9B,oBAAoB;wBACpB,2BAA2B;wBAC3B,UAAU;wBACV,gBAAgB;wBAChB,gBAAgB;wBAChB,YAAY;wBACZ,mBAAmB;wBACnB,2BAA2B;wBAC3B,sBAAsB;wBACtB,0BAA0B;wBAC1B,iBAAiB;wBACjB,sBAAsB;wBACtB,yBAAyB;wBACzB,mBAAmB;wBACnB,mBAAmB;wBACnB,iBAAiB;wBACjB,eAAe;wBACf,qBAAqB;wBACrBF,2BAAyB;wBACzBC,uBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,YAAY;wBACZ,eAAe;wBACf,gBAAgB;wBAChB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;wBACtB,kBAAkB;wBAClB,uBAAuB;wBACvB,oBAAoB;wBACpB,qBAAqB;wBACrB,eAAe;wBACf,sBAAsB;wBACtB,yBAAyB;wBACzB,wBAAwB;wBACxB,4BAA4B;wBAC5B,0BAA0B;wBAC1B,4BAA4B;wBAC5B,yBAAyB;wBACzB,gCAAgC;wBAChC,2BAA2B;wBAC3B,sBAAsB;wBACtB,oBAAoB;wBACpB,aAAa;wBACb,iBAAiB;wBACjB,sBAAsB;wBACtB,2BAA2B;wBAC3B,mBAAmB;wBACnB,yBAAyB;wBACzB,kBAAkB;wBAClB,yBAAyB;wBACzB,oBAAoB;wBACpB,iBAAiB;wBACjB,QAAQ;wBACR,YAAY;wBACZ,oBAAoB;wBACpB,UAAU;wBACV,gBAAgB;wBAChB,gBAAgB;wBAChB,YAAY;wBACZ,mBAAmB;wBACnB,2BAA2B;wBAC3B,cAAc;wBACdC,cAAY;wBACZ,0BAA0B;wBAC1B,cAAc;wBACd,sBAAsB;wBACtB,mBAAmB;wBACnB,mBAAmB;wBACnB,sBAAsB;wBACtB,iBAAiB;wBACjB,eAAe;wBACfF,2BAAyB;wBACzBC,uBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;MCzLY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBApB3B,0BAA0B;YAC1B,oBAAoB;YACpB,iBAAiB;YACjB,yBAAyB;YACzB,wBAAwB;YACxB,0BAA0B;AAC1B,YAAAhF,YAAU,aAGV,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,WAAW;AACX,YAAA,WAAW,aAGX,0BAA0B;YAC1B,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAX3B,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,WAAW;YACX,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOF,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAtB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,oBAAoB;wBACpB,iBAAiB;wBACjB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1BA,YAAU;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,WAAW;wBACX,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;ACnCD,IAAY,YAOX,CAAA;AAPD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAPW,YAAY,KAAZ,YAAY,GAOvB,EAAA,CAAA,CAAA;;ACJM,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAA4B,kBAAkB,CAAC;;ACG1F,MAAM,eAAe,GAA8B;IACxD,KAAK,EAAE,YAAY,CAAC,QAAQ;IAC5B,aAAa,EAAE,YAAY,CAAC,OAAO;IACnC,QAAQ,CAAC,QAAiB,EAAE,KAA8B,EAAA;AACxD,QAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACvC;CACF,CAAC;AAEK,MAAM,aAAa,GAA8B;IAEtD,KAAK,EAAE,YAAY,CAAC,MAAM;IAC1B,aAAa,EAAE,YAAY,CAAC,OAAO;IACnC,QAAQ,CAAC,QAAiB,EAAE,KAA8B,EAAA;AACxD,QAAA,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;KACzB;CACF,CAAC;AAEK,MAAM,gBAAgB,GAAmB;AAC9C,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEK,MAAM,cAAc,GAAmB;AAC5C,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,KAAK,EAAE,IAAI;CACZ;;MC5BY,kBAAkB,CAAA;IAI7B,WAAoB,CAAA,UAAsB,EAAU,QAAmB,EAAA;QAAnD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;KACtE;IAEM,eAAe,GAAA;AAEpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAU,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5F;KACF;+GAZU,kBAAkB,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,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;uGAGiB,YAAY,EAAA,CAAA;sBAA3B,KAAK;;;MCDK,oBAAoB,CAAA;IAK/B,WAAoB,CAAA,UAAsB,EAAU,QAAmB,EAAA;QAAnD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;KACtE;IAEM,eAAe,GAAA;AAEpB,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAU,IAAI,CAAC,MAAM,CAAC,CAAC;SACxF;KACF;+GAbU,oBAAoB,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,EAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;uGAIiC,MAAM,EAAA,CAAA;sBAArC,KAAK;uBAAC,gBAAgB,CAAA;;;ACTzB,IAAY,0BAGX,CAAA;AAHD,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,0BAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,GAGrC,EAAA,CAAA,CAAA;;MCGY,wBAAwB,CAAA;AAQnC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AANhC,QAAA,IAAA,CAAA,KAAK,GAAW,0BAA0B,CAAC,GAAG,CAAC;QAC/C,IAAE,CAAA,EAAA,GAAkB,IAAI,CAAC;KAMxC;+GATU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mDAAmD;AAC9D,iBAAA,CAAA;gFAGiB,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;;;MCJK,2BAA2B,CAAA;AACtC;;;;;;;AAOG;IACI,SAAS,CAAC,KAAuB,EAAE,IAAY,EAAA;AACpD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI;aACvB,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACZ,aAAA,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,KAAI;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACpD,YAAA,OAAO,KAAK,IAAI,2BAA2B,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;SAChG,EAAE,KAAK,CAAC,CAAC;QAEZ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC;KAC/D;IAEM,OAAO,kBAAkB,CAAC,OAAO,EAAA;AACtC,QAAA,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;KACxB;IAEM,WAAW,CAAC,KAAuB,EAAE,IAAY,EAAA;AACtD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;KACnD;+GA5BU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA3B,2BAA2B,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,yBAAyB;AAChC,iBAAA,CAAA;;;MCAY,wBAAwB,CAAA;AAE5B,IAAA,SAAS,CAAC,GAAW,EAAE,QAAqB,EAAE,SAAc,EAAA;QACjE,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7B,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;SACjC;AAED,QAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;KAC7C;+GARU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAxB,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;AAC7B,iBAAA,CAAA;;;ACGD,MAAMkF,QAAM,GAAG;IACb,2BAA2B;IAC3B,wBAAwB;IACxB,oBAAoB;CACrB,CAAC;MAoBW,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBAvBhC,2BAA2B;YAC3B,wBAAwB;AACxB,YAAA,oBAAoB,EAMlB,kBAAkB;YAClB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAGxB,YAAY,CAAA,EAAA,OAAA,EAAA,CAZd,2BAA2B;YAC3B,wBAAwB;AACxB,YAAA,oBAAoB,EAclB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAOf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EALrB,SAAA,EAAA;YACT,gBAAgB;YAChB,cAAc;AACf,SAAA,EAAA,OAAA,EAAA,CATC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;AACZ,wBAAA,GAAGA,QAAM;wBACT,kBAAkB;wBAClB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,GAAGA,QAAM;wBACT,wBAAwB;AACzB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,gBAAgB;wBAChB,cAAc;AACf,qBAAA;AACF,iBAAA,CAAA;;;MC3BY,2BAA2B,CAAA;AAItC,IAAA,WAAA,CACU,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAC3B;IAEE,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;SACtD;KACF;+GAZU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACpC,iBAAA,CAAA;+EAGiB,eAAe,EAAA,CAAA;sBAA9B,KAAK;;;MCCK,gCAAgC,CAAA;+GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,kGCR7C,6GAKA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9F,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,CAAA;8BAM1B,KAAK,EAAA,CAAA;sBAApB,KAAK;;;AEVR,IAAY,iBAMX,CAAA;AAND,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,mBAA2B,CAAA;AAC3B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,mBAA6B,CAAA;AAC7B,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,wBAAmC,CAAA;AACnC,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,eAAwB,CAAA;AACxB,IAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,oBAAiC,CAAA;AACrC,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA;;MCgCY,gCAAgC,CAAA;IAiB3C,WACyD,CAAA,aAA0B,EACzE,iBAAoC,EAAA;QADW,IAAa,CAAA,aAAA,GAAb,aAAa,CAAa;QACzE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAXvC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;QACpC,IAAsB,CAAA,sBAAA,GAAG,kBAAkB,CAAC;QAEpD,IAAiB,CAAA,iBAAA,GAAG,iBAAiB,CAAC;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KAMlC;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACxD;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,MAAM,CAAE,cAAc,CAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO;AACL,YAAA,GAAG,EAAE,cAAc;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;SACnC,CAAC;KACH;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAEnD,QAAA+F,OAAK,CACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EACvD,IAAI,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAChF;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAElC,IAAI,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5C;KACF;AAEM,IAAA,yBAAyB,CAAC,YAA4C,EAAA;AAC3E,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACT,IAAI,CAAC,gBAAiB,CAAC,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACzF,YAAY;iBACT,oBAAoB;AACpB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,iBAAA,SAAS,CAAC,MAAK,EAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;SACpD;KACF;AAEM,IAAA,cAAc,CAAC,KAA8B,EAAA;QAClD,OAAO,KAAK,YAAYC,2BAAyB,CAAC;KACnD;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACnB,OAAO,CAAA;UACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;UACvC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AACxC,QAAA,EAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,kBAAkB,GAAG,EAAE,CAAA;OAChE,CAAC;SACH;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KACjD;AAtFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,kBAkBrBC,2BAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAlBpC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,EAM7B,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EADtB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,YAAY,mFC3CzB,w4BA0BA,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAqF,wBAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDYa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,mBAGzB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,w4BAAA,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,CAAA;;0BAoBlC,QAAQ;;0BAAI,MAAM;2BAACD,2BAAyB,CAAA;yEAhB/B,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAE2C,YAAY,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;gBACmB,gBAAgB,EAAA,CAAA;sBAA1E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;;;AEjC9C,MAAO,kCAAmC,SAAQE,6BAA2B,CAAA;AAIjF,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,KAAKC,2BAAyB,CAAC,OAAO,CAAC;KACpE;AAEM,IAAA,UAAU,CAAC,KAAoB,EAAA;AAEpC,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;KAEF;IAEM,OAAO,GAAA;AAEZ,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC;KACF;IAEM,gBAAgB,GAAA;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;KAC5C;IAEM,aAAa,GAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;KAC5C;+GAjCU,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,2HCX/C,+eAmBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwF,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;mHDRa,kCAAkC,EAAA,CAAA,CAAA,EAAA;;4FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAN9C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,+eAAA,EAAA,CAAA;;kBAI7C,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AEFF,MAAO,qCAAsC,SAAQF,6BAA2B,CAAA;AAPtF,IAAA,WAAA,GAAA;;QASkB,IAAuB,CAAA,uBAAA,GAAY,KAAK,CAAC;AAsB1D,KAAA;AAnBC,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,OAAO;YACxB,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;KACH;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;AACjC,QAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;AAC5B,YAAA,OAAO,QAAQ,CAAC;SACjB;AACD,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3B;AAED,QAAA,OAAO,IAAI,CAAC;KACb;+GAvBU,qCAAqC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,8NCXlD,8rBA0BA,EAAA,MAAA,EAAA,CAAA,wMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6E,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;mHDfa,qCAAqC,EAAA,CAAA,CAAA,EAAA;;4FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAPjD,SAAS;+BACE,qCAAqC,EAAA,eAAA,EAG9B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8rBAAA,EAAA,MAAA,EAAA,CAAA,wMAAA,CAAA,EAAA,CAAA;;kBAEhD,UAAU;8BAEgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;gBACU,uBAAuB,EAAA,CAAA;sBAAtC,KAAK;gBACU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;;;AEJF,MAAO,gCAAiC,SAAQH,6BAA2B,CAAA;+GAApE,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,2JCV7C,29BA+BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsF,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAzF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;mHDrBa,gCAAgC,EAAA,CAAA,CAAA,EAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;+BACE,kEAAkE,EAAA,eAAA,EAG3D,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,29BAAA,EAAA,CAAA;;kBAEhD,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AEZR,IAAY,qBAGX,CAAA;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA;;ACQK,MAAO,8BAA+B,SAAQqF,6BAA2B,CAAA;AAN/E,IAAA,WAAA,GAAA;;AASkB,QAAA,IAAA,CAAA,WAAW,GAA0B,qBAAqB,CAAC,UAAU,CAAC;AAMvF,KAAA;AAJC,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,qBAAqB,CAAC,QAAQ,GAAG,sBAAsB,GAAG,EAAE,CAAC;KAC1F;+GAPU,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,mJCX3C,mfAiBA,EAAA,MAAA,EAAA,CAAA,oaAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;mHDNa,8BAA8B,EAAA,CAAA,CAAA,EAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,mfAAA,EAAA,MAAA,EAAA,CAAA,oaAAA,CAAA,EAAA,CAAA;;kBAIzC,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;;;AEDF,MAAO,iCAAkC,SAAQqF,6BAA2B,CAAA;AAIhF,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;aACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;KACvE;+GAPU,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,0HCb9C,+iCAgCA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6E,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAArF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;mHDnBa,iCAAiC,EAAA,CAAA,CAAA,EAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAR7C,SAAS;+BACE,iCAAiC,EAAA,eAAA,EAG1B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+iCAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;;kBAGhD,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AELF,MAAO,iCAAkC,SAAQkF,6BAA2B,CAAA;+GAArE,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,0HCV9C,yVAYA,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;mHDFa,iCAAiC,EAAA,CAAA,CAAA,EAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,yVAAA,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,CAAA;;kBAI5C,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AEGR,MAAM,uBAAuB,GAAqC;AAChE,IAAA,QAAQ,EAAE,EAAE;CACb,CAAC;AAUI,MAAO,6BAA8B,SAAQwG,sCAAoC,CAAA;IACrF,WACE,CAAA,wBAAkD,EAClD,QAAkB,EAClB,cAA8B,EAC9B,KAAiB,EACT,2BAAwD,EAAA;QAEhE,KAAK,CAAC,wBAAwB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAFzD,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;KAGjE;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;KAClC;AAED,IAAA,IAAa,aAAa,GAAA;QACxB,OAAO,IAAI,CAAC,2BAA2B,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5E;+GAjBU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAxG,IAAA,CAAA,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAH7B,QAAA,EAAA,4DAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,iDCxBnG,IACA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;mHD0Ba,6BAA6B,EAAA,CAAA,CAAA,EAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4DAA4D,EAGrD,eAAA,EAAA,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,CAAA;;kBAElG,UAAU;;;MEZE,iCAAiC,CAAA;AAL9C,IAAA,WAAA,GAAA;QAiBkB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAE1B,IAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AAgDzD,KAAA;AA9CC,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,GAAG,GAAG,GAAI,IAAI,CAAC,GAAI,CAAK,CAAA,EAAA,IAAI,CAAC,aAAc,CAAA,CAAE,GAAG,IAAI,CAAC;KAClE;AAED,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;KAC7C;AAED,IAAA,IAA0B,YAAY,GAAA;AACpC,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5E;IAEM,SAAS,CAAC,MAAc,EAAE,KAA8B,EAAA;QAC7D,OAAO,KAAK,CAAC,EAAE,CAAC;KACjB;IAEM,OAAO,CAAC,MAAgC,EAAE,IAAY,EAAA;QAE3D,QAAQ,IAAI;AAEV,YAAA,KAAKyG,mBAAiB,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM;aACP;AAED,YAAA,KAAKA,mBAAiB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM;aACP;AAED,YAAA,KAAKA,mBAAiB,CAAC,KAAK,EAAE;AAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM;aACP;AAED,YAAA,KAAKA,mBAAiB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM;aACP;YAED,SAAS;gBACP,OAAO;aACR;SAEF;KACF;+GA7DU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,wWCd9C,scAYA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0G,6BAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,sEAAsE,EAAA,QAAA,EAAA,scAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,CAAA;8BAMhE,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,GAAG,EAAA,CAAA;sBAAlB,KAAK;gBAEU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAEU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAYoB,YAAY,EAAA,CAAA;sBAArC,WAAW;uBAAC,OAAO,CAAA;;;AEtCf,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,MAAM,8BAA8B,GAAG,WAAW,CAAC;AACnD,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;AACtD,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAClD,MAAM,+BAA+B,GAAG,YAAY,CAAC;AACrD,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,oCAAoC,GAAG,mBAAmB,CAAC;AACjE,MAAM,mCAAmC,GAAG,aAAa;;ACKzD,MAAM,oBAAoB,GAAgB;AAC/C,IAAA,QAAQ,EAAE,MAAM,CAAE,CAAA;AAClB,IAAA,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,KAAI;AAC/B,QAAA,OAAO,iBAAiB,CAAC,eAAe,CAAC,CAAC;KAC3C;IACD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAmC,+BAAA,EAAA,GAAI,CAAE,CAAA;IAC3D,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAgC,4BAAA,EAAA,GAAI,CAAE,CAAA;IACxD,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,CAAmC,+BAAA,EAAA,cAAe,CAAa,WAAA,CAAA;AAClG,IAAA,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAiB,KAAK,CAA+B,2BAAA,EAAA,GAAG,CAAC,kBAAkB,EAAG,CAAE,CAAA;CACzG,CAAC;AAEF,SAAS,iBAAiB,CAAC,OAAe,EAAA;IACxC,QAAQ,OAAO;AACb,QAAA,KAAK,mBAAmB,CAAC;AACzB,QAAA,KAAK,8BAA8B;AACjC,YAAA,OAAO,iCAAiC,CAAC;AAE3C,QAAA,KAAK,0BAA0B,CAAC;AAChC,QAAA,KAAK,+BAA+B;AAClC,YAAA,OAAO,yDAAyD,CAAC;AAEnE,QAAA,KAAK,4BAA4B,CAAC;AAClC,QAAA,KAAK,gBAAgB,CAAC;AACtB,QAAA,KAAK,eAAe;AAClB,YAAA,OAAO,0DAA0D,CAAC;QAEpE,SAAS;AACP,YAAA,OAAO,mCAAmC,CAAC;SAC5C;KACF;AACH,CAAC;AAEM,MAAM,yBAAyB,GAAG,IAAI,cAAc,CAAc,qBAAqB,EAAE;AAC9F,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,oBAAoB;AACpC,CAAA,CAAC;;AChDF,IAAY,YAmBX,CAAA;AAnBD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,OAAyC,CAAA;AACzC,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,OAAyC,CAAA;AACzC,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,OAAyC,CAAA;AACzC,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,QAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,oCAAA,CAAA,GAAA,UAA+C,CAAA;AAC/C,IAAA,YAAA,CAAA,0CAAA,CAAA,GAAA,gBAA2D,CAAA;AAC3D,IAAA,YAAA,CAAA,uCAAA,CAAA,GAAA,aAAqD,CAAA;AACrD,IAAA,YAAA,CAAA,sCAAA,CAAA,GAAA,YAAmD,CAAA;AACnD,IAAA,YAAA,CAAA,mCAAA,CAAA,GAAA,SAA6C,CAAA;AAC7C,IAAA,YAAA,CAAA,uCAAA,CAAA,GAAA,aAAqD,CAAA;AACrD,IAAA,YAAA,CAAA,uCAAA,CAAA,GAAA,aAAqD,CAAA;AACrD,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,QAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,QAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,QAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,oCAAA,CAAA,GAAA,UAA+C,CAAA;AAC/C,IAAA,YAAA,CAAA,sCAAA,CAAA,GAAA,YAAmD,CAAA;AACnD,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,QAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,qCAAA,CAAA,GAAA,WAAiD,CAAA;AACnD,CAAC,EAnBW,YAAY,KAAZ,YAAY,GAmBvB,EAAA,CAAA,CAAA;;ACnBD,IAAY,SAIX,CAAA;AAJD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA;;MCKqB,uBAAuB,CAAA;AAoB3C,IAAA,WAAA,CAAsB,MAAsC,EAAA;AAE1D,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;AAC/D,QAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QAEpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;AAE9E,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAW,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;KACrC;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;AACF;;AC9CK,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;AAOhE,IAAA,WAAA,CAAY,MAAoC,EAAA;QAE9C,KAAK,CAAC,MAAM,CAAC,CAAC;QAPT,IAAK,CAAA,KAAA,GAAqB,EAAE,CAAC;AAGpB,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,+BAA+B,CAAC;QAM1E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QAEpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KACtD;AAEM,IAAA,GAAG,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1B;IAEM,GAAG,CAAC,KAAa,EAAE,YAAqC,EAAA;AAC7D,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;KAClC;AAEM,IAAA,GAAG,CAAC,YAAqC,EAAA;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC/B;IAEM,MAAM,CAAC,KAAa,EAAE,YAAqC,EAAA;QAChE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;KAC3C;IAEM,IAAI,CAAC,KAAa,EAAE,IAAY,EAAA;QACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACpE;AAEM,IAAA,MAAM,CAAC,KAAa,EAAA;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC7B;IAEM,IAAI,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1B;AACF;;MCxCY,wBAAwB,CAAA;IAE5B,cAAc,CAAC,EAAU,EAAE,MAA2B,EAAA;AAC3D,QAAA,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;SAAE;;QAGzC,OAAO,MAAM,CAAC,MAAM,CAAuC,CAAC,GAAG,EAAE,IAAI,KAAI;YACvE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACrE,EAAE,IAAI,CAAC,CAAC;KACV;IAEM,OAAO,CAAC,EAAU,EAAE,MAA0B,EAAA;AACnD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACtC;IAEM,gBAAgB,CAAC,SAA2B,EAAE,QAAgB,EAAA;AACnE,QAAA,OAAO,SAAS;AACb,aAAA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;AACzC,aAAA,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;YACvB,OAAO,YAAY,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1F,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACV;+GAtBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,2BAA2B,CAAA;AAiBtC,IAAA,WAAA,CACY,aAAuC,EACzC,iBAAoC,EACW,aAA0B,EAAA;QAFvE,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;QACzC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACW,IAAa,CAAA,aAAA,GAAb,aAAa,CAAa;AAblE,QAAA,IAAA,CAAA,IAAI,GAAwB,IAAI,YAAY,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,KAAK,GAAwB,IAAI,YAAY,EAAE,CAAC;AAChD,QAAA,IAAA,CAAA,WAAW,GAAkD,IAAI,YAAY,EAAE,CAAC;AAEjF,QAAA,IAAA,CAAA,cAAc,GAAgB,IAAI,CAAC,aAAa,CAAC;QAGzD,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAOlC;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;KACtB;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,CAA2D,wDAAA,EAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,CAAA,CAAC,CAAC;SAC7F;AACD,QAAA,OAAoB,OAAO,CAAC;KAC7B;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,IAAS,EAAA;QAChC,OAAO,IAAI,CAAC,MAAM;cACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACvB,iBAAA,GAAG,CAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;cACjG,EAAE,CAAC;KACR;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAkB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1B;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B;AAEM,IAAA,MAAM,CAAC,MAAW,EAAA;AAEvB,QAAA,IAAI,MAAM,YAAY,KAAK,EAAE;YAC3B,MAAM,CAAC,eAAe,EAAE,CAAC;SAC1B;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACxB;AAEM,IAAA,QAAQ,CAAC,MAAW,EAAA;AACzB,QAAA,IAAI,MAAM,YAAY,KAAK,EAAE;YAC3B,MAAM,CAAC,eAAe,EAAE,CAAC;SAC1B;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC1B;AAEM,IAAA,aAAa,CAAC,MAAW,EAAE,OAAsB,IAAI,EAAE,SAAkB,KAAK,EAAA;AAEnF,QAAA,MAAM,OAAO,GAAiD,IAAI,CAAC,WAAW,CAAC;QAE/E,IAAI,MAAM,EAAE;AAEV,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAEtB;AAAM,aAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAEzB,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;SAC9D;KACF;AAEM,IAAA,OAAO,CAAC,MAAW,EAAA;AACxB,QAAA,IAAI,MAAM,YAAY,KAAK,EAAE;YAC3B,MAAM,CAAC,eAAe,EAAE,CAAC;SAC1B;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzB;AAlHU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,wFAoBhB,yBAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGApBpC,2BAA2B,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;;0BAqBL,QAAQ;;0BAAI,MAAM;2BAAC,yBAAyB,CAAA;yCAlB/B,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEW,IAAI,EAAA,CAAA;sBAApB,MAAM;gBACU,MAAM,EAAA,CAAA;sBAAtB,MAAM;gBACU,KAAK,EAAA,CAAA;sBAArB,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;ACfH,MAAO,yBAA0B,SAAQ,2BAA2B,CAAA;AAIxE,IAAA,IAAI,KAAK,GAAA;QACP,OAAa,IAAI,CAAC,OAAO,CAAC;KAC3B;+GANU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;8BAGiB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;ACGF,MAAO,2BAA4B,SAAQ,yBAAyB,CAAA;AAExE,IAAA,YAAY,CAAC,KAAa,EAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,IAAI,EAAE,OAAO,YAAY,SAAS,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,KAAK,CAAA,4BAAA,EAA+B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;SAC9G;AACD,QAAA,OAAO,OAAoB,CAAC;KAC7B;+GARU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,wFCXxC,qjBAwBA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1G,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8F,6BAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;mHDba,2BAA2B,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,qjBAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;;kBAKtC,UAAU;;;AEVX,IAAY,iBAKX,CAAA;AALD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAK5B,EAAA,CAAA,CAAA;;ACAK,MAAgB,qBAAyB,SAAQ,uBAAuB,CAAA;AAU1E,IAAA,WAAA,CAAsB,MAA8C,EAAA;QAEhE,KAAK,CAAC,MAAM,CAAC,CAAC;AAEd,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;QAExC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;AACvF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAK,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;KACjE;IAED,IAAI,KAAK,CAAC,KAAe,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;AAED,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAEM,IAAA,aAAa,CAAC,GAAW,EAAE,YAAA,GAAuC,SAAS,EAAA;QAC9E,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;KAChH;AACJ;;ACrCK,MAAO,kBAAsB,SAAQ,qBAAwB,CAAA;AAKjE,IAAA,WAAA,CAAY,MAA0C,EAAA;QACpD,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;AACF;;MCFY,oBAAoB,CAAA;AAe/B,IAAA,WAAA,CACY,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAVzC,QAAA,IAAA,CAAA,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;AAE/C,QAAA,IAAA,CAAA,IAAI,GAA2C,IAAI,YAAY,EAAE,CAAC;AAClE,QAAA,IAAA,CAAA,MAAM,GAA2C,IAAI,YAAY,EAAE,CAAC;AACpE,QAAA,IAAA,CAAA,KAAK,GAA2C,IAAI,YAAY,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAA2C,IAAI,YAAY,EAAE,CAAC;QAE1E,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;KAI1C;IAEE,SAAS,CAAC,MAAc,EAAE,KAA8B,EAAA;QAC7D,OAAO,KAAK,CAAC,EAAE,CAAC;KACjB;IAEM,OAAO,CAAC,MAAgC,EAAE,IAAY,EAAA;QAE3D,QAAQ,IAAI;AAEV,YAAA,KAAK,iBAAiB,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM;aACP;AAED,YAAA,KAAK,iBAAiB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM;aACP;AAED,YAAA,KAAK,iBAAiB,CAAC,KAAK,EAAE;AAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM;aACP;AAED,YAAA,KAAK,iBAAiB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM;aACP;YAED,SAAS;gBACP,OAAO;aACR;SAEF;KACF;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AAExB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;AAC1D,gBAAA,IAAI,OAAO,YAAY,kBAAkB,EAAE;AACzC,oBAAA,OAAO,GAAG,CAAC;iBACZ;AAED,gBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC;gBAC3E,MAAM,KAAK,GAAqB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE7C,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACjC,oBAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACrB;qBAAM;oBACL,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;iBACzB;AAED,gBAAA,OAAO,GAAG,CAAC;AACb,aAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;SAEf;KACF;AAED,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACxD;+GA/EU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;sFAGQ,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAIW,IAAI,EAAA,CAAA;sBAApB,MAAM;gBACU,MAAM,EAAA,CAAA;sBAAtB,MAAM;gBACU,KAAK,EAAA,CAAA;sBAArB,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;MCgBI,oCAAoC,CAAA;AAoB/C,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,QAAQ,CAA8B,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;KAChE;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAoC,IAAI,CAAC,KAAM,CAAC,IAAI,IAAI,IAAI,CAAC;KAC9D;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACnC;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,kCAAkC,CAAC;KAC5E;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;AAED,IAAA,WAAA,CACY,wBAAkD,EAClD,QAAkB,EAClB,cAA8B,EAChC,KAAiB,EAAA;QAHf,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AA9CV,QAAA,IAAA,CAAA,IAAI,GAA2C,IAAI,YAAY,EAAE,CAAC;AAClE,QAAA,IAAA,CAAA,MAAM,GAA2C,IAAI,YAAY,EAAE,CAAC;AACpE,QAAA,IAAA,CAAA,KAAK,GAA2C,IAAI,YAAY,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAA4C,IAAI,YAAY,EAAE,CAAC;QAEpF,IAAO,CAAA,OAAA,GAAsC,IAAI,CAAC;AAIlD,QAAA,IAAA,CAAA,gBAAgB,GAA4B,IAAI,CAAC,KAAK,CAAC;AAGpD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;KAoC3C;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;AAEM,IAAA,MAAM,CAAC,MAAmD,EAAA;AAC/D,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;KACpF;AAEM,IAAA,OAAO,CAAC,MAA4C,EAAA;AACzD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtF;AAEM,IAAA,QAAQ,CAAC,MAA8C,EAAA;AAC5D,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;KACxF;AAEM,IAAA,aAAa,CAAC,MAAsC,EAAA;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;KACvG;IAEM,WAAW,GAAA;QAChB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YACnD,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,OAAO;SACR;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEM,0BAA0B,GAAA;AAE/B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AAEzC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB;aAC9C,uBAAuB,CAAC,aAAa,CAAC;AACtC,aAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEzB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAE5C,QAAA,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,GAA+B,IAAI,CAAC,KAAM,CAAC,UAAU;SACtD,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAwB,IAAI,CAAC,YAAY,CAAC,QAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACjH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,CAAC;KACnE;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEnD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAC9B,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAClC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,KAAK,YAAY,qBAAqB,EAAE;AAC/C,YAAA,MAAM,KAAK,GAA+B,IAAI,CAAC,KAAK,CAAC;YAErD,KAAK,CAAC,YAAY,CAAC,IAAI,CACrB,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAClC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;SACvD;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;KACF;IAEM,wBAAwB,GAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAG;AACtC,YAAA,MAAM,cAAc,GAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChF,YAAA,MAAM,mBAAmB,GAA4B,IAAI,CAAC,KAAK,CAAC,UAAU;AACvE,iBAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEtD,YAAA,IAAI,CAAC,cAAc,IAAI,CAAC,mBAAmB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACnF,OAAO;aACR;YAED,cAAc;iBACX,YAAY;AACZ,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACvC,iBAAA,SAAS,CAAC,MAAM,QAAQ,CAAC,cAAc,CACtC,mBAAmB,EACnB,cAAc,EACd,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CACjC,CACF,CAAC;AAEN,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,iBAAiB,CAAC,QAAqC,EAAA;QAC5D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAW,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACtG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1G,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAW,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAExG,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE;YACtC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAW,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;SACrH;KACF;IAEM,sBAAsB,GAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAC5B,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAClC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;KACzD;IAES,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAA;QAClC,MAAM;aACH,IAAI,CAAC,MAAM,CAAC;AACZ,aAAA,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAChD;IAES,2BAA2B,GAAA;AACnC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7B;KACF;IAES,6BAA6B,CAAC,MAAW,EAAE,IAAY,EAAA;AAC/D,QAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;KAC7G;IAES,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;AAES,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAExC,QAAA,IAAI,IAAI,CAAC,KAAK,YAAY,qBAAqB,EAAE;AAE/C,YAAA,MAAM,KAAK,GAA+B,IAAI,CAAC,KAAK,CAAC;AAErD,YAAA,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;AACzB,gBAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;SACF;KACF;AAES,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;AAES,IAAA,sBAAsB,CAAC,KAAc,EAAA;AAC7C,QAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACxD;+GAtOU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApC,oCAAoC,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD,SAAS;0KAGQ,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAEW,IAAI,EAAA,CAAA;sBAApB,MAAM;gBACU,MAAM,EAAA,CAAA;sBAAtB,MAAM;gBACU,KAAK,EAAA,CAAA;sBAArB,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;AC7CT,IAAY,UAiBX,CAAA;AAjBD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,uCAAA,CAAA,GAAA,OAA+C,CAAA;AAC/C,IAAA,UAAA,CAAA,wCAAA,CAAA,GAAA,QAAiD,CAAA;AACjD,IAAA,UAAA,CAAA,sCAAA,CAAA,GAAA,MAA6C,CAAA;AAC7C,IAAA,UAAA,CAAA,gDAAA,CAAA,GAAA,gBAAiE,CAAA;AACjE,IAAA,UAAA,CAAA,uCAAA,CAAA,GAAA,OAA+C,CAAA;AAC/C,IAAA,UAAA,CAAA,sCAAA,CAAA,GAAA,MAA6C,CAAA;AAC7C,IAAA,UAAA,CAAA,uCAAA,CAAA,GAAA,OAA+C,CAAA;AAC/C,IAAA,UAAA,CAAA,wCAAA,CAAA,GAAA,QAAiD,CAAA;AACjD,IAAA,UAAA,CAAA,0CAAA,CAAA,GAAA,UAAqD,CAAA;AACrD,IAAA,UAAA,CAAA,uCAAA,CAAA,GAAA,OAA+C,CAAA;AAC/C,IAAA,UAAA,CAAA,wCAAA,CAAA,GAAA,QAAiD,CAAA;AACjD,IAAA,UAAA,CAAA,qCAAA,CAAA,GAAA,KAA2C,CAAA;AAC3C,IAAA,UAAA,CAAA,sCAAA,CAAA,GAAA,MAA6C,CAAA;AAC7C,IAAA,UAAA,CAAA,sCAAA,CAAA,GAAA,MAA6C,CAAA;AAC7C,IAAA,UAAA,CAAA,qCAAA,CAAA,GAAA,KAA2C,CAAA;AAC3C,IAAA,UAAA,CAAA,sCAAA,CAAA,GAAA,MAA6C,CAAA;AAC/C,CAAC,EAjBW,UAAU,KAAV,UAAU,GAiBrB,EAAA,CAAA,CAAA;;ACjBD,IAAY,mBAGX,CAAA;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA;;ACGK,MAAgB,wBAA4B,SAAQ,qBAAwB,CAAA;AAahF,IAAA,WAAA,CAAsB,MAA0C,EAAA;QAE9D,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC,EAAE,CAAC;AAClE,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;AACxE,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;AACtE,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,oCAAoC,CAAC;KACtF;AACF;;ACzBK,MAAO,iBAAkB,SAAQ,wBAAyC,CAAA;AAQ9E,IAAA,WAAA,CAAY,MAAgC,EAAA;QAE1C,KAAK,CAAC,MAAM,CAAC,CAAC;AAJA,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,+BAA+B,CAAC;QAM1E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,oCAAoC,CAAC;AACrF,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACxD,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;KACzD;AAEF;;MCvBY,UAAU,CAAA;AAMrB,IAAA,WAAA,CAAY,MAAmC,EAAA;AAE7C,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC3B;AAED,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAED,IAAW,IAAI,CAAC,IAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;AACF;;AChBK,MAAgB,yBAA6B,SAAQ,qBAA8B,CAAA;AAOvF,IAAA,WAAA,CAAsB,MAA2C,EAAA;QAE/D,KAAK,CAAC,MAAM,CAAC,CAAC;AANT,QAAA,IAAA,CAAA,oBAAoB,GAAmB,IAAI,OAAO,EAAE,CAAC;QAEpD,IAAQ,CAAA,QAAA,GAAoB,EAAE,CAAC;AAMrC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KAC/B;IAED,IAAW,OAAO,CAAC,OAAY,EAAA;AAE7B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAE1B,IAAI,CAAC,QAAQ,GAAmC,OAAQ,CAAC,GAAG,CAAC,YAAY,IAAG;AAC1E,gBAAA,OAAO,IAAI,UAAU,CAAI,YAAY,CAAC,CAAC;AACzC,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,EAAE,CAAC;SAEvB;AAAM,aAAA,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;YAEhC,IAAI,CAAC,QAAQ,GAA2D,OAAQ;AAC7E,iBAAA,IAAI,CACH,GAAG,CACD,aAAa,IAAI,aAAa;AAC3B,iBAAA,GAAG,CAAC,YAAY,IAAI,IAAI,UAAU,CAAI,YAAY,CAAC,CAAC,CACxD,EACD,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,EACzC,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpC,OAAO,EAAE,EAAa,CAAC;AACzB,aAAC,CAAC,EACF,WAAW,EAAE,CACd,CAAC;SACL;KACF;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAEM,IAAA,GAAG,CAAC,YAAyC,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACvD;AAEM,IAAA,GAAG,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEM,MAAM,CAAC,KAAa,EAAE,YAAyC,EAAA;AAEpE,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtB,QAAA,OAAO,MAAM,CAAC;KACf;IAEM,MAAM,CAAC,GAAG,OAAiB,EAAA;AAEhC,QAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAIO,cAAc,GAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAClC;AACF;;AC/EK,MAAO,sBAA0B,SAAQ,yBAA4B,CAAA;AAMzE,IAAA,WAAA,CAAY,MAAwC,EAAA;QAElD,KAAK,CAAC,MAAM,CAAC,CAAC;AAJA,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,qCAAqC,CAAC;QAMhF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;KACrC;AAEM,IAAA,MAAM,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;KAC/C;AACF;;ACfK,MAAO,kBAAsB,SAAQ,yBAA4B,CAAA;AASrE,IAAA,WAAA,CAAY,MAAoC,EAAA;QAE9C,KAAK,CAAC,MAAM,CAAC,CAAC;AAJA,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,gCAAgC,CAAC;AAM3E,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjG,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AAC3E,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC7C;IAEM,MAAM,CAAC,GAAG,OAAiB,EAAA;AAEhC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAEvG,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AACF;;ACxBK,MAAgB,uBAAwB,SAAQ,qBAA8C,CAAA;AAOhG,IAAA,WAAA,CAAsB,MAAsC,EAAA;QAExD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;KACjD;AACJ;;AChBK,MAAO,sBAAuB,SAAQ,uBAAuB,CAAA;AAa/D,IAAA,WAAA,CAAY,MAAqC,EAAA;QAE7C,KAAK,CAAC,MAAM,CAAC,CAAC;AAJF,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,oCAAoC,CAAC;AAM7E,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AACzE,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;KACvC;AACJ;;AC5BK,MAAgB,wBAAyB,SAAQ,qBAA8B,CAAA;AAInF,IAAA,WAAA,CAAsB,MAAuC,EAAA;QAE3D,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACzD;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IAAI,OAAO,CAAC,OAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACjC;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9B;AACF;;ACvBK,MAAO,kBAAmB,SAAQ,wBAAwB,CAAA;AAO5D,IAAA,WAAA,CAAY,MAAiC,EAAA;QAEzC,KAAK,CAAC,MAAM,CAAC,CAAC;AAJF,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,gCAAgC,CAAC;QAMzE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;KACzC;AACJ;;ACfD,IAAY,yBAGX,CAAA;AAHD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,yBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,GAGpC,EAAA,CAAA,CAAA,CAAA;AAEK,MAAgB,yBAA0B,SAAQ,wBAAgC,CAAA;AAMtF,IAAA,WAAA,CAAY,MAAgC,EAAA;QAC1C,KAAK,CAAC,MAAM,CAAC,CAAC;AAEd,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,yBAAyB,CAAC,OAAO,CAAC;KAC1E;AACF;;ACjBK,MAAO,mBAAoB,SAAQ,yBAAyB,CAAA;AAAlE,IAAA,WAAA,GAAA;;AAGkB,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,iCAAiC,CAAC;AACpD,QAAA,IAAA,CAAA,SAAS,GAAG,UAAU,CAAC,sCAAsC,CAAC;KACzF;AAAA;;ACJK,MAAO,oBAAqB,SAAQ,wBAAwB,CAAA;AAO9D,IAAA,WAAA,CAAY,MAAmC,EAAA;QAE3C,KAAK,CAAC,MAAM,CAAC,CAAC;AAJF,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,kCAAkC,CAAC;AAM3E,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;AAEpF,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;KAEnD;AACJ;;MCjBY,0BAA0B,CAAA;AAOrC,IAAA,WAAA,CAAY,OAA8B,EAAE,KAAA,GAA0B,EAAE,EAAE,KAAA,GAAgB,CAAC,CAAC,EAAA;AAE1F,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAEM,IAAA,GAAG,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1B;AACF;;ACnBK,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;AAShE,IAAA,WAAA,CAAY,MAAoC,EAAA;QAE9C,KAAK,CAAC,MAAM,CAAC,CAAC;AAJA,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,+BAA+B,CAAC;AAM1E,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;AAE5E,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AACzB,YAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,0BAA0B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;cAC/E,EAAE,CAAC;AAEP,QAAA,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAExC,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;gBACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;SACF;KACF;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;KAC3B;AAEM,IAAA,GAAG,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC3B;IAEM,QAAQ,GAAA;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7C;AAEM,IAAA,WAAW,CAAC,KAAa,EAAA;AAE9B,QAAA,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,SAAS,CAAC,KAAa,EAAE,IAAY,EAAA;QAE1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAEM,IAAA,WAAW,CAAC,KAAa,EAAA;QAE9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;KAC5D;AACF;;AC1EM,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAgB,oBAAoB,CAAC;;MCK5E,4BAA4B,CAAA;AAEvC,IAAA,WAAA,CAAuD,YAA2B,EACrB,iBAAqC,EACtC,iBAAgC,EAAA;QAFrC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAe;QACrB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAoB;QACtC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAe;KAC3F;AALU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAEP,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,aAAa,EACb,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,mBAAmB,6BACnB,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAJvC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGc,QAAQ;;0BAAI,MAAM;2BAAC,aAAa,CAAA;;0BAChC,QAAQ;;0BAAI,MAAM;2BAAC,mBAAmB,CAAA;;0BACtC,QAAQ;;0BAAI,MAAM;2BAAC,kBAAkB,CAAA;;;ACZpD;;AAEG;;MCUmB,0BAA0B,CAAA;IAgB9C,WACY,CAAA,WAA+B,EAC/B,aAAuC,EAAA;QADvC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;KAC9C;IAEE,SAAS,CAAC,MAAc,EAAE,KAAoC,EAAA;QACnE,OAAO,KAAK,CAAC,EAAE,CAAC;KACjB;IAEM,OAAO,CAAC,MAAgC,EAAE,IAAY,EAAA;QAE3D,QAAQ,IAAI;AAEV,YAAA,KAAK,iBAAiB,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM;aACP;AAED,YAAA,KAAK,iBAAiB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM;aACP;AAED,YAAA,KAAK,iBAAiB,CAAC,KAAK,EAAE;AAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM;aACP;AAED,YAAA,KAAK,iBAAiB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM;aACP;YAED,SAAS;gBACP,OAAO;aACR;SAEF;KACF;AAEF;;MCtDY,kBAAkB,CAAA;AAEtB,IAAA,kBAAkB,CAAC,QAAgB,EAAA;AACxC,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,GAAG,EAAE;AAC9B,YAAA,OAAO,QAAQ,CAAC;SACjB;AAED,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE;AAC/B,YAAA,OAAO,MAAM,CAAC;SACf;AAED,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE;AAC/B,YAAA,OAAO,MAAM,CAAC;SACf;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,eAAe,CAAC,KAA8B,EAAA;AACnD,QAAA,QAAQ,KAAK,CAAC,IAAI;AAEhB,YAAA,KAAK,YAAY,CAAC,+BAA+B,EAAE;AACjD,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAwB,KAAK,CAAC,CAAC;aAC3D;YAED,KAAK,YAAY,CAAC,+BAA+B,CAAC;AAClD,YAAA,KAAK,YAAY,CAAC,wCAAwC,EAAE;gBAC1D,MAAM,UAAU,GAA0B,KAAK,CAAC;AAEhD,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;aAC1E;YAED,SAAS;AACP,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAA6B,KAAK,CAAC,CAAC;aAClE;SACF;KACF;AAEM,IAAA,eAAe,CACpB,cAAqC,EAAA;QAGrC,MAAM,QAAQ,GAAsB,EAAE,CAAC;AAEvC,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAExD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAE7C,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;SACvD;QAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;AAEzE,QAAA,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC3B,SAAS,CAAC,OAAO,EAAE,CAAC;SACrB;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAEM,IAAA,iBAAiB,CACtB,YAAqC,EAAA;QAGrC,IAAI,YAAY,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAElD,QAAA,IAAI,YAAY,YAAY,qBAAqB,EAAE;AACjD,YAAA,YAAY,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;SAC/E;QAED,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;KACnE;AAEM,IAAA,eAAe,CAAC,SAA2B,EAAE,OAAA,GAAyC,IAAI,EAAA;QAE/F,MAAM,QAAQ,GAA8C,EAAE,CAAC;AAE/D,QAAA,SAAS,CAAC,OAAO,CAAC,KAAK,IAAG;AACxB,YAAA,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AAE7B,YAAA,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACzC;AAEM,IAAA,OAAO,QAAQ,CAAC,EAAU,EAAE,SAA2B,EAAA;QAE5D,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,QAAA,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,UAA4B,KAAU;AAErE,YAAA,KAAK,MAAM,YAAY,IAAI,UAAU,EAAE;AAErC,gBAAA,IAAI,YAAY,CAAC,EAAE,KAAK,GAAG,EAAE;oBAC3B,MAAM,GAAG,YAAY,CAAC;oBACtB,MAAM;iBACP;AAED,gBAAA,IAAI,YAAY,YAAY,qBAAqB,EAAE;AACjD,oBAAA,UAAU,CAAC,GAAG,EAA0B,YAAa,CAAC,KAAK,CAAC,CAAC;iBAC9D;aACF;AACH,SAAC,CAAC;AAEF,QAAA,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAE1B,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,aAAa,CAClB,SAAoB,EACpB,SAA2B,EAC3B,SAAiB,EACjB,eAAwC,EAAA;AAGxC,QAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;AAEtE,QAAA,IAAI,gBAAgB,IAAI,CAAC,EAAE;YACzB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACxD,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEzE,YAAA,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAEtE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;SAC1D;AAED,QAAA,MAAM,KAAK,CAAC,CAAA,4BAAA,EAA+B,SAAS,CAAA,mBAAA,CAAqB,CAAC,CAAC;KAC5E;AAEM,IAAA,eAAe,CAAC,SAAoB,EAAE,SAA2B,EAAE,eAAiC,EAAA;QACzG,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,QAAA,eAAe,CAAC,OAAO,CAAC,OAAO,IAAG;AAChC,YAAA,MAAM,kBAAkB,GAA4B,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAEvG,YAAA,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,KAAK,OAAO,EAAE;AACzD,gBAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,kBAAkB,EAAE;AACtB,oBAAA,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;iBACtC;aACF;AAEH,SAAC,CAAC,CAAC;AAEH,QAAA,SAAS,CAAC,OAAO,CAAC,OAAO,IAAG;AAC1B,YAAA,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YAEpF,IAAI,CAAC,kBAAkB,EAAE;AACvB,gBAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC3B;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC;KACjF;IAEM,kBAAkB,CAAC,SAAoB,EAAE,SAA2B,EAAE,GAAW,EAAE,GAAG,QAA0B,EAAA;QACrH,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;QAEjE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACtC,QAAA,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;KACjC;AAEM,IAAA,kBAAkB,CAAC,SAAoB,EAAE,SAA2B,EAAE,GAAG,QAA0B,EAAA;AACxG,QAAA,QAAQ,CAAC,OAAO,CAAC,eAAe,IAAG;AAEjC,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC;AAExF,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,gBAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBAE5D,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;AAE3C,gBAAA,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aAC7C;AACH,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,mBAAmB,CAAC,SAAoB,EAAE,SAAgC,EAAE,GAAG,MAAwB,EAAA;AAE5G,QAAA,IAAI,SAAS,YAAY,qBAAqB,EAAE;AAE9C,YAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC;SAEhF;aAAM;YAEL,MAAM,UAAU,GAAqB,SAAS,CAAC;AAC/C,YAAA,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC;SAClF;KACF;AAEM,IAAA,oBAAoB,CAAC,KAAa,EAAE,IAAY,EAAE,SAAgC,EAAA;AAEvF,QAAA,IAAI,SAAS,YAAY,qBAAqB,EAAE;AAE9C,YAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAE7B;aAAM;YAEL,MAAM,UAAU,GAAqB,SAAS,CAAC;AAC/C,YAAA,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SACpE;KACF;IAEM,sBAAsB,CAC3B,KAAa,EACb,SAAoB,EACpB,SAAgC,EAChC,GAAG,MAAwB,EAAA;QAG3B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AAEvD,QAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,KAAI;AAEjD,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAEjC,YAAA,IAAI,SAAS,YAAY,qBAAqB,EAAE;AAC9C,gBAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;aAEvC;iBAAM;gBACc,SAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;aAC9D;YAED,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,sBAAsB,CAAC,KAAa,EAAE,SAAoB,EAAE,SAAgC,EAAA;AAEjG,QAAA,IAAI,SAAS,YAAY,qBAAqB,EAAE;AAE9C,YAAA,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjD,YAAA,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAEzB;aAAM;YAEL,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,YAAA,SAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChD;KACF;IAEM,iBAAiB,CAAC,SAAoB,EAAE,cAAqC,EAAA;AAElF,QAAA,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;AAE7C,QAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KACxD;AAEM,IAAA,oBAAoB,CAAC,KAAa,EAAE,SAAoB,EAAE,cAAqC,EAAA;QAEpG,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAErD,QAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KACjE;AAEM,IAAA,oBAAoB,CAAC,KAAa,EAAE,SAAoB,EAAE,cAAqC,EAAA;AAEpG,QAAA,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACnC;IAEM,cAAc,CAAC,SAAoB,EAAE,cAAsC,EAAA;AAChF,QAAA,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACvB;QAED,IAAI,cAAc,EAAE;YAClB,cAAc,CAAC,KAAK,EAAE,CAAC;SACxB;KACF;IAEM,OAAO,4BAA4B,CAAC,OAAwB,EAAA;QAEjE,IAAI,OAAO,YAAY,SAAS,IAAI,OAAO,YAAY,SAAS,EAAE;AAC1D,YAAA,MAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;iBACnC,OAAO,CAAC,CAAC,IAAG;AACX,gBAAA,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;YACL,OAAO;SACR;QAED,OAAO,CAAC,aAAa,EAAE,CAAC;KACzB;AAEM,IAAA,+BAA+B,CAAC,OAAwB,EAAA;QAE7D,IAAI,OAAO,YAAY,SAAS,IAAI,OAAO,YAAY,SAAS,EAAE;AAC1D,YAAA,MAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;iBACnC,OAAO,CAAC,CAAC,IAAG;AACX,gBAAA,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;AAC1C,aAAC,CAAC,CAAC;YACL,OAAO;SACR;QAED,OAAO,CAAC,sBAAsB,EAAE,CAAC;KAClC;IAEM,OAAO,oBAAoB,CAAC,KAAuB,EAAA;AACxD,QAAA,KAAK,CAAC,OAAO,CAAC,OAAO,IAAG;AACtB,YAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAElC,YAAA,IAAI,OAAO,YAAY,qBAAqB,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO;aACR;AAED,YAAA,IAAI,OAAO,YAAY,0BAA0B,EAAE;AACjD,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO;aACR;AAED,YAAA,IAAI,OAAO,YAAY,qBAAqB,EAAE;AAC5C,gBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9E,OAAO;aACR;AACH,SAAC,CAAC,CAAC;KACJ;+GAnUU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACbD,IAAY,6BAIX,CAAA;AAJD,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,6BAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,6BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,GAIxC,EAAA,CAAA,CAAA;;MCSY,8BAA8B,CAAA;AAL3C,IAAA,WAAA,GAAA;QAQkB,IAAS,CAAA,SAAA,GAAqB,EAAE,CAAC;QAOjC,IAAoB,CAAA,oBAAA,GAAG,6BAA6B,CAAC;AAqCtE,KAAA;AAnCC,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;SAAE;AAEvC,QAAA,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI;AAE7B,YAAA,KAAK,6BAA6B,CAAC,GAAG,EAAE;AACtC,gBAAA,OAAO,KAAK,CAAC;aACd;AACD,YAAA,KAAK,6BAA6B,CAAC,GAAG,EAAE;AACtC,gBAAA,OAAO,KAAK,CAAC;aACd;YACD,SAAS;AACP,gBAAA,OAAO,EAAE,CAAC;aACX;SAEF;KACF;AAED,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;SAAE;AAEvC,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;KAC9D;AAED,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAC1D,YAAA,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjD;AAED,IAAA,IAA0B,QAAQ,GAAA;AAChC,QAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,CAAA,CAAE,CAAC,iBAAiB,EAAE,CAAC;KAC3F;+GA9CU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA9B,8BAA8B,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb3C,opBAoBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3G,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPa,8BAA8B,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+F,iCAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,8DAA8D,EAAA,QAAA,EAAA,opBAAA,EAAA,CAAA;8BAMxD,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAEU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAoCoB,QAAQ,EAAA,CAAA;sBAAjC,WAAW;uBAAC,OAAO,CAAA;;;AE3ChB,MAAO,4BAA6B,SAAQ,0BAA0B,CAAA;IAS1E,WACY,CAAA,kBAAsC,EACtC,wBAAkD,EAAA;AAE5D,QAAA,KAAK,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;QAH1C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QATrC,IAAS,CAAA,SAAA,GAAqB,EAAE,CAAC;QACjC,IAAU,CAAA,UAAA,GAAuB,EAAE,CAAC;KAW5D;+GAdU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,yQCdzC,wcAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiG,8BAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDAa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,oDAAoD,EAAA,QAAA,EAAA,wcAAA,EAAA,CAAA;wHAMrC,SAAS,EAAA,CAAA;sBAAjC,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBACmB,cAAc,EAAA,CAAA;sBAAtC,KAAK;gBACmB,aAAa,EAAA,CAAA;sBAArC,KAAK;gBAEmB,SAAS,EAAA,CAAA;sBAAjC,KAAK;;;AEPF,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;IAE9D,IACW,QAAQ,CAAC,GAAY,EAAA;AAC9B,QAAA,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;YAC1B,OAAO;SACR;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAC/E;AAED,IAAA,WAAA,CAAqB,EAAqB,EAAA;QACxC,KAAK,CAAC,EAAE,CAAE,CAAA;QADS,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAW1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAIzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAmB,CAAC;AAClD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAM,CAAC;AAEzC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAjBlC;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAeM,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SACvE;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;+GA1CU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAwBhB,wBAAwB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtC3C,m3BA4BA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/G,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmG,4BAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;mHDda,sBAAsB,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,sCAAsC,EAAA,QAAA,EAAA,m3BAAA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,CAAA;;kBAIjD,UAAU;sFAIE,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAiBU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAEU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAE4C,SAAS,EAAA,CAAA;sBAA1D,eAAe;uBAAC,wBAAwB,CAAA;gBAExB,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBACU,MAAM,EAAA,CAAA;sBAAtB,MAAM;;;AE9BH,MAAO,yBAA0B,SAAQ,2BAA2B,CAAA;AAIxE,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;KAClC;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7E;AACD,QAAA,OAAO,IAAI,CAAC;KACb;+GAbU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,iHCXtC,qYAgBA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjH,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqG,sBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,qYAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;8BAOT,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AEbR,IAAY,mBAIX,CAAA;AAJD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA;;MCOY,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;QAQkB,IAAiB,CAAA,iBAAA,GAAG,mBAAmB,CAAC;QACxC,IAAU,CAAA,UAAA,GAAG,SAAS,CAAC;QACvB,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC;QAEtC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAExB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAEjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAuB,CAAC;AAaxE,KAAA;IAXQ,aAAa,CAAC,UAA+B,EAAE,KAAiB,EAAA;AACrE,QAAA,IAAI,UAAU,KAAK,mBAAmB,CAAC,MAAM,EAAE;YAC7C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC;KACzC;+GAxBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,wOCXrC,o0BAkBmB,EAAA,MAAA,EAAA,CAAA,yDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtG,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsG,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDPN,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,o0BAAA,EAAA,MAAA,EAAA,CAAA,yDAAA,CAAA,EAAA,CAAA;8BAQxC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAGU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBAEW,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;MEdI,oBAAoB,CAAA;AAI/B,IAAA,IAAgC,MAAM,GAAA;AACpC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;KAC1D;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B;+GAVU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,gLCTjC,mKAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,mKAAA,EAAA,CAAA;8BAKZ,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAE0B,MAAM,EAAA,CAAA;sBAArC,WAAW;uBAAC,aAAa,CAAA;;;AEAtB,MAAO,iCAAkC,SAAQmG,6BAA2B,CAAA;IAIzE,OAAO,GAAA;QACZ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC1C;IAEM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU;AACvB,eAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ;AACjC,cAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ;cAC9B,EAAE,CAAC;KACR;+GAbU,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,0HCb9C,0SAOS,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;mHDMI,iCAAiC,EAAA,CAAA,CAAA,EAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAR7C,SAAS;+BACE,iCAAiC,EAAA,aAAA,EAG5B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,0SAAA,EAAA,CAAA;;kBAGtC,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AEHF,MAAO,mCAAoC,SAAQmG,6BAA2B,CAAA;+GAAvE,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,mKCZhD,45BA6BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsF,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAzF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;mHDjBa,mCAAmC,EAAA,CAAA,CAAA,EAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAP/C,SAAS;+BACE,0EAA0E,EAAA,eAAA,EAGnE,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,45BAAA,EAAA,CAAA;;kBAEhD,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AEAF,MAAO,mCAAoC,SAAQqF,6BAA2B,CAAA;AAGlF,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;aACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;KACvE;+GANU,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,6HCdhD,qhBAqBA,EAAA,MAAA,EAAA,CAAA,0EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;mHDPa,mCAAmC,EAAA,CAAA,CAAA,EAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAR/C,SAAS;+BACE,oCAAoC,EAAA,eAAA,EAG7B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qhBAAA,EAAA,MAAA,EAAA,CAAA,0EAAA,CAAA,EAAA,CAAA;;kBAGhD,UAAU;8BAEgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AELF,MAAO,mCAAoC,SAAQqF,6BAA2B,CAAA;+GAAvE,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,4HCVhD,gJAEM,EAAA,MAAA,EAAA,CAAA,4EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;mHDQO,mCAAmC,EAAA,CAAA,CAAA,EAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;+BACE,mCAAmC,EAAA,QAAA,EAAA,gJAAA,EAAA,MAAA,EAAA,CAAA,4EAAA,CAAA,EAAA,CAAA;;kBAI9C,UAAU;8BAGgB,KAAK,EAAA,CAAA;sBAA7B,KAAK;;;AETD,MAAM,2BAA2B,GAAG,IAAI,cAAc,CAA0B,6BAA6B,CAAC;;ACmB/G,SAAU,kBAAkB,CAAC,KAA8B,EAAA;AAC/D,IAAA,QAAQ,KAAK,CAAC,IAAI;QAChB,KAAK,YAAY,CAAC,+BAA+B;AAC/C,YAAA,OAAO,2BAA2B,CAAC;QAErC,KAAK,YAAY,CAAC,kCAAkC;AAClD,YAAA,OAAOwG,qCAAmC,CAAC;QAE7C,KAAK,YAAY,CAAC,wCAAwC;AACxD,YAAA,OAAO,IAAI,CAAC;QAEd,KAAK,YAAY,CAAC,oCAAoC;AACpD,YAAA,OAAOC,uCAAqC,CAAC;QAE/C,KAAK,YAAY,CAAC,+BAA+B;AAC/C,YAAA,OAAOC,2BAAyB,CAAC;QAEnC,KAAK,YAAY,CAAC,+BAA+B;AAC/C,YAAA,OAAOC,kCAAgC,CAAC;QAE1C,KAAK,YAAY,CAAC,qCAAqC;AACrD,YAAA,OAAOC,gCAA8B,CAAC;QAExC,KAAK,YAAY,CAAC,gCAAgC;AAChD,YAAA,OAAO,IAAI,CAAC;QAEd,KAAK,YAAY,CAAC,gCAAgC;AAChD,YAAA,OAAOC,mCAAiC,CAAC;QAE3C,KAAK,YAAY,CAAC,kCAAkC;AAClD,YAAA,OAAOC,qCAAmC,CAAC;QAE7C,KAAK,YAAY,CAAC,oCAAoC;AACpD,YAAA,OAAO,IAAI,CAAC;QAEd,KAAK,YAAY,CAAC,iCAAiC;AACjD,YAAA,OAAO,kCAAkC,CAAC;QAE5C,KAAK,YAAY,CAAC,gCAAgC;AAChD,YAAA,OAAO,iCAAiC,CAAC;QAE3C,KAAK,YAAY,CAAC,gCAAgC;AAChD,YAAA,OAAOC,mCAAiC,CAAC;QAE3C,KAAK,YAAY,CAAC,mCAAmC;AACnD,YAAA,OAAOC,qCAAmC,CAAC;AAE7C,QAAA;AACE,YAAA,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAEM,MAAM,4BAA4B,GAAa;AACpD,IAAA,OAAO,EAAE,2BAA2B;AACpC,IAAA,QAAQ,EAAE,kBAAkB;CAC7B;;AChDD,MAAM,MAAM,GAAG;IACb,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;IAChC,sBAAsB;IACtB,iCAAiC;IACjC,mCAAmC;IACnC,yBAAyB;IACzB,8BAA8B;IAC9B,qCAAqC;IACrC,wBAAwB;IACxB,2BAA2B;IAC3B,6BAA6B;IAC7B,iCAAiC;IACjC,mCAAmC;IACnC,mCAAmC;CACpC,CAAC;MA8BW,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBA7C9B,gCAAgC;YAChC,gCAAgC;YAChC,gCAAgC;YAChC,sBAAsB;YACtB,iCAAiC;YACjC,mCAAmC;YACnC,yBAAyB;YACzB,8BAA8B;YAC9B,qCAAqC;YACrC,wBAAwB;YACxB,2BAA2B;YAC3B,6BAA6B;YAC7B,iCAAiC;YACjC,mCAAmC;AACnC,YAAA,mCAAmC,EAMjC,4BAA4B;YAC5B,8BAA8B;YAC9B,iCAAiC;YACjC,kCAAkC;YAClC,iCAAiC;YACjC,oBAAoB;YACpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAEnB,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CA5B/E,gCAAgC;YAChC,gCAAgC;YAChC,gCAAgC;YAChC,sBAAsB;YACtB,iCAAiC;YACjC,mCAAmC;YACnC,yBAAyB;YACzB,8BAA8B;YAC9B,qCAAqC;YACrC,wBAAwB;YACxB,2BAA2B;YAC3B,6BAA6B;YAC7B,iCAAiC;YACjC,mCAAmC;AACnC,YAAA,mCAAmC,EA4BjB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAG3B,mBAAmB,EAAA,SAAA,EAFnB,CAAC,4BAA4B,CAAC,EAAA,OAAA,EAAA,CAf/B,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAiBpE,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA5B/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,MAAM;wBACN,4BAA4B;wBAC5B,8BAA8B;wBAC9B,iCAAiC;wBACjC,kCAAkC;wBAClC,iCAAiC;wBACjC,oBAAoB;wBACpB,2BAA2B;AAC5B,qBAAA;oBACD,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;;;;;;;;;;;;;;AAchF,oBAAA,OAAO,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC;oBACvC,SAAS,EAAE,CAAC,4BAA4B,CAAC;AAC1C,iBAAA,CAAA;;;MCzDY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAT3B,YAAY;YACZ,mBAAmB;AACnB,YAAA,qBAAqB,aAGrB,mBAAmB;YACnB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAT3B,YAAY;YACZ,mBAAmB;AACnB,YAAA,qBAAqB,EAGrB,mBAAmB;YACnB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGZ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;ACbM,MAAM,yBAAyB,GAAwB;AAC5D,IAAA,iBAAiB,CAAC,KAAK;AACvB,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,QAAQ;AAC1B,IAAA,iBAAiB,CAAC,gBAAgB;AAClC,IAAA,iBAAiB,CAAC,WAAW;AAC7B,IAAA,iBAAiB,CAAC,mBAAmB;AACrC,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,iBAAiB;AACnC,IAAA,iBAAiB,CAAC,EAAE;AACpB,IAAA,iBAAiB,CAAC,MAAM;AACxB,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;CAC9B,CAAC;AAEK,MAAM,oBAAoB,GAAwB;AACvD,IAAA,iBAAiB,CAAC,KAAK;AACvB,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,EAAE;AACpB,IAAA,iBAAiB,CAAC,MAAM;AACxB,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;AAC7B,IAAA,iBAAiB,CAAC,YAAY;AAC9B,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,qBAAqB;AACvC,IAAA,iBAAiB,CAAC,kBAAkB;AACpC,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;CAC9B,CAAC;AAEK,MAAM,iBAAiB,GAAwB;AACpD,IAAA,iBAAiB,CAAC,KAAK;AACvB,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;AAC7B,IAAA,iBAAiB,CAAC,YAAY;AAC9B,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,qBAAqB;AACvC,IAAA,iBAAiB,CAAC,kBAAkB;AACpC,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;CAC9B,CAAC;AAEK,MAAM,iBAAiB,GAAwB;AACpD,IAAA,iBAAiB,CAAC,KAAK;AACvB,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;CAC9B,CAAC;AAEK,MAAM,sBAAsB,GACjC,IAAI,GAAG,CAAwC;AAC7C,IAAA,CAAC,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,CAAC;AAClD,IAAA,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC;AAC/C,IAAA,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,CAAC;AAC9C,IAAA,CAAC,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAC1C,IAAA,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC;AACnD,IAAA,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC;AACnD,IAAA,CAAC,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAC3C,CAAA,CAAC,CAAC;AAEE,MAAM,mBAAmB,GAA2B,IAAI,GAAG,CAAoB;AACpF,IAAA,iBAAiB,CAAC,KAAK;AACvB,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,YAAY;AAC9B,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,qBAAqB;AACvC,IAAA,iBAAiB,CAAC,kBAAkB;AACpC,IAAA,iBAAiB,CAAC,QAAQ;AAC1B,IAAA,iBAAiB,CAAC,gBAAgB;AAClC,IAAA,iBAAiB,CAAC,WAAW;AAC7B,IAAA,iBAAiB,CAAC,mBAAmB;AACrC,IAAA,iBAAiB,CAAC,SAAS;AAC3B,IAAA,iBAAiB,CAAC,iBAAiB;AACnC,IAAA,iBAAiB,CAAC,IAAI;AACtB,IAAA,iBAAiB,CAAC,QAAQ;AAC3B,CAAA,CAAC,CAAC;AAEI,MAAM,kBAAkB,GAA2B,IAAI,GAAG,CAAoB;AACnF,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;AAC9B,CAAA,CAAC,CAAC;AAEI,MAAM,mBAAmB,GAA2B,IAAI,GAAG,CAAoB;AACpF,IAAA,iBAAiB,CAAC,OAAO;AACzB,IAAA,iBAAiB,CAAC,WAAW;AAC9B,CAAA,CAAC,CAAC;AAEI,MAAM,qBAAqB,GAA2B,IAAI,GAAG,CAAoB;AACtF,IAAA,iBAAiB,CAAC,EAAE;AACpB,IAAA,iBAAiB,CAAC,MAAM;AACzB,CAAA,CAAC,CAAC;AAEI,MAAM,yBAAyB,GAAmC,IAAI,GAAG,CAA4B;AAC1G,IAAA,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC;AAC5B,IAAA,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAA,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC;AACxC,IAAA,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;AACxD,IAAA,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;AAC1C,IAAA,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;AAClC,IAAA,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC;AAC9C,IAAA,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;AACtC,IAAA,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC;AAChD,IAAA,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;AAClE,IAAA,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;AAC1C,IAAA,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;AAC5D,IAAA,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC;AAC9C,IAAA,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;AAC9D,IAAA,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;AAC1C,IAAA,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;AAC1D,IAAA,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;AAChC,IAAA,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC;AACxC,IAAA,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;AACtC,IAAA,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC;AAC/C,CAAA,CAAC;;AChHI,SAAU,oBAAoB,CAAC,QAA2B,EAAA;IAC9D,OAAO;QACL,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ;AAC1D,QAAA,KAAK,EAAE,QAAQ;KAChB,CAAC;AACJ;;ACRM,SAAU,kBAAkB,CAAC,GAAwB,EAAA;AACzD,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,OAAO,GAAG;UACN,GAAG;aACF,MAAM,CAAS,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,KAAI;AACjC,YAAA,MAAM,OAAO,GAAY,GAAG,KAAK,CAAC,CAAC;AAEnC,YAAA,GAAG,IAAI,OAAO,GAAG,CAAK,EAAA,EAAA,IAAI,CAAI,EAAA,CAAA,GAAG,CAAM,GAAA,EAAA,IAAI,IAAI,CAAC;AAEhD,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC;AACN,UAAA,GAAG,CAAC;AACV,CAAC;AAEK,SAAU,uBAAuB,CAAC,KAAa,EAAA;IACnD,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,YAAY,EAAE;QAChB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,WAAW,IAAI,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;AACnG,QAAA,OAAO,YAAY;AACd,aAAA,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,WAAW,GAAG,iBAAiB,CAAC,CAAC;KAChE;IAED,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjE,IAAI,UAAU,EAAE;AACd,QAAA,OAAO,KAAK;aACX,KAAK,CAAC,QAAQ,CAAC;aACf,GAAG,CAAC,CAAC,IAAG;AACP,YAAA,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACJ;IAED,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAEK,SAAU,0BAA0B,CAAC,KAAa,EAAA;IACtD,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;AACV,SAAA,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAEK,SAAU,mBAAmB,CAAC,KAAK,EAAA;IACvC,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,OAAO,KAAK;SACT,KAAK,CAAC,MAAM,CAAC;AACb,SAAA,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,iBAAiB,CAAC,KAAa,EAAA;IAC7C,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,OAAO,KAAK;SACT,KAAK,CAAC,MAAM,CAAC;AACb,SAAA,GAAG,CAAC,KAAK,IACR,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CACrC,CAAC;AACN,CAAC;AAEK,SAAU,uBAAuB,CAAC,GAAwB,EAAA;IAC9D,MAAM,gCAAgC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAC7D,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,WAAA,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACzC,CAAC;IAEF,IAAI,CAAC,gCAAgC,EAAE;AACrC,QAAA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAA,EAAA,EAAK,GAAG,CAAC,CAAC,CAAC,CAAY,SAAA,EAAA,GAAG,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AAC3C,CAAC;AAEK,SAAU,qBAAqB,CAAC,GAAW,EAAA;AAC/C,IAAA,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAChB,WAAA,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,WAAA,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACxC;AACA,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAU,OAAA,EAAA,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;AACnE;;MCrEa,4BAA4B,CAAA;IAuBvC,IAAI,KAAK,CAAC,GAAa,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,IAAIC,mBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,qBAAqB,GAAA;QACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACvD;AAID,IAAA,WAAA,CACU,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QA/C9B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAiB,CAAA,iBAAA,GAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;AASxH,QAAA,IAAA,CAAA,YAAY,GAAoB,IAAI,OAAO,EAAU,CAAC;QACtD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAIV,IAAmB,CAAA,mBAAA,GAA2B,mBAAmB,CAAC;QAClE,IAAmB,CAAA,mBAAA,GAA2B,mBAAmB,CAAC;QAClE,IAAqB,CAAA,qBAAA,GAA2B,qBAAqB,CAAC;QAyB9E,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;KAK7B;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAEM,IAAA,gBAAgB,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAEM,yBAAyB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;YACnC,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACtC,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KAChD;IAEM,qBAAqB,GAAA;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAC7C,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,SAAC,CAAC,EACF,SAAS,CACP,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,UAAU;AACjC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;AAChF,iBAAA,IAAI,CACH,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EACxB,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAC7C,GAAG,EAAE,CAAC,EAAE,CAAC,CACf,EACD,KAAK,EAAE,CACR,CAAC;KACH;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAEM,IAAA,UAAU,CAAC,GAA6B,EAAA;AAC7C,QAAA,IAAIrH,QAAM,CAAC,GAAG,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;SACR;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;KAC3C;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;KACF;+GAvIU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAV5B,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;;AAE1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;YACD,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;SAC9E,EAWU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,qEC3C9B,ypGAqDM,EAAA,MAAA,EAAA,CAAA,gnCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0C,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7D,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDnBO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,SAAS;+BACE,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;;AAE1B,4BAAA,WAAW,EAAE,UAAU,CAAC,kCAAkC,CAAC;AAC3D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;wBACD,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;AAC9E,qBAAA,EAAA,QAAA,EAAA,ypGAAA,EAAA,MAAA,EAAA,CAAA,gnCAAA,CAAA,EAAA,CAAA;sFAIe,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAC+B,QAAQ,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;;;MEtBjB,oBAAoB,CAAA;AAdjC,IAAA,WAAA,GAAA;QAkBkB,IAAmB,CAAA,mBAAA,GAA2B,mBAAmB,CAAC;AAoDnF,KAAA;AA9CC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,KAAK,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrD;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,UAAU,CAAC,GAAW,EAAA;QAC3B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO;SACR;QAED,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;KACF;IAEM,yBAAyB,GAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAChC,OAAO;SACR;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;KACrC;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;+GAvDU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EATpB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;;AAE1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBH,u4BAciB,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDOJ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAdhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;;AAE1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,u4BAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA;8BAIe,SAAS,EAAA,CAAA;sBAAxB,KAAK;;;MEUK,uBAAuB,CAAA;AA4BlC,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,qBAAqB,GAAA;QACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,KAAK,CAAC,GAAa,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB;AAED,IAAA,WAAA,CAAoB,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QA1CxC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAW9B,IAAmB,CAAA,mBAAA,GAA2B,mBAAmB,CAAC;QAClE,IAAqB,CAAA,qBAAA,GAA2B,qBAAqB,CAAC;QACtE,IAAgB,CAAA,gBAAA,GAAgB,IAAI,GAAG,CAAS;YAC9D,WAAW;YACX,OAAO;YACP,QAAQ;YACR,KAAK;AACN,SAAA,CAAC,CAAC;AAEI,QAAA,IAAA,CAAA,YAAY,GAAoB,IAAI,OAAO,EAAU,CAAC;QACtD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC5B,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KAqBlC;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAEvC,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAEjC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;SACF;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEM,qBAAqB,GAAA;QAC1B,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAClE,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SACzC;AAED,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAgB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC;AACrG,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAC9C,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,CACjC,CAAC,SAAS,EAAE,CAAC;AAEhB,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAa,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC;AAChG,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACxC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,CACjC,CAAC,SAAS,EAAE,CAAC;KACjB;AAEM,IAAA,gBAAgB,CAAC,OAAY,EAAA;QAClC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA,wBAAA,CAA0B,GAAG,CAAA,YAAA,CAAc,CAAC;AACjH,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACrE;AAEM,IAAA,cAAc,CAAC,OAAY,EAAA;AAChC,QAAA,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;KACtE;AAEM,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAEM,yBAAyB,GAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAChC,OAAO;SACR;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YACpC,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACxD;AACD,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7D;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;KACpD;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACvB;AAEM,IAAA,UAAU,CAAC,GAAmB,EAAA;QACnC,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO;SACR;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,OAAO;SACR;KACF;IAEM,qBAAqB,GAAA;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAC7C,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,SAAC,CAAC,EACF,SAAS,CACP,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,UAAU;AACjC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;AAChF,iBAAA,IAAI,CACH,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EACxB,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAC7C,GAAG,EAAE,CAAC,EAAE,CAAC,CACf,EACD,KAAK,EAAE,CACR,CAAC;KACH;+GA3KU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAVvB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;;AAE1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAWU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,qECzC9B,8/FAsDM,EAAA,MAAA,EAAA,CAAA,s3CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0C,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDrBO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;;AAE1B,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,8/FAAA,EAAA,MAAA,EAAA,CAAA,s3CAAA,CAAA,EAAA,CAAA;sFAKe,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAC+B,QAAQ,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;;;MEhBjB,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;QAOkB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC5B,QAAA,IAAA,CAAA,iBAAiB,GAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAcrE,QAAA,IAAA,CAAA,wBAAwB,GAAoB;AAC1D,YAAA,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACxE,YAAA,EAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE;SACvE,CAAC;AAEe,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAc,CAAC;AAC9C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAc,CAAC;AAC/C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAgB,CAAC;QAChD,IAAqB,CAAA,qBAAA,GAA2B,qBAAqB,CAAC;AAC/E,QAAA,IAAA,CAAA,aAAa,GAAiB,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACzF,IAAkB,CAAA,kBAAA,GAAkC,IAAI,eAAe,CAAe,IAAI,CAAC,aAAa,CAAC,CAAC;AAEjG,QAAA,IAAA,CAAA,uBAAuB,GAAmC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACpG,MAAM,CAAC,OAAO,CAAC,EACf,GAAG,CAAmC,CAAC,MAAM,KAC3C,sBAAsB;AACnB,aAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAChB,aAAA,GAAG,CAAC,oBAAoB,CAAC,CAC7B,CACF,CAAC;QAEc,IAAY,CAAA,YAAA,GAA4B,gBAAgB,CAAC;AAOjE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAmKrC,KAAA;AAjKC,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,OAAO;eAC1E,IAAI,CAAC,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,WAAW,CAAC,CAAC;KACrE;AAED,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACpE;IAEM,YAAY,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;gBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SACF;KACF;IAEM,cAAc,GAAA;AACnB,QAAA,MAAM,OAAO,GAAe;YAC1B,EAAE,EAAE,IAAI,EAAE;AACV,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;QACF,IAAI8H,mBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;AAEM,IAAA,gBAAgB,CAAC,KAAa,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAEM,SAAS,GAAA;QACd,IAAI,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAA,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9H,QAAA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAe,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA,EAAG,CAAC,CAAC,WAAW,CAAI,CAAA,EAAA,CAAC,CAAC,UAAU,CAAA,CAAE,EAAE,CAAA,CAAC,CAAC;KAC7G;AAEM,IAAA,aAAa,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,QAAA,MAAM,6BAA6B,GAAG,IAAI,CAAC,uBAAuB;AAC/D,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,EAAE,CAAC;AAEf,QAAA,6BAA6B,CAAC,IAAI,CAAC,SAAS,IAAG;YAC7C,MAAM,wBAAwB,GAAY,SAAS;AAChD,iBAAA,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE9E,IAAI,CAAC,wBAAwB,EAAE;gBAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAClD;AAEH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,kBAAkB,GAAA;AACxB,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAkB;YACrD,IAAI,EAAE,CAAC,CAAC,WAAW;YACnB,IAAI,EAAE,CAAC,CAAC,YAAY;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;AAC3B,SAAA,CAAA,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3E;KACF;IAEM,YAAY,GAAA;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAEM,oBAAoB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,CAAC;SACpD;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;SAC/C;AAED,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,EAAE,CAAC;SACtC;KACF;IAEM,aAAa,GAAA;QAClB,IAAI,CAACA,mBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACzE,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC7B;AAEM,IAAA,oBAAoB,CAAC,IAAY,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,GAAG,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;QACvC,IAAIA,mBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SACvB;QACD,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3E;KACF;AAEM,IAAA,YAAY,CAAC,OAAe,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,CAAC;KACtD;AAEO,IAAA,mBAAmB,CAAC,KAAmB,EAAA;AAC7C,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;AACD,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC3C;AACH,SAAC,CAAC,CAAC;KACJ;+GAjNU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAyCjBC,8BAA4B,EAE5B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAC,yBAAuB,uFAEvBC,sBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEjC,skOAkGc,EAAA,MAAA,EAAA,CAAA,m0FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDzED,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoH,4BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1G,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA1B,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,skOAAA,EAAA,MAAA,EAAA,CAAA,m0FAAA,CAAA,EAAA,CAAA;8BAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,kBAAkB,EAAA,CAAA;sBAAjC,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,sBAAsB,EAAA,CAAA;sBAArC,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,qBAAqB,EAAA,CAAA;sBAApC,KAAK;gBAQW,YAAY,EAAA,CAAA;sBAA5B,MAAM;gBACU,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,YAAY,EAAA,CAAA;sBAA5B,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBAgBC,qBAAqB,EAAA,CAAA;sBAD5B,SAAS;uBAAC+H,8BAA4B,CAAA;gBAG/B,gBAAgB,EAAA,CAAA;sBADvB,SAAS;uBAACC,yBAAuB,CAAA;gBAG1B,oBAAoB,EAAA,CAAA;sBAD3B,SAAS;uBAACC,sBAAoB,CAAA;;;MEzDpB,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;QAOkB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;QAC7C,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAKhC,IAAkB,CAAA,kBAAA,GAAY,IAAI,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAW,QAAQ,CAAC;QACpC,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AAKhC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAgB,CAAC;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAE/B,IAAa,CAAA,aAAA,GAAwB,YAAY,CAAC;AA8CnE,KAAA;IA5CQ,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAEM,IAAA,gBAAgB,CAAC,KAAa,EAAA;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;IAEM,cAAc,GAAA;AACnB,QAAA,MAAM,OAAO,GAAe;AAC1B,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,CAAC;AACZ,oBAAA,UAAU,EAAE,EAAE;AACf,iBAAA,CAAC,CAAC;SACJ;aAAM;YAEL,IAAI,CAAC,KAAK,GAAG,CAAC;AACZ,oBAAA,UAAU,EAAE,EAAE;AACf,iBAAA;AACD,gBAAA;AACE,oBAAA,UAAU,EAAE,EAAE;AACf,iBAAA,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;+GAjEU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,yrBCbjC,inEAkCc,EAAA,MAAA,EAAA,CAAA,4sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuH,iBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDrBD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,inEAAA,EAAA,MAAA,EAAA,CAAA,4sBAAA,CAAA,EAAA,CAAA;8BAG/B,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,2BAA2B,EAAA,CAAA;sBAA1C,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,kBAAkB,EAAA,CAAA;sBAAjC,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,sBAAsB,EAAA,CAAA;sBAArC,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,qBAAqB,EAAA,CAAA;sBAApC,KAAK;gBACW,cAAc,EAAA,CAAA;sBAA9B,MAAM;gBACU,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;MEcI,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAvB3B,oBAAoB;YACpB,iBAAiB;YACjB,4BAA4B;YAC5B,oBAAoB;YACpB,uBAAuB;YACvB,uBAAuB;AACvB,YAAAC,+BAA6B,aAG7B,YAAY;YACZ,WAAW;YACX,cAAc;YACd,cAAc;AACd,YAAAC,aAAW,aAGX,oBAAoB;YACpB,4BAA4B;YAC5B,oBAAoB;YACpB,uBAAuB;YACvBD,+BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAd3B,YAAY;YACZ,WAAW;YACX,cAAc;YACd,cAAc;YACdC,aAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAUF,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAzB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,iBAAiB;wBACjB,4BAA4B;wBAC5B,oBAAoB;wBACpB,uBAAuB;wBACvB,uBAAuB;wBACvBD,+BAA6B;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,cAAc;wBACdC,aAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,4BAA4B;wBAC5B,oBAAoB;wBACpB,uBAAuB;wBACvBD,+BAA6B;AAC9B,qBAAA;AACF,iBAAA,CAAA;;;MChBY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAhBrB,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,WAAW;YACX,kBAAkB;AAClB,YAAA,kBAAkB,aAGlB,WAAW;YACX,kBAAkB;YAClB,gBAAgB;YAChB,WAAW;YACX,kBAAkB;YAClB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAhBrB,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,WAAW;YACX,kBAAkB;AAClB,YAAA,kBAAkB,EAGlB,WAAW;YACX,kBAAkB;YAClB,gBAAgB;YAChB,WAAW;YACX,kBAAkB;YAClB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGT,YAAY,EAAA,UAAA,EAAA,CAAA;kBAnBxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,kBAAkB;wBAClB,WAAW;wBACX,kBAAkB;wBAClB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,kBAAkB;wBAClB,gBAAgB;wBAChB,WAAW;wBACX,kBAAkB;wBAClB,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;;;MCnBY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAHjB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAGV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAHjB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGV,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACH,eAAe;AAClB,qBAAA;AACJ,iBAAA,CAAA;;;MCOY,yBAAyB,CAAA;;AAMpC,IAAA,WAAA,GAAA;AAJiB,QAAA,IAAA,CAAA,YAAY,GAA4B,IAAI,YAAY,EAAE,CAAC;AACpE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KAGnB;IAET,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAEM,IAAA,kBAAkB,CAAC,MAAsB,EAAA;AAC9C,QAAA,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,MAAM,CAAC,YAAY,EAAE,CAAC;SACvB;KACF;+GAhBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,qJCdtC,woEAgCS,EAAA,MAAA,EAAA,CAAA,qgBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuH,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAxI,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDlBI,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,woEAAA,EAAA,MAAA,EAAA,CAAA,qgBAAA,CAAA,EAAA,CAAA;wDAI/B,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACW,YAAY,EAAA,CAAA;sBAA5B,MAAM;;;AEdF,MAAM,SAAS,GAAG,IAAI,cAAc,CAAS,WAAW,CAAC;;MCEnD,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAmD,QAAgB,EAAA;QAAhB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;AAEnD,QAAA,IAAA,CAAA,IAAI,GAAG;AACrB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,gBAAgB,EAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,QAAQ,CAAE,CAAA;SACtD,CAAC;KANqE;AAQvE;;;;;AAKG;IACI,OAAO,CAAC,GAAW,EAAE,IAAS,EAAA;AACnC,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;KACrD;AAED;;;;AAIG;AACI,IAAA,OAAO,CAAC,GAAW,EAAA;QACxB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;KACxD;AAED;;AAEG;IACI,QAAQ,GAAA;QACb,YAAY,CAAC,KAAK,EAAE,CAAC;KACtB;AAED;;;AAGG;AACI,IAAA,KAAK,CAAC,GAAW,EAAA;AACtB,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC9B;AA1CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBACE,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAD9B,mBAAmB,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;0BAEI,QAAQ;;0BAAI,MAAM;2BAAC,SAAS,CAAA;;;ACGpC,MAAM,wBAAwB,GAAG,kBAAkB;MA0B7C,qBAAqB,CAAA;AAGhC,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;KAAI;IAEzD,iBAAiB,GAAA;AACtB,QAAA,MAAM,cAAc,GAAqB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1H,IAAI,cAAc,EAAE;AAClB,YAAA,OAAO,cAAc,CAAC;SACvB;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,aAAa,CAAC,WAAgB,EAAA;QACnC,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,IAAI,WAAW,KAAK,KAAK,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/C,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,QACE,IAAI,CAAC,cAAc;iBAChB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC;AAC3B,iBAAA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC;iBAC9C,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC;AAC3B,iBAAA,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC;iBACjC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAC9H;SACH;QACD,MAAM,GAAG,WAAW,CAAC;AACrB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QACxI,OAAO,CAACQ,aAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5D;IAEM,aAAa,CAAC,WAAwB,EAAE,IAAY,EAAA;AACzD,QAAA,IAAI,WAAW,CAAC,iBAAiB,EAAE;AACjC,YAAA,OAAO,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC5C;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,iBAAiB,CAAC,WAAwB,EAAE,IAAY,EAAA;AAC7D,QAAA,IAAI,WAAW,CAAC,qBAAqB,EAAE;AACrC,YAAA,OAAO,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;SAChD;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,YAAY,CAAC,SAA4B,EAAE,UAAA,GAAsB,KAAK,EAAA;QAC3E,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAClD,YAAA,OAAO,SAAS,CAAC;SAClB;AAED,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpD,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,YAAA,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAC3C,CAAC,CAAC,KAAK,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CACjG,CAAC;AACF,QAAA,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAA,OAAO,SAAS,CAAC;KAClB;IAEO,UAAU,GAAA;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;AAChF,QAAA,OAAO,CAACA,aAAW,CAAC,MAAM,CAAC,CAAC;KAC7B;IAEO,kBAAkB,GAAA;AACxB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QACzF,OAAO,CAACA,aAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5D;IAEO,kBAAkB,GAAA;QACxB,IAAI,iBAAiB,GAAG,EAAE,CAAC;AAC3B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7G,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACvB,YAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AAC/E,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,iBAAiB,CAAC;KAC1B;IAEO,aAAa,GAAA;QACnB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzC,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACpB,YAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,UAAU,CAAC;KACnB;+GAhGU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAiI,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MC1BY,6BAA6B,CAAA;AACxC,IAAA,WAAA,CACmB,sBAA8C,EAAA;QAA9C,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QASzD,IAAW,CAAA,WAAA,GAAG,MAAW;AAC/B,YAAA,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE;gBACxC,OAAO;aACR;AACD,YAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE;AACzC,gBAAA,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC;aAC9C;AACH,SAAC,CAAA;QAdC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC3D;IAEM,WAAW,GAAA;QAChB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC9D;+GATU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzI,IAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA7B,6BAA6B,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAG,yBAAyB;AACrC,iBAAA,CAAA;;;MCEY,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;QAUkB,IAAW,CAAA,WAAA,GAAc,EAAE,CAAC;AAE3B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAQ/C,KAAA;IAPQ,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,GAAG,cAAc,GAAG,aAAa,CAAA;KACtD;+GAbU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,sNCRlC,wYAaS,EAAA,MAAA,EAAA,CAAA,skBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLI,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wYAAA,EAAA,MAAA,EAAA,CAAA,skBAAA,CAAA,EAAA,CAAA;8BAG/B,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACW,OAAO,EAAA,CAAA;sBAAvB,MAAM;;;AEdT;;AAEG;;;;"}