@acorex/modules 20.7.12 → 20.7.15

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 (194) hide show
  1. package/application-management/index.d.ts +1 -1
  2. package/assessment-management/README.md +11 -0
  3. package/assessment-management/index.d.ts +122 -24
  4. package/auth/index.d.ts +1 -1
  5. package/common/index.d.ts +9 -3
  6. package/contact-core/index.d.ts +90 -0
  7. package/content-management/index.d.ts +2 -2
  8. package/data-management/index.d.ts +449 -7
  9. package/document-management/index.d.ts +170 -375
  10. package/fesm2022/acorex-modules-application-management.mjs +3 -3
  11. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  12. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-ClgGS32i.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-HgaOIA2U.mjs} +950 -468
  13. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-HgaOIA2U.mjs.map +1 -0
  14. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-UmXUT6Xn.mjs → acorex-modules-assessment-management-answers-viewer-widget-column.component-DyxE9Xec.mjs} +2 -2
  15. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-UmXUT6Xn.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-column.component-DyxE9Xec.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-vVfXtden.mjs → acorex-modules-assessment-management-answers-viewer-widget-edit.component-DC2Ep3r1.mjs} +2 -2
  17. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-vVfXtden.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-edit.component-DC2Ep3r1.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-C75zxKgV.mjs → acorex-modules-assessment-management-answers-viewer-widget-view.component-iKqac5PE.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-C75zxKgV.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-view.component-iKqac5PE.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-CjhC5YAF.mjs → acorex-modules-assessment-management-assessment-case.entity-CsCMlcvF.mjs} +3 -3
  21. package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-CsCMlcvF.mjs.map +1 -0
  22. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-B_IDiEzp.mjs → acorex-modules-assessment-management-assessment-session.entity-BkNVe3FO.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-B_IDiEzp.mjs.map → acorex-modules-assessment-management-assessment-session.entity-BkNVe3FO.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-zT5u3h_s.mjs → acorex-modules-assessment-management-fill-assessment-session.command-Dgeh3E5f.mjs} +32 -33
  25. package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-Dgeh3E5f.mjs.map +1 -0
  26. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BIXy9eut.mjs → acorex-modules-assessment-management-preview-questionnaire.command-NcZlE6DU.mjs} +24 -8
  27. package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-NcZlE6DU.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-BWYLXvCp.mjs → acorex-modules-assessment-management-question-bank-item.entity-vNxSmJuv.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-BWYLXvCp.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-vNxSmJuv.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-3wVcKQGE.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-CbfHOFT1.mjs} +20 -4
  31. package/fesm2022/acorex-modules-assessment-management-questionnaire-builder-edit.component-CbfHOFT1.mjs.map +1 -0
  32. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-meuUo7Vx.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-DDqDjzwH.mjs} +3 -3
  33. package/fesm2022/acorex-modules-assessment-management-questionnaire-builder-view.component-DDqDjzwH.mjs.map +1 -0
  34. package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-CGgUUkOY.mjs → acorex-modules-assessment-management-questionnaire-builder.component-BOnwdWj7.mjs} +11 -5
  35. package/fesm2022/acorex-modules-assessment-management-questionnaire-builder.component-BOnwdWj7.mjs.map +1 -0
  36. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-BX8Q2Kfn.mjs +392 -0
  37. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-BX8Q2Kfn.mjs.map +1 -0
  38. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-D3k3J93r.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-CSdVNxV2.mjs} +21 -6
  39. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer.service-CSdVNxV2.mjs.map +1 -0
  40. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-C8sX0d_p.mjs → acorex-modules-assessment-management-questionnaire.entity-DFQIvlza.mjs} +138 -23
  41. package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-DFQIvlza.mjs.map +1 -0
  42. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-Czq7cj9R.mjs → acorex-modules-assessment-management-view-session-answers.command-CMmE72Kt.mjs} +3 -3
  43. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-Czq7cj9R.mjs.map → acorex-modules-assessment-management-view-session-answers.command-CMmE72Kt.mjs.map} +1 -1
  44. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  45. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-IIyirCLb.mjs → acorex-modules-auth-acorex-modules-auth-CZuDhBx5.mjs} +18 -18
  46. package/fesm2022/acorex-modules-auth-acorex-modules-auth-CZuDhBx5.mjs.map +1 -0
  47. package/fesm2022/{acorex-modules-auth-app-chooser.component-BGLW8Qtn.mjs → acorex-modules-auth-app-chooser.component-DJE47I8p.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-auth-app-chooser.component-BGLW8Qtn.mjs.map → acorex-modules-auth-app-chooser.component-DJE47I8p.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-auth-login.module-uUQkWCgY.mjs → acorex-modules-auth-login.module-CI_lkyb7.mjs} +4 -4
  50. package/fesm2022/{acorex-modules-auth-login.module-uUQkWCgY.mjs.map → acorex-modules-auth-login.module-CI_lkyb7.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-auth-master.layout-XkwT3Slv.mjs → acorex-modules-auth-master.layout-CdY380qS.mjs} +5 -4
  52. package/fesm2022/acorex-modules-auth-master.layout-CdY380qS.mjs.map +1 -0
  53. package/fesm2022/{acorex-modules-auth-oauth-callback.component-C0p17V1b.mjs → acorex-modules-auth-oauth-callback.component-BvPk9b3e.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-auth-oauth-callback.component-C0p17V1b.mjs.map → acorex-modules-auth-oauth-callback.component-BvPk9b3e.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-auth-password.component-CaH-OaIv.mjs → acorex-modules-auth-password.component-CefISnvd.mjs} +2 -2
  56. package/fesm2022/{acorex-modules-auth-password.component-CaH-OaIv.mjs.map → acorex-modules-auth-password.component-CefISnvd.mjs.map} +1 -1
  57. package/fesm2022/{acorex-modules-auth-password.component-DDFOsrkt.mjs → acorex-modules-auth-password.component-Dw_v_EFQ.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-auth-password.component-DDFOsrkt.mjs.map → acorex-modules-auth-password.component-Dw_v_EFQ.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-auth-routes-Cik9Y3RJ.mjs → acorex-modules-auth-routes-CwcJHbAi.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-auth-routes-Cik9Y3RJ.mjs.map → acorex-modules-auth-routes-CwcJHbAi.mjs.map} +1 -1
  61. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-B9VJd12P.mjs → acorex-modules-auth-tenant-chooser.component-DFhTYEDt.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-B9VJd12P.mjs.map → acorex-modules-auth-tenant-chooser.component-DFhTYEDt.mjs.map} +1 -1
  63. package/fesm2022/{acorex-modules-auth-two-factor.module-D1TKyIXZ.mjs → acorex-modules-auth-two-factor.module-BOZB6sLo.mjs} +2 -2
  64. package/fesm2022/{acorex-modules-auth-two-factor.module-D1TKyIXZ.mjs.map → acorex-modules-auth-two-factor.module-BOZB6sLo.mjs.map} +1 -1
  65. package/fesm2022/{acorex-modules-auth-user-sessions.component-MZJramlf.mjs → acorex-modules-auth-user-sessions.component-BnrnXg4G.mjs} +2 -2
  66. package/fesm2022/{acorex-modules-auth-user-sessions.component-MZJramlf.mjs.map → acorex-modules-auth-user-sessions.component-BnrnXg4G.mjs.map} +1 -1
  67. package/fesm2022/acorex-modules-auth.mjs +1 -1
  68. package/fesm2022/acorex-modules-calendar-management.mjs +4 -3
  69. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  70. package/fesm2022/acorex-modules-common.mjs +77 -36
  71. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  72. package/fesm2022/acorex-modules-contact-core-emergency-service.entity-Cro3bM4G.mjs +318 -0
  73. package/fesm2022/acorex-modules-contact-core-emergency-service.entity-Cro3bM4G.mjs.map +1 -0
  74. package/fesm2022/acorex-modules-contact-core.mjs +247 -0
  75. package/fesm2022/acorex-modules-contact-core.mjs.map +1 -0
  76. package/fesm2022/acorex-modules-content-management.mjs +66 -19
  77. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  78. package/fesm2022/acorex-modules-data-management.mjs +1009 -501
  79. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  80. package/fesm2022/{acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs → acorex-modules-document-management-drive-choose.component-BOeZ9mpL.mjs} +3 -7
  81. package/fesm2022/acorex-modules-document-management-drive-choose.component-BOeZ9mpL.mjs.map +1 -0
  82. package/fesm2022/acorex-modules-document-management.mjs +986 -3041
  83. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  84. package/fesm2022/acorex-modules-health-core-allergy-type.entity-BaZ4OhHW.mjs +65 -0
  85. package/fesm2022/acorex-modules-health-core-allergy-type.entity-BaZ4OhHW.mjs.map +1 -0
  86. package/fesm2022/acorex-modules-health-core-blood-type.entity-Cu-UIgw4.mjs +120 -0
  87. package/fesm2022/acorex-modules-health-core-blood-type.entity-Cu-UIgw4.mjs.map +1 -0
  88. package/fesm2022/acorex-modules-health-core-body-part.entity-Dc2SIiB3.mjs +65 -0
  89. package/fesm2022/acorex-modules-health-core-body-part.entity-Dc2SIiB3.mjs.map +1 -0
  90. package/fesm2022/acorex-modules-health-core-chronic-condition-type.entity-B-9j3pNB.mjs +65 -0
  91. package/fesm2022/acorex-modules-health-core-chronic-condition-type.entity-B-9j3pNB.mjs.map +1 -0
  92. package/fesm2022/acorex-modules-health-core-disability-status.entity-hs3vA3zZ.mjs +120 -0
  93. package/fesm2022/acorex-modules-health-core-disability-status.entity-hs3vA3zZ.mjs.map +1 -0
  94. package/fesm2022/acorex-modules-health-core-injury-type.entity-BUA1VsE_.mjs +65 -0
  95. package/fesm2022/acorex-modules-health-core-injury-type.entity-BUA1VsE_.mjs.map +1 -0
  96. package/fesm2022/acorex-modules-health-core-vaccination-type.entity-DBdFkwx6.mjs +65 -0
  97. package/fesm2022/acorex-modules-health-core-vaccination-type.entity-DBdFkwx6.mjs.map +1 -0
  98. package/fesm2022/acorex-modules-health-core.mjs +487 -0
  99. package/fesm2022/acorex-modules-health-core.mjs.map +1 -0
  100. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-Clea9Hhv.mjs → acorex-modules-help-desk-acorex-modules-help-desk-MfqQx2iN.mjs} +4 -5
  101. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-Clea9Hhv.mjs.map → acorex-modules-help-desk-acorex-modules-help-desk-MfqQx2iN.mjs.map} +1 -1
  102. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-CiQv__MW.mjs → acorex-modules-help-desk-capture-screen.component-CATwc3fe.mjs} +2 -2
  103. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-CiQv__MW.mjs.map → acorex-modules-help-desk-capture-screen.component-CATwc3fe.mjs.map} +1 -1
  104. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  105. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-BDSyXKSF.mjs → acorex-modules-human-capital-management-leave-request.entity-CviI9xJC.mjs} +2 -2
  106. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-CviI9xJC.mjs.map +1 -0
  107. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-CY81Nohl.mjs → acorex-modules-human-capital-management-leave-type.entity-YitcNesR.mjs} +6 -2
  108. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-YitcNesR.mjs.map +1 -0
  109. package/fesm2022/acorex-modules-human-capital-management.mjs +351 -696
  110. package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
  111. package/fesm2022/acorex-modules-locale-management.mjs +13 -6
  112. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
  113. package/fesm2022/acorex-modules-notification-management.mjs +4 -4
  114. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  115. package/fesm2022/acorex-modules-person-core-education-level.entity-BiXdPA-Z.mjs +120 -0
  116. package/fesm2022/acorex-modules-person-core-education-level.entity-BiXdPA-Z.mjs.map +1 -0
  117. package/fesm2022/acorex-modules-person-core-marital-status.entity-j6sMTtTS.mjs +120 -0
  118. package/fesm2022/acorex-modules-person-core-marital-status.entity-j6sMTtTS.mjs.map +1 -0
  119. package/fesm2022/acorex-modules-person-core-person-identifier-type.entity-BIFiRZ2d.mjs +191 -0
  120. package/fesm2022/acorex-modules-person-core-person-identifier-type.entity-BIFiRZ2d.mjs.map +1 -0
  121. package/fesm2022/acorex-modules-person-core-person-relationship-type.entity-2qysKjU5.mjs +119 -0
  122. package/fesm2022/acorex-modules-person-core-person-relationship-type.entity-2qysKjU5.mjs.map +1 -0
  123. package/fesm2022/acorex-modules-person-core-religion.entity-Czb5aHb6.mjs +120 -0
  124. package/fesm2022/acorex-modules-person-core-religion.entity-Czb5aHb6.mjs.map +1 -0
  125. package/fesm2022/acorex-modules-person-core.mjs +466 -0
  126. package/fesm2022/acorex-modules-person-core.mjs.map +1 -0
  127. package/fesm2022/{acorex-modules-person-management-person-identifier.entity-CI8u0Ro6.mjs → acorex-modules-person-management-person-identifier.entity-HBmiUahC.mjs} +4 -3
  128. package/fesm2022/acorex-modules-person-management-person-identifier.entity-HBmiUahC.mjs.map +1 -0
  129. package/fesm2022/{acorex-modules-person-management-person-relationship.entity-DK3mYVFv.mjs → acorex-modules-person-management-person-relationship.entity-DbcXasEe.mjs} +4 -3
  130. package/fesm2022/acorex-modules-person-management-person-relationship.entity-DbcXasEe.mjs.map +1 -0
  131. package/fesm2022/acorex-modules-person-management.mjs +11 -259
  132. package/fesm2022/acorex-modules-person-management.mjs.map +1 -1
  133. package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BRVfUYiM.mjs → acorex-modules-settings-management-acorex-modules-settings-management-Dpjfgmg9.mjs} +6 -6
  134. package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BRVfUYiM.mjs.map → acorex-modules-settings-management-acorex-modules-settings-management-Dpjfgmg9.mjs.map} +1 -1
  135. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-WSxrvAsV.mjs → acorex-modules-settings-management-permission-definition.provider-nYV8iDwJ.mjs} +2 -2
  136. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-WSxrvAsV.mjs.map → acorex-modules-settings-management-permission-definition.provider-nYV8iDwJ.mjs.map} +1 -1
  137. package/fesm2022/{acorex-modules-settings-management-setting-page.component-MYnJYUxE.mjs → acorex-modules-settings-management-setting-page.component-B1lhCtl_.mjs} +2 -2
  138. package/fesm2022/{acorex-modules-settings-management-setting-page.component-MYnJYUxE.mjs.map → acorex-modules-settings-management-setting-page.component-B1lhCtl_.mjs.map} +1 -1
  139. package/fesm2022/{acorex-modules-settings-management-setting-view.component-Cq80snth.mjs → acorex-modules-settings-management-setting-view.component-CAX1kFy2.mjs} +2 -2
  140. package/fesm2022/{acorex-modules-settings-management-setting-view.component-Cq80snth.mjs.map → acorex-modules-settings-management-setting-view.component-CAX1kFy2.mjs.map} +1 -1
  141. package/fesm2022/acorex-modules-settings-management.mjs +1 -1
  142. package/fesm2022/acorex-modules-system-insight.mjs +4 -3
  143. package/fesm2022/acorex-modules-system-insight.mjs.map +1 -1
  144. package/fesm2022/{acorex-modules-task-management-task-board.page-Cgxdk78j.mjs → acorex-modules-task-management-task-board.page-BOOY3qla.mjs} +53 -60
  145. package/fesm2022/acorex-modules-task-management-task-board.page-BOOY3qla.mjs.map +1 -0
  146. package/fesm2022/acorex-modules-task-management.mjs +39 -11
  147. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  148. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-BbBEPTBa.mjs +258 -0
  149. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-BbBEPTBa.mjs.map +1 -0
  150. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-nJMBL0qt.mjs +371 -0
  151. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-nJMBL0qt.mjs.map +1 -0
  152. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-Pso0oRN5.mjs +313 -0
  153. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-Pso0oRN5.mjs.map +1 -0
  154. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-BF9xYEkf.mjs +345 -0
  155. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-BF9xYEkf.mjs.map +1 -0
  156. package/fesm2022/acorex-modules-workflow-management.mjs +733 -2521
  157. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  158. package/health-core/index.d.ts +156 -0
  159. package/help-desk/index.d.ts +1 -1
  160. package/human-capital-management/index.d.ts +19 -79
  161. package/locale-management/index.d.ts +1 -1
  162. package/notification-management/index.d.ts +1 -1
  163. package/package.json +24 -12
  164. package/person-core/index.d.ts +132 -0
  165. package/person-management/index.d.ts +1 -25
  166. package/task-management/index.d.ts +12 -1
  167. package/workflow-management/index.d.ts +239 -265
  168. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-ClgGS32i.mjs.map +0 -1
  169. package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-CjhC5YAF.mjs.map +0 -1
  170. package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-zT5u3h_s.mjs.map +0 -1
  171. package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-BIXy9eut.mjs.map +0 -1
  172. package/fesm2022/acorex-modules-assessment-management-questionnaire-builder-edit.component-3wVcKQGE.mjs.map +0 -1
  173. package/fesm2022/acorex-modules-assessment-management-questionnaire-builder-view.component-meuUo7Vx.mjs.map +0 -1
  174. package/fesm2022/acorex-modules-assessment-management-questionnaire-builder.component-CGgUUkOY.mjs.map +0 -1
  175. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-kVnWtedV.mjs +0 -416
  176. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-kVnWtedV.mjs.map +0 -1
  177. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer.service-D3k3J93r.mjs.map +0 -1
  178. package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-C8sX0d_p.mjs.map +0 -1
  179. package/fesm2022/acorex-modules-auth-acorex-modules-auth-IIyirCLb.mjs.map +0 -1
  180. package/fesm2022/acorex-modules-auth-master.layout-XkwT3Slv.mjs.map +0 -1
  181. package/fesm2022/acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs.map +0 -1
  182. package/fesm2022/acorex-modules-human-capital-management-leave-request-task-popover.component-yGvT9kSL.mjs +0 -381
  183. package/fesm2022/acorex-modules-human-capital-management-leave-request-task-popover.component-yGvT9kSL.mjs.map +0 -1
  184. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-BDSyXKSF.mjs.map +0 -1
  185. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-CY81Nohl.mjs.map +0 -1
  186. package/fesm2022/acorex-modules-person-management-person-identifier-type.entity-VchCczk-.mjs +0 -498
  187. package/fesm2022/acorex-modules-person-management-person-identifier-type.entity-VchCczk-.mjs.map +0 -1
  188. package/fesm2022/acorex-modules-person-management-person-identifier.entity-CI8u0Ro6.mjs.map +0 -1
  189. package/fesm2022/acorex-modules-person-management-person-relationship.entity-DK3mYVFv.mjs.map +0 -1
  190. package/fesm2022/acorex-modules-task-management-task-board.page-Cgxdk78j.mjs.map +0 -1
  191. package/fesm2022/acorex-modules-workflow-management-cartable-page.component-Bso0XRkJ.mjs +0 -296
  192. package/fesm2022/acorex-modules-workflow-management-cartable-page.component-Bso0XRkJ.mjs.map +0 -1
  193. package/fesm2022/acorex-modules-workflow-management-index-xB36g4F1.mjs +0 -469
  194. package/fesm2022/acorex-modules-workflow-management-index-xB36g4F1.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-workflow-management-cartable-page.component-Bso0XRkJ.mjs","sources":["../tmp-esm2022/workflow-management/lib/features/cartable/cartable-page.component.js"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { Router } from '@angular/router';\nimport { RootConfig } from '../../const';\nimport { AXMWorkflowManagementWorkItemEntityService } from '../../entities/work-item/work-item.service';\nimport { AXPActivityDefinitionService } from '@acorex/platform/workflow';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/label\";\nimport * as i4 from \"@acorex/components/search-box\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/loading\";\nimport * as i7 from \"@acorex/core/translation\";\nimport * as i8 from \"@angular/common\";\nimport * as i9 from \"@acorex/core/date-time\";\nexport class AXMCartablePageComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n //#region ---- Services & Dependencies ----\n this.workItemService = inject(AXMWorkflowManagementWorkItemEntityService);\n this.entityService = inject(AXPEntityService);\n this.commandService = inject(AXPCommandService);\n this.router = inject(Router);\n this.activityDefinitionService = inject(AXPActivityDefinitionService);\n //#endregion\n //#region ---- State ----\n this.activeTab = signal('all', ...(ngDevMode ? [{ debugName: \"activeTab\" }] : []));\n this.workItems = signal([], ...(ngDevMode ? [{ debugName: \"workItems\" }] : []));\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.searchQuery = signal('', ...(ngDevMode ? [{ debugName: \"searchQuery\" }] : []));\n this.selectedStatus = signal('all', ...(ngDevMode ? [{ debugName: \"selectedStatus\" }] : []));\n this.selectedPriority = signal('all', ...(ngDevMode ? [{ debugName: \"selectedPriority\" }] : []));\n this.selectedKind = signal('all', ...(ngDevMode ? [{ debugName: \"selectedKind\" }] : []));\n this.workItemOutcomes = signal(new Map(), ...(ngDevMode ? [{ debugName: \"workItemOutcomes\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n this.filteredWorkItems = computed(() => {\n let items = this.workItems();\n // Filter by tab\n const tab = this.activeTab();\n if (tab === 'my-tasks') {\n const currentUserId = this.sessionService.user?.id;\n items = items.filter((item) => item.assignedUserId === currentUserId || item.claimedByUserId === currentUserId);\n }\n else if (tab === 'pending') {\n items = items.filter((item) => item.status === 'Pending');\n }\n else if (tab === 'in-progress') {\n items = items.filter((item) => item.status === 'InProgress');\n }\n else if (tab === 'completed') {\n items = items.filter((item) => item.status === 'Completed');\n }\n else if (tab === 'cancelled') {\n items = items.filter((item) => item.status === 'Cancelled');\n }\n // Filter by search query\n const query = this.searchQuery().toLowerCase();\n if (query) {\n items = items.filter((item) => item.title?.toLowerCase().includes(query) ||\n item.description?.toLowerCase().includes(query) ||\n item.activityName?.toLowerCase().includes(query));\n }\n // Filter by status\n const status = this.selectedStatus();\n if (status && status !== 'all') {\n items = items.filter((item) => item.status === status);\n }\n // Filter by priority\n const priority = this.selectedPriority();\n if (priority && priority !== 'all') {\n items = items.filter((item) => item.priority === priority);\n }\n // Filter by kind\n const kind = this.selectedKind();\n if (kind && kind !== 'all') {\n items = items.filter((item) => item.kind === kind);\n }\n return items;\n }, ...(ngDevMode ? [{ debugName: \"filteredWorkItems\" }] : []));\n }\n //#endregion\n //#region ---- Page Layout Overrides ----\n async ngOnInit() {\n await super.ngOnInit();\n await this.loadWorkItems();\n }\n async getPageTitle() {\n return await this.translateService.translateAsync('@workflow-management:cartable.components.cartable-page.title');\n }\n //#endregion\n //#region ---- Data Loading ----\n async loadWorkItems() {\n this.isLoading.set(true);\n try {\n const result = await this.workItemService.query({\n skip: 0,\n take: 1000, // Load all for now\n sort: [{ name: 'createdAt', dir: 'desc' }],\n });\n const items = result.items || [];\n this.workItems.set(items);\n // Load outcomes for each work item\n const outcomesMap = new Map();\n for (const item of items) {\n if (item.status === 'Claimed' || item.status === 'InProgress') {\n const outcomes = await this.getActivityOutcomes(item);\n outcomesMap.set(item.id, outcomes);\n }\n }\n this.workItemOutcomes.set(outcomesMap);\n }\n catch (error) {\n console.error('[CartablePage] Error loading work items:', error);\n }\n finally {\n this.isLoading.set(false);\n }\n }\n //#endregion\n //#region ---- UI Handlers ----\n switchTab(tab) {\n this.activeTab.set(tab);\n }\n handleSearchChange(event) {\n this.searchQuery.set(event.value || '');\n }\n handleStatusChange(event) {\n this.selectedStatus.set(event.value || 'all');\n }\n handlePriorityChange(event) {\n this.selectedPriority.set(event.value || 'all');\n }\n handleKindChange(event) {\n this.selectedKind.set(event.value || 'all');\n }\n async handleClaim(workItem) {\n try {\n const result = await this.commandService.execute('WorkflowManagement.WorkItem:Claim', {\n workItemId: workItem.id,\n });\n if (result?.success) {\n await this.loadWorkItems();\n }\n }\n catch (error) {\n console.error('[CartablePage] Error claiming work item:', error);\n }\n }\n async handleComplete(workItem, outcome) {\n try {\n const result = await this.commandService.execute('WorkflowManagement.WorkItem:Complete', {\n workItemId: workItem.id,\n outcome,\n });\n if (result?.success) {\n const data = result.data;\n // Reload work items to reflect updated status\n await this.loadWorkItems();\n // If there's a next task, show it to the user\n if (data?.nextTask) {\n const nextTask = data.nextTask;\n const activityName = nextTask.activityType || nextTask.activityName || 'Unknown';\n this.toastService.show({\n color: 'primary',\n title: 'Next Activity',\n content: `Workflow continues with: ${activityName}`,\n closeButton: true,\n timeOut: 5000,\n });\n }\n else if (data?.state?.status === 'completed') {\n this.toastService.show({\n color: 'success',\n title: 'Workflow Completed',\n content: 'The workflow has been completed successfully.',\n closeButton: true,\n timeOut: 5000,\n });\n }\n }\n }\n catch (error) {\n console.error('[CartablePage] Error completing work item:', error);\n }\n }\n async getActivityOutcomes(workItem) {\n if (!workItem.activityName) {\n return ['Done'];\n }\n try {\n const activityDef = await this.activityDefinitionService.getActivityByName(workItem.activityName);\n if (activityDef?.outcomes && activityDef.outcomes.length > 0) {\n return activityDef.outcomes;\n }\n }\n catch (error) {\n console.error('[CartablePage] Error getting activity definition:', error);\n }\n // Default outcomes based on activity type\n if (workItem.activityName === 'workflow-activity:show-confirm-popup') {\n return ['ok', 'cancel'];\n }\n return ['Done'];\n }\n getOutcomeLabel(outcome) {\n // Map common outcomes to user-friendly labels\n const labelMap = {\n 'ok': '@workflow-management:cartable.actions.outcomes.ok',\n 'cancel': '@workflow-management:cartable.actions.outcomes.cancel',\n 'done': '@workflow-management:cartable.actions.outcomes.done',\n 'submit': '@workflow-management:cartable.actions.outcomes.submit',\n 'approve': '@workflow-management:cartable.actions.outcomes.approve',\n 'reject': '@workflow-management:cartable.actions.outcomes.reject',\n 'signed': '@workflow-management:cartable.actions.outcomes.signed',\n };\n return labelMap[outcome.toLowerCase()] || outcome;\n }\n getOutcomeColor(outcome) {\n const colorMap = {\n 'ok': 'success',\n 'done': 'success',\n 'submit': 'success',\n 'approve': 'success',\n 'signed': 'success',\n 'cancel': 'danger',\n 'reject': 'danger',\n };\n return colorMap[outcome.toLowerCase()] || 'primary';\n }\n async handleCancel(workItem) {\n try {\n const result = await this.commandService.execute('WorkflowManagement.WorkItem:Cancel', {\n workItemId: workItem.id,\n });\n if (result?.success) {\n await this.loadWorkItems();\n }\n }\n catch (error) {\n console.error('[CartablePage] Error cancelling work item:', error);\n }\n }\n async handleViewDetails(workItem) {\n const path = this.entityService.createPath(RootConfig.module.name, RootConfig.entities.workItem.name, workItem.id);\n await this.router.navigate([path]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXMCartablePageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXMCartablePageComponent, isStandalone: true, selector: \"axm-cartable-page\", providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMCartablePageComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n <axp-page-toolbar>\\n <axp-layout-prefix>\\n <!-- Search and Filters -->\\n <div class=\\\"ax-flex ax-gap-4 ax-items-end ax-flex-wrap\\\">\\n <!-- Search -->\\n <div class=\\\"ax-flex-1 ax-min-w-64\\\">\\n <ax-search-box\\n [(value)]=\\\"searchQuery\\\"\\n (onValueChanged)=\\\"handleSearchChange($event)\\\"\\n [placeholder]=\\\"t('@general:actions.search.title', { scope: 'general' }) | async\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n\\n <!-- Filters -->\\n <div class=\\\"ax-flex ax-gap-4 ax-flex-wrap\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1\\\">\\n <ax-label>{{ '@workflow-management:cartable.components.cartable-page.filters.status.title' | translate | async }}</ax-label>\\n <ax-select-box\\n [value]=\\\"selectedStatus()\\\"\\n (onValueChanged)=\\\"handleStatusChange($event)\\\"\\n [dataSource]=\\\"[\\n { value: 'all', text: ('@general:terms.interface.selection.all-items' | translate | async) || 'All' },\\n { value: 'Pending', text: t('@workflow-management:work-items.states.pending') | async },\\n { value: 'Claimed', text: t('@workflow-management:work-items.states.claimed') | async },\\n { value: 'InProgress', text: t('@workflow-management:work-items.states.in-progress') | async },\\n { value: 'Completed', text: t('@workflow-management:work-items.states.completed') | async },\\n { value: 'Cancelled', text: t('@workflow-management:work-items.states.cancelled') | async },\\n ]\\\"\\n [valueField]=\\\"'value'\\\"\\n [textField]=\\\"'text'\\\"\\n class=\\\"ax-w-48\\\"\\n ></ax-select-box>\\n </div>\\n\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1\\\">\\n <ax-label>{{ '@workflow-management:cartable.components.cartable-page.filters.priority.title' | translate | async }}</ax-label>\\n <ax-select-box\\n [value]=\\\"selectedPriority()\\\"\\n (onValueChanged)=\\\"handlePriorityChange($event)\\\"\\n [dataSource]=\\\"[\\n { value: 'all', text: ('@general:terms.interface.selection.all-items' | translate | async) || 'All' },\\n { value: 'Low', text: t('@workflow-management:work-items.priorities.low') | async },\\n { value: 'Normal', text: t('@workflow-management:work-items.priorities.normal') | async },\\n { value: 'High', text: t('@workflow-management:work-items.priorities.high') | async },\\n { value: 'Urgent', text: t('@workflow-management:work-items.priorities.urgent') | async },\\n ]\\\"\\n [valueField]=\\\"'value'\\\"\\n [textField]=\\\"'text'\\\"\\n class=\\\"ax-w-48\\\"\\n ></ax-select-box>\\n </div>\\n\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1\\\">\\n <ax-label>{{ '@workflow-management:cartable.components.cartable-page.filters.kind.title' | translate | async }}</ax-label>\\n <ax-select-box\\n [value]=\\\"selectedKind()\\\"\\n (onValueChanged)=\\\"handleKindChange($event)\\\"\\n [dataSource]=\\\"[\\n { value: 'all', text: ('@general:terms.interface.selection.all-items' | translate | async) || 'All' },\\n { value: 'HumanTask', text: t('@workflow-management:work-items.kinds.human-task') | async },\\n { value: 'Approval', text: t('@workflow-management:work-items.kinds.approval') | async },\\n { value: 'Review', text: t('@workflow-management:work-items.kinds.review') | async },\\n { value: 'Notification', text: t('@workflow-management:work-items.kinds.notification') | async },\\n { value: 'Other', text: t('@workflow-management:work-items.kinds.other') | async },\\n ]\\\"\\n [valueField]=\\\"'value'\\\"\\n [textField]=\\\"'text'\\\"\\n class=\\\"ax-w-48\\\"\\n ></ax-select-box>\\n </div>\\n </div>\\n </div>\\n </axp-layout-prefix>\\n </axp-page-toolbar>\\n\\n <axp-page-content>\\n <axp-layout-body>\\n <!-- Work Items List -->\\n @if (isLoading()) {\\n <div class=\\\"ax-flex ax-justify-center ax-items-center ax-h-64\\\">\\n <ax-loading></ax-loading>\\n </div>\\n } @else if (filteredWorkItems().length === 0) {\\n <div class=\\\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-64 ax-text-center\\\">\\n <i class=\\\"fa-light fa-clipboard-list ax-text-6xl ax-text-secondary ax-mb-4\\\"></i>\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-mb-2\\\">\\n {{\\n '@workflow-management:cartable.components.cartable-page.empty-states.no-work-items.title'\\n | translate\\n | async\\n }}\\n </h3>\\n <p class=\\\"ax-text-secondary\\\">\\n {{\\n '@workflow-management:cartable.components.cartable-page.empty-states.no-work-items.description'\\n | translate\\n | async\\n }}\\n </p>\\n </div>\\n } @else {\\n <div class=\\\"ax-space-y-4\\\">\\n @for (workItem of filteredWorkItems(); track workItem.id) {\\n <div class=\\\"ax-border ax-rounded ax-p-4 ax-shadow-sm hover:ax-shadow-md ax-transition-shadow\\\">\\n <div class=\\\"ax-flex ax-justify-between ax-items-start ax-mb-2\\\">\\n <div class=\\\"ax-flex-1\\\">\\n <h3 class=\\\"ax-text-lg ax-font-semibold ax-mb-1\\\">{{ workItem.title }}</h3>\\n @if (workItem.description) {\\n <p class=\\\"ax-text-sm ax-text-secondary ax-mb-2\\\">{{ workItem.description }}</p>\\n }\\n <div class=\\\"ax-flex ax-gap-4 ax-flex-wrap ax-text-xs ax-text-secondary\\\">\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-tag\\\"></ax-icon>\\n @switch (workItem.status) {\\n @case ('Pending') {\\n {{ '@workflow-management:work-items.states.pending' | translate | async }}\\n }\\n @case ('Claimed') {\\n {{ '@workflow-management:work-items.states.claimed' | translate | async }}\\n }\\n @case ('InProgress') {\\n {{ '@workflow-management:work-items.states.in-progress' | translate | async }}\\n }\\n @case ('Completed') {\\n {{ '@workflow-management:work-items.states.completed' | translate | async }}\\n }\\n @case ('Cancelled') {\\n {{ '@workflow-management:work-items.states.cancelled' | translate | async }}\\n }\\n @case ('Rejected') {\\n {{ '@workflow-management:work-items.states.rejected' | translate | async }}\\n }\\n @default {\\n {{ workItem.status }}\\n }\\n }\\n </span>\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-flag\\\"></ax-icon>\\n @switch (workItem.priority) {\\n @case ('Low') {\\n {{ '@workflow-management:work-items.priorities.low' | translate | async }}\\n }\\n @case ('Normal') {\\n {{ '@workflow-management:work-items.priorities.normal' | translate | async }}\\n }\\n @case ('High') {\\n {{ '@workflow-management:work-items.priorities.high' | translate | async }}\\n }\\n @case ('Urgent') {\\n {{ '@workflow-management:work-items.priorities.urgent' | translate | async }}\\n }\\n @default {\\n {{ workItem.priority }}\\n }\\n }\\n </span>\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-puzzle-piece\\\"></ax-icon>\\n @switch (workItem.kind) {\\n @case ('HumanTask') {\\n {{ '@workflow-management:work-items.kinds.human-task' | translate | async }}\\n }\\n @case ('Approval') {\\n {{ '@workflow-management:work-items.kinds.approval' | translate | async }}\\n }\\n @case ('Review') {\\n {{ '@workflow-management:work-items.kinds.review' | translate | async }}\\n }\\n @case ('Notification') {\\n {{ '@workflow-management:work-items.kinds.notification' | translate | async }}\\n }\\n @case ('Other') {\\n {{ '@workflow-management:work-items.kinds.other' | translate | async }}\\n }\\n @default {\\n {{ workItem.kind }}\\n }\\n }\\n </span>\\n @if (workItem.dueDate) {\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-calendar\\\"></ax-icon>\\n {{ workItem.dueDate | axDate: 'short' }}\\n </span>\\n }\\n </div>\\n </div>\\n <div class=\\\"ax-flex ax-gap-2\\\">\\n @if (workItem.status === 'Pending' && !workItem.claimedByUserId) {\\n <ax-button\\n [text]=\\\"'@workflow-management:cartable.actions.claim.title' | translate | async\\\"\\n color=\\\"primary\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleClaim(workItem)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-hand\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n @if (workItem.status === 'Claimed' || workItem.status === 'InProgress') {\\n @for (outcome of workItemOutcomes().get(workItem.id) || []; track outcome) {\\n <ax-button\\n [text]=\\\"getOutcomeLabel(outcome) | translate | async\\\"\\n [color]=\\\"getOutcomeColor(outcome)\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleComplete(workItem, outcome)\\\"\\n >\\n <ax-prefix>\\n @if (outcome.toLowerCase() === 'ok' || outcome.toLowerCase() === 'done' || outcome.toLowerCase() === 'approve' || outcome.toLowerCase() === 'signed') {\\n <ax-icon icon=\\\"fa-light fa-check\\\"></ax-icon>\\n } @else if (outcome.toLowerCase() === 'cancel' || outcome.toLowerCase() === 'reject') {\\n <ax-icon icon=\\\"fa-light fa-times\\\"></ax-icon>\\n } @else {\\n <ax-icon icon=\\\"fa-light fa-circle\\\"></ax-icon>\\n }\\n </ax-prefix>\\n </ax-button>\\n }\\n }\\n @if (workItem.status !== 'Completed' && workItem.status !== 'Cancelled') {\\n <ax-button\\n [text]=\\\"'@workflow-management:cartable.actions.cancel.title' | translate | async\\\"\\n color=\\\"danger\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleCancel(workItem)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-times\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n <ax-button\\n [text]=\\\"'@workflow-management:cartable.actions.view-details.title' | translate | async\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleViewDetails(workItem)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-eye\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </axp-layout-body>\\n </axp-page-content>\\n</axp-page-layout>\\n\", styles: [\":host{display:block;height:100%}axp-page-content{display:block;height:100%;overflow-y:auto}axp-theme-layout-block{display:block;padding:1rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i4.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"itemHeight\", \"maxVisibleItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i6.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXDateTimeModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i7.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"component\", type: AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"pipe\", type: i8.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i9.AXDateTimePipe, name: \"axDate\" }, { kind: \"pipe\", type: i7.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXMCartablePageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-cartable-page', standalone: true, imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXButtonGroupModule,\n AXDecoratorModule,\n AXLabelModule,\n AXSearchBoxModule,\n AXSelectBoxModule,\n AXLoadingModule,\n AXDateTimeModule,\n AXTranslationModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n ], providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMCartablePageComponent,\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n <axp-page-toolbar>\\n <axp-layout-prefix>\\n <!-- Search and Filters -->\\n <div class=\\\"ax-flex ax-gap-4 ax-items-end ax-flex-wrap\\\">\\n <!-- Search -->\\n <div class=\\\"ax-flex-1 ax-min-w-64\\\">\\n <ax-search-box\\n [(value)]=\\\"searchQuery\\\"\\n (onValueChanged)=\\\"handleSearchChange($event)\\\"\\n [placeholder]=\\\"t('@general:actions.search.title', { scope: 'general' }) | async\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n\\n <!-- Filters -->\\n <div class=\\\"ax-flex ax-gap-4 ax-flex-wrap\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1\\\">\\n <ax-label>{{ '@workflow-management:cartable.components.cartable-page.filters.status.title' | translate | async }}</ax-label>\\n <ax-select-box\\n [value]=\\\"selectedStatus()\\\"\\n (onValueChanged)=\\\"handleStatusChange($event)\\\"\\n [dataSource]=\\\"[\\n { value: 'all', text: ('@general:terms.interface.selection.all-items' | translate | async) || 'All' },\\n { value: 'Pending', text: t('@workflow-management:work-items.states.pending') | async },\\n { value: 'Claimed', text: t('@workflow-management:work-items.states.claimed') | async },\\n { value: 'InProgress', text: t('@workflow-management:work-items.states.in-progress') | async },\\n { value: 'Completed', text: t('@workflow-management:work-items.states.completed') | async },\\n { value: 'Cancelled', text: t('@workflow-management:work-items.states.cancelled') | async },\\n ]\\\"\\n [valueField]=\\\"'value'\\\"\\n [textField]=\\\"'text'\\\"\\n class=\\\"ax-w-48\\\"\\n ></ax-select-box>\\n </div>\\n\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1\\\">\\n <ax-label>{{ '@workflow-management:cartable.components.cartable-page.filters.priority.title' | translate | async }}</ax-label>\\n <ax-select-box\\n [value]=\\\"selectedPriority()\\\"\\n (onValueChanged)=\\\"handlePriorityChange($event)\\\"\\n [dataSource]=\\\"[\\n { value: 'all', text: ('@general:terms.interface.selection.all-items' | translate | async) || 'All' },\\n { value: 'Low', text: t('@workflow-management:work-items.priorities.low') | async },\\n { value: 'Normal', text: t('@workflow-management:work-items.priorities.normal') | async },\\n { value: 'High', text: t('@workflow-management:work-items.priorities.high') | async },\\n { value: 'Urgent', text: t('@workflow-management:work-items.priorities.urgent') | async },\\n ]\\\"\\n [valueField]=\\\"'value'\\\"\\n [textField]=\\\"'text'\\\"\\n class=\\\"ax-w-48\\\"\\n ></ax-select-box>\\n </div>\\n\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1\\\">\\n <ax-label>{{ '@workflow-management:cartable.components.cartable-page.filters.kind.title' | translate | async }}</ax-label>\\n <ax-select-box\\n [value]=\\\"selectedKind()\\\"\\n (onValueChanged)=\\\"handleKindChange($event)\\\"\\n [dataSource]=\\\"[\\n { value: 'all', text: ('@general:terms.interface.selection.all-items' | translate | async) || 'All' },\\n { value: 'HumanTask', text: t('@workflow-management:work-items.kinds.human-task') | async },\\n { value: 'Approval', text: t('@workflow-management:work-items.kinds.approval') | async },\\n { value: 'Review', text: t('@workflow-management:work-items.kinds.review') | async },\\n { value: 'Notification', text: t('@workflow-management:work-items.kinds.notification') | async },\\n { value: 'Other', text: t('@workflow-management:work-items.kinds.other') | async },\\n ]\\\"\\n [valueField]=\\\"'value'\\\"\\n [textField]=\\\"'text'\\\"\\n class=\\\"ax-w-48\\\"\\n ></ax-select-box>\\n </div>\\n </div>\\n </div>\\n </axp-layout-prefix>\\n </axp-page-toolbar>\\n\\n <axp-page-content>\\n <axp-layout-body>\\n <!-- Work Items List -->\\n @if (isLoading()) {\\n <div class=\\\"ax-flex ax-justify-center ax-items-center ax-h-64\\\">\\n <ax-loading></ax-loading>\\n </div>\\n } @else if (filteredWorkItems().length === 0) {\\n <div class=\\\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-64 ax-text-center\\\">\\n <i class=\\\"fa-light fa-clipboard-list ax-text-6xl ax-text-secondary ax-mb-4\\\"></i>\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-mb-2\\\">\\n {{\\n '@workflow-management:cartable.components.cartable-page.empty-states.no-work-items.title'\\n | translate\\n | async\\n }}\\n </h3>\\n <p class=\\\"ax-text-secondary\\\">\\n {{\\n '@workflow-management:cartable.components.cartable-page.empty-states.no-work-items.description'\\n | translate\\n | async\\n }}\\n </p>\\n </div>\\n } @else {\\n <div class=\\\"ax-space-y-4\\\">\\n @for (workItem of filteredWorkItems(); track workItem.id) {\\n <div class=\\\"ax-border ax-rounded ax-p-4 ax-shadow-sm hover:ax-shadow-md ax-transition-shadow\\\">\\n <div class=\\\"ax-flex ax-justify-between ax-items-start ax-mb-2\\\">\\n <div class=\\\"ax-flex-1\\\">\\n <h3 class=\\\"ax-text-lg ax-font-semibold ax-mb-1\\\">{{ workItem.title }}</h3>\\n @if (workItem.description) {\\n <p class=\\\"ax-text-sm ax-text-secondary ax-mb-2\\\">{{ workItem.description }}</p>\\n }\\n <div class=\\\"ax-flex ax-gap-4 ax-flex-wrap ax-text-xs ax-text-secondary\\\">\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-tag\\\"></ax-icon>\\n @switch (workItem.status) {\\n @case ('Pending') {\\n {{ '@workflow-management:work-items.states.pending' | translate | async }}\\n }\\n @case ('Claimed') {\\n {{ '@workflow-management:work-items.states.claimed' | translate | async }}\\n }\\n @case ('InProgress') {\\n {{ '@workflow-management:work-items.states.in-progress' | translate | async }}\\n }\\n @case ('Completed') {\\n {{ '@workflow-management:work-items.states.completed' | translate | async }}\\n }\\n @case ('Cancelled') {\\n {{ '@workflow-management:work-items.states.cancelled' | translate | async }}\\n }\\n @case ('Rejected') {\\n {{ '@workflow-management:work-items.states.rejected' | translate | async }}\\n }\\n @default {\\n {{ workItem.status }}\\n }\\n }\\n </span>\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-flag\\\"></ax-icon>\\n @switch (workItem.priority) {\\n @case ('Low') {\\n {{ '@workflow-management:work-items.priorities.low' | translate | async }}\\n }\\n @case ('Normal') {\\n {{ '@workflow-management:work-items.priorities.normal' | translate | async }}\\n }\\n @case ('High') {\\n {{ '@workflow-management:work-items.priorities.high' | translate | async }}\\n }\\n @case ('Urgent') {\\n {{ '@workflow-management:work-items.priorities.urgent' | translate | async }}\\n }\\n @default {\\n {{ workItem.priority }}\\n }\\n }\\n </span>\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-puzzle-piece\\\"></ax-icon>\\n @switch (workItem.kind) {\\n @case ('HumanTask') {\\n {{ '@workflow-management:work-items.kinds.human-task' | translate | async }}\\n }\\n @case ('Approval') {\\n {{ '@workflow-management:work-items.kinds.approval' | translate | async }}\\n }\\n @case ('Review') {\\n {{ '@workflow-management:work-items.kinds.review' | translate | async }}\\n }\\n @case ('Notification') {\\n {{ '@workflow-management:work-items.kinds.notification' | translate | async }}\\n }\\n @case ('Other') {\\n {{ '@workflow-management:work-items.kinds.other' | translate | async }}\\n }\\n @default {\\n {{ workItem.kind }}\\n }\\n }\\n </span>\\n @if (workItem.dueDate) {\\n <span class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-icon icon=\\\"fa-light fa-calendar\\\"></ax-icon>\\n {{ workItem.dueDate | axDate: 'short' }}\\n </span>\\n }\\n </div>\\n </div>\\n <div class=\\\"ax-flex ax-gap-2\\\">\\n @if (workItem.status === 'Pending' && !workItem.claimedByUserId) {\\n <ax-button\\n [text]=\\\"'@workflow-management:cartable.actions.claim.title' | translate | async\\\"\\n color=\\\"primary\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleClaim(workItem)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-hand\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n @if (workItem.status === 'Claimed' || workItem.status === 'InProgress') {\\n @for (outcome of workItemOutcomes().get(workItem.id) || []; track outcome) {\\n <ax-button\\n [text]=\\\"getOutcomeLabel(outcome) | translate | async\\\"\\n [color]=\\\"getOutcomeColor(outcome)\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleComplete(workItem, outcome)\\\"\\n >\\n <ax-prefix>\\n @if (outcome.toLowerCase() === 'ok' || outcome.toLowerCase() === 'done' || outcome.toLowerCase() === 'approve' || outcome.toLowerCase() === 'signed') {\\n <ax-icon icon=\\\"fa-light fa-check\\\"></ax-icon>\\n } @else if (outcome.toLowerCase() === 'cancel' || outcome.toLowerCase() === 'reject') {\\n <ax-icon icon=\\\"fa-light fa-times\\\"></ax-icon>\\n } @else {\\n <ax-icon icon=\\\"fa-light fa-circle\\\"></ax-icon>\\n }\\n </ax-prefix>\\n </ax-button>\\n }\\n }\\n @if (workItem.status !== 'Completed' && workItem.status !== 'Cancelled') {\\n <ax-button\\n [text]=\\\"'@workflow-management:cartable.actions.cancel.title' | translate | async\\\"\\n color=\\\"danger\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleCancel(workItem)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-times\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n <ax-button\\n [text]=\\\"'@workflow-management:cartable.actions.view-details.title' | translate | async\\\"\\n look=\\\"twotone\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"handleViewDetails(workItem)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-eye\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </axp-layout-body>\\n </axp-page-content>\\n</axp-page-layout>\\n\", styles: [\":host{display:block;height:100%}axp-page-content{display:block;height:100%;overflow-y:auto}axp-theme-layout-block{display:block;padding:1rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydGFibGUtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2NhcnRhYmxlL2NhcnRhYmxlLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9jYXJ0YWJsZS9jYXJ0YWJsZS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUd4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQ3pFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSwwQkFBMEI7SUE1QnhFOztRQTZCRSwrQ0FBK0M7UUFFOUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNyRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4Qiw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUVsRixZQUFZO1FBRVosNkJBQTZCO1FBRTdCLGNBQVMsR0FBRyxNQUFNLENBQWMsS0FBSyxxREFBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQTZDLEVBQUUscURBQUMsQ0FBQztRQUNuRSxjQUFTLEdBQUcsTUFBTSxDQUFVLEtBQUsscURBQUMsQ0FBQztRQUNuQyxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxFQUFFLHVEQUFDLENBQUM7UUFDakMsbUJBQWMsR0FBRyxNQUFNLENBQVMsS0FBSywwREFBQyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHLE1BQU0sQ0FBUyxLQUFLLDREQUFDLENBQUM7UUFDekMsaUJBQVksR0FBRyxNQUFNLENBQVMsS0FBSyx3REFBQyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFHLE1BQU0sQ0FBd0IsSUFBSSxHQUFHLEVBQUUsNERBQUMsQ0FBQztRQUU1RCxZQUFZO1FBRVosMkNBQTJDO1FBRTNDLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRTdCLGdCQUFnQjtZQUNoQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDbkQsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2xCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLGFBQWEsQ0FDMUYsQ0FBQztZQUNKLENBQUM7aUJBQU0sSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzVELENBQUM7aUJBQU0sSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxDQUFDO1lBQy9ELENBQUM7aUJBQU0sSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQy9CLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQzlELENBQUM7aUJBQU0sSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQy9CLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFFRCx5QkFBeUI7WUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9DLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2xCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ25ELENBQUM7WUFDSixDQUFDO1lBRUQsbUJBQW1CO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQyxJQUFJLE1BQU0sSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQy9CLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFFRCxxQkFBcUI7WUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekMsSUFBSSxRQUFRLElBQUksUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBRUQsaUJBQWlCO1lBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzNCLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsNkRBQUMsQ0FBQztLQW9NSjtJQWxNQyxZQUFZO0lBRVosNkNBQTZDO0lBRXBDLEtBQUssQ0FBQyxRQUFRO1FBQ3JCLE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUSxLQUFLLENBQUMsWUFBWTtRQUN6QixPQUFPLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxZQUFZO0lBRVosb0NBQW9DO0lBRTVCLEtBQUssQ0FBQyxhQUFhO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBQzlDLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksRUFBRSxJQUFJLEVBQUUsbUJBQW1CO2dCQUMvQixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3BDLENBQUMsQ0FBQztZQUNWLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTFCLG1DQUFtQztZQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztZQUNoRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxFQUFFLENBQUM7b0JBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0RCxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkUsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO0lBRVosbUNBQW1DO0lBRW5DLFNBQVMsQ0FBQyxHQUFnQjtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBMEI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBMEI7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUUsS0FBSyxDQUFDLEtBQWdCLElBQUksS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQTBCO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUUsS0FBSyxDQUFDLEtBQWdCLElBQUksS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQTBCO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFFLEtBQUssQ0FBQyxLQUFnQixJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQWtEO1FBQ2xFLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLEVBQUU7Z0JBQ3BGLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTthQUN4QixDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBa0QsRUFBRSxPQUFnQjtRQUN2RixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxFQUFFO2dCQUN2RixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ3ZCLE9BQU87YUFDUixDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQVcsQ0FBQztnQkFFaEMsOENBQThDO2dCQUM5QyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFFM0IsOENBQThDO2dCQUM5QyxJQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztvQkFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDL0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQztvQkFFakYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLEtBQUssRUFBRSxTQUFTO3dCQUNoQixLQUFLLEVBQUUsZUFBZTt3QkFDdEIsT0FBTyxFQUFFLDRCQUE0QixZQUFZLEVBQUU7d0JBQ25ELFdBQVcsRUFBRSxJQUFJO3dCQUNqQixPQUFPLEVBQUUsSUFBSTtxQkFDZCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQzt3QkFDckIsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLEtBQUssRUFBRSxvQkFBb0I7d0JBQzNCLE9BQU8sRUFBRSwrQ0FBK0M7d0JBQ3hELFdBQVcsRUFBRSxJQUFJO3dCQUNqQixPQUFPLEVBQUUsSUFBSTtxQkFDZCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsUUFBa0Q7UUFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRyxJQUFJLFdBQVcsRUFBRSxRQUFRLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsSUFBSSxRQUFRLENBQUMsWUFBWSxLQUFLLHNDQUFzQyxFQUFFLENBQUM7WUFDckUsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZTtRQUM3Qiw4Q0FBOEM7UUFDOUMsTUFBTSxRQUFRLEdBQTJCO1lBQ3ZDLElBQUksRUFBRSxtREFBbUQ7WUFDekQsUUFBUSxFQUFFLHVEQUF1RDtZQUNqRSxNQUFNLEVBQUUscURBQXFEO1lBQzdELFFBQVEsRUFBRSx1REFBdUQ7WUFDakUsU0FBUyxFQUFFLHdEQUF3RDtZQUNuRSxRQUFRLEVBQUUsdURBQXVEO1lBQ2pFLFFBQVEsRUFBRSx1REFBdUQ7U0FDbEUsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWU7UUFDN0IsTUFBTSxRQUFRLEdBQWlFO1lBQzdFLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLFNBQVM7WUFDakIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFrRDtRQUNuRSxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxFQUFFO2dCQUNyRixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBa0Q7UUFDeEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3hDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUN0QixVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2pDLFFBQVEsQ0FBQyxFQUFFLENBQ1osQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBN1FVLHdCQUF3QjttR0FBeEIsd0JBQXdCLGdFQVZ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSx3QkFBd0I7YUFDdEM7U0FDRixpRENoREgsNCtaQWtRQSx3TURyT0ksWUFBWSw4QkFDWixXQUFXLDhCQUNYLGNBQWMsNlhBQ2QsbUJBQW1CLDhCQUNuQixpQkFBaUIsc2NBQ2pCLGFBQWEsZ0tBQ2IsaUJBQWlCLDBaQUNqQixpQkFBaUIsZ3VCQUNqQixlQUFlLDhLQUNmLGdCQUFnQiw4QkFDaEIsbUJBQW1CLCtHQUNuQixzQkFBc0IsNERBQ3RCLDRCQUE0Qjs7NEZBWW5CLHdCQUF3QjtrQkE1QnBDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7cUJBQzdCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVywwQkFBMEI7eUJBQ3RDO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhCdXR0b25Hcm91cE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UsIEFYUFBhZ2VMYXlvdXRCYXNlQ29tcG9uZW50LCBBWFBQYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvdmlld3MnO1xuaW1wb3J0IHsgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrSXRlbUVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbnRpdGllcy93b3JrLWl0ZW0vd29yay1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya0l0ZW1FbnRpdHlNb2RlbCB9IGZyb20gJy4uLy4uL2VudGl0aWVzL3dvcmstaXRlbS93b3JrLWl0ZW0udHlwZXMnO1xuaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBBY3Rpdml0eURlZmluaXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5cbnR5cGUgQ2FydGFibGVUYWIgPSAnYWxsJyB8ICdteS10YXNrcycgfCAncGVuZGluZycgfCAnaW4tcHJvZ3Jlc3MnIHwgJ2NvbXBsZXRlZCcgfCAnY2FuY2VsbGVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhtLWNhcnRhYmxlLXBhZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYQnV0dG9uR3JvdXBNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMYWJlbE1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWExvYWRpbmdNb2R1bGUsXG4gICAgQVhEYXRlVGltZU1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYUFBhZ2VMYXlvdXRDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQUGFnZUxheW91dEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhNQ2FydGFibGVQYWdlQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0YWJsZS1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FydGFibGUtcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhNQ2FydGFibGVQYWdlQ29tcG9uZW50IGV4dGVuZHMgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQge1xuICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya0l0ZW1TZXJ2aWNlID0gaW5qZWN0KEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtJdGVtRW50aXR5U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kU2VydmljZSA9IGluamVjdChBWFBDb21tYW5kU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZpdHlEZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBBY3Rpdml0eURlZmluaXRpb25TZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFN0YXRlICAgLS0tLVxuXG4gIGFjdGl2ZVRhYiA9IHNpZ25hbDxDYXJ0YWJsZVRhYj4oJ2FsbCcpO1xuICB3b3JrSXRlbXMgPSBzaWduYWw8QVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya0l0ZW1FbnRpdHlNb2RlbFtdPihbXSk7XG4gIGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHNlYXJjaFF1ZXJ5ID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBzZWxlY3RlZFN0YXR1cyA9IHNpZ25hbDxzdHJpbmc+KCdhbGwnKTtcbiAgc2VsZWN0ZWRQcmlvcml0eSA9IHNpZ25hbDxzdHJpbmc+KCdhbGwnKTtcbiAgc2VsZWN0ZWRLaW5kID0gc2lnbmFsPHN0cmluZz4oJ2FsbCcpO1xuICB3b3JrSXRlbU91dGNvbWVzID0gc2lnbmFsPE1hcDxzdHJpbmcsIHN0cmluZ1tdPj4obmV3IE1hcCgpKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENvbXB1dGVkIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgZmlsdGVyZWRXb3JrSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IGl0ZW1zID0gdGhpcy53b3JrSXRlbXMoKTtcblxuICAgIC8vIEZpbHRlciBieSB0YWJcbiAgICBjb25zdCB0YWIgPSB0aGlzLmFjdGl2ZVRhYigpO1xuICAgIGlmICh0YWIgPT09ICdteS10YXNrcycpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRVc2VySWQgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLnVzZXI/LmlkO1xuICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLmFzc2lnbmVkVXNlcklkID09PSBjdXJyZW50VXNlcklkIHx8IGl0ZW0uY2xhaW1lZEJ5VXNlcklkID09PSBjdXJyZW50VXNlcklkXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGFiID09PSAncGVuZGluZycpIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnN0YXR1cyA9PT0gJ1BlbmRpbmcnKTtcbiAgICB9IGVsc2UgaWYgKHRhYiA9PT0gJ2luLXByb2dyZXNzJykge1xuICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSAnSW5Qcm9ncmVzcycpO1xuICAgIH0gZWxzZSBpZiAodGFiID09PSAnY29tcGxldGVkJykge1xuICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSAnQ29tcGxldGVkJyk7XG4gICAgfSBlbHNlIGlmICh0YWIgPT09ICdjYW5jZWxsZWQnKSB7XG4gICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09ICdDYW5jZWxsZWQnKTtcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgYnkgc2VhcmNoIHF1ZXJ5XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLnNlYXJjaFF1ZXJ5KCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLnRpdGxlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KSB8fFxuICAgICAgICAgIGl0ZW0uZGVzY3JpcHRpb24/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpIHx8XG4gICAgICAgICAgaXRlbS5hY3Rpdml0eU5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBieSBzdGF0dXNcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnNlbGVjdGVkU3RhdHVzKCk7XG4gICAgaWYgKHN0YXR1cyAmJiBzdGF0dXMgIT09ICdhbGwnKSB7XG4gICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09IHN0YXR1cyk7XG4gICAgfVxuXG4gICAgLy8gRmlsdGVyIGJ5IHByaW9yaXR5XG4gICAgY29uc3QgcHJpb3JpdHkgPSB0aGlzLnNlbGVjdGVkUHJpb3JpdHkoKTtcbiAgICBpZiAocHJpb3JpdHkgJiYgcHJpb3JpdHkgIT09ICdhbGwnKSB7XG4gICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wcmlvcml0eSA9PT0gcHJpb3JpdHkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBieSBraW5kXG4gICAgY29uc3Qga2luZCA9IHRoaXMuc2VsZWN0ZWRLaW5kKCk7XG4gICAgaWYgKGtpbmQgJiYga2luZCAhPT0gJ2FsbCcpIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmtpbmQgPT09IGtpbmQpO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQYWdlIExheW91dCBPdmVycmlkZXMgICAtLS0tXG5cbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIubmdPbkluaXQoKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRXb3JrSXRlbXMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VUaXRsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmNhcnRhYmxlLmNvbXBvbmVudHMuY2FydGFibGUtcGFnZS50aXRsZScpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBEYXRhIExvYWRpbmcgICAtLS0tXG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkV29ya0l0ZW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy53b3JrSXRlbVNlcnZpY2UucXVlcnkoe1xuICAgICAgICBza2lwOiAwLFxuICAgICAgICB0YWtlOiAxMDAwLCAvLyBMb2FkIGFsbCBmb3Igbm93XG4gICAgICAgIHNvcnQ6IFt7IG5hbWU6ICdjcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XSxcbiAgICAgIH0gYXMgYW55KTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gcmVzdWx0Lml0ZW1zIHx8IFtdO1xuICAgICAgdGhpcy53b3JrSXRlbXMuc2V0KGl0ZW1zKTtcblxuICAgICAgLy8gTG9hZCBvdXRjb21lcyBmb3IgZWFjaCB3b3JrIGl0ZW1cbiAgICAgIGNvbnN0IG91dGNvbWVzTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgIGlmIChpdGVtLnN0YXR1cyA9PT0gJ0NsYWltZWQnIHx8IGl0ZW0uc3RhdHVzID09PSAnSW5Qcm9ncmVzcycpIHtcbiAgICAgICAgICBjb25zdCBvdXRjb21lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZpdHlPdXRjb21lcyhpdGVtKTtcbiAgICAgICAgICBvdXRjb21lc01hcC5zZXQoaXRlbS5pZCwgb3V0Y29tZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLndvcmtJdGVtT3V0Y29tZXMuc2V0KG91dGNvbWVzTWFwKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignW0NhcnRhYmxlUGFnZV0gRXJyb3IgbG9hZGluZyB3b3JrIGl0ZW1zOicsIGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFVJIEhhbmRsZXJzICAgLS0tLVxuXG4gIHN3aXRjaFRhYih0YWI6IENhcnRhYmxlVGFiKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVUYWIuc2V0KHRhYik7XG4gIH1cblxuICBoYW5kbGVTZWFyY2hDaGFuZ2UoZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5LnNldChldmVudC52YWx1ZSB8fCAnJyk7XG4gIH1cblxuICBoYW5kbGVTdGF0dXNDaGFuZ2UoZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkU3RhdHVzLnNldCgoZXZlbnQudmFsdWUgYXMgc3RyaW5nKSB8fCAnYWxsJyk7XG4gIH1cblxuICBoYW5kbGVQcmlvcml0eUNoYW5nZShldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmlvcml0eS5zZXQoKGV2ZW50LnZhbHVlIGFzIHN0cmluZykgfHwgJ2FsbCcpO1xuICB9XG5cbiAgaGFuZGxlS2luZENoYW5nZShldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRLaW5kLnNldCgoZXZlbnQudmFsdWUgYXMgc3RyaW5nKSB8fCAnYWxsJyk7XG4gIH1cblxuICBhc3luYyBoYW5kbGVDbGFpbSh3b3JrSXRlbTogQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya0l0ZW1FbnRpdHlNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbW1hbmRTZXJ2aWNlLmV4ZWN1dGUoJ1dvcmtmbG93TWFuYWdlbWVudC5Xb3JrSXRlbTpDbGFpbScsIHtcbiAgICAgICAgd29ya0l0ZW1JZDogd29ya0l0ZW0uaWQsXG4gICAgICB9KTtcbiAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkV29ya0l0ZW1zKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tDYXJ0YWJsZVBhZ2VdIEVycm9yIGNsYWltaW5nIHdvcmsgaXRlbTonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlQ29tcGxldGUod29ya0l0ZW06IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtJdGVtRW50aXR5TW9kZWwsIG91dGNvbWU/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21tYW5kU2VydmljZS5leGVjdXRlKCdXb3JrZmxvd01hbmFnZW1lbnQuV29ya0l0ZW06Q29tcGxldGUnLCB7XG4gICAgICAgIHdvcmtJdGVtSWQ6IHdvcmtJdGVtLmlkLFxuICAgICAgICBvdXRjb21lLFxuICAgICAgfSk7XG4gICAgICBpZiAocmVzdWx0Py5zdWNjZXNzKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YSBhcyBhbnk7XG4gICAgICAgIFxuICAgICAgICAvLyBSZWxvYWQgd29yayBpdGVtcyB0byByZWZsZWN0IHVwZGF0ZWQgc3RhdHVzXG4gICAgICAgIGF3YWl0IHRoaXMubG9hZFdvcmtJdGVtcygpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlJ3MgYSBuZXh0IHRhc2ssIHNob3cgaXQgdG8gdGhlIHVzZXJcbiAgICAgICAgaWYgKGRhdGE/Lm5leHRUYXNrKSB7XG4gICAgICAgICAgY29uc3QgbmV4dFRhc2sgPSBkYXRhLm5leHRUYXNrO1xuICAgICAgICAgIGNvbnN0IGFjdGl2aXR5TmFtZSA9IG5leHRUYXNrLmFjdGl2aXR5VHlwZSB8fCBuZXh0VGFzay5hY3Rpdml0eU5hbWUgfHwgJ1Vua25vd24nO1xuICAgICAgICAgIFxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIHRpdGxlOiAnTmV4dCBBY3Rpdml0eScsXG4gICAgICAgICAgICBjb250ZW50OiBgV29ya2Zsb3cgY29udGludWVzIHdpdGg6ICR7YWN0aXZpdHlOYW1lfWAsXG4gICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIHRpbWVPdXQ6IDUwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YT8uc3RhdGU/LnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogJ1dvcmtmbG93IENvbXBsZXRlZCcsXG4gICAgICAgICAgICBjb250ZW50OiAnVGhlIHdvcmtmbG93IGhhcyBiZWVuIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuJyxcbiAgICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgdGltZU91dDogNTAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbQ2FydGFibGVQYWdlXSBFcnJvciBjb21wbGV0aW5nIHdvcmsgaXRlbTonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0QWN0aXZpdHlPdXRjb21lcyh3b3JrSXRlbTogQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya0l0ZW1FbnRpdHlNb2RlbCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIXdvcmtJdGVtLmFjdGl2aXR5TmFtZSkge1xuICAgICAgcmV0dXJuIFsnRG9uZSddO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBhY3Rpdml0eURlZiA9IGF3YWl0IHRoaXMuYWN0aXZpdHlEZWZpbml0aW9uU2VydmljZS5nZXRBY3Rpdml0eUJ5TmFtZSh3b3JrSXRlbS5hY3Rpdml0eU5hbWUpO1xuICAgICAgaWYgKGFjdGl2aXR5RGVmPy5vdXRjb21lcyAmJiBhY3Rpdml0eURlZi5vdXRjb21lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBhY3Rpdml0eURlZi5vdXRjb21lcztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignW0NhcnRhYmxlUGFnZV0gRXJyb3IgZ2V0dGluZyBhY3Rpdml0eSBkZWZpbml0aW9uOicsIGVycm9yKTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IG91dGNvbWVzIGJhc2VkIG9uIGFjdGl2aXR5IHR5cGVcbiAgICBpZiAod29ya0l0ZW0uYWN0aXZpdHlOYW1lID09PSAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy1jb25maXJtLXBvcHVwJykge1xuICAgICAgcmV0dXJuIFsnb2snLCAnY2FuY2VsJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIFsnRG9uZSddO1xuICB9XG5cbiAgZ2V0T3V0Y29tZUxhYmVsKG91dGNvbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gTWFwIGNvbW1vbiBvdXRjb21lcyB0byB1c2VyLWZyaWVuZGx5IGxhYmVsc1xuICAgIGNvbnN0IGxhYmVsTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ29rJzogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmNhcnRhYmxlLmFjdGlvbnMub3V0Y29tZXMub2snLFxuICAgICAgJ2NhbmNlbCc6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5hY3Rpb25zLm91dGNvbWVzLmNhbmNlbCcsXG4gICAgICAnZG9uZSc6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5hY3Rpb25zLm91dGNvbWVzLmRvbmUnLFxuICAgICAgJ3N1Ym1pdCc6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5hY3Rpb25zLm91dGNvbWVzLnN1Ym1pdCcsXG4gICAgICAnYXBwcm92ZSc6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5hY3Rpb25zLm91dGNvbWVzLmFwcHJvdmUnLFxuICAgICAgJ3JlamVjdCc6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5hY3Rpb25zLm91dGNvbWVzLnJlamVjdCcsXG4gICAgICAnc2lnbmVkJzogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmNhcnRhYmxlLmFjdGlvbnMub3V0Y29tZXMuc2lnbmVkJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGxhYmVsTWFwW291dGNvbWUudG9Mb3dlckNhc2UoKV0gfHwgb3V0Y29tZTtcbiAgfVxuXG4gIGdldE91dGNvbWVDb2xvcihvdXRjb21lOiBzdHJpbmcpOiAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdwcmltYXJ5JyB7XG4gICAgY29uc3QgY29sb3JNYXA6IFJlY29yZDxzdHJpbmcsICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ3ByaW1hcnknPiA9IHtcbiAgICAgICdvayc6ICdzdWNjZXNzJyxcbiAgICAgICdkb25lJzogJ3N1Y2Nlc3MnLFxuICAgICAgJ3N1Ym1pdCc6ICdzdWNjZXNzJyxcbiAgICAgICdhcHByb3ZlJzogJ3N1Y2Nlc3MnLFxuICAgICAgJ3NpZ25lZCc6ICdzdWNjZXNzJyxcbiAgICAgICdjYW5jZWwnOiAnZGFuZ2VyJyxcbiAgICAgICdyZWplY3QnOiAnZGFuZ2VyJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbG9yTWFwW291dGNvbWUudG9Mb3dlckNhc2UoKV0gfHwgJ3ByaW1hcnknO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlQ2FuY2VsKHdvcmtJdGVtOiBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrSXRlbUVudGl0eU1vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29tbWFuZFNlcnZpY2UuZXhlY3V0ZSgnV29ya2Zsb3dNYW5hZ2VtZW50LldvcmtJdGVtOkNhbmNlbCcsIHtcbiAgICAgICAgd29ya0l0ZW1JZDogd29ya0l0ZW0uaWQsXG4gICAgICB9KTtcbiAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkV29ya0l0ZW1zKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tDYXJ0YWJsZVBhZ2VdIEVycm9yIGNhbmNlbGxpbmcgd29yayBpdGVtOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBoYW5kbGVWaWV3RGV0YWlscyh3b3JrSXRlbTogQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya0l0ZW1FbnRpdHlNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLmVudGl0eVNlcnZpY2UuY3JlYXRlUGF0aChcbiAgICAgIFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgICBSb290Q29uZmlnLmVudGl0aWVzLndvcmtJdGVtLm5hbWUsXG4gICAgICB3b3JrSXRlbS5pZFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuXG4iLCI8YXhwLXBhZ2UtbGF5b3V0ICp0cmFuc2xhdGU9XCJsZXQgdFwiPlxuICA8YXhwLXBhZ2UtdG9vbGJhcj5cbiAgICA8YXhwLWxheW91dC1wcmVmaXg+XG4gICAgICA8IS0tIFNlYXJjaCBhbmQgRmlsdGVycyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC00IGF4LWl0ZW1zLWVuZCBheC1mbGV4LXdyYXBcIj5cbiAgICAgICAgPCEtLSBTZWFyY2ggLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4LTEgYXgtbWluLXctNjRcIj5cbiAgICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgICAgWyh2YWx1ZSldPVwic2VhcmNoUXVlcnlcIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0KCdAZ2VuZXJhbDphY3Rpb25zLnNlYXJjaC50aXRsZScsIHsgc2NvcGU6ICdnZW5lcmFsJyB9KSB8IGFzeW5jXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICAgIDwvYXgtc2VhcmNoLWJveD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBGaWx0ZXJzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtNCBheC1mbGV4LXdyYXBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMVwiPlxuICAgICAgICAgICAgPGF4LWxhYmVsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5jb21wb25lbnRzLmNhcnRhYmxlLXBhZ2UuZmlsdGVycy5zdGF0dXMudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkU3RhdHVzKClcIlxuICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2FsbCcsIHRleHQ6ICgnQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLnNlbGVjdGlvbi5hbGwtaXRlbXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMpIHx8ICdBbGwnIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1BlbmRpbmcnLCB0ZXh0OiB0KCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLnN0YXRlcy5wZW5kaW5nJykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdDbGFpbWVkJywgdGV4dDogdCgnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5zdGF0ZXMuY2xhaW1lZCcpIHwgYXN5bmMgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnSW5Qcm9ncmVzcycsIHRleHQ6IHQoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMuc3RhdGVzLmluLXByb2dyZXNzJykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdDb21wbGV0ZWQnLCB0ZXh0OiB0KCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLnN0YXRlcy5jb21wbGV0ZWQnKSB8IGFzeW5jIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ0NhbmNlbGxlZCcsIHRleHQ6IHQoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMuc3RhdGVzLmNhbmNlbGxlZCcpIHwgYXN5bmMgfSxcbiAgICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cIid2YWx1ZSdcIlxuICAgICAgICAgICAgICBbdGV4dEZpZWxkXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtdy00OFwiXG4gICAgICAgICAgICA+PC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIj5cbiAgICAgICAgICAgIDxheC1sYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6Y2FydGFibGUuY29tcG9uZW50cy5jYXJ0YWJsZS1wYWdlLmZpbHRlcnMucHJpb3JpdHkudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkUHJpb3JpdHkoKVwiXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVQcmlvcml0eUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiW1xuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdhbGwnLCB0ZXh0OiAoJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5zZWxlY3Rpb24uYWxsLWl0ZW1zJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSB8fCAnQWxsJyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdMb3cnLCB0ZXh0OiB0KCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLnByaW9yaXRpZXMubG93JykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdOb3JtYWwnLCB0ZXh0OiB0KCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLnByaW9yaXRpZXMubm9ybWFsJykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdIaWdoJywgdGV4dDogdCgnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5wcmlvcml0aWVzLmhpZ2gnKSB8IGFzeW5jIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1VyZ2VudCcsIHRleHQ6IHQoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMucHJpb3JpdGllcy51cmdlbnQnKSB8IGFzeW5jIH0sXG4gICAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCIndmFsdWUnXCJcbiAgICAgICAgICAgICAgW3RleHRGaWVsZF09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBjbGFzcz1cImF4LXctNDhcIlxuICAgICAgICAgICAgPjwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xXCI+XG4gICAgICAgICAgICA8YXgtbGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmNhcnRhYmxlLmNvbXBvbmVudHMuY2FydGFibGUtcGFnZS5maWx0ZXJzLmtpbmQudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkS2luZCgpXCJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZUtpbmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cIltcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnYWxsJywgdGV4dDogKCdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2Uuc2VsZWN0aW9uLmFsbC1pdGVtcycgfCB0cmFuc2xhdGUgfCBhc3luYykgfHwgJ0FsbCcgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnSHVtYW5UYXNrJywgdGV4dDogdCgnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5raW5kcy5odW1hbi10YXNrJykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdBcHByb3ZhbCcsIHRleHQ6IHQoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMua2luZHMuYXBwcm92YWwnKSB8IGFzeW5jIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1JldmlldycsIHRleHQ6IHQoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMua2luZHMucmV2aWV3JykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdOb3RpZmljYXRpb24nLCB0ZXh0OiB0KCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLmtpbmRzLm5vdGlmaWNhdGlvbicpIHwgYXN5bmMgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnT3RoZXInLCB0ZXh0OiB0KCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLmtpbmRzLm90aGVyJykgfCBhc3luYyB9LFxuICAgICAgICAgICAgICBdXCJcbiAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiJ3ZhbHVlJ1wiXG4gICAgICAgICAgICAgIFt0ZXh0RmllbGRdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC13LTQ4XCJcbiAgICAgICAgICAgID48L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9heHAtbGF5b3V0LXByZWZpeD5cbiAgPC9heHAtcGFnZS10b29sYmFyPlxuXG4gIDxheHAtcGFnZS1jb250ZW50PlxuICAgIDxheHAtbGF5b3V0LWJvZHk+XG4gICAgICA8IS0tIFdvcmsgSXRlbXMgTGlzdCAtLT5cbiAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyIGF4LWgtNjRcIj5cbiAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSBpZiAoZmlsdGVyZWRXb3JrSXRlbXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LWgtNjQgYXgtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWNsaXBib2FyZC1saXN0IGF4LXRleHQtNnhsIGF4LXRleHQtc2Vjb25kYXJ5IGF4LW1iLTRcIj48L2k+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGQgYXgtbWItMlwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmNhcnRhYmxlLmNvbXBvbmVudHMuY2FydGFibGUtcGFnZS5lbXB0eS1zdGF0ZXMubm8td29yay1pdGVtcy50aXRsZSdcbiAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIHwgYXN5bmNcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBjbGFzcz1cImF4LXRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6Y2FydGFibGUuY29tcG9uZW50cy5jYXJ0YWJsZS1wYWdlLmVtcHR5LXN0YXRlcy5uby13b3JrLWl0ZW1zLmRlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1zcGFjZS15LTRcIj5cbiAgICAgICAgICBAZm9yICh3b3JrSXRlbSBvZiBmaWx0ZXJlZFdvcmtJdGVtcygpOyB0cmFjayB3b3JrSXRlbS5pZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWJvcmRlciBheC1yb3VuZGVkIGF4LXAtNCBheC1zaGFkb3ctc20gaG92ZXI6YXgtc2hhZG93LW1kIGF4LXRyYW5zaXRpb24tc2hhZG93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1zdGFydCBheC1tYi0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkIGF4LW1iLTFcIj57eyB3b3JrSXRlbS50aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICBAaWYgKHdvcmtJdGVtLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1zbSBheC10ZXh0LXNlY29uZGFyeSBheC1tYi0yXCI+e3sgd29ya0l0ZW0uZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtNCBheC1mbGV4LXdyYXAgYXgtdGV4dC14cyBheC10ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLWxpZ2h0IGZhLXRhZ1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoICh3b3JrSXRlbS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUGVuZGluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMuc3RhdGVzLnBlbmRpbmcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnQ2xhaW1lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMuc3RhdGVzLmNsYWltZWQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnSW5Qcm9ncmVzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMuc3RhdGVzLmluLXByb2dyZXNzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ0NvbXBsZXRlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMuc3RhdGVzLmNvbXBsZXRlZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdDYW5jZWxsZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLnN0YXRlcy5jYW5jZWxsZWQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUmVqZWN0ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLnN0YXRlcy5yZWplY3RlZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3b3JrSXRlbS5zdGF0dXMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCBmYS1mbGFnXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKHdvcmtJdGVtLnByaW9yaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ0xvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMucHJpb3JpdGllcy5sb3cnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnTm9ybWFsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5wcmlvcml0aWVzLm5vcm1hbCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdIaWdoJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5wcmlvcml0aWVzLmhpZ2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnVXJnZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5wcmlvcml0aWVzLnVyZ2VudCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB3b3JrSXRlbS5wcmlvcml0eSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLWxpZ2h0IGZhLXB1enpsZS1waWVjZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoICh3b3JrSXRlbS5raW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ0h1bWFuVGFzaycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMua2luZHMuaHVtYW4tdGFzaycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdBcHByb3ZhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmstaXRlbXMua2luZHMuYXBwcm92YWwnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUmV2aWV3Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5raW5kcy5yZXZpZXcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnTm90aWZpY2F0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29yay1pdGVtcy5raW5kcy5ub3RpZmljYXRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnT3RoZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrLWl0ZW1zLmtpbmRzLm90aGVyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdvcmtJdGVtLmtpbmQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh3b3JrSXRlbS5kdWVEYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLWxpZ2h0IGZhLWNhbGVuZGFyXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgd29ya0l0ZW0uZHVlRGF0ZSB8IGF4RGF0ZTogJ3Nob3J0JyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIEBpZiAod29ya0l0ZW0uc3RhdHVzID09PSAnUGVuZGluZycgJiYgIXdvcmtJdGVtLmNsYWltZWRCeVVzZXJJZCkge1xuICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmNhcnRhYmxlLmFjdGlvbnMuY2xhaW0udGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNsYWltKHdvcmtJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLWxpZ2h0IGZhLWhhbmRcIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmICh3b3JrSXRlbS5zdGF0dXMgPT09ICdDbGFpbWVkJyB8fCB3b3JrSXRlbS5zdGF0dXMgPT09ICdJblByb2dyZXNzJykge1xuICAgICAgICAgICAgICAgICAgICBAZm9yIChvdXRjb21lIG9mIHdvcmtJdGVtT3V0Y29tZXMoKS5nZXQod29ya0l0ZW0uaWQpIHx8IFtdOyB0cmFjayBvdXRjb21lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZ2V0T3V0Y29tZUxhYmVsKG91dGNvbWUpIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldE91dGNvbWVDb2xvcihvdXRjb21lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsb29rPVwidHdvdG9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNvbXBsZXRlKHdvcmtJdGVtLCBvdXRjb21lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChvdXRjb21lLnRvTG93ZXJDYXNlKCkgPT09ICdvaycgfHwgb3V0Y29tZS50b0xvd2VyQ2FzZSgpID09PSAnZG9uZScgfHwgb3V0Y29tZS50b0xvd2VyQ2FzZSgpID09PSAnYXBwcm92ZScgfHwgb3V0Y29tZS50b0xvd2VyQ2FzZSgpID09PSAnc2lnbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCBmYS1jaGVja1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAob3V0Y29tZS50b0xvd2VyQ2FzZSgpID09PSAnY2FuY2VsJyB8fCBvdXRjb21lLnRvTG93ZXJDYXNlKCkgPT09ICdyZWplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLWxpZ2h0IGZhLXRpbWVzXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQgZmEtY2lyY2xlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmICh3b3JrSXRlbS5zdGF0dXMgIT09ICdDb21wbGV0ZWQnICYmIHdvcmtJdGVtLnN0YXR1cyAhPT0gJ0NhbmNlbGxlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDpjYXJ0YWJsZS5hY3Rpb25zLmNhbmNlbC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDYW5jZWwod29ya0l0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQgZmEtdGltZXNcIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6Y2FydGFibGUuYWN0aW9ucy52aWV3LWRldGFpbHMudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBsb29rPVwidHdvdG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVWaWV3RGV0YWlscyh3b3JrSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCBmYS1leWVcIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2F4cC1sYXlvdXQtYm9keT5cbiAgPC9heHAtcGFnZS1jb250ZW50PlxuPC9heHAtcGFnZS1sYXlvdXQ+XG4iXX0="],"names":["i1","i2","i8"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAM,wBAAwB,SAAS,0BAA0B,CAAC;AACzE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,0CAA0C,CAAC;AACjF,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC7E;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5G;AACA;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAChD,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC;AACA,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC,YAAY,IAAI,GAAG,KAAK,UAAU,EAAE;AACpC,gBAAgB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE;AAClE,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,KAAK,aAAa,IAAI,IAAI,CAAC,eAAe,KAAK,aAAa,CAAC;AAC/H,YAAY;AACZ,iBAAiB,IAAI,GAAG,KAAK,SAAS,EAAE;AACxC,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;AACzE,YAAY;AACZ,iBAAiB,IAAI,GAAG,KAAK,aAAa,EAAE;AAC5C,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;AAC5E,YAAY;AACZ,iBAAiB,IAAI,GAAG,KAAK,WAAW,EAAE;AAC1C,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;AAC3E,YAAY;AACZ,iBAAiB,IAAI,GAAG,KAAK,WAAW,EAAE;AAC1C,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;AAC3E,YAAY;AACZ;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE;AAC1D,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxF,oBAAoB,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnE,oBAAoB,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrE,YAAY;AACZ;AACA,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AAChD,YAAY,IAAI,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE;AAC5C,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;AACtE,YAAY;AACZ;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACpD,YAAY,IAAI,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE;AAChD,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAC1E,YAAY;AACZ;AACA,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;AAC5C,YAAY,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AACxC,gBAAgB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AAClE,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,IAAI;AACJ;AACA;AACA,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,KAAK,CAAC,QAAQ,EAAE;AAC9B,QAAQ,MAAM,IAAI,CAAC,aAAa,EAAE;AAClC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,8DAA8D,CAAC;AACzH,IAAI;AACJ;AACA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC5D,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC1D,aAAa,CAAC;AACd,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;AAC5C,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC;AACA,YAAY,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACzC,YAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtC,gBAAgB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;AAC/E,oBAAoB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AACzE,oBAAoB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC;AACtD,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;AAClD,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AAC5E,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC,QAAQ;AACR,IAAI;AACJ;AACA;AACA,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/B,IAAI;AACJ,IAAI,kBAAkB,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC/C,IAAI;AACJ,IAAI,kBAAkB,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;AACrD,IAAI;AACJ,IAAI,oBAAoB,CAAC,KAAK,EAAE;AAChC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;AACvD,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;AACnD,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,QAAQ,EAAE;AAChC,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,mCAAmC,EAAE;AAClG,gBAAgB,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvC,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC,gBAAgB,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AAC5E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC5C,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,sCAAsC,EAAE;AACrG,gBAAgB,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvC,gBAAgB,OAAO;AACvB,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC,gBAAgB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACxC;AACA,gBAAgB,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1C;AACA,gBAAgB,IAAI,IAAI,EAAE,QAAQ,EAAE;AACpC,oBAAoB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAClD,oBAAoB,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,IAAI,SAAS;AACpG,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC3C,wBAAwB,KAAK,EAAE,SAAS;AACxC,wBAAwB,KAAK,EAAE,eAAe;AAC9C,wBAAwB,OAAO,EAAE,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AAC3E,wBAAwB,WAAW,EAAE,IAAI;AACzC,wBAAwB,OAAO,EAAE,IAAI;AACrC,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,qBAAqB,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE;AAC9D,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC3C,wBAAwB,KAAK,EAAE,SAAS;AACxC,wBAAwB,KAAK,EAAE,oBAAoB;AACnD,wBAAwB,OAAO,EAAE,+CAA+C;AAChF,wBAAwB,WAAW,EAAE,IAAI;AACzC,wBAAwB,OAAO,EAAE,IAAI;AACrC,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAC9E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,mBAAmB,CAAC,QAAQ,EAAE;AACxC,QAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACpC,YAAY,OAAO,CAAC,MAAM,CAAC;AAC3B,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC7G,YAAY,IAAI,WAAW,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1E,gBAAgB,OAAO,WAAW,CAAC,QAAQ;AAC3C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC;AACrF,QAAQ;AACR;AACA,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,sCAAsC,EAAE;AAC9E,YAAY,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;AACnC,QAAQ;AACR,QAAQ,OAAO,CAAC,MAAM,CAAC;AACvB,IAAI;AACJ,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B;AACA,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,IAAI,EAAE,mDAAmD;AACrE,YAAY,QAAQ,EAAE,uDAAuD;AAC7E,YAAY,MAAM,EAAE,qDAAqD;AACzE,YAAY,QAAQ,EAAE,uDAAuD;AAC7E,YAAY,SAAS,EAAE,wDAAwD;AAC/E,YAAY,QAAQ,EAAE,uDAAuD;AAC7E,YAAY,QAAQ,EAAE,uDAAuD;AAC7E,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,OAAO;AACzD,IAAI;AACJ,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,MAAM,EAAE,SAAS;AAC7B,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,SAAS,EAAE,SAAS;AAChC,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,SAAS;AAC3D,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,QAAQ,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,oCAAoC,EAAE;AACnG,gBAAgB,UAAU,EAAE,QAAQ,CAAC,EAAE;AACvC,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC,gBAAgB,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAC9E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,QAAQ,EAAE;AACtC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;AAC1H,QAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE;AAC3L,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,wBAAwB;AACrD,aAAa;AACb,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,4+ZAA4+Z,EAAE,MAAM,EAAE,CAAC,iJAAiJ,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,qfAAqf,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACpuhB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/E,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,mBAAmB;AAC3C,wBAAwB,iBAAiB;AACzC,wBAAwB,aAAa;AACrC,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC,wBAAwB,eAAe;AACvC,wBAAwB,gBAAgB;AACxC,wBAAwB,mBAAmB;AAC3C,wBAAwB,sBAAsB;AAC9C,wBAAwB,4BAA4B;AACpD,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,wBAAwB;AACjE,yBAAyB;AACzB,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,4+ZAA4+Z,EAAE,MAAM,EAAE,CAAC,iJAAiJ,CAAC,EAAE;AAC7ta,SAAS,CAAC,EAAE,CAAC;;;;"}