@hmcts/ccd-case-ui-toolkit 6.19.6 → 6.19.7

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 (294) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +7512 -3030
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +1 -1
  6. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +1 -1
  7. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +1 -1
  8. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +2 -2
  9. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +17 -21
  10. package/esm2015/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.js +2 -3
  11. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +2 -2
  12. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +2 -2
  13. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +19 -0
  14. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +6 -1
  15. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +5 -10
  16. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +53 -41
  17. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +5 -2
  18. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +1 -1
  19. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +59 -30
  20. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +244 -42
  21. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +144 -73
  22. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +181 -0
  23. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +4 -1
  24. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +38 -73
  25. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +6 -0
  26. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +133 -101
  27. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +15 -7
  28. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +207 -112
  29. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +292 -0
  30. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +308 -97
  31. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  32. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  33. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  34. package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.js +2 -1
  35. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +9 -0
  36. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +13 -0
  37. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +3 -2
  38. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +8 -3
  39. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +6 -0
  40. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +6 -0
  41. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +8 -2
  42. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +3 -2
  43. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +2 -1
  44. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +6 -0
  45. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +6 -0
  46. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +3 -1
  47. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +4 -2
  48. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +10 -7
  49. package/esm2015/lib/shared/components/palette/case-flag/index.js +2 -1
  50. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +41 -0
  51. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +5 -0
  52. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +41 -0
  53. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +109 -0
  54. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +77 -0
  55. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +149 -50
  56. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +345 -163
  57. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +31 -33
  58. package/esm2015/lib/shared/components/palette/index.js +3 -1
  59. package/esm2015/lib/shared/components/palette/markdown/index.js +2 -1
  60. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +42 -0
  61. package/esm2015/lib/shared/components/palette/palette.module.js +147 -50
  62. package/esm2015/lib/shared/components/palette/palette.service.js +4 -2
  63. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +1 -1
  64. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +210 -0
  65. package/esm2015/lib/shared/components/palette/query-management/components/index.js +13 -0
  66. package/esm2015/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.js +45 -0
  67. package/esm2015/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.js +111 -0
  68. package/esm2015/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.js +69 -0
  69. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +64 -0
  70. package/esm2015/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.js +316 -0
  71. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +344 -0
  72. package/esm2015/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.js +25 -0
  73. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +181 -0
  74. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +78 -0
  75. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.js +125 -0
  76. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +239 -0
  77. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +120 -0
  78. package/esm2015/lib/shared/components/palette/query-management/enums/index.js +6 -0
  79. package/esm2015/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.js +5 -0
  80. package/esm2015/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.js +6 -0
  81. package/esm2015/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.js +10 -0
  82. package/esm2015/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.js +6 -0
  83. package/esm2015/lib/shared/components/palette/query-management/index.js +7 -0
  84. package/esm2015/lib/shared/components/palette/query-management/models/case-queries-collection.model.js +2 -0
  85. package/esm2015/lib/shared/components/palette/query-management/models/index.js +8 -0
  86. package/esm2015/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.js +2 -0
  87. package/esm2015/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.js +2 -0
  88. package/esm2015/lib/shared/components/palette/query-management/models/query-create-context.enum.js +9 -0
  89. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +2 -0
  90. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +18 -0
  91. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +41 -0
  92. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +136 -0
  93. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +22 -0
  94. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +7 -5
  95. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +5 -4
  96. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +17 -2
  97. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +6 -0
  98. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +1 -2
  99. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +3 -1
  100. package/esm2015/lib/shared/fixture/shared.test.fixture.js +2 -1
  101. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +16 -0
  102. package/esm2015/lib/shared/pipes/generic/index.js +2 -0
  103. package/esm2015/lib/shared/pipes/index.js +3 -2
  104. package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
  105. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +9 -3
  106. package/esm2015/lib/shared/services/fields/fields.utils.js +4 -2
  107. package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +2 -1
  108. package/esm2015/lib/shared/services/request/request.options.builder.js +7 -1
  109. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +6142 -2156
  110. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  111. package/lib/shared/components/case-editor/case-editor.module.d.ts +17 -20
  112. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  113. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  114. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  115. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  116. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  117. package/lib/shared/components/case-editor/services/cases.service.d.ts +1 -0
  118. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  119. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  120. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +3 -1
  121. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  122. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -4
  123. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  124. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  125. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +3 -3
  126. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  127. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -5
  128. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  129. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  130. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  131. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  132. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  133. package/lib/shared/components/palette/case-flag/components/index.d.ts +3 -0
  134. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  135. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  136. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  137. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  138. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  139. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  140. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  141. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  142. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  143. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +15 -9
  144. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  145. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  146. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  147. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +19 -9
  148. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  149. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  150. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  151. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +8 -0
  152. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  153. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  154. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  155. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +2 -1
  156. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -1
  157. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +8 -0
  158. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  159. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +12 -0
  160. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  161. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  162. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  163. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +8 -3
  164. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  165. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  166. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  167. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  168. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  169. package/lib/shared/components/palette/case-flag/enums/index.d.ts +7 -1
  170. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  171. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  172. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  173. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +1 -0
  174. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  175. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  176. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  177. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  178. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  179. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +3 -1
  180. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  181. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +4 -2
  182. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  183. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -4
  184. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  185. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  186. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  187. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  188. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  189. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  190. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  191. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  192. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  193. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  194. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  195. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  196. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  197. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +12 -8
  198. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  199. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +49 -26
  200. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  201. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  202. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  203. package/lib/shared/components/palette/index.d.ts +2 -0
  204. package/lib/shared/components/palette/index.d.ts.map +1 -1
  205. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  206. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  207. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  208. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  209. package/lib/shared/components/palette/palette.module.d.ts +140 -118
  210. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  211. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  212. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +11 -0
  213. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  214. package/lib/shared/components/palette/query-management/components/index.d.ts +13 -0
  215. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  216. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +8 -0
  217. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -0
  218. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +14 -0
  219. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -0
  220. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +11 -0
  221. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts.map +1 -0
  222. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  223. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  224. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +30 -0
  225. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -0
  226. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +16 -0
  227. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  228. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +9 -0
  229. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts.map +1 -0
  230. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  231. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  232. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +20 -0
  233. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  234. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +20 -0
  235. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts.map +1 -0
  236. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +11 -0
  237. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  238. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +21 -0
  239. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -0
  240. package/lib/shared/components/palette/query-management/enums/index.d.ts +6 -0
  241. package/lib/shared/components/palette/query-management/enums/index.d.ts.map +1 -0
  242. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts +4 -0
  243. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts.map +1 -0
  244. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts +5 -0
  245. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts.map +1 -0
  246. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts +9 -0
  247. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts.map +1 -0
  248. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts +5 -0
  249. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts.map +1 -0
  250. package/lib/shared/components/palette/query-management/index.d.ts +7 -0
  251. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  252. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +27 -0
  253. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -0
  254. package/lib/shared/components/palette/query-management/models/index.d.ts +8 -0
  255. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  256. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +5 -0
  257. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -0
  258. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts +6 -0
  259. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts.map +1 -0
  260. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts +8 -0
  261. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts.map +1 -0
  262. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  263. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  264. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  265. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  266. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +22 -0
  267. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  268. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +18 -0
  269. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  270. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +12 -0
  271. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  272. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  273. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  274. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  275. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  276. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  277. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  278. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  279. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  280. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  281. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  282. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  283. package/lib/shared/pipes/generic/index.d.ts +2 -0
  284. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  285. package/lib/shared/pipes/index.d.ts +2 -1
  286. package/lib/shared/pipes/index.d.ts.map +1 -1
  287. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  288. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  289. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  290. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  291. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  292. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  293. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  294. package/package.json +1 -1
@@ -1,192 +1,403 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
- import { CaseFlagFieldState, CaseFlagStatus, CaseFlagWizardStepTitle, UpdateFlagErrorMessage, UpdateFlagStep } from '../../enums';
3
+ import { RpxTranslationService } from 'rpx-xui-translation';
4
+ import { CaseFlagDisplayContextParameter, CaseFlagFieldState, CaseFlagFormFields, CaseFlagStatus, CaseFlagWizardStepTitle, UpdateFlagErrorMessage, UpdateFlagStep } from '../../enums';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "@angular/common";
7
- function UpdateFlagComponent_div_8_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "div", 16);
9
- i0.ɵɵelementStart(1, "span", 17);
10
- i0.ɵɵtext(2, "Error:");
11
- i0.ɵɵelementEnd();
12
- i0.ɵɵtext(3);
6
+ import * as i1 from "rpx-xui-translation";
7
+ function UpdateFlagComponent_div_7_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelementStart(0, "div", 8);
9
+ i0.ɵɵtext(1);
10
+ i0.ɵɵpipe(2, "updateFlagTitleDisplay");
13
11
  i0.ɵɵelementEnd();
14
12
  } if (rf & 2) {
15
13
  const ctx_r0 = i0.ɵɵnextContext();
16
- i0.ɵɵadvance(3);
17
- i0.ɵɵtextInterpolate1(" ", ctx_r0.updateFlagNotEnteredErrorMessage, " ");
14
+ i0.ɵɵadvance(1);
15
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r0.selectedFlag == null ? null : ctx_r0.selectedFlag.flagDetailDisplay == null ? null : ctx_r0.selectedFlag.flagDetailDisplay.flagDetail), " ");
18
16
  } }
19
- function UpdateFlagComponent_div_9_Template(rf, ctx) { if (rf & 1) {
17
+ function UpdateFlagComponent_div_16_Template(rf, ctx) { if (rf & 1) {
20
18
  i0.ɵɵelementStart(0, "div", 18);
21
- i0.ɵɵelementStart(1, "span", 17);
22
- i0.ɵɵtext(2, "Error:");
19
+ i0.ɵɵelementStart(1, "span", 19);
20
+ i0.ɵɵtext(2, "!");
21
+ i0.ɵɵelementEnd();
22
+ i0.ɵɵelementStart(3, "strong", 20);
23
+ i0.ɵɵelementStart(4, "span", 21);
24
+ i0.ɵɵtext(5);
25
+ i0.ɵɵpipe(6, "rpxTranslate");
26
+ i0.ɵɵelementEnd();
27
+ i0.ɵɵtext(7);
28
+ i0.ɵɵpipe(8, "rpxTranslate");
23
29
  i0.ɵɵelementEnd();
24
- i0.ɵɵtext(3);
25
30
  i0.ɵɵelementEnd();
26
31
  } if (rf & 2) {
27
32
  const ctx_r1 = i0.ɵɵnextContext();
33
+ i0.ɵɵadvance(5);
34
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 2, "Warning"));
35
+ i0.ɵɵadvance(2);
36
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 4, ctx_r1.updateFlagStepEnum.WARNING_TEXT), " ");
37
+ } }
38
+ function UpdateFlagComponent_div_17_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "div", 22);
40
+ i0.ɵɵelementStart(1, "span", 23);
41
+ i0.ɵɵtext(2);
42
+ i0.ɵɵpipe(3, "rpxTranslate");
43
+ i0.ɵɵelementEnd();
44
+ i0.ɵɵtext(4);
45
+ i0.ɵɵpipe(5, "rpxTranslate");
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const ctx_r2 = i0.ɵɵnextContext();
49
+ i0.ɵɵadvance(2);
50
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
51
+ i0.ɵɵadvance(2);
52
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r2.updateFlagNotEnteredErrorMessage), " ");
53
+ } }
54
+ function UpdateFlagComponent_div_18_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelementStart(0, "div", 24);
56
+ i0.ɵɵelementStart(1, "span", 23);
57
+ i0.ɵɵtext(2);
58
+ i0.ɵɵpipe(3, "rpxTranslate");
59
+ i0.ɵɵelementEnd();
60
+ i0.ɵɵtext(4);
61
+ i0.ɵɵpipe(5, "rpxTranslate");
62
+ i0.ɵɵelementEnd();
63
+ } if (rf & 2) {
64
+ const ctx_r3 = i0.ɵɵnextContext();
65
+ i0.ɵɵadvance(2);
66
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
67
+ i0.ɵɵadvance(2);
68
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r3.updateFlagCharLimitErrorMessage), " ");
69
+ } }
70
+ function UpdateFlagComponent_div_24_div_8_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "div", 36);
72
+ i0.ɵɵelement(1, "input", 37);
73
+ i0.ɵɵelementStart(2, "label", 38);
74
+ i0.ɵɵtext(3);
75
+ i0.ɵɵpipe(4, "rpxTranslate");
76
+ i0.ɵɵelementEnd();
77
+ i0.ɵɵelementEnd();
78
+ } if (rf & 2) {
79
+ const status_r9 = ctx.$implicit;
80
+ const ctx_r6 = i0.ɵɵnextContext(2);
81
+ i0.ɵɵadvance(1);
82
+ i0.ɵɵproperty("id", ctx_r6.caseFlagFormFields.STATUS + "_" + status_r9)("name", ctx_r6.caseFlagFormFields.STATUS)("formControlName", ctx_r6.caseFlagFormFields.STATUS)("value", status_r9);
83
+ i0.ɵɵadvance(1);
84
+ i0.ɵɵproperty("for", ctx_r6.caseFlagFormFields.STATUS + "_" + status_r9);
85
+ i0.ɵɵadvance(1);
86
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 6, ctx_r6.caseFlagStatusEnum[status_r9]), " ");
87
+ } }
88
+ function UpdateFlagComponent_div_24_div_12_Template(rf, ctx) { if (rf & 1) {
89
+ i0.ɵɵelementStart(0, "div", 39);
90
+ i0.ɵɵelementStart(1, "span", 23);
91
+ i0.ɵɵtext(2);
92
+ i0.ɵɵpipe(3, "rpxTranslate");
93
+ i0.ɵɵelementEnd();
94
+ i0.ɵɵtext(4);
95
+ i0.ɵɵpipe(5, "rpxTranslate");
96
+ i0.ɵɵelementEnd();
97
+ } if (rf & 2) {
98
+ const ctx_r7 = i0.ɵɵnextContext(2);
99
+ i0.ɵɵadvance(2);
100
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
101
+ i0.ɵɵadvance(2);
102
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r7.statusReasonNotEnteredErrorMessage), " ");
103
+ } }
104
+ function UpdateFlagComponent_div_24_div_13_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelementStart(0, "div", 40);
106
+ i0.ɵɵelementStart(1, "span", 23);
107
+ i0.ɵɵtext(2);
108
+ i0.ɵɵpipe(3, "rpxTranslate");
109
+ i0.ɵɵelementEnd();
110
+ i0.ɵɵtext(4);
111
+ i0.ɵɵpipe(5, "rpxTranslate");
112
+ i0.ɵɵelementEnd();
113
+ } if (rf & 2) {
114
+ const ctx_r8 = i0.ɵɵnextContext(2);
115
+ i0.ɵɵadvance(2);
116
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
117
+ i0.ɵɵadvance(2);
118
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r8.statusReasonCharLimitErrorMessage), " ");
119
+ } }
120
+ function UpdateFlagComponent_div_24_Template(rf, ctx) { if (rf & 1) {
121
+ i0.ɵɵelementStart(0, "div", 25);
122
+ i0.ɵɵelementStart(1, "fieldset", 26);
123
+ i0.ɵɵelementStart(2, "legend", 27);
124
+ i0.ɵɵelementStart(3, "h1", 28);
125
+ i0.ɵɵtext(4);
126
+ i0.ɵɵpipe(5, "rpxTranslate");
127
+ i0.ɵɵpipe(6, "rpxTranslate");
128
+ i0.ɵɵelementEnd();
129
+ i0.ɵɵelementEnd();
130
+ i0.ɵɵelementStart(7, "div", 29);
131
+ i0.ɵɵtemplate(8, UpdateFlagComponent_div_24_div_8_Template, 5, 8, "div", 30);
132
+ i0.ɵɵelementEnd();
133
+ i0.ɵɵelementEnd();
134
+ i0.ɵɵelementStart(9, "div", 31);
135
+ i0.ɵɵtext(10);
136
+ i0.ɵɵpipe(11, "rpxTranslate");
137
+ i0.ɵɵelementEnd();
138
+ i0.ɵɵtemplate(12, UpdateFlagComponent_div_24_div_12_Template, 6, 6, "div", 32);
139
+ i0.ɵɵtemplate(13, UpdateFlagComponent_div_24_div_13_Template, 6, 6, "div", 33);
140
+ i0.ɵɵelementStart(14, "textarea", 34);
141
+ i0.ɵɵtext(15, " ");
142
+ i0.ɵɵelementEnd();
143
+ i0.ɵɵelementStart(16, "div", 35);
144
+ i0.ɵɵtext(17);
145
+ i0.ɵɵpipe(18, "rpxTranslate");
146
+ i0.ɵɵelementEnd();
147
+ i0.ɵɵelementEnd();
148
+ } if (rf & 2) {
149
+ const ctx_r4 = i0.ɵɵnextContext();
150
+ i0.ɵɵadvance(4);
151
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(5, 11, ctx_r4.updateFlagTitle), " ", i0.ɵɵpipeBind1(6, 13, "status"), " ");
28
152
  i0.ɵɵadvance(3);
29
- i0.ɵɵtextInterpolate1(" ", ctx_r1.updateFlagCharLimitErrorMessage, " ");
153
+ i0.ɵɵproperty("id", ctx_r4.caseFlagFormFields.STATUS);
154
+ i0.ɵɵadvance(1);
155
+ i0.ɵɵproperty("ngForOf", ctx_r4.validStatusProgressions);
156
+ i0.ɵɵadvance(2);
157
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 15, ctx_r4.updateFlagStepEnum.STATUS_HINT_TEXT), " ");
158
+ i0.ɵɵadvance(2);
159
+ i0.ɵɵproperty("ngIf", ctx_r4.statusReasonNotEnteredErrorMessage);
160
+ i0.ɵɵadvance(1);
161
+ i0.ɵɵproperty("ngIf", ctx_r4.statusReasonCharLimitErrorMessage);
162
+ i0.ɵɵadvance(1);
163
+ i0.ɵɵproperty("id", ctx_r4.caseFlagFormFields.STATUS_CHANGE_REASON)("name", ctx_r4.caseFlagFormFields.STATUS_CHANGE_REASON)("formControlName", ctx_r4.caseFlagFormFields.STATUS_CHANGE_REASON);
164
+ i0.ɵɵadvance(3);
165
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 17, ctx_r4.updateFlagStepEnum.CHARACTER_LIMIT_INFO), " ");
30
166
  } }
31
- function UpdateFlagComponent_button_22_Template(rf, ctx) { if (rf & 1) {
32
- const _r4 = i0.ɵɵgetCurrentView();
33
- i0.ɵɵelementStart(0, "button", 19);
34
- i0.ɵɵlistener("click", function UpdateFlagComponent_button_22_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.onChangeStatus(); });
35
- i0.ɵɵtext(1, " Make inactive ");
167
+ function UpdateFlagComponent_div_25_Template(rf, ctx) { if (rf & 1) {
168
+ i0.ɵɵelementStart(0, "div", 41);
169
+ i0.ɵɵelementStart(1, "div", 42);
170
+ i0.ɵɵelementStart(2, "div", 43);
171
+ i0.ɵɵelement(3, "input", 44);
172
+ i0.ɵɵelementStart(4, "label", 45);
173
+ i0.ɵɵtext(5);
174
+ i0.ɵɵpipe(6, "rpxTranslate");
175
+ i0.ɵɵelementEnd();
36
176
  i0.ɵɵelementEnd();
177
+ i0.ɵɵelementEnd();
178
+ i0.ɵɵelementEnd();
179
+ } if (rf & 2) {
180
+ const ctx_r5 = i0.ɵɵnextContext();
181
+ i0.ɵɵadvance(3);
182
+ i0.ɵɵproperty("formControlName", ctx_r5.caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)("id", ctx_r5.caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)("name", ctx_r5.caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED);
183
+ i0.ɵɵadvance(1);
184
+ i0.ɵɵproperty("for", ctx_r5.caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED);
185
+ i0.ɵɵadvance(1);
186
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 5, "I need to add a translation"), " ");
37
187
  } }
38
188
  const _c0 = function (a0) { return { "form-group-error": a0 }; };
39
- const _c1 = function (a0) { return { "govuk-tag--grey": a0 }; };
40
189
  export class UpdateFlagComponent {
41
- constructor() {
190
+ constructor(rpxTranslationService) {
191
+ this.rpxTranslationService = rpxTranslationService;
42
192
  this.caseFlagStateEmitter = new EventEmitter();
43
193
  this.updateFlagTitle = '';
44
194
  this.errorMessages = [];
45
195
  this.updateFlagNotEnteredErrorMessage = null;
46
196
  this.updateFlagCharLimitErrorMessage = null;
47
- this.updateFlagControlName = 'flagComments';
48
- this.commentsMaxCharLimit = 200;
197
+ this.statusReasonNotEnteredErrorMessage = null;
198
+ this.statusReasonCharLimitErrorMessage = null;
199
+ this.updateFlagStepEnum = UpdateFlagStep;
200
+ this.caseFlagStatusEnum = CaseFlagStatus;
201
+ this.caseFlagFormFields = CaseFlagFormFields;
202
+ this.textMaxCharLimit = 200;
203
+ this.selectedManageCaseLocation = 'selectedManageCaseLocation';
204
+ this.caseFlagDisplayContextParameter = CaseFlagDisplayContextParameter;
49
205
  }
50
206
  ngOnInit() {
51
- this.updateFlagHint = UpdateFlagStep.HINT_TEXT;
52
- this.updateFlagCharLimitInfo = UpdateFlagStep.CHARACTER_LIMIT_INFO;
53
- this.formGroup.addControl(this.updateFlagControlName, new FormControl(''));
54
- if (this.selectedFlag && this.selectedFlag.flagDetailDisplay && this.selectedFlag.flagDetailDisplay.flagDetail) {
55
- const flagDetail = this.selectedFlag.flagDetailDisplay.flagDetail;
56
- // Populate flag comments text area with existing comments
57
- this.formGroup.get(this.updateFlagControlName).setValue(flagDetail.flagComment);
58
- if (flagDetail.name) {
59
- this.updateFlagTitle =
60
- `${CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE} "${flagDetail.name}${flagDetail.subTypeValue
61
- ? `, ${flagDetail.subTypeValue}"`
62
- : '"'}`;
207
+ var _a, _b;
208
+ this.selectedFlag = this.formGroup.get(this.selectedManageCaseLocation).value;
209
+ if ((_b = (_a = this.selectedFlag) === null || _a === void 0 ? void 0 : _a.flagDetailDisplay) === null || _b === void 0 ? void 0 : _b.flagDetail) {
210
+ this.flagDetail = this.selectedFlag.flagDetailDisplay.flagDetail;
211
+ const currentFlagStatusKey = Object.keys(CaseFlagStatus).find(key => CaseFlagStatus[key] === this.flagDetail.status);
212
+ // Populate flag comments text area with existing comments; use the comments appropriate for the selected language,
213
+ // falling back on their alternate counterpart if none are available. Comments are to be populated one time only -
214
+ // when the user first visits the page - even if they switch language subsequently
215
+ let existingComments;
216
+ if (this.rpxTranslationService.language === 'cy') {
217
+ existingComments = this.flagDetail.flagComment_cy || this.flagDetail.flagComment;
63
218
  }
219
+ else {
220
+ existingComments = this.flagDetail.flagComment || this.flagDetail.flagComment_cy;
221
+ }
222
+ this.formGroup.addControl(CaseFlagFormFields.COMMENTS, new FormControl(existingComments));
223
+ this.formGroup.addControl(CaseFlagFormFields.STATUS, new FormControl(currentFlagStatusKey));
224
+ this.formGroup.addControl(CaseFlagFormFields.STATUS_CHANGE_REASON, new FormControl(''));
225
+ this.formGroup.addControl(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED, new FormControl(false));
226
+ this.updateFlagTitle = this.setUpdateCaseFlagTitle(this.flagDetail);
227
+ // Set the valid status options for display, based on current status of the selected flag. "Active" flags can
228
+ // remain "Active" or move to "Inactive" only; "Requested" flags can remain "Requested" or move to "Active",
229
+ // "Inactive", or "Not approved". No other status progressions are valid
230
+ if (currentFlagStatusKey) {
231
+ switch (currentFlagStatusKey) {
232
+ case 'ACTIVE':
233
+ this.validStatusProgressions = Object.keys(CaseFlagStatus).filter(key => !['REQUESTED', 'NOT_APPROVED'].includes(key));
234
+ break;
235
+ case 'REQUESTED':
236
+ this.validStatusProgressions = Object.keys(CaseFlagStatus);
237
+ break;
238
+ default:
239
+ this.validStatusProgressions = [];
240
+ }
241
+ }
242
+ }
243
+ }
244
+ setUpdateCaseFlagTitle(flagDetail) {
245
+ switch (this.displayContextParameter) {
246
+ case CaseFlagDisplayContextParameter.UPDATE:
247
+ if (flagDetail === null || flagDetail === void 0 ? void 0 : flagDetail.name) {
248
+ return `${CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE} "${flagDetail.name}${flagDetail.subTypeValue ? `, ${flagDetail.subTypeValue}"` : '"'}`;
249
+ }
250
+ return `${CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE}`;
251
+ case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:
252
+ return CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE_SUPPORT;
253
+ default:
254
+ return CaseFlagWizardStepTitle.NONE;
64
255
  }
65
256
  }
66
257
  onNext() {
67
- // Validate flag comments entry
258
+ // Validate flag comments and status reason entry
68
259
  this.validateTextEntry();
69
- // If validation has passed, update the flag details with the comments entered
70
- if (this.errorMessages.length === 0) {
71
- this.selectedFlag.flagDetailDisplay.flagDetail = Object.assign(Object.assign({}, this.selectedFlag.flagDetailDisplay.flagDetail), { flagComment: this.formGroup.get(this.updateFlagControlName).value });
72
- }
73
260
  // Return case flag field state, error messages, and selected flag detail to the parent. The selected flag must be
74
261
  // re-emitted because the parent component repopulates this on handling this EventEmitter
75
262
  this.caseFlagStateEmitter.emit({
76
263
  currentCaseFlagFieldState: CaseFlagFieldState.FLAG_UPDATE,
77
264
  errorMessages: this.errorMessages,
78
- selectedFlag: this.selectedFlag
265
+ selectedFlag: this.selectedFlag,
79
266
  });
80
- }
81
- onChangeStatus() {
82
- this.selectedFlag.flagDetailDisplay.flagDetail = Object.assign(Object.assign({}, this.selectedFlag.flagDetailDisplay.flagDetail), { status: this.selectedFlag.flagDetailDisplay.flagDetail.status === CaseFlagStatus.ACTIVE
83
- ? CaseFlagStatus.INACTIVE
84
- : this.selectedFlag.flagDetailDisplay.flagDetail.status });
267
+ window.scrollTo(0, 0);
85
268
  }
86
269
  validateTextEntry() {
87
270
  this.updateFlagNotEnteredErrorMessage = null;
88
271
  this.updateFlagCharLimitErrorMessage = null;
272
+ this.statusReasonNotEnteredErrorMessage = null;
273
+ this.statusReasonCharLimitErrorMessage = null;
89
274
  this.errorMessages = [];
90
- const comment = this.formGroup.get(this.updateFlagControlName).value;
91
- if (!comment) {
275
+ // Validation should fail if the flag has an existing comment and it has been deleted on screen; conversely, if there
276
+ // is no existing comment then one is not required for validation to pass
277
+ const comment = this.formGroup.get(CaseFlagFormFields.COMMENTS).value;
278
+ if (!comment && (this.flagDetail.flagComment || this.flagDetail.flagComment_cy)) {
92
279
  this.updateFlagNotEnteredErrorMessage = UpdateFlagErrorMessage.FLAG_COMMENTS_NOT_ENTERED;
93
280
  this.errorMessages.push({
94
281
  title: '',
95
282
  description: UpdateFlagErrorMessage.FLAG_COMMENTS_NOT_ENTERED,
96
- fieldId: this.updateFlagControlName
283
+ fieldId: CaseFlagFormFields.COMMENTS
97
284
  });
98
285
  }
99
- if (comment && comment.length > this.commentsMaxCharLimit) {
286
+ if (comment && comment.length > this.textMaxCharLimit) {
100
287
  this.updateFlagCharLimitErrorMessage = UpdateFlagErrorMessage.FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED;
101
288
  this.errorMessages.push({
102
289
  title: '',
103
290
  description: UpdateFlagErrorMessage.FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED,
104
- fieldId: this.updateFlagControlName
291
+ fieldId: CaseFlagFormFields.COMMENTS
292
+ });
293
+ }
294
+ const statusReason = this.formGroup.get(CaseFlagFormFields.STATUS_CHANGE_REASON).value;
295
+ const flagStatusNotApprovedKey = Object.keys(CaseFlagStatus).find(key => CaseFlagStatus[key] === CaseFlagStatus.NOT_APPROVED);
296
+ if (this.formGroup.get(CaseFlagFormFields.STATUS).value === flagStatusNotApprovedKey && !statusReason) {
297
+ this.statusReasonNotEnteredErrorMessage = UpdateFlagErrorMessage.STATUS_REASON_NOT_ENTERED;
298
+ this.errorMessages.push({
299
+ title: '',
300
+ description: UpdateFlagErrorMessage.STATUS_REASON_NOT_ENTERED,
301
+ fieldId: CaseFlagFormFields.STATUS_CHANGE_REASON
302
+ });
303
+ }
304
+ if (statusReason && statusReason.length > this.textMaxCharLimit) {
305
+ this.statusReasonCharLimitErrorMessage = UpdateFlagErrorMessage.STATUS_REASON_CHAR_LIMIT_EXCEEDED;
306
+ this.errorMessages.push({
307
+ title: '',
308
+ description: UpdateFlagErrorMessage.STATUS_REASON_CHAR_LIMIT_EXCEEDED,
309
+ fieldId: CaseFlagFormFields.STATUS_CHANGE_REASON
105
310
  });
106
311
  }
107
312
  }
108
313
  }
109
- UpdateFlagComponent.ɵfac = function UpdateFlagComponent_Factory(t) { return new (t || UpdateFlagComponent)(); };
110
- UpdateFlagComponent.ɵcmp = i0.ɵɵdefineComponent({ type: UpdateFlagComponent, selectors: [["ccd-update-flag"]], inputs: { formGroup: "formGroup", selectedFlag: "selectedFlag" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 26, vars: 18, consts: [[1, "form-group", 3, "formGroup"], ["data-module", "govuk-character-count", "data-maxlength", "200", 1, "govuk-character-count"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], [1, "govuk-label", "govuk-label--l", 3, "for"], ["id", "update-flag-hint", 1, "govuk-hint"], ["id", "update-flag-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "update-flag-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", "aria-describedby", "update-flag-hint update-flag-char-limit-info update-flag-char-limit-error", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "update-flag-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], [1, "govuk-grid-row"], [1, "govuk-grid-column-one-half"], [1, "govuk-tag", 3, "ngClass"], ["class", "button button-secondary", "type", "button", 3, "click", 4, "ngIf"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"], ["id", "update-flag-not-entered-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "update-flag-char-limit-error", 1, "govuk-error-message"], ["type", "button", 1, "button", "button-secondary", 3, "click"]], template: function UpdateFlagComponent_Template(rf, ctx) { if (rf & 1) {
111
- i0.ɵɵelementStart(0, "div", 0);
314
+ UpdateFlagComponent.ɵfac = function UpdateFlagComponent_Factory(t) { return new (t || UpdateFlagComponent)(i0.ɵɵdirectiveInject(i1.RpxTranslationService)); };
315
+ UpdateFlagComponent.ɵcmp = i0.ɵɵdefineComponent({ type: UpdateFlagComponent, selectors: [["ccd-update-flag"]], inputs: { formGroup: "formGroup", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 30, vars: 32, consts: [[3, "formGroup"], ["data-module", "govuk-character-count", "data-maxlength", "200", 1, "govuk-character-count"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper", "govuk-!-margin-bottom-4"], [1, "govuk-label", "govuk-label--m"], ["id", "update-flag-hint", "class", "govuk-hint", 4, "ngIf"], [1, "govuk-!-margin-bottom-4"], [1, "govuk-label", "govuk-label--s", 3, "for"], ["id", "update-flag-hint", 1, "govuk-hint"], ["class", "govuk-warning-text", 4, "ngIf"], ["id", "update-flag-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "update-flag-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", "aria-describedby", "update-flag-hint update-flag-char-limit-info update-flag-char-limit-error", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "update-flag-comments-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], ["id", "flag-status-container", "class", "govuk-!-margin-bottom-4", 4, "ngIf"], ["class", "govuk-!-margin-bottom-6", 4, "ngIf"], [1, "govuk-button-group"], ["id", "updateFlagNextButton", "type", "button", 1, "govuk-button", 3, "click"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["id", "update-flag-not-entered-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "update-flag-char-limit-error", 1, "govuk-error-message"], ["id", "flag-status-container", 1, "govuk-!-margin-bottom-4"], ["aria-describedby", "update-flag-status-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--s"], ["id", "update-flag-status-heading", 1, "govuk-fieldset__heading"], ["data-module", "govuk-radios", 1, "govuk-radios", "govuk-radios--conditional", "govuk-!-margin-bottom-4", 3, "id"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["id", "update-flag-status-hint", 1, "govuk-hint"], ["id", "update-flag-status-reason-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "update-flag-status-reason-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "update-flag-status-reason-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "formControlName", "value"], [1, "govuk-label", "govuk-radios__label", 3, "for"], ["id", "update-flag-status-reason-not-entered-error-message", 1, "govuk-error-message"], ["id", "update-flag-status-reason-char-limit-error", 1, "govuk-error-message"], [1, "govuk-!-margin-bottom-6"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes"], [1, "govuk-checkboxes__item"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "formControlName", "id", "name"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"]], template: function UpdateFlagComponent_Template(rf, ctx) { if (rf & 1) {
316
+ i0.ɵɵelementContainerStart(0, 0);
112
317
  i0.ɵɵelementStart(1, "div", 1);
113
318
  i0.ɵɵelementStart(2, "div", 2);
114
319
  i0.ɵɵelementStart(3, "h1", 3);
115
320
  i0.ɵɵelementStart(4, "label", 4);
116
321
  i0.ɵɵtext(5);
322
+ i0.ɵɵpipe(6, "rpxTranslate");
117
323
  i0.ɵɵelementEnd();
118
324
  i0.ɵɵelementEnd();
119
- i0.ɵɵelementStart(6, "div", 5);
120
- i0.ɵɵtext(7);
121
- i0.ɵɵelementEnd();
122
- i0.ɵɵtemplate(8, UpdateFlagComponent_div_8_Template, 4, 1, "div", 6);
123
- i0.ɵɵtemplate(9, UpdateFlagComponent_div_9_Template, 4, 1, "div", 7);
124
- i0.ɵɵelementStart(10, "textarea", 8);
125
- i0.ɵɵtext(11, " ");
126
- i0.ɵɵelementEnd();
127
- i0.ɵɵelementStart(12, "div", 9);
128
- i0.ɵɵtext(13);
325
+ i0.ɵɵtemplate(7, UpdateFlagComponent_div_7_Template, 3, 3, "div", 5);
326
+ i0.ɵɵelementStart(8, "div", 6);
327
+ i0.ɵɵelementStart(9, "label", 7);
328
+ i0.ɵɵtext(10);
329
+ i0.ɵɵpipe(11, "rpxTranslate");
330
+ i0.ɵɵpipe(12, "rpxTranslate");
129
331
  i0.ɵɵelementEnd();
332
+ i0.ɵɵelementStart(13, "div", 8);
333
+ i0.ɵɵtext(14);
334
+ i0.ɵɵpipe(15, "rpxTranslate");
130
335
  i0.ɵɵelementEnd();
336
+ i0.ɵɵtemplate(16, UpdateFlagComponent_div_16_Template, 9, 6, "div", 9);
337
+ i0.ɵɵtemplate(17, UpdateFlagComponent_div_17_Template, 6, 6, "div", 10);
338
+ i0.ɵɵtemplate(18, UpdateFlagComponent_div_18_Template, 6, 6, "div", 11);
339
+ i0.ɵɵelementStart(19, "textarea", 12);
340
+ i0.ɵɵtext(20, " ");
131
341
  i0.ɵɵelementEnd();
132
- i0.ɵɵelementStart(14, "div", 10);
133
- i0.ɵɵelementStart(15, "div", 11);
134
- i0.ɵɵelementStart(16, "p");
135
- i0.ɵɵtext(17, "Flag status: ");
136
- i0.ɵɵelementStart(18, "span");
137
- i0.ɵɵelementStart(19, "strong", 12);
138
- i0.ɵɵtext(20);
342
+ i0.ɵɵelementStart(21, "div", 13);
343
+ i0.ɵɵtext(22);
344
+ i0.ɵɵpipe(23, "rpxTranslate");
139
345
  i0.ɵɵelementEnd();
140
346
  i0.ɵɵelementEnd();
347
+ i0.ɵɵtemplate(24, UpdateFlagComponent_div_24_Template, 19, 19, "div", 14);
348
+ i0.ɵɵtemplate(25, UpdateFlagComponent_div_25_Template, 7, 7, "div", 15);
141
349
  i0.ɵɵelementEnd();
142
350
  i0.ɵɵelementEnd();
143
- i0.ɵɵelementStart(21, "div", 11);
144
- i0.ɵɵtemplate(22, UpdateFlagComponent_button_22_Template, 2, 0, "button", 13);
145
- i0.ɵɵelementEnd();
146
- i0.ɵɵelementEnd();
147
- i0.ɵɵelementStart(23, "div", 14);
148
- i0.ɵɵelementStart(24, "button", 15);
149
- i0.ɵɵlistener("click", function UpdateFlagComponent_Template_button_click_24_listener() { return ctx.onNext(); });
150
- i0.ɵɵtext(25, "Next");
151
- i0.ɵɵelementEnd();
351
+ i0.ɵɵelementContainerEnd();
352
+ i0.ɵɵelementStart(26, "div", 16);
353
+ i0.ɵɵelementStart(27, "button", 17);
354
+ i0.ɵɵlistener("click", function UpdateFlagComponent_Template_button_click_27_listener() { return ctx.onNext(); });
355
+ i0.ɵɵtext(28);
356
+ i0.ɵɵpipe(29, "rpxTranslate");
152
357
  i0.ɵɵelementEnd();
153
358
  i0.ɵɵelementEnd();
154
359
  } if (rf & 2) {
155
360
  i0.ɵɵproperty("formGroup", ctx.formGroup);
156
361
  i0.ɵɵadvance(2);
157
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c0, ctx.errorMessages.length > 0));
362
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(30, _c0, ctx.errorMessages.length > 0));
363
+ i0.ɵɵadvance(3);
364
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 18, ctx.updateFlagTitle), " ");
365
+ i0.ɵɵadvance(2);
366
+ i0.ɵɵproperty("ngIf", ctx.displayContextParameter === ctx.caseFlagDisplayContextParameter.UPDATE_EXTERNAL);
158
367
  i0.ɵɵadvance(2);
159
- i0.ɵɵproperty("for", ctx.updateFlagControlName);
368
+ i0.ɵɵproperty("for", ctx.caseFlagFormFields.COMMENTS);
160
369
  i0.ɵɵadvance(1);
161
- i0.ɵɵtextInterpolate1(" ", ctx.updateFlagTitle, " ");
370
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(11, 20, ctx.updateFlagTitle), " ", i0.ɵɵpipeBind1(12, 22, "comments"), " ");
371
+ i0.ɵɵadvance(4);
372
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 24, ctx.updateFlagStepEnum.COMMENT_HINT_TEXT), " ");
162
373
  i0.ɵɵadvance(2);
163
- i0.ɵɵtextInterpolate1(" ", ctx.updateFlagHint, " ");
374
+ i0.ɵɵproperty("ngIf", ctx.displayContextParameter === ctx.caseFlagDisplayContextParameter.UPDATE);
164
375
  i0.ɵɵadvance(1);
165
376
  i0.ɵɵproperty("ngIf", ctx.updateFlagNotEnteredErrorMessage);
166
377
  i0.ɵɵadvance(1);
167
378
  i0.ɵɵproperty("ngIf", ctx.updateFlagCharLimitErrorMessage);
168
379
  i0.ɵɵadvance(1);
169
- i0.ɵɵproperty("id", ctx.updateFlagControlName)("name", ctx.updateFlagControlName)("formControlName", ctx.updateFlagControlName);
380
+ i0.ɵɵproperty("id", ctx.caseFlagFormFields.COMMENTS)("name", ctx.caseFlagFormFields.COMMENTS)("formControlName", ctx.caseFlagFormFields.COMMENTS);
170
381
  i0.ɵɵadvance(3);
171
- i0.ɵɵtextInterpolate1(" ", ctx.updateFlagCharLimitInfo, " ");
172
- i0.ɵɵadvance(6);
173
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c1, ctx.selectedFlag.flagDetailDisplay.flagDetail.status === "Inactive"));
174
- i0.ɵɵadvance(1);
175
- i0.ɵɵtextInterpolate1(" ", ctx.selectedFlag.flagDetailDisplay.flagDetail.status, " ");
382
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 26, ctx.updateFlagStepEnum.CHARACTER_LIMIT_INFO), " ");
176
383
  i0.ɵɵadvance(2);
177
- i0.ɵɵproperty("ngIf", ctx.selectedFlag.flagDetailDisplay.flagDetail.status === "Active");
178
- } }, directives: [i1.NgControlStatusGroup, i1.FormGroupDirective, i2.NgClass, i2.NgIf, i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlName], encapsulation: 2 });
384
+ i0.ɵɵproperty("ngIf", ctx.displayContextParameter === ctx.caseFlagDisplayContextParameter.UPDATE);
385
+ i0.ɵɵadvance(1);
386
+ i0.ɵɵproperty("ngIf", ctx.displayContextParameter === ctx.caseFlagDisplayContextParameter.UPDATE);
387
+ i0.ɵɵadvance(3);
388
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29, 28, "Next"), " ");
389
+ } }, encapsulation: 2 });
179
390
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UpdateFlagComponent, [{
180
391
  type: Component,
181
392
  args: [{
182
393
  selector: 'ccd-update-flag',
183
394
  templateUrl: './update-flag.component.html'
184
395
  }]
185
- }], null, { formGroup: [{
396
+ }], function () { return [{ type: i1.RpxTranslationService }]; }, { formGroup: [{
186
397
  type: Input
187
- }], selectedFlag: [{
398
+ }], displayContextParameter: [{
188
399
  type: Input
189
400
  }], caseFlagStateEmitter: [{
190
401
  type: Output
191
402
  }] }); })();
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztJQ001SCwrQkFDMkM7SUFDekMsZ0NBQW9DO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQU07OztJQUQ4QyxlQUNwRDtJQURvRCx3RUFDcEQ7OztJQUNBLCtCQUMwQztJQUN4QyxnQ0FBb0M7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBTTs7O0lBRDhDLGVBQ3BEO0lBRG9ELHVFQUNwRDs7OztJQXFCQSxrQ0FBdUo7SUFBakcsK0xBQTBCO0lBQzlFLCtCQUNGO0lBQUEsaUJBQVM7Ozs7QUQ5QmYsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztR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UUFDdEMsMEJBQUc7UUFBQSw4QkFDRDtRQUFBLDZCQUFNO1FBQ0osbUNBQTJIO1FBQ3pILGFBQ0Y7UUFBQSxpQkFBUztRQUNYLGlCQUFPO1FBQ1QsaUJBQUk7UUFDTixpQkFBTTtRQUNOLGdDQUF3QztRQUN0Qyw2RUFFUztRQUNYLGlCQUFNO1FBQ1IsaUJBQU07UUFDTixnQ0FBZ0M7UUFDOUIsbUNBQXVFO1FBQW5CLGlHQUFTLFlBQVEsSUFBQztRQUFDLHFCQUFJO1FBQUEsaUJBQVM7UUFDdEYsaUJBQU07UUFDUixpQkFBTTs7UUE5Q2tCLHlDQUF1QjtRQUViLGVBQTBEO1FBQTFELG1GQUEwRDtRQUNaLGVBQTZCO1FBQTdCLCtDQUE2QjtRQUNuRyxlQUNGO1FBREUsb0RBQ0Y7UUFHQSxlQUNGO1FBREUsbURBQ0Y7UUFFRyxlQUFzQztRQUF0QywyREFBc0M7UUFJdEMsZUFBcUM7UUFBckMsMERBQXFDO1FBR1AsZUFBNEI7UUFBNUIsOENBQTRCLG1DQUFBLDhDQUFBO1FBSzNELGVBQ0Y7UUFERSw0REFDRjtRQU84QixlQUFnRztRQUFoRywwSEFBZ0c7UUFDeEgsZUFDRjtRQURFLHFGQUNGO1FBSzhFLGVBQW1FO1FBQW5FLHdGQUFtRTs7dUZENUI5SSxtQkFBbUI7Y0FKL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7Z0JBR2lCLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxZQUFZO2tCQUEzQixLQUFLO1lBRVcsb0JBQW9CO2tCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlLCBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRmllbGRTdGF0ZSwgQ2FzZUZsYWdTdGF0dXMsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLCBVcGRhdGVGbGFnU3RlcCB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXVwZGF0ZS1mbGFnJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwZGF0ZS1mbGFnLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVcGRhdGVGbGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZEZsYWc6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGg7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjYXNlRmxhZ1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPigpO1xuXG4gIHB1YmxpYyB1cGRhdGVGbGFnVGl0bGUgPSAnJztcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyB1cGRhdGVGbGFnTm90RW50ZXJlZEVycm9yTWVzc2FnZTogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyB1cGRhdGVGbGFnQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHVwZGF0ZUZsYWdIaW50OiBVcGRhdGVGbGFnU3RlcDtcbiAgcHVibGljIHVwZGF0ZUZsYWdDaGFyTGltaXRJbmZvOiBVcGRhdGVGbGFnU3RlcDtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZUZsYWdDb250cm9sTmFtZSA9ICdmbGFnQ29tbWVudHMnO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRzTWF4Q2hhckxpbWl0ID0gMjAwO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZsYWdIaW50ID0gVXBkYXRlRmxhZ1N0ZXAuSElOVF9URVhUIDtcbiAgICB0aGlzLnVwZGF0ZUZsYWdDaGFyTGltaXRJbmZvID0gVXBkYXRlRmxhZ1N0ZXAuQ0hBUkFDVEVSX0xJTUlUX0lORk87XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnVwZGF0ZUZsYWdDb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWcgJiYgdGhpcy5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkgJiYgdGhpcy5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbCkge1xuICAgICAgY29uc3QgZmxhZ0RldGFpbCA9IHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWw7XG4gICAgICAvLyBQb3B1bGF0ZSBmbGFnIGNvbW1lbnRzIHRleHQgYXJlYSB3aXRoIGV4aXN0aW5nIGNvbW1lbnRzXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy51cGRhdGVGbGFnQ29udHJvbE5hbWUpLnNldFZhbHVlKGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQpO1xuICAgICAgaWYgKGZsYWdEZXRhaWwubmFtZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZsYWdUaXRsZSA9XG4gICAgICAgICAgYCR7Q2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuVVBEQVRFX0ZMQUdfVElUTEV9IFwiJHtmbGFnRGV0YWlsLm5hbWV9JHtmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZVxuICAgICAgICAgICAgPyBgLCAke2ZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlfVwiYFxuICAgICAgICAgICAgOiAnXCInfWA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSBmbGFnIGNvbW1lbnRzIGVudHJ5XG4gICAgdGhpcy52YWxpZGF0ZVRleHRFbnRyeSgpO1xuICAgIC8vIElmIHZhbGlkYXRpb24gaGFzIHBhc3NlZCwgdXBkYXRlIHRoZSBmbGFnIGRldGFpbHMgd2l0aCB0aGUgY29tbWVudHMgZW50ZXJlZFxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsID0ge1xuICAgICAgICAuLi50aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsLCBmbGFnQ29tbWVudDogdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMudXBkYXRlRmxhZ0NvbnRyb2xOYW1lKS52YWx1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgZXJyb3IgbWVzc2FnZXMsIGFuZCBzZWxlY3RlZCBmbGFnIGRldGFpbCB0byB0aGUgcGFyZW50LiBUaGUgc2VsZWN0ZWQgZmxhZyBtdXN0IGJlXG4gICAgLy8gcmUtZW1pdHRlZCBiZWNhdXNlIHRoZSBwYXJlbnQgY29tcG9uZW50IHJlcG9wdWxhdGVzIHRoaXMgb24gaGFuZGxpbmcgdGhpcyBFdmVudEVtaXR0ZXJcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgc2VsZWN0ZWRGbGFnOiB0aGlzLnNlbGVjdGVkRmxhZ1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlU3RhdHVzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwgPSB7XG4gICAgICAuLi50aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsLFxuICAgICAgc3RhdHVzOiB0aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsLnN0YXR1cyA9PT0gQ2FzZUZsYWdTdGF0dXMuQUNUSVZFXG4gICAgICAgID8gQ2FzZUZsYWdTdGF0dXMuSU5BQ1RJVkVcbiAgICAgICAgOiB0aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsLnN0YXR1c1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVGV4dEVudHJ5KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRmxhZ05vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMudXBkYXRlRmxhZ0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgY29uc3QgY29tbWVudCA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnVwZGF0ZUZsYWdDb250cm9sTmFtZSkudmFsdWU7XG4gICAgaWYgKCFjb21tZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZUZsYWdOb3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX05PVF9FTlRFUkVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfTk9UX0VOVEVSRUQsXG4gICAgICAgIGZpZWxkSWQ6IHRoaXMudXBkYXRlRmxhZ0NvbnRyb2xOYW1lXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNvbW1lbnQgJiYgY29tbWVudC5sZW5ndGggPiB0aGlzLmNvbW1lbnRzTWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLnVwZGF0ZUZsYWdDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IHRoaXMudXBkYXRlRmxhZ0NvbnRyb2xOYW1lXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hhcmFjdGVyLWNvdW50XCIgZGF0YS1tYXhsZW5ndGg9XCIyMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXJcIj48bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tbFwiIFtmb3JdPVwidXBkYXRlRmxhZ0NvbnRyb2xOYW1lXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnVGl0bGV9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9oMT5cbiAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICAgIHt7dXBkYXRlRmxhZ0hpbnR9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctbm90LWVudGVyZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICpuZ0lmPVwidXBkYXRlRmxhZ05vdEVudGVyZWRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7dXBkYXRlRmxhZ05vdEVudGVyZWRFcnJvck1lc3NhZ2V9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctY2hhci1saW1pdC1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICpuZ0lmPVwidXBkYXRlRmxhZ0NoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3t1cGRhdGVGbGFnQ2hhckxpbWl0RXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIiBbaWRdPVwidXBkYXRlRmxhZ0NvbnRyb2xOYW1lXCJcbiAgICAgICAgW25hbWVdPVwidXBkYXRlRmxhZ0NvbnRyb2xOYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJ1cGRhdGVGbGFnQ29udHJvbE5hbWVcIiByb3dzPVwiNVwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJ1cGRhdGUtZmxhZy1oaW50IHVwZGF0ZS1mbGFnLWNoYXItbGltaXQtaW5mbyB1cGRhdGUtZmxhZy1jaGFyLWxpbWl0LWVycm9yXCI+XG4gICAgICA8L3RleHRhcmVhPlxuICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNoYXItbGltaXQtaW5mb1wiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAge3t1cGRhdGVGbGFnQ2hhckxpbWl0SW5mb319XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1vbmUtaGFsZlwiPlxuICAgICAgPHA+RmxhZyBzdGF0dXM6XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay10YWdcIiBbbmdDbGFzc109XCJ7J2dvdnVrLXRhZy0tZ3JleSc6IHNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsLnN0YXR1cyA9PT0gJ0luYWN0aXZlJ31cIj5cbiAgICAgICAgICAgIHt7c2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwuc3RhdHVzfX1cbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1vbmUtaGFsZlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNoYW5nZVN0YXR1cygpXCIgKm5nSWY9XCJzZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbC5zdGF0dXMgPT09ICdBY3RpdmUnXCI+XG4gICAgICAgIE1ha2UgaW5hY3RpdmVcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+TmV4dDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
403
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzVELE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2YsTUFBTSxhQUFhLENBQUM7Ozs7SUNMZiw4QkFDc0Y7SUFDcEYsWUFDRjs7SUFBQSxpQkFBTTs7O0lBREosZUFDRjtJQURFLG1NQUNGOzs7SUFTRSwrQkFBMkc7SUFDekcsZ0NBQTBEO0lBQUEsaUJBQUM7SUFBQSxpQkFBTztJQUNsRSxrQ0FBeUM7SUFDdkMsZ0NBQTRDO0lBQUEsWUFBNEI7O0lBQUEsaUJBQU87SUFDL0UsWUFDRjs7SUFBQSxpQkFBUztJQUNYLGlCQUFNOzs7SUFIMEMsZUFBNEI7SUFB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LGlCQUFNOztRQS9HUSx5Q0FBdUI7UUFFSCxlQUEwRDtRQUExRCxtRkFBMEQ7UUFHbEYsZUFDRjtRQURFLDJFQUNGO1FBR0MsZUFBaUY7UUFBakYsMEdBQWlGO1FBS3hDLGVBQW1DO1FBQW5DLHFEQUFtQztRQUMzRSxlQUNGO1FBREUscUhBQ0Y7UUFFRSxlQUNGO1FBREUsaUdBQ0Y7UUFDaUMsZUFBd0U7UUFBeEUsaUdBQXdFO1FBUWxHLGVBQXNDO1FBQXRDLDJEQUFzQztRQUl0QyxlQUFxQztRQUFyQywwREFBcUM7UUFHWCxlQUFrQztRQUFsQyxvREFBa0MseUNBQUEsb0RBQUE7UUFLakUsZUFDRjtRQURFLG9HQUNGO1FBSUMsZUFBd0U7UUFBeEUsaUdBQXdFO1FBNEN4RSxlQUF3RTtRQUF4RSxpR0FBd0U7UUFvQjdFLGVBQ0Y7UUFERSwrREFDRjs7dUZEM0ZXLG1CQUFtQjtjQUovQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjthQUM1Qzt3RUFFaUIsU0FBUztrQkFBeEIsS0FBSztZQUNVLHVCQUF1QjtrQkFBdEMsS0FBSztZQUVXLG9CQUFvQjtrQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlLCBGbGFnRGV0YWlsLCBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsXG4gIENhc2VGbGFnRmllbGRTdGF0ZSxcbiAgQ2FzZUZsYWdGb3JtRmllbGRzLFxuICBDYXNlRmxhZ1N0YXR1cyxcbiAgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUsXG4gIFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UsXG4gIFVwZGF0ZUZsYWdTdGVwXG59IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXVwZGF0ZS1mbGFnJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwZGF0ZS1mbGFnLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVcGRhdGVGbGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IHN0cmluZztcblxuICBAT3V0cHV0KCkgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIHNlbGVjdGVkRmxhZzogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHVibGljIHVwZGF0ZUZsYWdUaXRsZSA9ICcnO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIHVwZGF0ZUZsYWdOb3RFbnRlcmVkRXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHVwZGF0ZUZsYWdDaGFyTGltaXRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgc3RhdHVzUmVhc29uTm90RW50ZXJlZEVycm9yTWVzc2FnZTogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBzdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgdXBkYXRlRmxhZ1N0ZXBFbnVtID0gVXBkYXRlRmxhZ1N0ZXA7XG4gIHB1YmxpYyB2YWxpZFN0YXR1c1Byb2dyZXNzaW9uczogc3RyaW5nW107XG4gIHB1YmxpYyByZWFkb25seSBjYXNlRmxhZ1N0YXR1c0VudW0gPSBDYXNlRmxhZ1N0YXR1cztcbiAgcHVibGljIHJlYWRvbmx5IGNhc2VGbGFnRm9ybUZpZWxkcyA9IENhc2VGbGFnRm9ybUZpZWxkcztcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0TWF4Q2hhckxpbWl0ID0gMjAwO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uID0gJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJztcbiAgcHJpdmF0ZSBmbGFnRGV0YWlsOiBGbGFnRGV0YWlsO1xuICBwdWJsaWMgY2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblNlcnZpY2U6IFJweFRyYW5zbGF0aW9uU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGbGFnID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRNYW5hZ2VDYXNlTG9jYXRpb24pLnZhbHVlIGFzIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGg7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGbGFnPy5mbGFnRGV0YWlsRGlzcGxheT8uZmxhZ0RldGFpbCkge1xuICAgICAgdGhpcy5mbGFnRGV0YWlsID0gdGhpcy5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbDtcbiAgICAgIGNvbnN0IGN1cnJlbnRGbGFnU3RhdHVzS2V5ID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpLmZpbmQoa2V5ID0+IENhc2VGbGFnU3RhdHVzW2tleV0gPT09IHRoaXMuZmxhZ0RldGFpbC5zdGF0dXMpO1xuXG4gICAgICAvLyBQb3B1bGF0ZSBmbGFnIGNvbW1lbnRzIHRleHQgYXJlYSB3aXRoIGV4aXN0aW5nIGNvbW1lbnRzOyB1c2UgdGhlIGNvbW1lbnRzIGFwcHJvcHJpYXRlIGZvciB0aGUgc2VsZWN0ZWQgbGFuZ3VhZ2UsXG4gICAgICAvLyBmYWxsaW5nIGJhY2sgb24gdGhlaXIgYWx0ZXJuYXRlIGNvdW50ZXJwYXJ0IGlmIG5vbmUgYXJlIGF2YWlsYWJsZS4gQ29tbWVudHMgYXJlIHRvIGJlIHBvcHVsYXRlZCBvbmUgdGltZSBvbmx5IC1cbiAgICAgIC8vIHdoZW4gdGhlIHVzZXIgZmlyc3QgdmlzaXRzIHRoZSBwYWdlIC0gZXZlbiBpZiB0aGV5IHN3aXRjaCBsYW5ndWFnZSBzdWJzZXF1ZW50bHlcbiAgICAgIGxldCBleGlzdGluZ0NvbW1lbnRzOiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeScpIHtcbiAgICAgICAgZXhpc3RpbmdDb21tZW50cyA9IHRoaXMuZmxhZ0RldGFpbC5mbGFnQ29tbWVudF9jeSB8fCB0aGlzLmZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGlzdGluZ0NvbW1lbnRzID0gdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50IHx8IHRoaXMuZmxhZ0RldGFpbC5mbGFnQ29tbWVudF9jeTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTLCBuZXcgRm9ybUNvbnRyb2woZXhpc3RpbmdDb21tZW50cykpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTLCBuZXcgRm9ybUNvbnRyb2woY3VycmVudEZsYWdTdGF0dXNLZXkpKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRCwgbmV3IEZvcm1Db250cm9sKGZhbHNlKSk7XG5cbiAgICAgIHRoaXMudXBkYXRlRmxhZ1RpdGxlID0gdGhpcy5zZXRVcGRhdGVDYXNlRmxhZ1RpdGxlKHRoaXMuZmxhZ0RldGFpbCk7XG5cbiAgICAgIC8vIFNldCB0aGUgdmFsaWQgc3RhdHVzIG9wdGlvbnMgZm9yIGRpc3BsYXksIGJhc2VkIG9uIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBzZWxlY3RlZCBmbGFnLiBcIkFjdGl2ZVwiIGZsYWdzIGNhblxuICAgICAgLy8gcmVtYWluIFwiQWN0aXZlXCIgb3IgbW92ZSB0byBcIkluYWN0aXZlXCIgb25seTsgXCJSZXF1ZXN0ZWRcIiBmbGFncyBjYW4gcmVtYWluIFwiUmVxdWVzdGVkXCIgb3IgbW92ZSB0byBcIkFjdGl2ZVwiLFxuICAgICAgLy8gXCJJbmFjdGl2ZVwiLCBvciBcIk5vdCBhcHByb3ZlZFwiLiBObyBvdGhlciBzdGF0dXMgcHJvZ3Jlc3Npb25zIGFyZSB2YWxpZFxuICAgICAgaWYgKGN1cnJlbnRGbGFnU3RhdHVzS2V5KSB7XG4gICAgICAgIHN3aXRjaCAoY3VycmVudEZsYWdTdGF0dXNLZXkpIHtcbiAgICAgICAgICBjYXNlICdBQ1RJVkUnOlxuICAgICAgICAgICAgdGhpcy52YWxpZFN0YXR1c1Byb2dyZXNzaW9ucyA9IE9iamVjdC5rZXlzKENhc2VGbGFnU3RhdHVzKS5maWx0ZXIoa2V5ID0+ICFbJ1JFUVVFU1RFRCcsICdOT1RfQVBQUk9WRUQnXS5pbmNsdWRlcyhrZXkpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1JFUVVFU1RFRCc6XG4gICAgICAgICAgICB0aGlzLnZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRoaXMudmFsaWRTdGF0dXNQcm9ncmVzc2lvbnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRVcGRhdGVDYXNlRmxhZ1RpdGxlKGZsYWdEZXRhaWw6IEZsYWdEZXRhaWwpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcikge1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURTpcbiAgICAgICAgaWYgKGZsYWdEZXRhaWw/Lm5hbWUpIHtcbiAgICAgICAgICByZXR1cm4gYCR7Q2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuVVBEQVRFX0ZMQUdfVElUTEV9IFwiJHtmbGFnRGV0YWlsLm5hbWV9JHtmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSA/IGAsICR7ZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWV9XCJgIDogJ1wiJ31gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5VUERBVEVfRkxBR19USVRMRX1gO1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV9FWFRFUk5BTDpcbiAgICAgICAgcmV0dXJuIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlVQREFURV9GTEFHX1RJVExFX1NVUFBPUlQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuTk9ORTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIFZhbGlkYXRlIGZsYWcgY29tbWVudHMgYW5kIHN0YXR1cyByZWFzb24gZW50cnlcbiAgICB0aGlzLnZhbGlkYXRlVGV4dEVudHJ5KCk7XG5cbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlLCBlcnJvciBtZXNzYWdlcywgYW5kIHNlbGVjdGVkIGZsYWcgZGV0YWlsIHRvIHRoZSBwYXJlbnQuIFRoZSBzZWxlY3RlZCBmbGFnIG11c3QgYmVcbiAgICAvLyByZS1lbWl0dGVkIGJlY2F1c2UgdGhlIHBhcmVudCBjb21wb25lbnQgcmVwb3B1bGF0ZXMgdGhpcyBvbiBoYW5kbGluZyB0aGlzIEV2ZW50RW1pdHRlclxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBzZWxlY3RlZEZsYWc6IHRoaXMuc2VsZWN0ZWRGbGFnLFxuICAgIH0pO1xuXG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRleHRFbnRyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZsYWdOb3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZUZsYWdDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuc3RhdHVzUmVhc29uTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5zdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIC8vIFZhbGlkYXRpb24gc2hvdWxkIGZhaWwgaWYgdGhlIGZsYWcgaGFzIGFuIGV4aXN0aW5nIGNvbW1lbnQgYW5kIGl0IGhhcyBiZWVuIGRlbGV0ZWQgb24gc2NyZWVuOyBjb252ZXJzZWx5LCBpZiB0aGVyZVxuICAgIC8vIGlzIG5vIGV4aXN0aW5nIGNvbW1lbnQgdGhlbiBvbmUgaXMgbm90IHJlcXVpcmVkIGZvciB2YWxpZGF0aW9uIHRvIHBhc3NcbiAgICBjb25zdCBjb21tZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UUykudmFsdWU7XG4gICAgaWYgKCFjb21tZW50ICYmICh0aGlzLmZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgfHwgdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5KSkge1xuICAgICAgdGhpcy51cGRhdGVGbGFnTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19OT1RfRU5URVJFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX05PVF9FTlRFUkVELFxuICAgICAgICBmaWVsZElkOiBDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb21tZW50ICYmIGNvbW1lbnQubGVuZ3RoID4gdGhpcy50ZXh0TWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLnVwZGF0ZUZsYWdDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdHVzUmVhc29uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTikudmFsdWU7XG4gICAgY29uc3QgZmxhZ1N0YXR1c05vdEFwcHJvdmVkS2V5ID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpLmZpbmQoa2V5ID0+IENhc2VGbGFnU3RhdHVzW2tleV0gPT09IENhc2VGbGFnU3RhdHVzLk5PVF9BUFBST1ZFRCk7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTKS52YWx1ZSA9PT0gZmxhZ1N0YXR1c05vdEFwcHJvdmVkS2V5ICYmICFzdGF0dXNSZWFzb24pIHtcbiAgICAgIHRoaXMuc3RhdHVzUmVhc29uTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuU1RBVFVTX1JFQVNPTl9OT1RfRU5URVJFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5TVEFUVVNfUkVBU09OX05PVF9FTlRFUkVELFxuICAgICAgICBmaWVsZElkOiBDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT05cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChzdGF0dXNSZWFzb24gJiYgc3RhdHVzUmVhc29uLmxlbmd0aCA+IHRoaXMudGV4dE1heENoYXJMaW1pdCkge1xuICAgICAgdGhpcy5zdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5TVEFUVVNfUkVBU09OX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTlxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGFyYWN0ZXItY291bnRcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbWF4bGVuZ3RoPVwiMjAwXCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1sYWJlbC13cmFwcGVyIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1tXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnVGl0bGUgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9oMT5cbiAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCJcbiAgICAgICAgKm5nSWY9XCJkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gY2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUxcIj5cbiAgICAgICAge3tzZWxlY3RlZEZsYWc/LmZsYWdEZXRhaWxEaXNwbGF5Py5mbGFnRGV0YWlsIHwgdXBkYXRlRmxhZ1RpdGxlRGlzcGxheX19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1zXCIgW2Zvcl09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcIj5cbiAgICAgICAgICB7e3VwZGF0ZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19IHt7J2NvbW1lbnRzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnU3RlcEVudW0uQ09NTUVOVF9ISU5UX1RFWFQgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dFwiICpuZ0lmPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IGNhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj57eydXYXJuaW5nJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAge3t1cGRhdGVGbGFnU3RlcEVudW0uV0FSTklOR19URVhUIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1ub3QtZW50ZXJlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ1cGRhdGVGbGFnTm90RW50ZXJlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e3VwZGF0ZUZsYWdOb3RFbnRlcmVkRXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ1cGRhdGVGbGFnQ2hhckxpbWl0RXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7dXBkYXRlRmxhZ0NoYXJMaW1pdEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYVwiIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcIlxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcIiByb3dzPVwiNVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwidXBkYXRlLWZsYWctaGludCB1cGRhdGUtZmxhZy1jaGFyLWxpbWl0LWluZm8gdXBkYXRlLWZsYWctY2hhci1saW1pdC1lcnJvclwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctY29tbWVudHMtY2hhci1saW1pdC1pbmZvXCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLkNIQVJBQ1RFUl9MSU1JVF9JTkZPIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBpZD1cImZsYWctc3RhdHVzLWNvbnRhaW5lclwiIGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBjYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURVwiPlxuICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJ1cGRhdGUtZmxhZy1zdGF0dXMtaGVhZGluZ1wiPlxuICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9fbGVnZW5kIGdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXNcIj5cbiAgICAgICAgICAgIDxoMSBpZD1cInVwZGF0ZS1mbGFnLXN0YXR1cy1oZWFkaW5nXCIgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZ1wiPlxuICAgICAgICAgICAgICB7e3VwZGF0ZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19IHt7J3N0YXR1cycgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICA8L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwgZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIiBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiB2YWxpZFN0YXR1c1Byb2dyZXNzaW9uc1wiPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVUyArICdfJyArIHN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhdHVzXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWxcIiBbZm9yXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVMgKyAnXycgKyBzdGF0dXNcIj5cbiAgICAgICAgICAgICAgICB7e2Nhc2VGbGFnU3RhdHVzRW51bVtzdGF0dXNdIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1zdGF0dXMtaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLlNUQVRVU19ISU5UX1RFWFQgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLXN0YXR1cy1yZWFzb24tbm90LWVudGVyZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzUmVhc29uTm90RW50ZXJlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e3N0YXR1c1JlYXNvbk5vdEVudGVyZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLXN0YXR1cy1yZWFzb24tY2hhci1saW1pdC1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzUmVhc29uQ2hhckxpbWl0RXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7c3RhdHVzUmVhc29uQ2hhckxpbWl0RXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImdvdnVrLXRleHRhcmVhXCJcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT05cIlxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OXCJcbiAgICAgICAgICAgICAgICAgIHJvd3M9XCI1XCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1zdGF0dXMtcmVhc29uLWNoYXItbGltaXQtaW5mb1wiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICB7e3VwZGF0ZUZsYWdTdGVwRW51bS5DSEFSQUNURVJfTElNSVRfSU5GTyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNlwiXG4gICAgICAgICpuZ0lmPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IGNhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1jaGVja2JveGVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5JU19XRUxTSF9UUkFOU0xBVElPTl9ORUVERURcIlxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEXCJcbiAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEXCI+XG4gICAgICAgICAgICAgIHt7J0kgbmVlZCB0byBhZGQgYSB0cmFuc2xhdGlvbicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICA8YnV0dG9uIGlkPVwidXBkYXRlRmxhZ05leHRCdXR0b25cIiBjbGFzcz1cImdvdnVrLWJ1dHRvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj5cbiAgICB7eydOZXh0JyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1mbGFnLXN0YXRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2RvbWFpbi9jYXNlLWZsYWctc3RhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoLCBGbGFnUGF0aCwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4vY2FzZS1mbGFnLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXNlRmxhZ1N0YXRlIHtcbiAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogbnVtYmVyO1xuICBzZWxlY3RlZEZsYWdzTG9jYXRpb24/OiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoO1xuICBpc1BhcmVudEZsYWdUeXBlPzogYm9vbGVhbjtcbiAgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW107XG4gIGZsYWdOYW1lPzogc3RyaW5nO1xuICBmbGFnUGF0aD86IEZsYWdQYXRoW107XG4gIGhlYXJpbmdSZWxldmFudEZsYWc/OiBib29sZWFuO1xuICBmbGFnQ29kZT86IHN0cmluZztcbiAgbGlzdE9mVmFsdWVzPzogeyBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9W107XG4gIHNlbGVjdGVkRmxhZz86IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGg7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1mbGFnLXN0YXRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2RvbWFpbi9jYXNlLWZsYWctc3RhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi9jYXNlLWZsYWcubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhc2VGbGFnU3RhdGUge1xuICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBudW1iZXI7XG4gIGlzUGFyZW50RmxhZ1R5cGU/OiBib29sZWFuO1xuICBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXTtcbiAgc2VsZWN0ZWRGbGFnPzogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbn1cbiJdfQ==