@hmcts/ccd-case-ui-toolkit 7.1.74-qualifying-questions → 7.1.75-angular-upgrade-rc2

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 (346) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +2 -2
  3. package/esm2022/lib/components/banners/alert/alert.component.mjs +2 -2
  4. package/esm2022/lib/components/banners/alert/alert.module.mjs +2 -2
  5. package/esm2022/lib/components/banners/banners.module.mjs +2 -2
  6. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +2 -2
  7. package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +2 -2
  8. package/esm2022/lib/components/body/body.component.mjs +2 -2
  9. package/esm2022/lib/components/body/body.module.mjs +2 -2
  10. package/esm2022/lib/components/footer/footer.component.mjs +2 -2
  11. package/esm2022/lib/components/footer/footers.module.mjs +2 -2
  12. package/esm2022/lib/components/form/date-input/date-input.component.mjs +2 -2
  13. package/esm2022/lib/components/form/form.module.mjs +2 -2
  14. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +2 -2
  15. package/esm2022/lib/components/header/headers.module.mjs +2 -2
  16. package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +2 -2
  17. package/esm2022/lib/components/header/navigation/navigation.component.mjs +2 -2
  18. package/esm2022/lib/components/header/phase/phase.component.mjs +2 -2
  19. package/esm2022/lib/components/tabs/tab.component.mjs +2 -2
  20. package/esm2022/lib/components/tabs/tabs.component.mjs +2 -2
  21. package/esm2022/lib/components/tabs/tabs.module.mjs +2 -2
  22. package/esm2022/lib/shared/commons/address-validation-constants.mjs +2 -2
  23. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +2 -2
  24. package/esm2022/lib/shared/commons/constants.mjs +2 -2
  25. package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +2 -2
  26. package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +2 -2
  27. package/esm2022/lib/shared/components/activity/activity.component.mjs +2 -2
  28. package/esm2022/lib/shared/components/activity/activity.module.mjs +2 -2
  29. package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +2 -2
  30. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +2 -2
  31. package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +2 -2
  32. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +2 -2
  33. package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +2 -2
  34. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +2 -2
  35. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +2 -2
  36. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +2 -2
  37. package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +2 -2
  38. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -2
  39. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +2 -2
  40. package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +2 -2
  41. package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +2 -2
  42. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +2 -2
  43. package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +2 -2
  44. package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +2 -2
  45. package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +2 -2
  46. package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +2 -2
  47. package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +2 -2
  48. package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +2 -2
  49. package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +2 -2
  50. package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +2 -2
  51. package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +2 -2
  52. package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +2 -2
  53. package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +18 -8
  54. package/esm2022/lib/shared/components/case-header/case-header.component.mjs +2 -2
  55. package/esm2022/lib/shared/components/case-header/case-header.module.mjs +2 -2
  56. package/esm2022/lib/shared/components/case-history/case-history.component.mjs +2 -2
  57. package/esm2022/lib/shared/components/case-history/case-history.module.mjs +2 -2
  58. package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +2 -2
  59. package/esm2022/lib/shared/components/case-list/case-list.component.mjs +2 -2
  60. package/esm2022/lib/shared/components/case-list/case-list.module.mjs +2 -2
  61. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +2 -2
  62. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +2 -2
  63. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +2 -2
  64. package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +2 -2
  65. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +2 -2
  66. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +2 -2
  67. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +2 -2
  68. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +2 -2
  69. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +2 -2
  70. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +2 -2
  71. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +2 -2
  72. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +2 -2
  73. package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +2 -2
  74. package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +2 -2
  75. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +2 -2
  76. package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +2 -2
  77. package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +2 -2
  78. package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +2 -2
  79. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +2 -2
  80. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +2 -2
  81. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +2 -2
  82. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +2 -2
  83. package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +2 -2
  84. package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +2 -2
  85. package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +2 -2
  86. package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +2 -2
  87. package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +2 -2
  88. package/esm2022/lib/shared/components/error/callback-errors.component.mjs +2 -2
  89. package/esm2022/lib/shared/components/error/errors.module.mjs +2 -2
  90. package/esm2022/lib/shared/components/error-message/error-message.component.mjs +2 -2
  91. package/esm2022/lib/shared/components/error-message/error-message.module.mjs +2 -2
  92. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +2 -2
  93. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +2 -2
  94. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +2 -2
  95. package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +2 -2
  96. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +2 -2
  97. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +2 -2
  98. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +36 -18
  99. package/esm2022/lib/shared/components/event-start/event-start.component.mjs +2 -2
  100. package/esm2022/lib/shared/components/event-start/event-start.module.mjs +2 -2
  101. package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +20 -16
  102. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +2 -2
  103. package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +2 -2
  104. package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +2 -2
  105. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +2 -2
  106. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +2 -2
  107. package/esm2022/lib/shared/components/pagination/pagination.component.mjs +2 -2
  108. package/esm2022/lib/shared/components/pagination/pagination.module.mjs +2 -2
  109. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +2 -2
  110. package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +2 -2
  111. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +2 -2
  112. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +2 -2
  113. package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +2 -2
  114. package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +2 -2
  115. package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +2 -2
  116. package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +2 -2
  117. package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +2 -2
  118. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +2 -2
  119. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +2 -2
  120. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +2 -2
  121. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +2 -2
  122. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +2 -2
  123. package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +2 -2
  124. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +2 -2
  125. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +2 -2
  126. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +2 -2
  127. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +2 -2
  128. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +2 -2
  129. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +2 -2
  130. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +2 -2
  131. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +2 -2
  132. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +2 -2
  133. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +2 -2
  134. package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +2 -2
  135. package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +2 -2
  136. package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +2 -2
  137. package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +2 -2
  138. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +2 -2
  139. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +2 -2
  140. package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +2 -2
  141. package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +2 -2
  142. package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +2 -2
  143. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +2 -2
  144. package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +2 -2
  145. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +2 -2
  146. package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +2 -2
  147. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +2 -2
  148. package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +2 -2
  149. package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +2 -2
  150. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +2 -2
  151. package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +2 -2
  152. package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +2 -2
  153. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +2 -2
  154. package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +2 -2
  155. package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +2 -2
  156. package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +2 -2
  157. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +2 -2
  158. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +10 -10
  159. package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +2 -2
  160. package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +2 -2
  161. package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +2 -2
  162. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +2 -2
  163. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +2 -2
  164. package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +2 -2
  165. package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +2 -2
  166. package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +2 -2
  167. package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +2 -2
  168. package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +2 -2
  169. package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +2 -2
  170. package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +2 -2
  171. package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +2 -2
  172. package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +2 -2
  173. package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +2 -2
  174. package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +2 -2
  175. package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +2 -2
  176. package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +2 -2
  177. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +2 -2
  178. package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +2 -2
  179. package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +2 -2
  180. package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +22 -32
  181. package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +2 -2
  182. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +2 -2
  183. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +2 -2
  184. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +2 -2
  185. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +2 -2
  186. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +2 -2
  187. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +2 -2
  188. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +2 -2
  189. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +2 -2
  190. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +2 -2
  191. package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +2 -2
  192. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +2 -2
  193. package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +2 -2
  194. package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +9 -5
  195. package/esm2022/lib/shared/components/palette/markdown/routerlink.component.mjs +2 -2
  196. package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +2 -2
  197. package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +2 -2
  198. package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +2 -2
  199. package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +2 -2
  200. package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +2 -2
  201. package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +2 -2
  202. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +2 -2
  203. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +2 -2
  204. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +2 -2
  205. package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +2 -2
  206. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +2 -2
  207. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +2 -2
  208. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +2 -2
  209. package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +2 -2
  210. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +2 -2
  211. package/esm2022/lib/shared/components/palette/palette.module.mjs +3 -3
  212. package/esm2022/lib/shared/components/palette/palette.service.mjs +2 -2
  213. package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +2 -2
  214. package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +2 -2
  215. package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +2 -2
  216. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +2 -2
  217. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +22 -14
  218. package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +2 -2
  219. package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +2 -2
  220. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +5 -5
  221. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +2 -2
  222. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +16 -8
  223. package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +2 -2
  224. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +2 -2
  225. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +2 -2
  226. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +2 -2
  227. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +2 -2
  228. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +15 -10
  229. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +2 -2
  230. package/esm2022/lib/shared/components/palette/query-management/services/qualifying-question.service.mjs +2 -2
  231. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +2 -2
  232. package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +2 -2
  233. package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +2 -2
  234. package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +2 -2
  235. package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +2 -2
  236. package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +2 -2
  237. package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +2 -2
  238. package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +2 -2
  239. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +2 -2
  240. package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +2 -2
  241. package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +2 -2
  242. package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +2 -2
  243. package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +2 -2
  244. package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +2 -2
  245. package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +2 -2
  246. package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +2 -2
  247. package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +2 -2
  248. package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +2 -2
  249. package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +2 -2
  250. package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +2 -2
  251. package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +2 -2
  252. package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +2 -2
  253. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +2 -2
  254. package/esm2022/lib/shared/components/search-result/search-result.module.mjs +2 -2
  255. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +2 -2
  256. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +2 -2
  257. package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +2 -2
  258. package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +2 -2
  259. package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +2 -2
  260. package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +2 -2
  261. package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +2 -2
  262. package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +2 -2
  263. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +2 -2
  264. package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +2 -2
  265. package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +2 -2
  266. package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +2 -2
  267. package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +2 -2
  268. package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +2 -2
  269. package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +2 -2
  270. package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +2 -2
  271. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
  272. package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +2 -2
  273. package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +2 -2
  274. package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +2 -2
  275. package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +2 -2
  276. package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +2 -2
  277. package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +2 -2
  278. package/esm2022/lib/shared/pipes/pipes.module.mjs +2 -2
  279. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +2 -2
  280. package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +2 -2
  281. package/esm2022/lib/shared/services/activity/activity.service.mjs +2 -2
  282. package/esm2022/lib/shared/services/addresses/addresses.service.mjs +2 -2
  283. package/esm2022/lib/shared/services/alert/alert.service.mjs +2 -2
  284. package/esm2022/lib/shared/services/auth/auth.service.mjs +2 -2
  285. package/esm2022/lib/shared/services/banners/banners.service.mjs +2 -2
  286. package/esm2022/lib/shared/services/browser/browser.service.mjs +2 -2
  287. package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +2 -2
  288. package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +2 -2
  289. package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +2 -2
  290. package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +2 -2
  291. package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +2 -2
  292. package/esm2022/lib/shared/services/cookie/read-cookie-service.mjs +2 -2
  293. package/esm2022/lib/shared/services/definitions/definitions.module.mjs +2 -2
  294. package/esm2022/lib/shared/services/definitions/definitions.service.mjs +2 -2
  295. package/esm2022/lib/shared/services/document-management/document-management.service.mjs +2 -2
  296. package/esm2022/lib/shared/services/draft/draft.service.mjs +2 -2
  297. package/esm2022/lib/shared/services/error/error-notifier.service.mjs +2 -2
  298. package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +2 -2
  299. package/esm2022/lib/shared/services/fields/fields.purger.mjs +2 -2
  300. package/esm2022/lib/shared/services/fields/fields.utils.mjs +2 -2
  301. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +2 -2
  302. package/esm2022/lib/shared/services/form/form-error.service.mjs +2 -2
  303. package/esm2022/lib/shared/services/form/form-validators.service.mjs +2 -2
  304. package/esm2022/lib/shared/services/form/form-value.service.mjs +2 -2
  305. package/esm2022/lib/shared/services/http/http-error.service.mjs +2 -2
  306. package/esm2022/lib/shared/services/http/http.service.mjs +2 -2
  307. package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +2 -2
  308. package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +2 -2
  309. package/esm2022/lib/shared/services/loading/loading.module.mjs +2 -2
  310. package/esm2022/lib/shared/services/loading/loading.service.mjs +2 -2
  311. package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +2 -2
  312. package/esm2022/lib/shared/services/order/order.service.mjs +2 -2
  313. package/esm2022/lib/shared/services/organisation/organisation.service.mjs +2 -2
  314. package/esm2022/lib/shared/services/profile/profile.notifier.mjs +2 -2
  315. package/esm2022/lib/shared/services/profile/profile.service.mjs +2 -2
  316. package/esm2022/lib/shared/services/request/request.options.builder.mjs +2 -2
  317. package/esm2022/lib/shared/services/router/router-helper.service.mjs +2 -2
  318. package/esm2022/lib/shared/services/search/search.service.mjs +2 -2
  319. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +2 -2
  320. package/esm2022/lib/shared/services/session/session-storage.service.mjs +2 -2
  321. package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +2 -2
  322. package/esm2022/lib/shared/services/window/window.service.mjs +2 -2
  323. package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +2 -2
  324. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +479 -436
  325. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  326. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts +5 -1
  327. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
  328. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +6 -2
  329. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  330. package/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.d.ts +5 -3
  331. package/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.d.ts.map +1 -1
  332. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts +3 -2
  333. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts.map +1 -1
  334. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -2
  335. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  336. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +4 -2
  337. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  338. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +0 -2
  339. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  340. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -0
  341. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  342. 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 -1
  343. package/package.json +1 -1
  344. package/esm2022/lib/shared/domain/user/user-details.model.mjs +0 -2
  345. package/lib/shared/domain/user/user-details.model.d.ts +0 -10
  346. package/lib/shared/domain/user/user-details.model.d.ts.map +0 -1
@@ -516,7 +516,7 @@ export class LinkCasesComponent extends AbstractJourneyComponent {
516
516
  super.next();
517
517
  }
518
518
  }
519
- static ɵfac = function LinkCasesComponent_Factory(t) { return new (t || LinkCasesComponent)(i0.ɵɵdirectiveInject(i1.CasesService), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.ValidatorsUtils), i0.ɵɵdirectiveInject(i4.LinkedCasesService), i0.ɵɵdirectiveInject(i5.MultipageComponentStateService)); };
519
+ static ɵfac = function LinkCasesComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LinkCasesComponent)(i0.ɵɵdirectiveInject(i1.CasesService), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.ValidatorsUtils), i0.ɵɵdirectiveInject(i4.LinkedCasesService), i0.ɵɵdirectiveInject(i5.MultipageComponentStateService)); };
520
520
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LinkCasesComponent, selectors: [["ccd-link-cases"]], outputs: { linkedCasesStateEmitter: "linkedCasesStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 33, vars: 11, consts: [[1, "govuk-grid-row"], [1, "govuk-grid-column-full"], [1, "govuk-caption-l"], [1, "govuk-heading-xl"], ["class", "form-group", 3, "formGroup", 4, "ngIf"], ["id", "caseNumber", 1, "govuk-form-group", 3, "ngClass"], ["class", "govuk-error-message", 4, "ngIf"], [1, "govuk-table"], [1, "govuk-table__caption", "govuk-table__caption--m"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["scope", "col", "width", "300", 1, "govuk-table__header"], ["scope", "col", "width", "150", 1, "govuk-table__header"], ["scope", "col", "width", "200", 1, "govuk-table__header"], ["scope", "col", "width", "400", 1, "govuk-table__header"], ["scope", "col", "width", "50", 1, "govuk-table__header"], [1, "govuk-table__body"], ["class", "govuk-table__row", 4, "ngFor", "ngForOf"], ["class", "govuk-table__row", 4, "ngIf"], [1, "form-group", 3, "formGroup"], [1, "govuk-heading-s"], ["formControlName", "caseNumber", "id", "width-20", "name", "width-20", "type", "text", 1, "govuk-input", "govuk-input--width-20"], [1, "govuk-!-margin-top-3", 3, "ngClass"], ["id", "waste-hint", 1, "govuk-hint"], ["data-module", "govuk-checkboxes", "formArrayName", "reasonType", "id", "caseReason", 1, "govuk-checkboxes"], ["class", "govuk-checkboxes__item", 3, "formGroupName", 4, "ngFor", "ngForOf"], ["id", "other-description-char-limit-error", "class", "govuk-!-margin-top-3", 3, "ngClass", 4, "ngIf"], ["id", "propose", "type", "button", "data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", 3, "click"], [1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-checkboxes__item", 3, "formGroupName"], ["formControlName", "selected", "name", "pos", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "value"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["id", "other-description-char-limit-error", 1, "govuk-!-margin-top-3", 3, "ngClass"], ["id", "otherDescription", "name", "otherDescription", "formControlName", "otherDescription", "rows", "5", "aria-describedby", "other-description-hint other-description-char-limit-info other-description-char-limit-error", 1, "govuk-textarea", "govuk-input--width-30"], ["id", "other-description-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], [1, "govuk-table__cell"], [1, "govuk-form-group--error", 3, "ngClass"], [1, "govuk-table__cell", 3, "title"], [4, "ngFor", "ngForOf"], [1, "govuk-link", "no-visited-state", 3, "click"], ["colspan", "6", 1, "govuk-table__cell"]], template: function LinkCasesComponent_Template(rf, ctx) { if (rf & 1) {
521
521
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div")(3, "span", 2);
522
522
  i0.ɵɵtext(4);
@@ -574,4 +574,4 @@ export class LinkCasesComponent extends AbstractJourneyComponent {
574
574
  type: Output
575
575
  }] }); })();
576
576
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LinkCasesComponent, { className: "LinkCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.ts", lineNumber: 26 }); })();
577
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvY29tcG9uZW50cy9saW5rLWNhc2VzL2xpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGluay1jYXNlcy9saW5rLWNhc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQWEsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQVE5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztJQ1Q3RCxBQURGLGdD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ZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldywgRXJyb3JNZXNzYWdlLCBIdHRwRXJyb3IsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTG92UmVmRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBDYXNlTGluayxcbiAgQ0NEQ2FzZUxpbmtUeXBlLFxuICBMaW5rQ2FzZVJlYXNvbixcbiAgTGlua1JlYXNvblxufSBmcm9tICcuLi8uLi9kb21haW4vbGlua2VkLWNhc2VzLm1vZGVsJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcywgUGF0dGVybnMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saW5rZWQtY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzLnV0aWxzJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbGluay1jYXNlcycsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FzZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExpbmtDYXNlc0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4oKTtcblxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGxpbmtDYXNlRm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgc2VsZWN0ZWRDYXNlczogQ2FzZUxpbmtbXSA9IFtdO1xuICBwdWJsaWMgY2FzZU51bWJlckVycm9yOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlUmVhc29uRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VSZWFzb25Db21tZW50c0Vycm9yOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlU2VsZWN0aW9uRXJyb3I6IHN0cmluZztcbiAgcHVibGljIG5vU2VsZWN0ZWRDYXNlRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgY2FzZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGxpbmtDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW107XG4gIHB1YmxpYyBzaG93Q29tbWVudHMgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBJU09fRk9STUFUID0gJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRvcnNVdGlsczogVmFsaWRhdG9yc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgbXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIobXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZDtcbiAgICB0aGlzLmNhc2VOYW1lID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZU5hbWU7XG4gICAgdGhpcy5saW5rQ2FzZVJlYXNvbnMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rQ2FzZVJlYXNvbnM7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIGlmICghdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaGFzTmF2aWdhdGVkSW5Kb3VybmV5KSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IFtdO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZWRpdE1vZGUgfHwgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMubGVuZ3RoKSB7XG4gICAgICAvLyB0aGlzIG1heSBoYXZlIGluY2x1ZGVzIHRoZSBjdXJyZW50bHkgYWRkZWQgb25lIGJ1dCB5ZXQgdG8gYmUgc3VibWl0dGVkLlxuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZmlsdGVyKChpdGVtKSA9PiAhdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rUmVmcy5pbmNsdWRlcyhpdGVtLmNhc2VSZWZlcmVuY2UpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua3MubGVuZ3RoICE9PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZU51bWJlciA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnN0b3JlZENhc2VOdW1iZXIgPz8gJyc7XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNhc2VOdW1iZXI6IFtjYXNlTnVtYmVyLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMTYpLCB0aGlzLnZhbGlkYXRvcnNVdGlscy5yZWdleFBhdHRlcm4oUGF0dGVybnMuQ0FTRV9SRUYpXV0sXG4gICAgICByZWFzb25UeXBlOiB0aGlzLmdldFJlYXNvblR5cGVGb3JtQXJyYXksXG4gICAgICBvdGhlckRlc2NyaXB0aW9uOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApXV1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0UmVhc29uVHlwZUZvcm1BcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KFxuICAgICAgdGhpcy5saW5rQ2FzZVJlYXNvbnMubWFwKCh2YWwpID0+XG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIGtleTogW3ZhbC5rZXldLFxuICAgICAgICAgIHZhbHVlX2VuOiBbdmFsLnZhbHVlX2VuXSxcbiAgICAgICAgICB2YWx1ZV9jeTogW3ZhbC52YWx1ZV9jeV0sXG4gICAgICAgICAgaGludF90ZXh0X2VuOiBbdmFsLmhpbnRfdGV4dF9lbl0sXG4gICAgICAgICAgaGludF90ZXh0X2N5OiBbdmFsLmhpbnRfdGV4dF9jeV0sXG4gICAgICAgICAgbG92X29yZGVyOiBbdmFsLmxvdl9vcmRlcl0sXG4gICAgICAgICAgcGFyZW50X2tleTogW3ZhbC5wYXJlbnRfa2V5XSxcbiAgICAgICAgICBzZWxlY3RlZDogWyEhdmFsLnNlbGVjdGVkXSxcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICB0aGlzLnZhbGlkYXRvcnNVdGlscy5mb3JtQXJyYXlTZWxlY3RlZFZhbGlkYXRvcigpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVMaW5rQ2FzZVJlYXNvbk90aGVyQ29tbWVudHMoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGlua0Nhc2VSZWFzb25zLmZpbmQoKHJlYXNvbikgPT4gcmVhc29uLnZhbHVlX2VuID09PSBldmVudC50YXJnZXQudmFsdWUpLnNlbGVjdGVkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XG4gICAgdGhpcy5zaG93Q29tbWVudHMgPSB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJyk/LnNlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdENhc2VJbmZvKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2FzZVJlYXNvbkVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VSZWFzb25Db21tZW50c0Vycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IG51bGw7XG4gICAgaWYgKFxuICAgICAgdGhpcy5saW5rQ2FzZUZvcm0udmFsaWQgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMuc2VsZWN0ZWRDYXNlcykgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSAmJlxuICAgICAgIXRoaXMuaXNDYXNlSW5Jbml0aWFsKHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIpICYmXG4gICAgICAhdGhpcy5pc0Nhc2VTZWxlY3RlZFNhbWVBc0N1cnJlbnRDYXNlKCkgJiZcbiAgICAgICF0aGlzLmlzT3RoZXJPcHRpb25TZWxlY3RlZEJ1dE90aGVyRGVzY3JpcHRpb25Ob3RFbnRlcmVkKClcbiAgICApIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnN0b3JlZENhc2VOdW1iZXIgPSAnJztcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmhhc05hdmlnYXRlZEluSm91cm5leSA9IHRydWU7XG4gICAgICB0aGlzLmdldENhc2VJbmZvKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0Vycm9ySW5mbygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Nhc2VTZWxlY3RlZChsaW5rZWRDYXNlczogQ2FzZUxpbmtbXSk6IGJvb2xlYW4ge1xuICAgIGlmIChsaW5rZWRDYXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY2FzZU51bWJlciA9IHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXI7XG4gICAgcmV0dXJuICEhbGlua2VkQ2FzZXMuZmluZChcbiAgICAgIChjYXNlTGluaykgPT4gY2FzZUxpbmsuY2FzZVJlZmVyZW5jZS5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKSA9PT0gY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaXNDYXNlSW5Jbml0aWFsKHByb3Bvc2VkQ2FzZUxpbms6IHN0cmluZyl7XG4gICAgaWYgKHByb3Bvc2VkQ2FzZUxpbmspe1xuICAgICAgLy8gaW5pdGlhbCBjYXNlIGxpbmtzIHdpbGwgbm90IGhhdmUgLSBpbiB0aGVtLCBhY2NvdW50IGZvciB0aGUgY2FzZSB3aGVyZSBhIHVzZXIgbWF5IHR5cGUgd2l0aCAtXG4gICAgICBwcm9wb3NlZENhc2VMaW5rID0gcHJvcG9zZWRDYXNlTGluay5yZXBsYWNlKC8tL2csICcnKS50cmltKCk7XG4gICAgICBjb25zdCBpbml0aWFsQ2FzZUxpbmtzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rUmVmcyB8fCBbXTtcbiAgICAgIHJldHVybiBpbml0aWFsQ2FzZUxpbmtzLmluY2x1ZGVzKHByb3Bvc2VkQ2FzZUxpbmspO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzQ2FzZVNlbGVjdGVkU2FtZUFzQ3VycmVudENhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIuc3BsaXQoJy0nKS5qb2luKCcnKS50cmltKCkgPT09IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZC5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPdGhlck9wdGlvblNlbGVjdGVkQnV0T3RoZXJEZXNjcmlwdGlvbk5vdEVudGVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0NvbW1lbnRzICYmIHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLm90aGVyRGVzY3JpcHRpb24udHJpbSgpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RXJyb3JJbmZvKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5jYXNlTnVtYmVyLmludmFsaWQpIHtcbiAgICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VOdW1iZXJFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZU51bWJlckVycm9yLFxuICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmNhc2VSZWFzb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5SZWFzb25TZWxlY3Rpb25FcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuUmVhc29uU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlUmVhc29uJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLnZhbGlkXG4gICAgICAmJiB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJykuc2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jYXNlUmVhc29uQ29tbWVudHNFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uRXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtcmVhc29uLWNvbW1lbnRzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLm90aGVyRGVzY3JpcHRpb25FcnJvcixcbiAgICAgICAgICBmaWVsZElkOiAnb3RoZXJEZXNjcmlwdGlvbidcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMub3RoZXJEZXNjcmlwdGlvbi52YWx1ZS50cmltKCkubGVuZ3RoID4gMTAwKSB7XG4gICAgICAgIHRoaXMuY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMub3RoZXJEZXNjcmlwdGlvbk1heExlbmd0aEVycm9yO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbi1jb21tZW50cycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uTWF4TGVuZ3RoRXJyb3IsXG4gICAgICAgICAgZmllbGRJZDogJ290aGVyRGVzY3JpcHRpb24nXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLnNlbGVjdGVkQ2FzZXMpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlUHJvcG9zZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVByb3Bvc2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSkge1xuICAgICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZXNMaW5rZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZXNMaW5rZWRFcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNDYXNlSW5Jbml0aWFsKHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlc0xpbmtlZEVycm9yO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtbnVtYmVyJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlc0xpbmtlZEVycm9yLFxuICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKSA9PT0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkLnNwbGl0KCctJykuam9pbignJykudHJpbSgpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLlByb3Bvc2VkQ2FzZVdpdGhJbixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInXG4gICAgICB9KTtcbiAgICB9XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VJbmZvKCk6IHZvaWQge1xuICAgIGNvbnN0IGNhc2VOdW1iZXJEYXRhID0gdGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5yZXBsYWNlKC9bLSBdL2csICcnKS50cmltKCk7XG4gICAgdGhpcy5jYXNlc1NlcnZpY2VcbiAgICAgIC5nZXRDYXNlVmlld1YyKGNhc2VOdW1iZXJEYXRhKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGNhc2VWaWV3OiBDYXNlVmlldykgPT4ge1xuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzID0gY2FzZVZpZXc7XG4gICAgICAgICAgY29uc3QgY2FzZUxpbms6IENhc2VMaW5rID0ge1xuICAgICAgICAgICAgY2FzZVJlZmVyZW5jZTogY2FzZVZpZXcuY2FzZV9pZCxcbiAgICAgICAgICAgIHJlYXNvbnM6IHRoaXMuZ2V0U2VsZWN0ZWRDYXNlUmVhc29ucygpLFxuICAgICAgICAgICAgY3JlYXRlZERhdGVUaW1lOiBtb21lbnQobmV3IERhdGUoKSkuZm9ybWF0KHRoaXMuSVNPX0ZPUk1BVCksXG4gICAgICAgICAgICBjYXNlVHlwZTogY2FzZVZpZXcuY2FzZV90eXBlLm5hbWUgfHwgJycsXG4gICAgICAgICAgICBjYXNlVHlwZURlc2NyaXB0aW9uOiBjYXNlVmlldy5jYXNlX3R5cGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlU3RhdGU6IGNhc2VWaWV3LnN0YXRlLm5hbWUgfHwgJycsXG4gICAgICAgICAgICBjYXNlU3RhdGVEZXNjcmlwdGlvbjogY2FzZVZpZXcuc3RhdGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlU2VydmljZTogY2FzZVZpZXcuY2FzZV90eXBlICYmIGNhc2VWaWV3LmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24gJiYgY2FzZVZpZXcuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgICAgIGNhc2VOYW1lOiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShjYXNlVmlldylcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGNjZEFwaUNhc2VMaW5rRGF0YTogQ0NEQ2FzZUxpbmtUeXBlID0ge1xuICAgICAgICAgICAgQ2FzZVJlZmVyZW5jZTogY2FzZVZpZXcuY2FzZV9pZCxcbiAgICAgICAgICAgIENhc2VUeXBlOiBjYXNlVmlldy5jYXNlX3R5cGUuaWQsXG4gICAgICAgICAgICBDcmVhdGVkRGF0ZVRpbWU6IG1vbWVudChuZXcgRGF0ZSgpKS5mb3JtYXQodGhpcy5JU09fRk9STUFUKSxcbiAgICAgICAgICAgIFJlYXNvbkZvckxpbms6IHRoaXMuZ2V0U2VsZWN0ZWRDQ0RUeXBlQ2FzZVJlYXNvbigpXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5wdXNoKHsgaWQ6IGNhc2VWaWV3LmNhc2VfaWQudG9TdHJpbmcoKSwgdmFsdWU6IGNjZEFwaUNhc2VMaW5rRGF0YSB9KTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjYXNlTGluayk7XG4gICAgICAgICAgdGhpcy5saW5rQ2FzZVJlYXNvbnMuZm9yRWFjaCgocmVhc29uKSA9PiByZWFzb24uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IEh0dHBFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VDaGVja0FnYWluRXJyb3I7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VDaGVja0FnYWluRXJyb3IsXG4gICAgICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmVtaXRMaW5rZWRDYXNlc1N0YXRlKGZhbHNlKTtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgLy8gUmV0dXJuIGxpbmtlZCBjYXNlcyBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICBwdWJsaWMgZW1pdExpbmtlZENhc2VzU3RhdGUoaXNOYXZpZ2F0ZVRvTmV4dFBhZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtlZENhc2VzU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudExpbmtlZENhc2VzUGFnZTogTGlua2VkQ2FzZXNQYWdlcy5MSU5LX0NBU0UsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2U6IGlzTmF2aWdhdGVUb05leHRQYWdlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRDYXNlUmVhc29ucygpOiBMaW5rUmVhc29uW10ge1xuICAgIGNvbnN0IHNlbGVjdGVkUmVhc29ucyA9IFtdO1xuICAgIHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLnJlYXNvblR5cGUudmFsdWUuZm9yRWFjaChcbiAgICAgIChzZWxlY3RlZFJlYXNvbjogTGlua0Nhc2VSZWFzb24pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkUmVhc29uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgc2VsZWN0ZWRSZWFzb25zLnB1c2goe1xuICAgICAgICAgICAgUmVhc29uOiBzZWxlY3RlZFJlYXNvbi5rZXksXG4gICAgICAgICAgICBPdGhlckRlc2NyaXB0aW9uOiBzZWxlY3RlZFJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJ1xuICAgICAgICAgICAgICA/IHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLm90aGVyRGVzY3JpcHRpb24udmFsdWVcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH0gYXMgTGlua1JlYXNvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBzZWxlY3RlZFJlYXNvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRDQ0RUeXBlQ2FzZVJlYXNvbigpOiBMaW5rUmVhc29uW10ge1xuICAgIGNvbnN0IHNlbGVjdGVkUmVhc29ucyA9IFtdO1xuICAgIHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLnJlYXNvblR5cGUudmFsdWUuZm9yRWFjaChcbiAgICAgIChzZWxlY3RlZFJlYXNvbjogTGlua0Nhc2VSZWFzb24pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkUmVhc29uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgc2VsZWN0ZWRSZWFzb25zLnB1c2goe1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgUmVhc29uOiBzZWxlY3RlZFJlYXNvbi5rZXksXG4gICAgICAgICAgICAgIE90aGVyRGVzY3JpcHRpb246IHNlbGVjdGVkUmVhc29uLnZhbHVlX2VuID09PSAnT3RoZXInXG4gICAgICAgICAgICAgICAgPyB0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRSZWFzb25zO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWRMaW5rZWRDYXNlUmVtb3ZlKHBvcywgc2VsZWN0ZWRDYXNlUmVmZXJlbmNlKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZUZpZWxkVmFsdWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSB8fCBbXTtcbiAgICBjb25zdCB1cGRhdGVkSXRlbXMgPSBjYXNlRmllbGRWYWx1ZS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmFsdWUgJiYgaXRlbS52YWx1ZS5DYXNlUmVmZXJlbmNlICE9PSBzZWxlY3RlZENhc2VSZWZlcmVuY2UpO1xuICAgIGlmICh1cGRhdGVkSXRlbXMpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gdXBkYXRlZEl0ZW1zO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKHBvcywgMSk7XG4gICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2FzZVJlZmVyZW5jZSAhPT0gc2VsZWN0ZWRDYXNlUmVmZXJlbmNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5jYXNlUmVhc29uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IG51bGw7XG4gICAgdGhpcy5ub1NlbGVjdGVkQ2FzZUVycm9yID0gbnVsbDtcbiAgICBsZXQgbmF2aWdhdGVUb05leHRQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zdG9yZWRDYXNlTnVtYmVyID0gdGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlciA/PyAnJztcbiAgICBpZiAodGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLnNlbGVjdGVkQ2FzZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlU2VsZWN0aW9uRXJyb3I7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1zZWxlY3Rpb24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VTZWxlY3Rpb25FcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VSZWFzb24nXG4gICAgICB9KTtcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmVtaXRMaW5rZWRDYXNlc1N0YXRlKG5hdmlnYXRlVG9OZXh0UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IHRoaXMuc2VsZWN0ZWRDYXNlcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpIHtcbiAgICB0aGlzLm9uTmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiPkxpbmsgY2FzZXMgdG8ge3tjYXNlTmFtZX19IHt7Y2FzZUlkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPlxuICAgICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiPlNlbGVjdCBhJm5ic3A7Y2FzZSB5b3Ugd2FudCB0byBsaW5rIHRvIHRoaXMgY2FzZTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwibGlua0Nhc2VGb3JtXCIgKm5nSWY9XCJsaW5rQ2FzZUZvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBpZD1cImNhc2VOdW1iZXJcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFjYXNlTnVtYmVyRXJyb3J9XCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+RW50ZXIgY2FzZSByZWZlcmVuY2U8L2gzPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZU51bWJlckVycm9yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlTnVtYmVyRXJyb3J9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay1pbnB1dC0td2lkdGgtMjBcIiBmb3JtQ29udHJvbE5hbWU9XCJjYXNlTnVtYmVyXCIgaWQ9XCJ3aWR0aC0yMFwiIG5hbWU9XCJ3aWR0aC0yMFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFjYXNlUmVhc29uRXJyb3J9XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtM1wiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImdvdnVrLWhlYWRpbmctc1wiPldoeSBzaG91bGQgdGhlc2UgY2FzZXMgYmUgbGlua2VkPzwvaDM+XG4gICAgICAgICAgPGRpdiBpZD1cIndhc3RlLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgICAgICAgIFNlbGVjdCBhbGwgdGhhdCBhcHBseS5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImNhc2VSZWFzb25FcnJvclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7Y2FzZVJlYXNvbkVycm9yfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWNoZWNrYm94ZXNcIiBmb3JtQXJyYXlOYW1lPVwicmVhc29uVHlwZVwiIGlkPVwiY2FzZVJlYXNvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgcmVhc29uIG9mIGxpbmtDYXNlUmVhc29ucztpbmRleCBhcyBwb3NcIiBbZm9ybUdyb3VwTmFtZV09XCJwb3NcIj5cbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInt7cmVhc29uLmtleX19XCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRcIiBuYW1lPVwicG9zXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwicmVhc29uLnZhbHVlX2VuXCIgKGNoYW5nZSk9XCJ0b2dnbGVMaW5rQ2FzZVJlYXNvbk90aGVyQ29tbWVudHMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInt7cmVhc29uLmtleX19XCI+e3tyZWFzb24udmFsdWVfZW59fTwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJvdGhlci1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWVycm9yXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1mb3JtLWdyb3VwLS1lcnJvcic6ICEhY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3J9XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtM1wiICpuZ0lmPVwic2hvd0NvbW1lbnRzXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+Q29tbWVudHM8L2gzPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3JcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2Nhc2VSZWFzb25Db21tZW50c0Vycm9yfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZ292dWstdGV4dGFyZWEgZ292dWstaW5wdXQtLXdpZHRoLTMwXCIgaWQ9XCJvdGhlckRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJvdGhlckRlc2NyaXB0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJEZXNjcmlwdGlvblwiIHJvd3M9XCI1XCJcbiAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJvdGhlci1kZXNjcmlwdGlvbi1oaW50IG90aGVyLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtaW5mbyBvdGhlci1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWVycm9yXCI+XG4gICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICA8ZGl2IGlkPVwib3RoZXItZGVzY3JpcHRpb24tY2hhci1saW1pdC1pbmZvXCIgYXJpYS1saXZlPVwicG9saXRlXCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgWW91IGNhbiBlbnRlciB1cCB0byAxMDAgY2hhcmFjdGVyc1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJyPjxicj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlU2VsZWN0aW9uRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlU2VsZWN0aW9uRXJyb3J9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxidXR0b24gaWQ9XCJwcm9wb3NlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRDYXNlSW5mbygpXCI+UHJvcG9zZSBjYXNlIGxpbms8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGhyPlxuICAgICAgPGJyPjxicj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgaWQ9XCJjYXNlTnVtYmVyXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1mb3JtLWdyb3VwLS1lcnJvcic6ICEhbm9TZWxlY3RlZENhc2VFcnJvcn1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJub1NlbGVjdGVkQ2FzZUVycm9yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7bm9TZWxlY3RlZENhc2VFcnJvcn19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgICAgICA8Y2FwdGlvbiBjbGFzcz1cImdvdnVrLXRhYmxlX19jYXB0aW9uIGdvdnVrLXRhYmxlX19jYXB0aW9uLS1tXCI+UHJvcG9zZWQgY2FzZSBsaW5rcyA8L2NhcHRpb24+XG4gICAgICAgICAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIzMDBcIj5DYXNlIG5hbWUgYW5kIG51bWJlcjwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiMTUwXCI+Q2FzZSB0eXBlIDwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiMjAwXCI+U2VydmljZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiMjAwXCI+U3RhdGU8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiB3aWR0aD1cIjQwMFwiPlJlYXNvbnMgZm9yIGNhc2UgbGluazwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiNTBcIj48L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCI+XG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IGNhc2Ugb2Ygc2VsZWN0ZWRDYXNlczsgbGV0IHBvcyA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAtLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndGFibGUtZ3JvdXAtZXJyb3InOmNhc2VTZWxlY3Rpb25FcnJvciAmJiBjYXNlLmNhc2VSZWZlcmVuY2UgPT09IGxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyfVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7Y2FzZS5jYXNlTmFtZX19IDxicj4ge3tjYXNlLmNhc2VSZWZlcmVuY2UgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgW3RpdGxlXT1cImNhc2UuY2FzZVR5cGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5jYXNlVHlwZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e2Nhc2UuY2FzZVNlcnZpY2V9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgW3RpdGxlXT1cImNhc2UuY2FzZVN0YXRlRGVzY3JpcHRpb25cIj57e2Nhc2UuY2FzZVN0YXRlfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPjxzcGFuXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVhc29uIG9mIGNhc2UucmVhc29uc1wiPnt7cmVhc29uIHwgY2NkTGlua0Nhc2VzUmVhc29uVmFsdWV9fTxicj48L3NwYW4+PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj48YSBbYXR0ci5pZF09XCJjYXNlLmNhc2VSZWZlcmVuY2VcIiAoY2xpY2spPVwib25TZWxlY3RlZExpbmtlZENhc2VSZW1vdmUocG9zLCBjYXNlLmNhc2VSZWZlcmVuY2UpO1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWxpbmsgbm8tdmlzaXRlZC1zdGF0ZVwiPlJlbW92ZTwvYT48L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdJZj1cIiFzZWxlY3RlZENhc2VzLmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI2XCI+XG4gICAgICAgICAgICAgICAgTm9uZVxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
577
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvY29tcG9uZW50cy9saW5rLWNhc2VzL2xpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGluay1jYXNlcy9saW5rLWNhc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQWEsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQVE5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztJQ1Q3RCxBQURGLGdD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ZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldywgRXJyb3JNZXNzYWdlLCBIdHRwRXJyb3IsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTG92UmVmRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBDYXNlTGluayxcbiAgQ0NEQ2FzZUxpbmtUeXBlLFxuICBMaW5rQ2FzZVJlYXNvbixcbiAgTGlua1JlYXNvblxufSBmcm9tICcuLi8uLi9kb21haW4vbGlua2VkLWNhc2VzLm1vZGVsJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcywgUGF0dGVybnMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saW5rZWQtY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzLnV0aWxzJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbGluay1jYXNlcycsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FzZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExpbmtDYXNlc0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4oKTtcblxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGxpbmtDYXNlRm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgc2VsZWN0ZWRDYXNlczogQ2FzZUxpbmtbXSA9IFtdO1xuICBwdWJsaWMgY2FzZU51bWJlckVycm9yOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlUmVhc29uRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VSZWFzb25Db21tZW50c0Vycm9yOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlU2VsZWN0aW9uRXJyb3I6IHN0cmluZztcbiAgcHVibGljIG5vU2VsZWN0ZWRDYXNlRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgY2FzZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGxpbmtDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW107XG4gIHB1YmxpYyBzaG93Q29tbWVudHMgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBJU09fRk9STUFUID0gJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRvcnNVdGlsczogVmFsaWRhdG9yc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgbXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIobXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZDtcbiAgICB0aGlzLmNhc2VOYW1lID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZU5hbWU7XG4gICAgdGhpcy5saW5rQ2FzZVJlYXNvbnMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rQ2FzZVJlYXNvbnM7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIGlmICghdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaGFzTmF2aWdhdGVkSW5Kb3VybmV5KSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IFtdO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZWRpdE1vZGUgfHwgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMubGVuZ3RoKSB7XG4gICAgICAvLyB0aGlzIG1heSBoYXZlIGluY2x1ZGVzIHRoZSBjdXJyZW50bHkgYWRkZWQgb25lIGJ1dCB5ZXQgdG8gYmUgc3VibWl0dGVkLlxuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZmlsdGVyKChpdGVtKSA9PiAhdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rUmVmcy5pbmNsdWRlcyhpdGVtLmNhc2VSZWZlcmVuY2UpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua3MubGVuZ3RoICE9PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZU51bWJlciA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnN0b3JlZENhc2VOdW1iZXIgPz8gJyc7XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNhc2VOdW1iZXI6IFtjYXNlTnVtYmVyLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMTYpLCB0aGlzLnZhbGlkYXRvcnNVdGlscy5yZWdleFBhdHRlcm4oUGF0dGVybnMuQ0FTRV9SRUYpXV0sXG4gICAgICByZWFzb25UeXBlOiB0aGlzLmdldFJlYXNvblR5cGVGb3JtQXJyYXksXG4gICAgICBvdGhlckRlc2NyaXB0aW9uOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApXV1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0UmVhc29uVHlwZUZvcm1BcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KFxuICAgICAgdGhpcy5saW5rQ2FzZVJlYXNvbnMubWFwKCh2YWwpID0+XG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIGtleTogW3ZhbC5rZXldLFxuICAgICAgICAgIHZhbHVlX2VuOiBbdmFsLnZhbHVlX2VuXSxcbiAgICAgICAgICB2YWx1ZV9jeTogW3ZhbC52YWx1ZV9jeV0sXG4gICAgICAgICAgaGludF90ZXh0X2VuOiBbdmFsLmhpbnRfdGV4dF9lbl0sXG4gICAgICAgICAgaGludF90ZXh0X2N5OiBbdmFsLmhpbnRfdGV4dF9jeV0sXG4gICAgICAgICAgbG92X29yZGVyOiBbdmFsLmxvdl9vcmRlcl0sXG4gICAgICAgICAgcGFyZW50X2tleTogW3ZhbC5wYXJlbnRfa2V5XSxcbiAgICAgICAgICBzZWxlY3RlZDogWyEhdmFsLnNlbGVjdGVkXSxcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICB0aGlzLnZhbGlkYXRvcnNVdGlscy5mb3JtQXJyYXlTZWxlY3RlZFZhbGlkYXRvcigpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVMaW5rQ2FzZVJlYXNvbk90aGVyQ29tbWVudHMoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGlua0Nhc2VSZWFzb25zLmZpbmQoKHJlYXNvbikgPT4gcmVhc29uLnZhbHVlX2VuID09PSBldmVudC50YXJnZXQudmFsdWUpLnNlbGVjdGVkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XG4gICAgdGhpcy5zaG93Q29tbWVudHMgPSB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJyk/LnNlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdENhc2VJbmZvKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2FzZVJlYXNvbkVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VSZWFzb25Db21tZW50c0Vycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IG51bGw7XG4gICAgaWYgKFxuICAgICAgdGhpcy5saW5rQ2FzZUZvcm0udmFsaWQgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMuc2VsZWN0ZWRDYXNlcykgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSAmJlxuICAgICAgIXRoaXMuaXNDYXNlSW5Jbml0aWFsKHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIpICYmXG4gICAgICAhdGhpcy5pc0Nhc2VTZWxlY3RlZFNhbWVBc0N1cnJlbnRDYXNlKCkgJiZcbiAgICAgICF0aGlzLmlzT3RoZXJPcHRpb25TZWxlY3RlZEJ1dE90aGVyRGVzY3JpcHRpb25Ob3RFbnRlcmVkKClcbiAgICApIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnN0b3JlZENhc2VOdW1iZXIgPSAnJztcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmhhc05hdmlnYXRlZEluSm91cm5leSA9IHRydWU7XG4gICAgICB0aGlzLmdldENhc2VJbmZvKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0Vycm9ySW5mbygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Nhc2VTZWxlY3RlZChsaW5rZWRDYXNlczogQ2FzZUxpbmtbXSk6IGJvb2xlYW4ge1xuICAgIGlmIChsaW5rZWRDYXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY2FzZU51bWJlciA9IHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXI7XG4gICAgcmV0dXJuICEhbGlua2VkQ2FzZXMuZmluZChcbiAgICAgIChjYXNlTGluaykgPT4gY2FzZUxpbmsuY2FzZVJlZmVyZW5jZS5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKSA9PT0gY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaXNDYXNlSW5Jbml0aWFsKHByb3Bvc2VkQ2FzZUxpbms6IHN0cmluZyl7XG4gICAgaWYgKHByb3Bvc2VkQ2FzZUxpbmspe1xuICAgICAgLy8gaW5pdGlhbCBjYXNlIGxpbmtzIHdpbGwgbm90IGhhdmUgLSBpbiB0aGVtLCBhY2NvdW50IGZvciB0aGUgY2FzZSB3aGVyZSBhIHVzZXIgbWF5IHR5cGUgd2l0aCAtXG4gICAgICBwcm9wb3NlZENhc2VMaW5rID0gcHJvcG9zZWRDYXNlTGluay5yZXBsYWNlKC8tL2csICcnKS50cmltKCk7XG4gICAgICBjb25zdCBpbml0aWFsQ2FzZUxpbmtzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rUmVmcyB8fCBbXTtcbiAgICAgIHJldHVybiBpbml0aWFsQ2FzZUxpbmtzLmluY2x1ZGVzKHByb3Bvc2VkQ2FzZUxpbmspO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzQ2FzZVNlbGVjdGVkU2FtZUFzQ3VycmVudENhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIuc3BsaXQoJy0nKS5qb2luKCcnKS50cmltKCkgPT09IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZC5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPdGhlck9wdGlvblNlbGVjdGVkQnV0T3RoZXJEZXNjcmlwdGlvbk5vdEVudGVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0NvbW1lbnRzICYmIHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLm90aGVyRGVzY3JpcHRpb24udHJpbSgpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RXJyb3JJbmZvKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5jYXNlTnVtYmVyLmludmFsaWQpIHtcbiAgICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VOdW1iZXJFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZU51bWJlckVycm9yLFxuICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmNhc2VSZWFzb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5SZWFzb25TZWxlY3Rpb25FcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuUmVhc29uU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlUmVhc29uJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLnZhbGlkXG4gICAgICAmJiB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJykuc2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jYXNlUmVhc29uQ29tbWVudHNFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uRXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtcmVhc29uLWNvbW1lbnRzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLm90aGVyRGVzY3JpcHRpb25FcnJvcixcbiAgICAgICAgICBmaWVsZElkOiAnb3RoZXJEZXNjcmlwdGlvbidcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMub3RoZXJEZXNjcmlwdGlvbi52YWx1ZS50cmltKCkubGVuZ3RoID4gMTAwKSB7XG4gICAgICAgIHRoaXMuY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMub3RoZXJEZXNjcmlwdGlvbk1heExlbmd0aEVycm9yO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbi1jb21tZW50cycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uTWF4TGVuZ3RoRXJyb3IsXG4gICAgICAgICAgZmllbGRJZDogJ290aGVyRGVzY3JpcHRpb24nXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLnNlbGVjdGVkQ2FzZXMpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlUHJvcG9zZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVByb3Bvc2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSkge1xuICAgICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZXNMaW5rZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZXNMaW5rZWRFcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNDYXNlSW5Jbml0aWFsKHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlc0xpbmtlZEVycm9yO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtbnVtYmVyJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlc0xpbmtlZEVycm9yLFxuICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpLnRyaW0oKSA9PT0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkLnNwbGl0KCctJykuam9pbignJykudHJpbSgpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLlByb3Bvc2VkQ2FzZVdpdGhJbixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInXG4gICAgICB9KTtcbiAgICB9XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VJbmZvKCk6IHZvaWQge1xuICAgIGNvbnN0IGNhc2VOdW1iZXJEYXRhID0gdGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5yZXBsYWNlKC9bLSBdL2csICcnKS50cmltKCk7XG4gICAgdGhpcy5jYXNlc1NlcnZpY2VcbiAgICAgIC5nZXRDYXNlVmlld1YyKGNhc2VOdW1iZXJEYXRhKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGNhc2VWaWV3OiBDYXNlVmlldykgPT4ge1xuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzID0gY2FzZVZpZXc7XG4gICAgICAgICAgY29uc3QgY2FzZUxpbms6IENhc2VMaW5rID0ge1xuICAgICAgICAgICAgY2FzZVJlZmVyZW5jZTogY2FzZVZpZXcuY2FzZV9pZCxcbiAgICAgICAgICAgIHJlYXNvbnM6IHRoaXMuZ2V0U2VsZWN0ZWRDYXNlUmVhc29ucygpLFxuICAgICAgICAgICAgY3JlYXRlZERhdGVUaW1lOiBtb21lbnQobmV3IERhdGUoKSkuZm9ybWF0KHRoaXMuSVNPX0ZPUk1BVCksXG4gICAgICAgICAgICBjYXNlVHlwZTogY2FzZVZpZXcuY2FzZV90eXBlLm5hbWUgfHwgJycsXG4gICAgICAgICAgICBjYXNlVHlwZURlc2NyaXB0aW9uOiBjYXNlVmlldy5jYXNlX3R5cGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlU3RhdGU6IGNhc2VWaWV3LnN0YXRlLm5hbWUgfHwgJycsXG4gICAgICAgICAgICBjYXNlU3RhdGVEZXNjcmlwdGlvbjogY2FzZVZpZXcuc3RhdGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlU2VydmljZTogY2FzZVZpZXcuY2FzZV90eXBlICYmIGNhc2VWaWV3LmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24gJiYgY2FzZVZpZXcuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgICAgIGNhc2VOYW1lOiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShjYXNlVmlldylcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGNjZEFwaUNhc2VMaW5rRGF0YTogQ0NEQ2FzZUxpbmtUeXBlID0ge1xuICAgICAgICAgICAgQ2FzZVJlZmVyZW5jZTogY2FzZVZpZXcuY2FzZV9pZCxcbiAgICAgICAgICAgIENhc2VUeXBlOiBjYXNlVmlldy5jYXNlX3R5cGUuaWQsXG4gICAgICAgICAgICBDcmVhdGVkRGF0ZVRpbWU6IG1vbWVudChuZXcgRGF0ZSgpKS5mb3JtYXQodGhpcy5JU09fRk9STUFUKSxcbiAgICAgICAgICAgIFJlYXNvbkZvckxpbms6IHRoaXMuZ2V0U2VsZWN0ZWRDQ0RUeXBlQ2FzZVJlYXNvbigpXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5wdXNoKHsgaWQ6IGNhc2VWaWV3LmNhc2VfaWQudG9TdHJpbmcoKSwgdmFsdWU6IGNjZEFwaUNhc2VMaW5rRGF0YSB9KTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjYXNlTGluayk7XG4gICAgICAgICAgdGhpcy5saW5rQ2FzZVJlYXNvbnMuZm9yRWFjaCgocmVhc29uKSA9PiByZWFzb24uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IEh0dHBFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VDaGVja0FnYWluRXJyb3I7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VDaGVja0FnYWluRXJyb3IsXG4gICAgICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmVtaXRMaW5rZWRDYXNlc1N0YXRlKGZhbHNlKTtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgLy8gUmV0dXJuIGxpbmtlZCBjYXNlcyBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICBwdWJsaWMgZW1pdExpbmtlZENhc2VzU3RhdGUoaXNOYXZpZ2F0ZVRvTmV4dFBhZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtlZENhc2VzU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudExpbmtlZENhc2VzUGFnZTogTGlua2VkQ2FzZXNQYWdlcy5MSU5LX0NBU0UsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2U6IGlzTmF2aWdhdGVUb05leHRQYWdlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRDYXNlUmVhc29ucygpOiBMaW5rUmVhc29uW10ge1xuICAgIGNvbnN0IHNlbGVjdGVkUmVhc29ucyA9IFtdO1xuICAgIHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLnJlYXNvblR5cGUudmFsdWUuZm9yRWFjaChcbiAgICAgIChzZWxlY3RlZFJlYXNvbjogTGlua0Nhc2VSZWFzb24pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkUmVhc29uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgc2VsZWN0ZWRSZWFzb25zLnB1c2goe1xuICAgICAgICAgICAgUmVhc29uOiBzZWxlY3RlZFJlYXNvbi5rZXksXG4gICAgICAgICAgICBPdGhlckRlc2NyaXB0aW9uOiBzZWxlY3RlZFJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJ1xuICAgICAgICAgICAgICA/IHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLm90aGVyRGVzY3JpcHRpb24udmFsdWVcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH0gYXMgTGlua1JlYXNvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBzZWxlY3RlZFJlYXNvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRDQ0RUeXBlQ2FzZVJlYXNvbigpOiBMaW5rUmVhc29uW10ge1xuICAgIGNvbnN0IHNlbGVjdGVkUmVhc29ucyA9IFtdO1xuICAgIHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLnJlYXNvblR5cGUudmFsdWUuZm9yRWFjaChcbiAgICAgIChzZWxlY3RlZFJlYXNvbjogTGlua0Nhc2VSZWFzb24pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkUmVhc29uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgc2VsZWN0ZWRSZWFzb25zLnB1c2goe1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgUmVhc29uOiBzZWxlY3RlZFJlYXNvbi5rZXksXG4gICAgICAgICAgICAgIE90aGVyRGVzY3JpcHRpb246IHNlbGVjdGVkUmVhc29uLnZhbHVlX2VuID09PSAnT3RoZXInXG4gICAgICAgICAgICAgICAgPyB0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRSZWFzb25zO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWRMaW5rZWRDYXNlUmVtb3ZlKHBvcywgc2VsZWN0ZWRDYXNlUmVmZXJlbmNlKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZUZpZWxkVmFsdWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSB8fCBbXTtcbiAgICBjb25zdCB1cGRhdGVkSXRlbXMgPSBjYXNlRmllbGRWYWx1ZS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmFsdWUgJiYgaXRlbS52YWx1ZS5DYXNlUmVmZXJlbmNlICE9PSBzZWxlY3RlZENhc2VSZWZlcmVuY2UpO1xuICAgIGlmICh1cGRhdGVkSXRlbXMpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gdXBkYXRlZEl0ZW1zO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKHBvcywgMSk7XG4gICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2FzZVJlZmVyZW5jZSAhPT0gc2VsZWN0ZWRDYXNlUmVmZXJlbmNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5jYXNlUmVhc29uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IG51bGw7XG4gICAgdGhpcy5ub1NlbGVjdGVkQ2FzZUVycm9yID0gbnVsbDtcbiAgICBsZXQgbmF2aWdhdGVUb05leHRQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zdG9yZWRDYXNlTnVtYmVyID0gdGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlciA/PyAnJztcbiAgICBpZiAodGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLnNlbGVjdGVkQ2FzZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlU2VsZWN0aW9uRXJyb3I7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1zZWxlY3Rpb24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VTZWxlY3Rpb25FcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VSZWFzb24nXG4gICAgICB9KTtcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmVtaXRMaW5rZWRDYXNlc1N0YXRlKG5hdmlnYXRlVG9OZXh0UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IHRoaXMuc2VsZWN0ZWRDYXNlcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpIHtcbiAgICB0aGlzLm9uTmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiPkxpbmsgY2FzZXMgdG8ge3tjYXNlTmFtZX19IHt7Y2FzZUlkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPlxuICAgICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiPlNlbGVjdCBhJm5ic3A7Y2FzZSB5b3Ugd2FudCB0byBsaW5rIHRvIHRoaXMgY2FzZTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwibGlua0Nhc2VGb3JtXCIgKm5nSWY9XCJsaW5rQ2FzZUZvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBpZD1cImNhc2VOdW1iZXJcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFjYXNlTnVtYmVyRXJyb3J9XCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+RW50ZXIgY2FzZSByZWZlcmVuY2U8L2gzPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZU51bWJlckVycm9yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlTnVtYmVyRXJyb3J9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay1pbnB1dC0td2lkdGgtMjBcIiBmb3JtQ29udHJvbE5hbWU9XCJjYXNlTnVtYmVyXCIgaWQ9XCJ3aWR0aC0yMFwiIG5hbWU9XCJ3aWR0aC0yMFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFjYXNlUmVhc29uRXJyb3J9XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtM1wiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImdvdnVrLWhlYWRpbmctc1wiPldoeSBzaG91bGQgdGhlc2UgY2FzZXMgYmUgbGlua2VkPzwvaDM+XG4gICAgICAgICAgPGRpdiBpZD1cIndhc3RlLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgICAgICAgIFNlbGVjdCBhbGwgdGhhdCBhcHBseS5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImNhc2VSZWFzb25FcnJvclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7Y2FzZVJlYXNvbkVycm9yfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWNoZWNrYm94ZXNcIiBmb3JtQXJyYXlOYW1lPVwicmVhc29uVHlwZVwiIGlkPVwiY2FzZVJlYXNvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgcmVhc29uIG9mIGxpbmtDYXNlUmVhc29ucztpbmRleCBhcyBwb3NcIiBbZm9ybUdyb3VwTmFtZV09XCJwb3NcIj5cbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInt7cmVhc29uLmtleX19XCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRcIiBuYW1lPVwicG9zXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwicmVhc29uLnZhbHVlX2VuXCIgKGNoYW5nZSk9XCJ0b2dnbGVMaW5rQ2FzZVJlYXNvbk90aGVyQ29tbWVudHMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInt7cmVhc29uLmtleX19XCI+e3tyZWFzb24udmFsdWVfZW59fTwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJvdGhlci1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWVycm9yXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1mb3JtLWdyb3VwLS1lcnJvcic6ICEhY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3J9XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtM1wiICpuZ0lmPVwic2hvd0NvbW1lbnRzXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+Q29tbWVudHM8L2gzPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3JcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2Nhc2VSZWFzb25Db21tZW50c0Vycm9yfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZ292dWstdGV4dGFyZWEgZ292dWstaW5wdXQtLXdpZHRoLTMwXCIgaWQ9XCJvdGhlckRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJvdGhlckRlc2NyaXB0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJEZXNjcmlwdGlvblwiIHJvd3M9XCI1XCJcbiAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJvdGhlci1kZXNjcmlwdGlvbi1oaW50IG90aGVyLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtaW5mbyBvdGhlci1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWVycm9yXCI+XG4gICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICA8ZGl2IGlkPVwib3RoZXItZGVzY3JpcHRpb24tY2hhci1saW1pdC1pbmZvXCIgYXJpYS1saXZlPVwicG9saXRlXCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgWW91IGNhbiBlbnRlciB1cCB0byAxMDAgY2hhcmFjdGVyc1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJyPjxicj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlU2VsZWN0aW9uRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlU2VsZWN0aW9uRXJyb3J9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxidXR0b24gaWQ9XCJwcm9wb3NlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRDYXNlSW5mbygpXCI+UHJvcG9zZSBjYXNlIGxpbms8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGhyPlxuICAgICAgPGJyPjxicj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgaWQ9XCJjYXNlTnVtYmVyXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1mb3JtLWdyb3VwLS1lcnJvcic6ICEhbm9TZWxlY3RlZENhc2VFcnJvcn1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJub1NlbGVjdGVkQ2FzZUVycm9yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7bm9TZWxlY3RlZENhc2VFcnJvcn19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgICAgICA8Y2FwdGlvbiBjbGFzcz1cImdvdnVrLXRhYmxlX19jYXB0aW9uIGdvdnVrLXRhYmxlX19jYXB0aW9uLS1tXCI+UHJvcG9zZWQgY2FzZSBsaW5rcyA8L2NhcHRpb24+XG4gICAgICAgICAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIzMDBcIj5DYXNlIG5hbWUgYW5kIG51bWJlcjwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiMTUwXCI+Q2FzZSB0eXBlIDwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiMjAwXCI+U2VydmljZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiMjAwXCI+U3RhdGU8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiB3aWR0aD1cIjQwMFwiPlJlYXNvbnMgZm9yIGNhc2UgbGluazwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiNTBcIj48L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCI+XG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IGNhc2Ugb2Ygc2VsZWN0ZWRDYXNlczsgbGV0IHBvcyA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAtLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndGFibGUtZ3JvdXAtZXJyb3InOmNhc2VTZWxlY3Rpb25FcnJvciAmJiBjYXNlLmNhc2VSZWZlcmVuY2UgPT09IGxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyfVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7Y2FzZS5jYXNlTmFtZX19IDxicj4ge3tjYXNlLmNhc2VSZWZlcmVuY2UgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgW3RpdGxlXT1cImNhc2UuY2FzZVR5cGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5jYXNlVHlwZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e2Nhc2UuY2FzZVNlcnZpY2V9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgW3RpdGxlXT1cImNhc2UuY2FzZVN0YXRlRGVzY3JpcHRpb25cIj57e2Nhc2UuY2FzZVN0YXRlfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPjxzcGFuXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVhc29uIG9mIGNhc2UucmVhc29uc1wiPnt7cmVhc29uIHwgY2NkTGlua0Nhc2VzUmVhc29uVmFsdWV9fTxicj48L3NwYW4+PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj48YSBbYXR0ci5pZF09XCJjYXNlLmNhc2VSZWZlcmVuY2VcIiAoY2xpY2spPVwib25TZWxlY3RlZExpbmtlZENhc2VSZW1vdmUocG9zLCBjYXNlLmNhc2VSZWZlcmVuY2UpO1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWxpbmsgbm8tdmlzaXRlZC1zdGF0ZVwiPlJlbW92ZTwvYT48L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdJZj1cIiFzZWxlY3RlZENhc2VzLmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI2XCI+XG4gICAgICAgICAgICAgICAgTm9uZVxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -224,7 +224,7 @@ export class LinkedCasesFromTableComponent {
224
224
  ? 'Hide'
225
225
  : 'Show';
226
226
  }
227
- static ɵfac = function LinkedCasesFromTableComponent_Factory(t) { return new (t || LinkedCasesFromTableComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.CasesService), i0.ɵɵdirectiveInject(i3.LinkedCasesService)); };
227
+ static ɵfac = function LinkedCasesFromTableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LinkedCasesFromTableComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.CasesService), i0.ɵɵdirectiveInject(i3.LinkedCasesService)); };
228
228
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LinkedCasesFromTableComponent, selectors: [["ccd-linked-cases-from-table"]], inputs: { caseField: "caseField" }, outputs: { notifyAPIFailure: "notifyAPIFailure" }, decls: 2, vars: 2, consts: [["id", "show-hide-link", "class", "govuk-link", "href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["aria-describedby", "table to display cases linked from", 4, "ngIf"], ["id", "show-hide-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["aria-describedby", "table to display cases linked from"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["scope", "col", "width", "20%", 1, "govuk-table__header", "case-table-column"], ["class", "govuk-table__body", 4, "ngIf"], [1, "govuk-table__body"], ["class", "govuk-table__row", 4, "ngFor", "ngForOf"], ["class", "govuk-table__row", 4, "ngIf"], [1, "govuk-table__header", "case-table-column", "width-20"], [1, "govuk-body"], ["target", "_blank", "rel", "noopener", 1, "govuk-link", 3, "href"], [1, "case-table-column"], [3, "title"], ["class", "case-table-column", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-padding-left-1", 3, "href", 4, "ngIf"], [4, "ngIf"], [1, "govuk-!-padding-left-1", 3, "href"], ["colspan", "5", 1, "govuk-table__cell"]], template: function LinkedCasesFromTableComponent_Template(rf, ctx) { if (rf & 1) {
229
229
  i0.ɵɵtemplate(0, LinkedCasesFromTableComponent_a_0_Template, 2, 1, "a", 0)(1, LinkedCasesFromTableComponent_table_1_Template, 14, 1, "table", 1);
230
230
  } if (rf & 2) {
@@ -242,4 +242,4 @@ export class LinkedCasesFromTableComponent {
242
242
  type: Output
243
243
  }] }); })();
244
244
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LinkedCasesFromTableComponent, { className: "LinkedCasesFromTableComponent", filePath: "lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.ts", lineNumber: 17 }); })();
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLWZyb20tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztJQ1JwRCw0QkFDc0I7SUFBcEIsa0xBQVMsZ0JBQVMsS0FBQztJQUFDLFlBQW9CO0lBQUEsaUJBQUk7OztJQUF4QixjQUFvQjtJQUFwQiw2Q0FBb0I7OztJQXdCYyw2QkFFUztJQUFBLFlBQTRDO0lBQUEsaUJBQUk7Ozs7SUFEckcscUdBQWtEO0lBQ0csY0FBNEM7SUFBNUMsd0VBQTRDOzs7SUFDckcscUJBQXNCOzs7SUFKdEIsNEJB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RUFBRSxVQUFVO1FBQzlELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sb0JBQW9CLENBQUMsT0FBZTtRQUN6QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLHlCQUF5QixDQUFDLFVBQWtCO1FBQ2pELE9BQU8sVUFBVSxLQUFLLDZCQUE2QixDQUFDLHlCQUF5QjtZQUMzRSxVQUFVLEtBQUssNkJBQTZCLENBQUMsNkJBQTZCLENBQUM7SUFDL0UsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixLQUFLLE1BQU07WUFDdEQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQzt1RkFoR1UsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7WUNkMUMsQUFGQSwwRUFDc0Isc0VBRWtDOztZQUhwRCwrREFBc0M7WUFFbEMsY0FBOEU7WUFBOUUseUdBQThFOzs7aUZEY3pFLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLDZCQUE2QjsyR0FXaEMsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFSSSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBMb3ZSZWZEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTGlua1Jlc3BvbnNlLCBMaW5rZWRDYXNlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rZWQtY2FzZXMtZnJvbS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTkFNRV9NSVNTSU5HX1RFWFQgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSA9ICdDTFJDMDE1JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSA9ICdDTFJDMDE2JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBub3RpZnlBUElGYWlsdXJlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIHBhcmVudFVybDogc3RyaW5nO1xuICBwdWJsaWMgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlOiBDYXNlTGlua1Jlc3BvbnNlW107XG4gIHB1YmxpYyBsaW5rZWRDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW107XG5cbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgc2hvd0hpZGVMaW5rVGV4dCA9ICdTaG93JztcbiAgcHVibGljIG5vTGlua2VkQ2FzZXMgPSB0cnVlO1xuICBwdWJsaWMgaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGxhYmVsRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjYXNlLXZpZXdlci1sYWJlbCcpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH1cbiAgICB0aGlzLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hQYWdlRGF0YSgpIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfaWQ7XG4gICAgdGhpcy5nZXRMaW5rZWRDYXNlcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdldExpbmtlZENhc2VzUmVzcG9uc2UgPSByZXNwb25zZS5saW5rZWRDYXNlcyAmJiByZXNwb25zZS5saW5rZWRDYXNlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZXR5cGUgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdDQVNFX1RZUEUnLCBpdGVtLmNjZENhc2VUeXBlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNldHlwZURlc2NyaXB0aW9uID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnQ0FTRV9UWVBFX0RFU0NSSVBUSU9OJywgaXRlbS5jY2RDYXNlVHlwZSk7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZVN0YXRlID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnU1RBVEUnLCBpdGVtLnN0YXRlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNlU3RhdGVEZXNjcmlwdGlvbiA9IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ1NUQVRFX0RFU0NSSVBUSU9OJywgaXRlbS5zdGF0ZSk7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZVNlcnZpY2UgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdKVVJJU0RJQ1RJT04nLCBpdGVtLmNjZEp1cmlzZGljdGlvbik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBjY2RDYXNlVHlwZTogbWFwcGVkQ2FzZXR5cGUsXG4gICAgICAgICAgICBjY2RDYXNlVHlwZURlc2NyaXB0aW9uOiBtYXBwZWRDYXNldHlwZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgY2NkSnVyaXNkaWN0aW9uOiBtYXBwZWRDYXNlU2VydmljZSxcbiAgICAgICAgICAgIHN0YXRlOiBtYXBwZWRDYXNlU3RhdGUsXG4gICAgICAgICAgICBzdGF0ZURlc2NyaXB0aW9uOiBtYXBwZWRDYXNlU3RhdGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGNhc2VOYW1lSG1jdHNJbnRlcm5hbDogaXRlbS5jYXNlTmFtZUhtY3RzSW50ZXJuYWwgfHwgTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCxcbiAgICAgICAgICAgIGxpbmtEZXRhaWxzOiBpdGVtLmxpbmtEZXRhaWxzXG4gICAgICAgICAgfSBhcyBDYXNlTGlua1Jlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ub0xpbmtlZENhc2VzID0gIXJlc3BvbnNlLmxpbmtlZENhc2VzIHx8ICFyZXNwb25zZS5saW5rZWRDYXNlcy5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ub3RpZnlBUElGYWlsdXJlLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogT2JzZXJ2YWJsZTxMaW5rZWRDYXNlc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZXNTZXJ2aWNlLmdldExpbmtlZENhc2VzKHRoaXMuY2FzZUlkKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VSZWZlcmVuY2VMaW5rKGNhc2VSZWY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNhc2VSZWYuc2xpY2UodGhpcy5jYXNlSWQubGVuZ3RoIC0gNCk7XG4gIH1cblxuICBwdWJsaWMgaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb25Db2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSB8fFxuICAgICAgcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9DT05TT0xJREFURURfUkVBU09OX0NPREU7XG4gIH1cblxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIaWRlTGlua1RleHQgPSB0aGlzLnNob3dIaWRlTGlua1RleHQgPT09ICdTaG93J1xuICAgICAgPyAnSGlkZSdcbiAgICAgIDogJ1Nob3cnO1xuICB9XG59XG4iLCI8YSAqbmdJZj1cIiFub0xpbmtlZENhc2VzICYmICFpc1NlcnZlckVycm9yXCIgaWQ9XCJzaG93LWhpZGUtbGlua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAoY2xpY2spPVwib25DbGljaygpXCI+e3tzaG93SGlkZUxpbmtUZXh0fX08L2E+XG48dGFibGUgKm5nSWY9XCIoZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiBzaG93SGlkZUxpbmtUZXh0ID09PSAnSGlkZScpIHx8IG5vTGlua2VkQ2FzZXNcIlxuICBhcmlhLWRlc2NyaWJlZGJ5PVwidGFibGUgdG8gZGlzcGxheSBjYXNlcyBsaW5rZWQgZnJvbVwiPlxuICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+Q2FzZSBuYW1lIGFuZCBudW1iZXI8L3RoPlxuICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U2VydmljZTwvdGg+XG4gICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlN0YXRlPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiICpuZ0lmPVwiZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiAoIWlzU2VydmVyRXJyb3IgJiYgIWlzU2VydmVyUmVhc29uQ29kZUVycm9yKVwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uIHdpZHRoLTIwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJjYXNlcy9jYXNlLWRldGFpbHMve3tjYXNlLmNhc2VSZWZlcmVuY2V9fVwiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lclwiPjxzcGFuPnt7Y2FzZS5jYXNlTmFtZUhtY3RzSW50ZXJuYWx9fSA8YnI+XG4gICAgICAgICAgICAgIHt7Y2FzZS5jYXNlUmVmZXJlbmNlIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPjwvYT48L3A+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIj48c3BhbiBbdGl0bGVdPVwiY2FzZS5jY2RDYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNjZENhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNhc2UtdGFibGUtY29sdW1uXCI+PHNwYW4+e3tjYXNlLmNjZEp1cmlzZGljdGlvbn19PC9zcGFuPjwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJjYXNlLXRhYmxlLWNvbHVtblwiPjxzcGFuIFt0aXRsZV09XCJjYXNlLnN0YXRlRGVzY3JpcHRpb25cIj57e2Nhc2Uuc3RhdGV9fTwvc3Bhbj48L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBjYXNlLmxpbmtEZXRhaWxzXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCByZWFzb24gb2YgZGV0YWlscy5yZWFzb25zOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgIHt7cmVhc29uIHwgY2NkTGlua0Nhc2VzRnJvbVJlYXNvblZhbHVlfX08c3Bhbj48YSBjbGFzcz1cImdvdnVrLSEtcGFkZGluZy1sZWZ0LTFcIlxuICAgICAgICAgICAgaHJlZj1cImNhc2VzL2Nhc2UtZGV0YWlscy97eyBjYXNlLmNhc2VSZWZlcmVuY2UgfX1cIlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNMZWFkQ2FzZU9yQ29uc29saWRhdGVkKHJlYXNvbi5yZWFzb25Db2RlKVwiPnt7Z2V0Q2FzZVJlZmVyZW5jZUxpbmsoY2FzZS5jYXNlUmVmZXJlbmNlKX19PC9hPjwvc3Bhbj5cbiAgICAgICAgPGJyICpuZ0lmPVwiIWlzTGFzdFwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nSWY9XCJub0xpbmtlZENhc2VzXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI1XCI+XG4gICAgICAgIE5vbmVcbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICA8L3Rib2R5PiAgXG48L3RhYmxlPlxuIl19
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLWZyb20tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztJQ1JwRCw0QkFDc0I7SUFBcEIsa0xBQVMsZ0JBQVMsS0FBQztJQUFDLFlBQW9CO0lBQUEsaUJBQUk7OztJQUF4QixjQUFvQjtJQUFwQiw2Q0FBb0I7OztJQXdCYyw2QkFFUztJQUFBLFlBQTRDO0lBQUEsaUJBQUk7Ozs7SUFEckcscUdBQWtEO0lBQ0csY0FBNEM7SUFBNUMsd0VBQTRDOzs7SUFDckcscUJBQXNCOzs7SUFKdEIsNEJB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RUFBRSxVQUFVO1FBQzlELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sb0JBQW9CLENBQUMsT0FBZTtRQUN6QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLHlCQUF5QixDQUFDLFVBQWtCO1FBQ2pELE9BQU8sVUFBVSxLQUFLLDZCQUE2QixDQUFDLHlCQUF5QjtZQUMzRSxVQUFVLEtBQUssNkJBQTZCLENBQUMsNkJBQTZCLENBQUM7SUFDL0UsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixLQUFLLE1BQU07WUFDdEQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQzt1SEFoR1UsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7WUNkMUMsQUFGQSwwRUFDc0Isc0VBRWtDOztZQUhwRCwrREFBc0M7WUFFbEMsY0FBOEU7WUFBOUUseUdBQThFOzs7aUZEY3pFLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLDZCQUE2QjsyR0FXaEMsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFSSSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBMb3ZSZWZEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTGlua1Jlc3BvbnNlLCBMaW5rZWRDYXNlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rZWQtY2FzZXMtZnJvbS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtZnJvbS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmtlZC1jYXNlcy1mcm9tLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTkFNRV9NSVNTSU5HX1RFWFQgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSA9ICdDTFJDMDE1JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSA9ICdDTFJDMDE2JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBub3RpZnlBUElGYWlsdXJlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIHBhcmVudFVybDogc3RyaW5nO1xuICBwdWJsaWMgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlOiBDYXNlTGlua1Jlc3BvbnNlW107XG4gIHB1YmxpYyBsaW5rZWRDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW107XG5cbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgc2hvd0hpZGVMaW5rVGV4dCA9ICdTaG93JztcbiAgcHVibGljIG5vTGlua2VkQ2FzZXMgPSB0cnVlO1xuICBwdWJsaWMgaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGxhYmVsRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjYXNlLXZpZXdlci1sYWJlbCcpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH1cbiAgICB0aGlzLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hQYWdlRGF0YSgpIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfaWQ7XG4gICAgdGhpcy5nZXRMaW5rZWRDYXNlcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdldExpbmtlZENhc2VzUmVzcG9uc2UgPSByZXNwb25zZS5saW5rZWRDYXNlcyAmJiByZXNwb25zZS5saW5rZWRDYXNlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZXR5cGUgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdDQVNFX1RZUEUnLCBpdGVtLmNjZENhc2VUeXBlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNldHlwZURlc2NyaXB0aW9uID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnQ0FTRV9UWVBFX0RFU0NSSVBUSU9OJywgaXRlbS5jY2RDYXNlVHlwZSk7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZVN0YXRlID0gdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnU1RBVEUnLCBpdGVtLnN0YXRlKTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRDYXNlU3RhdGVEZXNjcmlwdGlvbiA9IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ1NUQVRFX0RFU0NSSVBUSU9OJywgaXRlbS5zdGF0ZSk7XG4gICAgICAgICAgY29uc3QgbWFwcGVkQ2FzZVNlcnZpY2UgPSB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdKVVJJU0RJQ1RJT04nLCBpdGVtLmNjZEp1cmlzZGljdGlvbik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBjY2RDYXNlVHlwZTogbWFwcGVkQ2FzZXR5cGUsXG4gICAgICAgICAgICBjY2RDYXNlVHlwZURlc2NyaXB0aW9uOiBtYXBwZWRDYXNldHlwZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgY2NkSnVyaXNkaWN0aW9uOiBtYXBwZWRDYXNlU2VydmljZSxcbiAgICAgICAgICAgIHN0YXRlOiBtYXBwZWRDYXNlU3RhdGUsXG4gICAgICAgICAgICBzdGF0ZURlc2NyaXB0aW9uOiBtYXBwZWRDYXNlU3RhdGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGNhc2VOYW1lSG1jdHNJbnRlcm5hbDogaXRlbS5jYXNlTmFtZUhtY3RzSW50ZXJuYWwgfHwgTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCxcbiAgICAgICAgICAgIGxpbmtEZXRhaWxzOiBpdGVtLmxpbmtEZXRhaWxzXG4gICAgICAgICAgfSBhcyBDYXNlTGlua1Jlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ub0xpbmtlZENhc2VzID0gIXJlc3BvbnNlLmxpbmtlZENhc2VzIHx8ICFyZXNwb25zZS5saW5rZWRDYXNlcy5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ub3RpZnlBUElGYWlsdXJlLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogT2JzZXJ2YWJsZTxMaW5rZWRDYXNlc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZXNTZXJ2aWNlLmdldExpbmtlZENhc2VzKHRoaXMuY2FzZUlkKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VSZWZlcmVuY2VMaW5rKGNhc2VSZWY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNhc2VSZWYuc2xpY2UodGhpcy5jYXNlSWQubGVuZ3RoIC0gNCk7XG4gIH1cblxuICBwdWJsaWMgaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb25Db2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSB8fFxuICAgICAgcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQuQ0FTRV9DT05TT0xJREFURURfUkVBU09OX0NPREU7XG4gIH1cblxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIaWRlTGlua1RleHQgPSB0aGlzLnNob3dIaWRlTGlua1RleHQgPT09ICdTaG93J1xuICAgICAgPyAnSGlkZSdcbiAgICAgIDogJ1Nob3cnO1xuICB9XG59XG4iLCI8YSAqbmdJZj1cIiFub0xpbmtlZENhc2VzICYmICFpc1NlcnZlckVycm9yXCIgaWQ9XCJzaG93LWhpZGUtbGlua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAoY2xpY2spPVwib25DbGljaygpXCI+e3tzaG93SGlkZUxpbmtUZXh0fX08L2E+XG48dGFibGUgKm5nSWY9XCIoZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiBzaG93SGlkZUxpbmtUZXh0ID09PSAnSGlkZScpIHx8IG5vTGlua2VkQ2FzZXNcIlxuICBhcmlhLWRlc2NyaWJlZGJ5PVwidGFibGUgdG8gZGlzcGxheSBjYXNlcyBsaW5rZWQgZnJvbVwiPlxuICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+Q2FzZSBuYW1lIGFuZCBudW1iZXI8L3RoPlxuICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U2VydmljZTwvdGg+XG4gICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlN0YXRlPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiICpuZ0lmPVwiZ2V0TGlua2VkQ2FzZXNSZXNwb25zZSAmJiAoIWlzU2VydmVyRXJyb3IgJiYgIWlzU2VydmVyUmVhc29uQ29kZUVycm9yKVwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBnZXRMaW5rZWRDYXNlc1Jlc3BvbnNlXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uIHdpZHRoLTIwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZ292dWstbGlua1wiIGhyZWY9XCJjYXNlcy9jYXNlLWRldGFpbHMve3tjYXNlLmNhc2VSZWZlcmVuY2V9fVwiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lclwiPjxzcGFuPnt7Y2FzZS5jYXNlTmFtZUhtY3RzSW50ZXJuYWx9fSA8YnI+XG4gICAgICAgICAgICAgIHt7Y2FzZS5jYXNlUmVmZXJlbmNlIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPjwvYT48L3A+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIj48c3BhbiBbdGl0bGVdPVwiY2FzZS5jY2RDYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNjZENhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNhc2UtdGFibGUtY29sdW1uXCI+PHNwYW4+e3tjYXNlLmNjZEp1cmlzZGljdGlvbn19PC9zcGFuPjwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJjYXNlLXRhYmxlLWNvbHVtblwiPjxzcGFuIFt0aXRsZV09XCJjYXNlLnN0YXRlRGVzY3JpcHRpb25cIj57e2Nhc2Uuc3RhdGV9fTwvc3Bhbj48L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiY2FzZS10YWJsZS1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBjYXNlLmxpbmtEZXRhaWxzXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCByZWFzb24gb2YgZGV0YWlscy5yZWFzb25zOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgIHt7cmVhc29uIHwgY2NkTGlua0Nhc2VzRnJvbVJlYXNvblZhbHVlfX08c3Bhbj48YSBjbGFzcz1cImdvdnVrLSEtcGFkZGluZy1sZWZ0LTFcIlxuICAgICAgICAgICAgaHJlZj1cImNhc2VzL2Nhc2UtZGV0YWlscy97eyBjYXNlLmNhc2VSZWZlcmVuY2UgfX1cIlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNMZWFkQ2FzZU9yQ29uc29saWRhdGVkKHJlYXNvbi5yZWFzb25Db2RlKVwiPnt7Z2V0Q2FzZVJlZmVyZW5jZUxpbmsoY2FzZS5jYXNlUmVmZXJlbmNlKX19PC9hPjwvc3Bhbj5cbiAgICAgICAgPGJyICpuZ0lmPVwiIWlzTGFzdFwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nSWY9XCJub0xpbmtlZENhc2VzXCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI1XCI+XG4gICAgICAgIE5vbmVcbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICA8L3Rib2R5PiAgXG48L3RhYmxlPlxuIl19
@@ -265,7 +265,7 @@ export class LinkedCasesToTableComponent {
265
265
  reasons: caseInfo?.value?.ReasonForLink
266
266
  };
267
267
  }
268
- static ɵfac = function LinkedCasesToTableComponent_Factory(t) { return new (t || LinkedCasesToTableComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.CasesService)); };
268
+ static ɵfac = function LinkedCasesToTableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LinkedCasesToTableComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.CasesService)); };
269
269
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LinkedCasesToTableComponent, selectors: [["ccd-linked-cases-to-table"]], inputs: { caseField: "caseField" }, outputs: { notifyAPIFailure: "notifyAPIFailure" }, decls: 3, vars: 1, consts: [[1, "govuk-grid-row", "govuk-!-margin-bottom-2"], [1, "govuk-grid-column-full"], ["aria-describedby", "table to display cases linked TO", 4, "ngIf"], ["aria-describedby", "table to display cases linked TO"], [1, "govuk-table__row"], ["scope", "col", "width", "20%", 1, "govuk-table__header", "case-table-column"], [1, "govuk-table__body"], ["class", "govuk-table__row", 4, "ngFor", "ngForOf"], ["class", "govuk-table__row", 4, "ngIf"], [1, "govuk-body"], ["target", "_blank", "rel", "noopener", 3, "href"], [1, "govuk-link"], [3, "title"], [4, "ngIf"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-padding-left-1", 3, "href", 4, "ngIf"], [1, "govuk-!-padding-left-1", 3, "href"], ["colspan", "5", 1, "govuk-table__cell"]], template: function LinkedCasesToTableComponent_Template(rf, ctx) { if (rf & 1) {
270
270
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
271
271
  i0.ɵɵtemplate(2, LinkedCasesToTableComponent_table_2_Template, 16, 2, "table", 2);
@@ -284,4 +284,4 @@ export class LinkedCasesToTableComponent {
284
284
  type: Output
285
285
  }] }); })();
286
286
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LinkedCasesToTableComponent, { className: "LinkedCasesToTableComponent", filePath: "lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.ts", lineNumber: 26 }); })();
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLXRvLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy10by10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0lDa0JVLDZCQUVXO0lBQUEsWUFBMkM7SUFBQSxpQkFBSTs7OztJQUR0RyxxR0FBa0Q7SUFDSyxjQUEyQztJQUEzQyx1RUFBMkM7OztJQUN0RyxxQkFBc0I7OztJQUp4Qiw0QkFBNEU7SUFDMUUsWUFBMEM7O0lBQUEsNEJBQU07SUFBQSxvR0FFVztJQUErQyxpQkFBTztJ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QkFBcUIsQ0FBQztZQUNwRSxRQUFRLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BELG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtZQUN0RSxPQUFPLEVBQUUscUJBQXFCLENBQUMsU0FBUyxJQUFJLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDMUcsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtZQUM3QyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYTtTQUNqQixDQUFDO0lBQzNCLENBQUM7cUZBOUpVLDJCQUEyQjs2REFBM0IsMkJBQTJCO1lDeEJ0QyxBQURGLDhCQUFvRCxhQUNkO1lBQ2xDLGlGQUEyRjtZQXNDL0YsQUFERSxpQkFBTSxFQUNGOztZQXRDTSxlQUE2QjtZQUE3QixrREFBNkI7OztpRkR1QjVCLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDJCQUEyQjsyR0FVOUIsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFSSSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBKdXJpc2RpY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rUmVhc29uIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbmludGVyZmFjZSBMaW5rZWRDYXNlc1Jlc3BvbnNlIHtcbiAgY2FzZVJlZmVyZW5jZTogc3RyaW5nO1xuICBjYXNlTmFtZTogc3RyaW5nO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICBjYXNlVHlwZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgc3RhdGU6IHN0cmluZztcbiAgc3RhdGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWFzb25zOiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWxpbmtlZC1jYXNlcy10by10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfQ09OU09MSURBVEVEX1JFQVNPTl9DT0RFID0gJ0NMUkMwMTUnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFID0gJ0NMUkMwMTYnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGQ6IENhc2VGaWVsZDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG5vdGlmeUFQSUZhaWx1cmU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsaW5rZWRDYXNlc0Zyb21SZXNwb25zZTogTGlua2VkQ2FzZXNSZXNwb25zZVtdID0gW107XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcbiAgcHVibGljIGlzU2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIGlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBqdXJpc2RpY3Rpb25zUmVzcG9uc2U6IEp1cmlzZGljdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90ICYmIHRoaXMucm91dGUuc25hcHNob3QuZGF0YSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX2lkO1xuICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH1cbiAgICB0aGlzLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZVJlZmVyZW5lTGluayhjYXNlUmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjYXNlUmVmLnNsaWNlKHRoaXMuY2FzZUlkLmxlbmd0aCAtIDQpO1xuICB9XG5cbiAgcHVibGljIHNvcnRMaW5rZWRDYXNlc0J5UmVhc29uQ29kZShzZWFyY2hDYXNlc1Jlc3BvbnNlKTogTGlua2VkQ2FzZXNSZXNwb25zZVtdIHtcbiAgICBjb25zdCB0b3BMZXZlbHJlc3VsdEFycmF5ID0gW107XG4gICAgbGV0IHNlY29uZExldmVscmVzdWx0QXJyYXkgPSBbXTtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVhc29ucyA9IGl0ZW0gJiYgaXRlbS5yZWFzb25zIHx8IFtdO1xuICAgICAgY29uc3QgY29uc29saWRhdGVkU3RhdGVSZWFzb24gPSByZWFzb25zLm1hcCh4ID0+IHgpLmZpbmQoXG4gICAgICAgIHJlYXNvbiA9PiByZWFzb24gPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHByb2dyZXNzZWRTdGF0ZVJlYXNvbiA9IHJlYXNvbnMubWFwKHggPT4geCkuZmluZChcbiAgICAgICAgcmVhc29uID0+IHJlYXNvbiA9PT0gTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LkNBU0VfUFJPR1JFU1NfUkVBU09OX0NPREVcbiAgICAgICk7XG4gICAgICBjb25zdCBhcnJheUl0ZW0gPSB7IC4uLml0ZW0gfTtcbiAgICAgIGlmIChwcm9ncmVzc2VkU3RhdGVSZWFzb24pIHtcbiAgICAgICAgdG9wTGV2ZWxyZXN1bHRBcnJheS5wdXNoKGFycmF5SXRlbSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnNvbGlkYXRlZFN0YXRlUmVhc29uKSB7XG4gICAgICAgIHNlY29uZExldmVscmVzdWx0QXJyYXkgPSBbeyAuLi5pdGVtIH0sIC4uLnNlY29uZExldmVscmVzdWx0QXJyYXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vjb25kTGV2ZWxyZXN1bHRBcnJheS5wdXNoKHsgLi4uaXRlbSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdG9wTGV2ZWxyZXN1bHRBcnJheS5jb25jYXQoc2Vjb25kTGV2ZWxyZXN1bHRBcnJheSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICBjb25zdCBjYXNlRmllbGRWYWx1ZSA9IHRoaXMuY2FzZUZpZWxkICYmIHRoaXMuY2FzZUZpZWxkLmlkID09PSAnY2FzZUxpbmtzJyA/IHRoaXMuY2FzZUZpZWxkLnZhbHVlIDogW107XG4gICAgLy8gR2VuZXJhdGUgdGhlIGxpc3Qgb2Ygb2JzZXJ2YWJsZXNcbiAgICBjYXNlRmllbGRWYWx1ZS5mb3JFYWNoKGZpZWxkVmFsdWUgPT4ge1xuICAgICAgaWYgKGZpZWxkVmFsdWUgJiYgZmllbGRWYWx1ZS5pZCkge1xuICAgICAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMihmaWVsZFZhbHVlLmlkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgY2FzZXNSZXNwb25zZSA9IFtdO1xuICAgICAgICBzZWFyY2hDYXNlcy5mb3JFYWNoKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5tYXBSZXNwb25zZShyZXNwb25zZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FzZXNSZXNwb25zZSA9IHRoaXMuc29ydFJlYXNvbkNvZGVzKGNhc2VzUmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzRnJvbVJlc3BvbnNlID0gdGhpcy5zb3J0TGlua2VkQ2FzZXNCeVJlYXNvbkNvZGUoY2FzZXNSZXNwb25zZSk7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBjYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzRnJvbVJlc3BvbnNlLm1hcChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2FzZVJlZmVyZW5jZTogaXRlbS5jYXNlUmVmZXJlbmNlLFxuICAgICAgICAgICAgY2FzZU5hbWU6IGl0ZW0uY2FzZU5hbWUsXG4gICAgICAgICAgICBjYXNlU2VydmljZTogaXRlbS5zZXJ2aWNlLFxuICAgICAgICAgICAgY2FzZVR5cGU6IGl0ZW0uY2FzZVR5cGUsXG4gICAgICAgICAgICB1bmxpbms6IGZhbHNlLFxuICAgICAgICAgICAgcmVhc29uczogaXRlbS5yZWFzb25zICYmIGl0ZW0ucmVhc29ucy5tYXAocmVhc29uID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBSZWFzb246IHJlYXNvblxuICAgICAgICAgICAgICB9IGFzIExpbmtSZWFzb247XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9IGFzIENhc2VMaW5rO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcyA9IGNhc2VMaW5rcztcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSBjYXNlTGlua3M7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm5vdGlmeUFQSUZhaWx1cmUuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydFJlYXNvbkNvZGVzKHNlYXJjaENhc2VzUmVzcG9uc2UpOiBMaW5rZWRDYXNlc1Jlc3BvbnNlW10ge1xuICAgIHNlYXJjaENhc2VzUmVzcG9uc2UuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbT8ucmVhc29ucz8ubGVuZ3RoKSB7XG4gICAgICAgIGl0ZW0ucmVhc29ucy5mb3JFYWNoKChyZWFzb24pID0+IHtcbiAgICAgICAgICByZWFzb24uc29ydE9yZGVyID0gdGhpcy5nZXRSZWFzb25Tb3J0T3JkZXIocmVhc29uLnZhbHVlLlJlYXNvbik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLnJlYXNvbnMgPSBpdGVtLnJlYXNvbnMuc29ydCgoYSwgYikgPT4gYS5zb3J0T3JkZXIgLSBiLnNvcnRPcmRlcik7XG4gICAgICAgIGl0ZW0uc29ydE9yZGVyID0gaXRlbS5yZWFzb25zWzBdLnNvcnRPcmRlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlID0gc2VhcmNoQ2FzZXNSZXNwb25zZT8uc29ydCgoYSwgYikgPT4gYS5zb3J0T3JkZXIgLSBiLnNvcnRPcmRlcik7XG4gICAgcmV0dXJuIHNlYXJjaENhc2VzUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVhc29uU29ydE9yZGVyKHJlYXNvbkNvZGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSkge1xuICAgICAgcmV0dXJuIDI7XG4gICAgfVxuICAgIHJldHVybiAzO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2U6IGFueVtdKTogT2JzZXJ2YWJsZTx1bmtub3duW10+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oc2VhcmNoQ2FzZXNSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb25Db2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LkNBU0VfUFJPR1JFU1NfUkVBU09OX0NPREUgfHxcbiAgICAgIHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBSZXNwb25zZShlc1NlYXJjaENhc2VzUmVzcG9uc2UpOiBMaW5rZWRDYXNlc1Jlc3BvbnNlIHtcbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlICYmIGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSA9PT0gZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfaWQpO1xuICAgIHJldHVybiBjYXNlSW5mbyAmJiB7XG4gICAgICBjYXNlUmVmZXJlbmNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9pZCxcbiAgICAgIGNhc2VOYW1lOiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShlc1NlYXJjaENhc2VzUmVzcG9uc2UpLFxuICAgICAgY2FzZVR5cGU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUubmFtZSB8fCAnJyxcbiAgICAgIGNhc2VUeXBlRGVzY3JpcHRpb246IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBzZXJ2aWNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV90eXBlICYmIGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgc3RhdGU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5zdGF0ZS5uYW1lIHx8ICcnLFxuICAgICAgc3RhdGVEZXNjcmlwdGlvbjogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLnN0YXRlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgcmVhc29uczogY2FzZUluZm8/LnZhbHVlPy5SZWFzb25Gb3JMaW5rXG4gICAgfSBhcyBMaW5rZWRDYXNlc1Jlc3BvbnNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3cgZ292dWstIS1tYXJnaW4tYm90dG9tLTJcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGxcIj5cbiAgICA8dGFibGUgKm5nSWY9XCJsaW5rZWRDYXNlc0Zyb21SZXNwb25zZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJ0YWJsZSB0byBkaXNwbGF5IGNhc2VzIGxpbmtlZCBUT1wiPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIG5hbWUgYW5kIG51bWJlcjwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlNlcnZpY2U8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U3RhdGU8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IGNhc2Ugb2YgbGlua2VkQ2FzZXNGcm9tUmVzcG9uc2VcIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiY2FzZXMvY2FzZS1kZXRhaWxzL3t7Y2FzZS5jYXNlUmVmZXJlbmNlfX1cIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCI+PHNwYW4gY2xhc3M9XCJnb3Z1ay1saW5rXCI+e3tjYXNlLmNhc2VOYW1lfX0gPGJyPlxuICAgICAgICAgICAgICAgICAge3tjYXNlLmNhc2VSZWZlcmVuY2UgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+PC9hPjwvcD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD48c3BhbiBbdGl0bGVdPVwiY2FzZS5jYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgICAgICA8dGQ+PHNwYW4+e3tjYXNlLnNlcnZpY2V9fTwvc3Bhbj48L3RkPlxuICAgICAgICAgIDx0ZD48c3BhbiBbdGl0bGVdPVwiY2FzZS5zdGF0ZURlc2NyaXB0aW9uXCI+e3tjYXNlLnN0YXRlfX08L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQgKm5nSWY9XCJjYXNlICYmIGNhc2UucmVhc29uc1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHJlYXNvbiBvZiBjYXNlLnJlYXNvbnM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICAgIHt7cmVhc29uLnZhbHVlIHwgY2NkTGlua0Nhc2VzUmVhc29uVmFsdWV9fTxzcGFuPjxhIGNsYXNzPVwiZ292dWstIS1wYWRkaW5nLWxlZnQtMVwiXG4gICAgICAgICAgICAgICAgICBocmVmPVwiY2FzZXMvY2FzZS1kZXRhaWxzL3t7IGNhc2UuY2FzZVJlZmVyZW5jZSB9fVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0xlYWRDYXNlT3JDb25zb2xpZGF0ZWQocmVhc29uLnZhbHVlLlJlYXNvbilcIj57e2dldENhc2VSZWZlcmVuZUxpbmsoY2FzZS5jYXNlUmVmZXJlbmNlKX19PC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJyICpuZ0lmPVwiIWlzTGFzdFwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0lmPVwibGlua2VkQ2FzZXNGcm9tUmVzcG9uc2UubGVuZ3RoID09PSAwICYmICghaXNTZXJ2ZXJFcnJvciAmJiAhaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBjb2xzcGFuPVwiNVwiPlxuICAgICAgICAgICAgTm9uZVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLXRvLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy10by10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0lDa0JVLDZCQUVXO0lBQUEsWUFBMkM7SUFBQSxpQkFBSTs7OztJQUR0RyxxR0FBa0Q7SUFDSyxjQUEyQztJQUEzQyx1RUFBMkM7OztJQUN0RyxxQkFBc0I7OztJQUp4Qiw0QkFBNEU7SUFDMUUsWUFBMEM7O0lBQUEsNEJBQU07SUFBQSxvR0FFVztJQUErQyxpQkFBTztJ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QkFBcUIsQ0FBQztZQUNwRSxRQUFRLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BELG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtZQUN0RSxPQUFPLEVBQUUscUJBQXFCLENBQUMsU0FBUyxJQUFJLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDMUcsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtZQUM3QyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYTtTQUNqQixDQUFDO0lBQzNCLENBQUM7cUhBOUpVLDJCQUEyQjs2REFBM0IsMkJBQTJCO1lDeEJ0QyxBQURGLDhCQUFvRCxhQUNkO1lBQ2xDLGlGQUEyRjtZQXNDL0YsQUFERSxpQkFBTSxFQUNGOztZQXRDTSxlQUE2QjtZQUE3QixrREFBNkI7OztpRkR1QjVCLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDJCQUEyQjsyR0FVOUIsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFSSSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBKdXJpc2RpY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rUmVhc29uIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbmludGVyZmFjZSBMaW5rZWRDYXNlc1Jlc3BvbnNlIHtcbiAgY2FzZVJlZmVyZW5jZTogc3RyaW5nO1xuICBjYXNlTmFtZTogc3RyaW5nO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICBjYXNlVHlwZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgc3RhdGU6IHN0cmluZztcbiAgc3RhdGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWFzb25zOiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWxpbmtlZC1jYXNlcy10by10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfQ09OU09MSURBVEVEX1JFQVNPTl9DT0RFID0gJ0NMUkMwMTUnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFID0gJ0NMUkMwMTYnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGQ6IENhc2VGaWVsZDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG5vdGlmeUFQSUZhaWx1cmU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsaW5rZWRDYXNlc0Zyb21SZXNwb25zZTogTGlua2VkQ2FzZXNSZXNwb25zZVtdID0gW107XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcbiAgcHVibGljIGlzU2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIGlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBqdXJpc2RpY3Rpb25zUmVzcG9uc2U6IEp1cmlzZGljdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90ICYmIHRoaXMucm91dGUuc25hcHNob3QuZGF0YSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX2lkO1xuICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH1cbiAgICB0aGlzLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZVJlZmVyZW5lTGluayhjYXNlUmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjYXNlUmVmLnNsaWNlKHRoaXMuY2FzZUlkLmxlbmd0aCAtIDQpO1xuICB9XG5cbiAgcHVibGljIHNvcnRMaW5rZWRDYXNlc0J5UmVhc29uQ29kZShzZWFyY2hDYXNlc1Jlc3BvbnNlKTogTGlua2VkQ2FzZXNSZXNwb25zZVtdIHtcbiAgICBjb25zdCB0b3BMZXZlbHJlc3VsdEFycmF5ID0gW107XG4gICAgbGV0IHNlY29uZExldmVscmVzdWx0QXJyYXkgPSBbXTtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVhc29ucyA9IGl0ZW0gJiYgaXRlbS5yZWFzb25zIHx8IFtdO1xuICAgICAgY29uc3QgY29uc29saWRhdGVkU3RhdGVSZWFzb24gPSByZWFzb25zLm1hcCh4ID0+IHgpLmZpbmQoXG4gICAgICAgIHJlYXNvbiA9PiByZWFzb24gPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHByb2dyZXNzZWRTdGF0ZVJlYXNvbiA9IHJlYXNvbnMubWFwKHggPT4geCkuZmluZChcbiAgICAgICAgcmVhc29uID0+IHJlYXNvbiA9PT0gTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LkNBU0VfUFJPR1JFU1NfUkVBU09OX0NPREVcbiAgICAgICk7XG4gICAgICBjb25zdCBhcnJheUl0ZW0gPSB7IC4uLml0ZW0gfTtcbiAgICAgIGlmIChwcm9ncmVzc2VkU3RhdGVSZWFzb24pIHtcbiAgICAgICAgdG9wTGV2ZWxyZXN1bHRBcnJheS5wdXNoKGFycmF5SXRlbSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnNvbGlkYXRlZFN0YXRlUmVhc29uKSB7XG4gICAgICAgIHNlY29uZExldmVscmVzdWx0QXJyYXkgPSBbeyAuLi5pdGVtIH0sIC4uLnNlY29uZExldmVscmVzdWx0QXJyYXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vjb25kTGV2ZWxyZXN1bHRBcnJheS5wdXNoKHsgLi4uaXRlbSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdG9wTGV2ZWxyZXN1bHRBcnJheS5jb25jYXQoc2Vjb25kTGV2ZWxyZXN1bHRBcnJheSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICBjb25zdCBjYXNlRmllbGRWYWx1ZSA9IHRoaXMuY2FzZUZpZWxkICYmIHRoaXMuY2FzZUZpZWxkLmlkID09PSAnY2FzZUxpbmtzJyA/IHRoaXMuY2FzZUZpZWxkLnZhbHVlIDogW107XG4gICAgLy8gR2VuZXJhdGUgdGhlIGxpc3Qgb2Ygb2JzZXJ2YWJsZXNcbiAgICBjYXNlRmllbGRWYWx1ZS5mb3JFYWNoKGZpZWxkVmFsdWUgPT4ge1xuICAgICAgaWYgKGZpZWxkVmFsdWUgJiYgZmllbGRWYWx1ZS5pZCkge1xuICAgICAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMihmaWVsZFZhbHVlLmlkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgY2FzZXNSZXNwb25zZSA9IFtdO1xuICAgICAgICBzZWFyY2hDYXNlcy5mb3JFYWNoKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5tYXBSZXNwb25zZShyZXNwb25zZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FzZXNSZXNwb25zZSA9IHRoaXMuc29ydFJlYXNvbkNvZGVzKGNhc2VzUmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzRnJvbVJlc3BvbnNlID0gdGhpcy5zb3J0TGlua2VkQ2FzZXNCeVJlYXNvbkNvZGUoY2FzZXNSZXNwb25zZSk7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBjYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzRnJvbVJlc3BvbnNlLm1hcChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2FzZVJlZmVyZW5jZTogaXRlbS5jYXNlUmVmZXJlbmNlLFxuICAgICAgICAgICAgY2FzZU5hbWU6IGl0ZW0uY2FzZU5hbWUsXG4gICAgICAgICAgICBjYXNlU2VydmljZTogaXRlbS5zZXJ2aWNlLFxuICAgICAgICAgICAgY2FzZVR5cGU6IGl0ZW0uY2FzZVR5cGUsXG4gICAgICAgICAgICB1bmxpbms6IGZhbHNlLFxuICAgICAgICAgICAgcmVhc29uczogaXRlbS5yZWFzb25zICYmIGl0ZW0ucmVhc29ucy5tYXAocmVhc29uID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBSZWFzb246IHJlYXNvblxuICAgICAgICAgICAgICB9IGFzIExpbmtSZWFzb247XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9IGFzIENhc2VMaW5rO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcyA9IGNhc2VMaW5rcztcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSBjYXNlTGlua3M7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm5vdGlmeUFQSUZhaWx1cmUuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydFJlYXNvbkNvZGVzKHNlYXJjaENhc2VzUmVzcG9uc2UpOiBMaW5rZWRDYXNlc1Jlc3BvbnNlW10ge1xuICAgIHNlYXJjaENhc2VzUmVzcG9uc2UuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbT8ucmVhc29ucz8ubGVuZ3RoKSB7XG4gICAgICAgIGl0ZW0ucmVhc29ucy5mb3JFYWNoKChyZWFzb24pID0+IHtcbiAgICAgICAgICByZWFzb24uc29ydE9yZGVyID0gdGhpcy5nZXRSZWFzb25Tb3J0T3JkZXIocmVhc29uLnZhbHVlLlJlYXNvbik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLnJlYXNvbnMgPSBpdGVtLnJlYXNvbnMuc29ydCgoYSwgYikgPT4gYS5zb3J0T3JkZXIgLSBiLnNvcnRPcmRlcik7XG4gICAgICAgIGl0ZW0uc29ydE9yZGVyID0gaXRlbS5yZWFzb25zWzBdLnNvcnRPcmRlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlID0gc2VhcmNoQ2FzZXNSZXNwb25zZT8uc29ydCgoYSwgYikgPT4gYS5zb3J0T3JkZXIgLSBiLnNvcnRPcmRlcik7XG4gICAgcmV0dXJuIHNlYXJjaENhc2VzUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVhc29uU29ydE9yZGVyKHJlYXNvbkNvZGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSkge1xuICAgICAgcmV0dXJuIDI7XG4gICAgfVxuICAgIHJldHVybiAzO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2U6IGFueVtdKTogT2JzZXJ2YWJsZTx1bmtub3duW10+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oc2VhcmNoQ2FzZXNSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb25Db2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LkNBU0VfUFJPR1JFU1NfUkVBU09OX0NPREUgfHxcbiAgICAgIHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBSZXNwb25zZShlc1NlYXJjaENhc2VzUmVzcG9uc2UpOiBMaW5rZWRDYXNlc1Jlc3BvbnNlIHtcbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlICYmIGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSA9PT0gZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfaWQpO1xuICAgIHJldHVybiBjYXNlSW5mbyAmJiB7XG4gICAgICBjYXNlUmVmZXJlbmNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9pZCxcbiAgICAgIGNhc2VOYW1lOiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShlc1NlYXJjaENhc2VzUmVzcG9uc2UpLFxuICAgICAgY2FzZVR5cGU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUubmFtZSB8fCAnJyxcbiAgICAgIGNhc2VUeXBlRGVzY3JpcHRpb246IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBzZXJ2aWNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV90eXBlICYmIGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgc3RhdGU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5zdGF0ZS5uYW1lIHx8ICcnLFxuICAgICAgc3RhdGVEZXNjcmlwdGlvbjogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLnN0YXRlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgcmVhc29uczogY2FzZUluZm8/LnZhbHVlPy5SZWFzb25Gb3JMaW5rXG4gICAgfSBhcyBMaW5rZWRDYXNlc1Jlc3BvbnNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3cgZ292dWstIS1tYXJnaW4tYm90dG9tLTJcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGxcIj5cbiAgICA8dGFibGUgKm5nSWY9XCJsaW5rZWRDYXNlc0Zyb21SZXNwb25zZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJ0YWJsZSB0byBkaXNwbGF5IGNhc2VzIGxpbmtlZCBUT1wiPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIG5hbWUgYW5kIG51bWJlcjwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlNlcnZpY2U8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U3RhdGU8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IGNhc2Ugb2YgbGlua2VkQ2FzZXNGcm9tUmVzcG9uc2VcIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiY2FzZXMvY2FzZS1kZXRhaWxzL3t7Y2FzZS5jYXNlUmVmZXJlbmNlfX1cIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCI+PHNwYW4gY2xhc3M9XCJnb3Z1ay1saW5rXCI+e3tjYXNlLmNhc2VOYW1lfX0gPGJyPlxuICAgICAgICAgICAgICAgICAge3tjYXNlLmNhc2VSZWZlcmVuY2UgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+PC9hPjwvcD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD48c3BhbiBbdGl0bGVdPVwiY2FzZS5jYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgICAgICA8dGQ+PHNwYW4+e3tjYXNlLnNlcnZpY2V9fTwvc3Bhbj48L3RkPlxuICAgICAgICAgIDx0ZD48c3BhbiBbdGl0bGVdPVwiY2FzZS5zdGF0ZURlc2NyaXB0aW9uXCI+e3tjYXNlLnN0YXRlfX08L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQgKm5nSWY9XCJjYXNlICYmIGNhc2UucmVhc29uc1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHJlYXNvbiBvZiBjYXNlLnJlYXNvbnM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICAgIHt7cmVhc29uLnZhbHVlIHwgY2NkTGlua0Nhc2VzUmVhc29uVmFsdWV9fTxzcGFuPjxhIGNsYXNzPVwiZ292dWstIS1wYWRkaW5nLWxlZnQtMVwiXG4gICAgICAgICAgICAgICAgICBocmVmPVwiY2FzZXMvY2FzZS1kZXRhaWxzL3t7IGNhc2UuY2FzZVJlZmVyZW5jZSB9fVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0xlYWRDYXNlT3JDb25zb2xpZGF0ZWQocmVhc29uLnZhbHVlLlJlYXNvbilcIj57e2dldENhc2VSZWZlcmVuZUxpbmsoY2FzZS5jYXNlUmVmZXJlbmNlKX19PC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJyICpuZ0lmPVwiIWlzTGFzdFwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0lmPVwibGlua2VkQ2FzZXNGcm9tUmVzcG9uc2UubGVuZ3RoID09PSAwICYmICghaXNTZXJ2ZXJFcnJvciAmJiAhaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBjb2xzcGFuPVwiNVwiPlxuICAgICAgICAgICAgTm9uZVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -44,7 +44,7 @@ export class NoLinkedCasesComponent extends AbstractJourneyComponent {
44
44
  onBack() {
45
45
  this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId], { fragment: 'Linked cases' });
46
46
  }
47
- static ɵfac = function NoLinkedCasesComponent_Factory(t) { return new (t || NoLinkedCasesComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.MultipageComponentStateService)); };
47
+ static ɵfac = function NoLinkedCasesComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NoLinkedCasesComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.MultipageComponentStateService)); };
48
48
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoLinkedCasesComponent, selectors: [["ccd-no-linked-cases"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 3, consts: [["noLinkedCases", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], ["class", "govuk-heading-xl", 4, "ngIf"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf", "ngIfElse"], [1, "govuk-body"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], [1, "govuk-button-group"], ["type", "button", "id", "back-button", 1, "button", "button-primary", 3, "click"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"]], template: function NoLinkedCasesComponent_Template(rf, ctx) { if (rf & 1) {
49
49
  const _r1 = i0.ɵɵgetCurrentView();
50
50
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
@@ -70,4 +70,4 @@ export class NoLinkedCasesComponent extends AbstractJourneyComponent {
70
70
  args: [{ selector: 'ccd-no-linked-cases', template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <h1 class=\"govuk-heading-xl\" *ngIf=\"serverLinkedApiError\">There is a problem</h1>\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\"\n *ngIf=\"serverLinkedApiError;else noLinkedCases;\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n </p>\n <ng-template #noLinkedCases>\n <p class=\"govuk-body\">There are no cases linked to this one.</p>\n </ng-template>\n <p class=\"govuk-body\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\" (click)=\"onBack()\">Go back to the Linked cases tab</a>\n </p>\n <div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" id=\"back-button\" (click)=\"onBack()\">Back</button>\n </div>\n </div>\n</div>\n" }]
71
71
  }], () => [{ type: i1.Router }, { type: i2.LinkedCasesService }, { type: i3.MultipageComponentStateService }], null); })();
72
72
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoLinkedCasesComponent, { className: "NoLinkedCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.ts", lineNumber: 12 }); })();
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL25vLWxpbmtlZC1jYXNlcy9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbm8tbGlua2VkLWNhc2VzL25vLWxpbmtlZC1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztJQ0ZyRSw2QkFBMEQ7SUFBQSxrQ0FBa0I7SUFBQSxpQkFBSzs7O0lBRy9FLEFBRkYsNkJBQ21ELGVBQ2I7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELG9FQUNwRDs7O0lBRUUsNEJBQXNCO0lBQUEsc0RBQXNDO0lBQUEsaUJBQUk7O0FER3RFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFJckM7SUFDVjtJQUhaLG9CQUFvQixDQUFrQztJQUU3RCxZQUE2QixNQUFjLEVBQ3hCLGtCQUFzQyxFQUN2RCw4QkFBOEQ7UUFDNUQsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFIYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFHekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO0lBQzNFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Z0ZBaEJVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ1ZqQyxBQURGLDhCQUE0QixhQUNVO1lBTWxDLEFBSkEsQUFEQSxxRUFBMEQsc0RBRVAsMkdBR3ZCO1lBSTFCLEFBREYsNEJBQXNCLFdBQytDO1lBQW5CLG9JQUFTLFlBQVEsS0FBQztZQUFDLCtDQUErQjtZQUNwRyxBQURvRyxpQkFBSSxFQUNwRztZQUVGLEFBREYsOEJBQWdDLGlCQUMwRDtZQUFuQiwwSUFBUyxZQUFRLEtBQUM7WUFBQyxxQkFBSTtZQUdsRyxBQURFLEFBREUsQUFEOEYsaUJBQVMsRUFDakcsRUFDRixFQUNGOzs7WUFmNEIsZUFBMEI7WUFBMUIsK0NBQTBCO1lBRXJELGNBQTJCO1lBQUEsQUFBM0IsK0NBQTJCLDhCQUFtQjs7O2lGRE94QyxzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUdwQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1uby1saW5rZWQtY2FzZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOb0xpbmtlZENhc2VzQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBKb3VybmV5IHtcblxuICBwdWJsaWMgc2VydmVyTGlua2VkQXBpRXJyb3I6IHsgaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZTogTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKSB7XG4gICAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zZXJ2ZXJMaW5rZWRBcGlFcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWRdLCB7IGZyYWdtZW50OiAnTGlua2VkIGNhc2VzJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3JcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3I7ZWxzZSBub0xpbmtlZENhc2VzO1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9MaW5rZWRDYXNlcz5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlRoZXJlIGFyZSBubyBjYXNlcyBsaW5rZWQgdG8gdGhpcyBvbmUuPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+R28gYmFjayB0byB0aGUgTGlua2VkIGNhc2VzIHRhYjwvYT5cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJhY2stYnV0dG9uXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+QmFjazwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL25vLWxpbmtlZC1jYXNlcy9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbm8tbGlua2VkLWNhc2VzL25vLWxpbmtlZC1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztJQ0ZyRSw2QkFBMEQ7SUFBQSxrQ0FBa0I7SUFBQSxpQkFBSzs7O0lBRy9FLEFBRkYsNkJBQ21ELGVBQ2I7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELG9FQUNwRDs7O0lBRUUsNEJBQXNCO0lBQUEsc0RBQXNDO0lBQUEsaUJBQUk7O0FER3RFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFJckM7SUFDVjtJQUhaLG9CQUFvQixDQUFrQztJQUU3RCxZQUE2QixNQUFjLEVBQ3hCLGtCQUFzQyxFQUN2RCw4QkFBOEQ7UUFDNUQsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFIYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFHekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO0lBQzNFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Z0hBaEJVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ1ZqQyxBQURGLDhCQUE0QixhQUNVO1lBTWxDLEFBSkEsQUFEQSxxRUFBMEQsc0RBRVAsMkdBR3ZCO1lBSTFCLEFBREYsNEJBQXNCLFdBQytDO1lBQW5CLG9JQUFTLFlBQVEsS0FBQztZQUFDLCtDQUErQjtZQUNwRyxBQURvRyxpQkFBSSxFQUNwRztZQUVGLEFBREYsOEJBQWdDLGlCQUMwRDtZQUFuQiwwSUFBUyxZQUFRLEtBQUM7WUFBQyxxQkFBSTtZQUdsRyxBQURFLEFBREUsQUFEOEYsaUJBQVMsRUFDakcsRUFDRixFQUNGOzs7WUFmNEIsZUFBMEI7WUFBMUIsK0NBQTBCO1lBRXJELGNBQTJCO1lBQUEsQUFBM0IsK0NBQTJCLDhCQUFtQjs7O2lGRE94QyxzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUdwQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1uby1saW5rZWQtY2FzZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOb0xpbmtlZENhc2VzQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBKb3VybmV5IHtcblxuICBwdWJsaWMgc2VydmVyTGlua2VkQXBpRXJyb3I6IHsgaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZTogTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKSB7XG4gICAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zZXJ2ZXJMaW5rZWRBcGlFcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWRdLCB7IGZyYWdtZW50OiAnTGlua2VkIGNhc2VzJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3JcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3I7ZWxzZSBub0xpbmtlZENhc2VzO1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9MaW5rZWRDYXNlcz5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlRoZXJlIGFyZSBubyBjYXNlcyBsaW5rZWQgdG8gdGhpcyBvbmUuPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+R28gYmFjayB0byB0aGUgTGlua2VkIGNhc2VzIHRhYjwvYT5cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJhY2stYnV0dG9uXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+QmFjazwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19