@hmcts/ccd-case-ui-toolkit 6.18.0-welsh-release → 6.18.2

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 (435) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +4674 -9014
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/components/banners/alert/alert.component.js +5 -7
  7. package/esm2015/lib/components/banners/alert/alert.module.js +4 -12
  8. package/esm2015/lib/components/footer/footer.component.js +30 -55
  9. package/esm2015/lib/components/footer/footers.module.js +4 -12
  10. package/esm2015/lib/components/form/date-input/date-input.component.js +37 -56
  11. package/esm2015/lib/components/form/form.module.js +4 -8
  12. package/esm2015/lib/components/header/header-bar/header-bar.component.js +19 -32
  13. package/esm2015/lib/components/header/headers.module.js +4 -6
  14. package/esm2015/lib/components/header/navigation/navigation-item.component.js +7 -9
  15. package/esm2015/lib/components/header/phase/phase.component.js +9 -20
  16. package/esm2015/lib/components/tabs/tabs.component.js +5 -8
  17. package/esm2015/lib/components/tabs/tabs.module.js +2 -6
  18. package/esm2015/lib/shared/commons/case-edit-data/case-edit-validation.model.js +1 -1
  19. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +9 -12
  20. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +8 -11
  21. package/esm2015/lib/shared/components/activity/activity.component.js +10 -15
  22. package/esm2015/lib/shared/components/activity/activity.module.js +2 -6
  23. package/esm2015/lib/shared/components/case-editor/case-create/case-create.component.js +2 -2
  24. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +1 -1
  25. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +26 -30
  26. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +2 -2
  27. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +58 -63
  28. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +83 -111
  29. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +28 -35
  30. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +26 -51
  31. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +28 -51
  32. package/esm2015/lib/shared/components/case-editor/case-progress/case-progress.component.js +2 -2
  33. package/esm2015/lib/shared/components/case-editor/services/case-edit-wizard.guard.js +2 -3
  34. package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +2 -2
  35. package/esm2015/lib/shared/components/case-history/case-history.component.js +63 -89
  36. package/esm2015/lib/shared/components/case-history/case-history.module.js +14 -18
  37. package/esm2015/lib/shared/components/case-list/case-list.component.js +49 -56
  38. package/esm2015/lib/shared/components/case-list/case-list.module.js +4 -8
  39. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +7 -11
  40. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +6 -9
  41. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +8 -12
  42. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +61 -106
  43. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +69 -89
  44. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +23 -45
  45. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +13 -16
  46. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +117 -157
  47. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +20 -32
  48. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +79 -107
  49. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +49 -79
  50. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  51. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +27 -37
  52. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +22 -36
  53. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +40 -63
  54. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +2 -6
  55. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +14 -28
  56. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +2 -6
  57. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +14 -28
  58. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +14 -28
  59. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +14 -28
  60. package/esm2015/lib/shared/components/error/callback-errors.component.js +23 -34
  61. package/esm2015/lib/shared/components/error/errors.module.js +2 -6
  62. package/esm2015/lib/shared/components/error-message/error-message.component.js +11 -14
  63. package/esm2015/lib/shared/components/error-message/error-message.module.js +4 -8
  64. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +20 -39
  65. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +18 -34
  66. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +19 -34
  67. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +25 -50
  68. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +20 -39
  69. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +18 -34
  70. package/esm2015/lib/shared/components/event-start/event-start.module.js +4 -8
  71. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +17 -27
  72. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +2 -6
  73. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +5 -7
  74. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +2 -6
  75. package/esm2015/lib/shared/components/pagination/pagination.component.js +67 -84
  76. package/esm2015/lib/shared/components/pagination/pagination.module.js +4 -8
  77. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +31 -50
  78. package/esm2015/lib/shared/components/palette/base-field/abstract-field-read.component.js +1 -1
  79. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +8 -10
  80. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +1 -5
  81. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +1 -1
  82. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +37 -62
  83. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +42 -246
  84. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +73 -144
  85. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +1 -3
  86. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +87 -62
  87. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +101 -133
  88. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +34 -54
  89. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +113 -186
  90. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +99 -286
  91. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  92. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  93. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  94. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +2 -3
  95. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +3 -8
  96. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +2 -8
  97. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +2 -3
  98. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +1 -2
  99. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +1 -3
  100. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +2 -3
  101. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +4 -8
  102. package/esm2015/lib/shared/components/palette/case-flag/index.js +1 -2
  103. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +50 -121
  104. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +141 -250
  105. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +12 -16
  106. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +57 -68
  107. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +46 -50
  108. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +6 -7
  109. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +20 -22
  110. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +4 -5
  111. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +12 -16
  112. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +17 -29
  113. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +25 -31
  114. package/esm2015/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.js +7 -9
  115. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +20 -32
  116. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.js +7 -11
  117. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +11 -9
  118. package/esm2015/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.js +7 -9
  119. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +18 -27
  120. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +12 -16
  121. package/esm2015/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.js +7 -9
  122. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +14 -19
  123. package/esm2015/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.js +7 -9
  124. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +15 -20
  125. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +65 -87
  126. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +46 -60
  127. package/esm2015/lib/shared/components/palette/index.js +2 -3
  128. package/esm2015/lib/shared/components/palette/label/label-field.component.js +5 -24
  129. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +1 -1
  130. package/esm2015/lib/shared/components/palette/markdown/index.js +1 -2
  131. package/esm2015/lib/shared/components/palette/markdown/markdown.component.js +4 -4
  132. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +12 -16
  133. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +11 -15
  134. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +14 -19
  135. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +12 -16
  136. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +25 -43
  137. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +6 -7
  138. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +29 -41
  139. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +35 -48
  140. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +50 -88
  141. package/esm2015/lib/shared/components/palette/palette.module.js +88 -185
  142. package/esm2015/lib/shared/components/palette/palette.service.js +2 -5
  143. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +12 -16
  144. package/esm2015/lib/shared/components/palette/text/read-text-field.component.js +5 -7
  145. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +12 -16
  146. package/esm2015/lib/shared/components/palette/text-area/read-text-area-field.component.js +5 -7
  147. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +12 -16
  148. package/esm2015/lib/shared/components/palette/utils/first-error.pipe.js +11 -22
  149. package/esm2015/lib/shared/components/palette/utils/utils.module.js +6 -12
  150. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +5 -7
  151. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +15 -20
  152. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +35 -60
  153. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +10 -14
  154. package/esm2015/lib/shared/components/search-result/search-result.component.js +95 -132
  155. package/esm2015/lib/shared/components/search-result/search-result.module.js +13 -16
  156. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +52 -90
  157. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +9 -13
  158. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +2 -17
  159. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +2 -1
  160. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +1 -3
  161. package/esm2015/lib/shared/fixture/shared.test.fixture.js +1 -2
  162. package/esm2015/lib/shared/pipes/index.js +2 -3
  163. package/esm2015/lib/shared/pipes/pipes.module.js +5 -9
  164. package/esm2015/lib/shared/services/alert/alert.service.js +8 -28
  165. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +3 -9
  166. package/esm2015/lib/shared/services/request/request.options.builder.js +1 -7
  167. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +6638 -10575
  168. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  169. package/lib/app.config.d.ts.map +1 -1
  170. package/lib/components/banners/alert/alert.module.d.ts +1 -2
  171. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  172. package/lib/components/footer/footers.module.d.ts +1 -2
  173. package/lib/components/footer/footers.module.d.ts.map +1 -1
  174. package/lib/components/form/form.module.d.ts +1 -2
  175. package/lib/components/form/form.module.d.ts.map +1 -1
  176. package/lib/components/header/headers.module.d.ts +1 -2
  177. package/lib/components/header/headers.module.d.ts.map +1 -1
  178. package/lib/components/tabs/tabs.component.d.ts.map +1 -1
  179. package/lib/components/tabs/tabs.module.d.ts +1 -2
  180. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  181. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +0 -1
  182. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  183. package/lib/shared/components/activity/activity.module.d.ts +1 -2
  184. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  185. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +17 -9
  186. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  187. package/lib/shared/components/case-editor/case-editor.module.d.ts +2 -3
  188. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  189. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts.map +1 -1
  190. package/lib/shared/components/case-history/case-history.module.d.ts +1 -2
  191. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  192. package/lib/shared/components/case-list/case-list.module.d.ts +1 -2
  193. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  194. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +1 -2
  195. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  196. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +1 -2
  197. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  198. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  199. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -3
  200. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  201. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -6
  202. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  203. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +1 -2
  204. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  205. package/lib/shared/components/dialogs/dialogs.module.d.ts +1 -2
  206. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  207. package/lib/shared/components/error/errors.module.d.ts +1 -2
  208. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  209. package/lib/shared/components/error-message/error-message.module.d.ts +1 -2
  210. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  211. package/lib/shared/components/event-start/event-start.module.d.ts +1 -2
  212. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  213. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +1 -2
  214. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  215. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +1 -2
  216. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  217. package/lib/shared/components/pagination/pagination.module.d.ts +1 -2
  218. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  219. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts.map +1 -1
  220. package/lib/shared/components/palette/base-field/field-read.component.d.ts +0 -1
  221. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  222. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  223. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +1 -2
  224. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  225. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +5 -20
  226. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  227. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -2
  228. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  229. package/lib/shared/components/palette/case-flag/components/index.d.ts +0 -2
  230. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  231. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +8 -4
  232. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  233. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +8 -10
  234. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  235. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -2
  236. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  237. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +8 -12
  238. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  239. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +9 -19
  240. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  241. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +10 -1
  242. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  243. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +0 -6
  244. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  245. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +0 -1
  246. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  247. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +1 -2
  248. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  249. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +3 -8
  250. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  251. package/lib/shared/components/palette/case-flag/enums/index.d.ts +1 -7
  252. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  253. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +1 -2
  254. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  255. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +0 -1
  256. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  257. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +1 -3
  258. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  259. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +2 -3
  260. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  261. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +3 -7
  262. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  263. package/lib/shared/components/palette/case-flag/index.d.ts +0 -1
  264. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  265. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +8 -11
  266. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  267. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +24 -23
  268. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  269. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -3
  270. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  271. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts.map +1 -1
  272. package/lib/shared/components/palette/index.d.ts +1 -2
  273. package/lib/shared/components/palette/index.d.ts.map +1 -1
  274. package/lib/shared/components/palette/label/label-field.component.d.ts +1 -2
  275. package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -1
  276. package/lib/shared/components/palette/markdown/index.d.ts +0 -1
  277. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  278. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -3
  279. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  280. package/lib/shared/components/palette/palette.module.d.ts +117 -134
  281. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  282. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  283. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +0 -3
  284. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  285. package/lib/shared/components/palette/utils/utils.module.d.ts +1 -2
  286. package/lib/shared/components/palette/utils/utils.module.d.ts.map +1 -1
  287. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  288. package/lib/shared/components/palette/yes-no/write-yes-no-field.component.d.ts.map +1 -1
  289. package/lib/shared/components/search-filters/search-filters.module.d.ts +1 -2
  290. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  291. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  292. package/lib/shared/components/search-result/search-result.module.d.ts +2 -3
  293. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  294. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +1 -2
  295. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  296. package/lib/shared/domain/case-flag/flag-type.model.d.ts +1 -6
  297. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  298. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +1 -0
  299. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  300. package/lib/shared/domain/definition/display-context-enum.model.d.ts +1 -3
  301. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  302. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  303. package/lib/shared/pipes/index.d.ts +1 -2
  304. package/lib/shared/pipes/index.d.ts.map +1 -1
  305. package/lib/shared/pipes/pipes.module.d.ts +2 -3
  306. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  307. package/lib/shared/services/alert/alert.service.d.ts +4 -8
  308. package/lib/shared/services/alert/alert.service.d.ts.map +1 -1
  309. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +2 -3
  310. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  311. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  312. package/package.json +1 -1
  313. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +0 -19
  314. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +0 -181
  315. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +0 -6
  316. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +0 -292
  317. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +0 -9
  318. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +0 -12
  319. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +0 -6
  320. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +0 -6
  321. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +0 -6
  322. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +0 -6
  323. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +0 -41
  324. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +0 -5
  325. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +0 -41
  326. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +0 -109
  327. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +0 -77
  328. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +0 -42
  329. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +0 -120
  330. package/esm2015/lib/shared/components/palette/query-management/components/index.js +0 -9
  331. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +0 -64
  332. package/esm2015/lib/shared/components/palette/query-management/components/query-create/query-create.component.js +0 -18
  333. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +0 -56
  334. package/esm2015/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.js +0 -150
  335. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +0 -175
  336. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +0 -67
  337. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +0 -214
  338. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +0 -108
  339. package/esm2015/lib/shared/components/palette/query-management/index.js +0 -6
  340. package/esm2015/lib/shared/components/palette/query-management/models/index.js +0 -7
  341. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-message.model.js +0 -2
  342. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.js +0 -2
  343. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +0 -2
  344. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +0 -18
  345. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +0 -35
  346. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.js +0 -6
  347. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +0 -83
  348. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +0 -12
  349. package/esm2015/lib/shared/components/palette/query-management/write-query-management-field.component.js +0 -45
  350. package/esm2015/lib/shared/domain/alert/alert-status-params.model.js +0 -2
  351. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +0 -6
  352. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +0 -16
  353. package/esm2015/lib/shared/pipes/generic/index.js +0 -2
  354. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +0 -11
  355. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +0 -1
  356. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +0 -28
  357. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +0 -1
  358. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +0 -5
  359. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +0 -1
  360. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +0 -27
  361. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +0 -1
  362. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +0 -8
  363. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +0 -1
  364. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +0 -11
  365. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +0 -1
  366. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +0 -5
  367. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +0 -1
  368. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +0 -5
  369. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +0 -1
  370. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +0 -5
  371. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +0 -1
  372. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +0 -5
  373. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +0 -1
  374. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +0 -19
  375. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +0 -1
  376. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +0 -5
  377. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +0 -1
  378. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +0 -18
  379. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +0 -1
  380. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +0 -25
  381. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +0 -1
  382. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +0 -21
  383. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +0 -1
  384. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +0 -13
  385. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +0 -1
  386. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +0 -3
  387. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +0 -1
  388. package/lib/shared/components/palette/query-management/components/index.d.ts +0 -9
  389. package/lib/shared/components/palette/query-management/components/index.d.ts.map +0 -1
  390. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +0 -10
  391. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +0 -1
  392. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts +0 -9
  393. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts.map +0 -1
  394. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +0 -11
  395. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +0 -1
  396. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts +0 -8
  397. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts.map +0 -1
  398. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +0 -18
  399. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +0 -1
  400. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +0 -17
  401. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +0 -1
  402. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +0 -8
  403. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +0 -1
  404. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +0 -10
  405. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +0 -1
  406. package/lib/shared/components/palette/query-management/index.d.ts +0 -6
  407. package/lib/shared/components/palette/query-management/index.d.ts.map +0 -1
  408. package/lib/shared/components/palette/query-management/models/index.d.ts +0 -7
  409. package/lib/shared/components/palette/query-management/models/index.d.ts.map +0 -1
  410. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts +0 -14
  411. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts.map +0 -1
  412. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts +0 -7
  413. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts.map +0 -1
  414. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +0 -7
  415. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +0 -1
  416. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +0 -10
  417. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +0 -1
  418. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +0 -21
  419. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +0 -1
  420. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts +0 -5
  421. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts.map +0 -1
  422. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +0 -17
  423. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +0 -1
  424. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +0 -7
  425. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +0 -1
  426. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts +0 -12
  427. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts.map +0 -1
  428. package/lib/shared/domain/alert/alert-status-params.model.d.ts +0 -6
  429. package/lib/shared/domain/alert/alert-status-params.model.d.ts.map +0 -1
  430. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +0 -5
  431. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +0 -1
  432. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +0 -8
  433. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +0 -1
  434. package/lib/shared/pipes/generic/index.d.ts +0 -2
  435. package/lib/shared/pipes/generic/index.d.ts.map +0 -1
@@ -10,93 +10,69 @@ import * as i1 from "../../services";
10
10
  import * as i2 from "../../../app.config";
11
11
  import * as i3 from "../../pipes";
12
12
  import * as i4 from "../../directives";
13
- function SearchResultComponent_table_0_div_5_Template(rf, ctx) { if (rf & 1) {
13
+ function SearchResultComponent_table_0_div_4_Template(rf, ctx) { if (rf & 1) {
14
14
  i0.ɵɵelementStart(0, "div", 11);
15
15
  i0.ɵɵelementStart(1, "span", 12);
16
16
  i0.ɵɵtext(2, "!");
17
17
  i0.ɵɵelementEnd();
18
18
  i0.ɵɵelementStart(3, "strong", 13);
19
19
  i0.ɵɵelementStart(4, "span", 14);
20
- i0.ɵɵtext(5);
21
- i0.ɵɵpipe(6, "rpxTranslate");
20
+ i0.ɵɵtext(5, "Warning");
22
21
  i0.ɵɵelementEnd();
23
- i0.ɵɵtext(7);
24
- i0.ɵɵpipe(8, "rpxTranslate");
25
- i0.ɵɵpipe(9, "number");
26
- i0.ɵɵpipe(10, "rpxTranslate");
22
+ i0.ɵɵtext(6);
23
+ i0.ɵɵpipe(7, "number");
27
24
  i0.ɵɵelementEnd();
28
25
  i0.ɵɵelementEnd();
29
26
  } if (rf & 2) {
30
27
  const ctx_r3 = i0.ɵɵnextContext(2);
31
- i0.ɵɵadvance(5);
32
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Warning"));
33
- i0.ɵɵadvance(2);
34
- i0.ɵɵtextInterpolate3(" ", i0.ɵɵpipeBind1(8, 6, "The total size of the result set is"), " ", i0.ɵɵpipeBind1(9, 8, ctx_r3.paginationMetadata.totalResultsCount), ". ", i0.ɵɵpipeBind1(10, 10, "Only the first 10,000 records are available for display."), " ");
28
+ i0.ɵɵadvance(6);
29
+ i0.ɵɵtextInterpolate1(" The total size of the result set is ", i0.ɵɵpipeBind1(7, 1, ctx_r3.paginationMetadata.totalResultsCount), ". Only the first 10,000 records are available for display. ");
35
30
  } }
36
- function SearchResultComponent_table_0_div_6_Template(rf, ctx) { if (rf & 1) {
31
+ function SearchResultComponent_table_0_div_5_Template(rf, ctx) { if (rf & 1) {
37
32
  i0.ɵɵelementStart(0, "div", 15);
38
- i0.ɵɵpipe(1, "rpxTranslate");
39
- i0.ɵɵelementStart(2, "span", 16);
40
- i0.ɵɵtext(3);
41
- i0.ɵɵpipe(4, "rpxTranslate");
42
- i0.ɵɵelementStart(5, "span", 17);
43
- i0.ɵɵtext(6);
33
+ i0.ɵɵelementStart(1, "span", 16);
34
+ i0.ɵɵtext(2, "Showing ");
35
+ i0.ɵɵelementStart(3, "span", 17);
36
+ i0.ɵɵtext(4);
44
37
  i0.ɵɵelementEnd();
38
+ i0.ɵɵtext(5, " to ");
39
+ i0.ɵɵelementStart(6, "span", 17);
45
40
  i0.ɵɵtext(7);
46
- i0.ɵɵpipe(8, "rpxTranslate");
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵtext(8, " of ");
47
43
  i0.ɵɵelementStart(9, "span", 17);
48
44
  i0.ɵɵtext(10);
49
45
  i0.ɵɵelementEnd();
50
- i0.ɵɵtext(11);
51
- i0.ɵɵpipe(12, "rpxTranslate");
52
- i0.ɵɵelementStart(13, "span", 17);
53
- i0.ɵɵtext(14);
54
- i0.ɵɵelementEnd();
55
- i0.ɵɵtext(15);
56
- i0.ɵɵpipe(16, "rpxTranslate");
46
+ i0.ɵɵtext(11, " results");
57
47
  i0.ɵɵelementEnd();
58
48
  i0.ɵɵelementEnd();
59
49
  } if (rf & 2) {
60
50
  const ctx_r4 = i0.ɵɵnextContext(2);
61
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 8, ctx_r4.getTotalResults() + " results have been found"));
62
- i0.ɵɵadvance(3);
63
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(4, 10, "Showing"), " ");
64
- i0.ɵɵadvance(3);
51
+ i0.ɵɵattributeInterpolate1("aria-label", "", ctx_r4.getTotalResults(), " results have been found");
52
+ i0.ɵɵadvance(4);
65
53
  i0.ɵɵtextInterpolate(ctx_r4.getFirstResult());
66
- i0.ɵɵadvance(1);
67
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 12, "to"), " ");
68
54
  i0.ɵɵadvance(3);
69
55
  i0.ɵɵtextInterpolate(ctx_r4.getLastResult());
70
- i0.ɵɵadvance(1);
71
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 14, "of"), " ");
72
56
  i0.ɵɵadvance(3);
73
57
  i0.ɵɵtextInterpolate(ctx_r4.getTotalResults());
74
- i0.ɵɵadvance(1);
75
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(16, 16, "results"), "");
76
58
  } }
77
- function SearchResultComponent_table_0_div_7_Template(rf, ctx) { if (rf & 1) {
59
+ function SearchResultComponent_table_0_div_6_Template(rf, ctx) { if (rf & 1) {
78
60
  const _r12 = i0.ɵɵgetCurrentView();
79
61
  i0.ɵɵelementStart(0, "div", 18);
80
- i0.ɵɵpipe(1, "rpxTranslate");
81
- i0.ɵɵelementStart(2, "span");
82
- i0.ɵɵelementStart(3, "a", 19);
83
- i0.ɵɵlistener("click", function SearchResultComponent_table_0_div_7_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.clearSelection(); });
84
- i0.ɵɵtext(4);
85
- i0.ɵɵpipe(5, "rpxTranslate");
62
+ i0.ɵɵelementStart(1, "span");
63
+ i0.ɵɵelementStart(2, "a", 19);
64
+ i0.ɵɵlistener("click", function SearchResultComponent_table_0_div_6_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.clearSelection(); });
65
+ i0.ɵɵtext(3, "Reset case selection");
86
66
  i0.ɵɵelementEnd();
87
67
  i0.ɵɵelementEnd();
88
68
  i0.ɵɵelementEnd();
89
- } if (rf & 2) {
90
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 2, "Reset selection"));
91
- i0.ɵɵadvance(4);
92
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, "Reset case selection"));
93
69
  } }
94
- function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
70
+ function SearchResultComponent_table_0_th_9_Template(rf, ctx) { if (rf & 1) {
95
71
  const _r14 = i0.ɵɵgetCurrentView();
96
72
  i0.ɵɵelementStart(0, "th", 20);
97
73
  i0.ɵɵelementStart(1, "div", 21);
98
74
  i0.ɵɵelementStart(2, "input", 22);
99
- i0.ɵɵlistener("change", function SearchResultComponent_table_0_th_10_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.selectAll(); });
75
+ i0.ɵɵlistener("change", function SearchResultComponent_table_0_th_9_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.selectAll(); });
100
76
  i0.ɵɵelementEnd();
101
77
  i0.ɵɵelement(3, "label", 23);
102
78
  i0.ɵɵelementEnd();
@@ -106,11 +82,11 @@ function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
106
82
  i0.ɵɵadvance(2);
107
83
  i0.ɵɵproperty("checked", ctx_r6.allOnPageSelected())("disabled", !ctx_r6.canAnyBeShared());
108
84
  } }
109
- function SearchResultComponent_table_0_th_11_div_8_Template(rf, ctx) { if (rf & 1) {
85
+ function SearchResultComponent_table_0_th_10_div_4_Template(rf, ctx) { if (rf & 1) {
110
86
  const _r19 = i0.ɵɵgetCurrentView();
111
87
  i0.ɵɵelementStart(0, "div", 27);
112
88
  i0.ɵɵelementStart(1, "a", 28);
113
- i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_11_div_8_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r19); const col_r15 = i0.ɵɵnextContext().$implicit; const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.sort(col_r15); });
89
+ i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_div_4_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r19); const col_r15 = i0.ɵɵnextContext().$implicit; const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.sort(col_r15); });
114
90
  i0.ɵɵelementEnd();
115
91
  i0.ɵɵelementEnd();
116
92
  } if (rf & 2) {
@@ -119,42 +95,36 @@ function SearchResultComponent_table_0_th_11_div_8_Template(rf, ctx) { if (rf &
119
95
  i0.ɵɵadvance(1);
120
96
  i0.ɵɵproperty("innerHTML", ctx_r16.sortWidget(col_r15), i0.ɵɵsanitizeHtml);
121
97
  } }
122
- function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
98
+ function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
123
99
  const _r22 = i0.ɵɵgetCurrentView();
124
100
  i0.ɵɵelementStart(0, "th");
125
- i0.ɵɵelementStart(1, "table", 24);
126
- i0.ɵɵpipe(2, "rpxTranslate");
127
- i0.ɵɵelementStart(3, "tr");
128
- i0.ɵɵelementStart(4, "th");
129
- i0.ɵɵelementStart(5, "div", 25);
130
- i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_11_Template_div_click_5_listener() { i0.ɵɵrestoreView(_r22); const col_r15 = ctx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.sort(col_r15); });
131
- i0.ɵɵtext(6);
132
- i0.ɵɵpipe(7, "rpxTranslate");
133
- i0.ɵɵelementEnd();
134
- i0.ɵɵtemplate(8, SearchResultComponent_table_0_th_11_div_8_Template, 2, 1, "div", 26);
135
- i0.ɵɵelementEnd();
101
+ i0.ɵɵelementStart(1, "div", 24);
102
+ i0.ɵɵelementStart(2, "div", 25);
103
+ i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_Template_div_click_2_listener() { i0.ɵɵrestoreView(_r22); const col_r15 = ctx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.sort(col_r15); });
104
+ i0.ɵɵtext(3);
136
105
  i0.ɵɵelementEnd();
106
+ i0.ɵɵtemplate(4, SearchResultComponent_table_0_th_10_div_4_Template, 2, 1, "div", 26);
137
107
  i0.ɵɵelementEnd();
138
108
  i0.ɵɵelementEnd();
139
109
  } if (rf & 2) {
140
110
  const col_r15 = ctx.$implicit;
141
111
  const ctx_r7 = i0.ɵɵnextContext(2);
142
112
  i0.ɵɵadvance(1);
143
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(2, 3, "Sort by " + col_r15.label + " " + ctx_r7.isSortAscending(col_r15) ? "ascending" : "descending"));
144
- i0.ɵɵadvance(5);
145
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 5, col_r15.label), " ");
113
+ i0.ɵɵattribute("aria-label", "Sort by " + col_r15.label + " " + ctx_r7.isSortAscending(col_r15) ? "ascending" : "descending");
146
114
  i0.ɵɵadvance(2);
115
+ i0.ɵɵtextInterpolate(col_r15.label);
116
+ i0.ɵɵadvance(1);
147
117
  i0.ɵɵproperty("ngIf", ctx_r7.comparator(col_r15));
148
118
  } }
149
- function SearchResultComponent_table_0_th_12_Template(rf, ctx) { if (rf & 1) {
119
+ function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
150
120
  i0.ɵɵelement(0, "th", 29);
151
121
  } }
152
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
122
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
153
123
  const _r30 = i0.ɵɵgetCurrentView();
154
124
  i0.ɵɵelementStart(0, "td", 20);
155
125
  i0.ɵɵelementStart(1, "div", 21);
156
126
  i0.ɵɵelementStart(2, "input", 31);
157
- i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r30); const result_r24 = i0.ɵɵnextContext().$implicit; const ctx_r28 = i0.ɵɵnextContext(3); return ctx_r28.changeSelection(result_r24); });
127
+ i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r30); const result_r24 = i0.ɵɵnextContext().$implicit; const ctx_r28 = i0.ɵɵnextContext(3); return ctx_r28.changeSelection(result_r24); });
158
128
  i0.ɵɵelementEnd();
159
129
  i0.ɵɵelement(3, "label", 32);
160
130
  i0.ɵɵelementEnd();
@@ -170,7 +140,7 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template(rf, ct
170
140
  i0.ɵɵpropertyInterpolate1("for", "select-", result_r24.case_id, "");
171
141
  } }
172
142
  const _c0 = function () { return ["value"]; };
173
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
143
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
174
144
  i0.ɵɵelement(0, "ccd-field-read", 41);
175
145
  } if (rf & 2) {
176
146
  const col_r32 = i0.ɵɵnextContext(3).$implicit;
@@ -178,17 +148,17 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_containe
178
148
  const ctx_r37 = i0.ɵɵnextContext(3);
179
149
  i0.ɵɵproperty("caseField", ctx_r37.getColumnsWithPrefix(result_r24.columns[col_r32.case_field_id], result_r24))("contextFields", result_r24.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(3, _c0));
180
150
  } }
181
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
151
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
182
152
  i0.ɵɵtext(0);
183
153
  i0.ɵɵpipe(1, "ccdCaseReference");
184
154
  } if (rf & 2) {
185
155
  const result_r24 = i0.ɵɵnextContext(4).$implicit;
186
156
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(1, 1, result_r24.case_id));
187
157
  } }
188
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
158
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
189
159
  i0.ɵɵelementContainerStart(0, 38);
190
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
191
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
160
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
161
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
192
162
  i0.ɵɵelementContainerEnd();
193
163
  } if (rf & 2) {
194
164
  const _r38 = i0.ɵɵreference(3);
@@ -198,10 +168,10 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_containe
198
168
  i0.ɵɵadvance(1);
199
169
  i0.ɵɵproperty("ngIf", ctx_r36.draftPrefixOrGet(col_r32, result_r24))("ngIfElse", _r38);
200
170
  } }
201
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
171
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
202
172
  i0.ɵɵelementStart(0, "a", 36);
203
173
  i0.ɵɵpipe(1, "ccdCaseReference");
204
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
174
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
205
175
  i0.ɵɵelementEnd();
206
176
  } if (rf & 2) {
207
177
  const result_r24 = i0.ɵɵnextContext(2).$implicit;
@@ -211,7 +181,7 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template(rf
211
181
  i0.ɵɵadvance(2);
212
182
  i0.ɵɵproperty("ngIf", !ctx_r34.hideRows);
213
183
  } }
214
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
184
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
215
185
  i0.ɵɵelementStart(0, "div", 38);
216
186
  i0.ɵɵelement(1, "ccd-field-read", 41);
217
187
  i0.ɵɵelementEnd();
@@ -223,10 +193,10 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template(
223
193
  i0.ɵɵadvance(1);
224
194
  i0.ɵɵproperty("caseField", result_r24.columns[col_r32.case_field_id])("contextFields", result_r24.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(5, _c0));
225
195
  } }
226
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
196
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
227
197
  i0.ɵɵelementStart(0, "td", 33);
228
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
229
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
198
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
199
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
230
200
  i0.ɵɵelementEnd();
231
201
  } if (rf & 2) {
232
202
  const colIndex_r33 = ctx.index;
@@ -235,7 +205,7 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template(rf, ct
235
205
  i0.ɵɵadvance(1);
236
206
  i0.ɵɵproperty("ngIf", colIndex_r33 != 0);
237
207
  } }
238
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
208
+ function SearchResultComponent_table_0_ng_container_13_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
239
209
  i0.ɵɵelementStart(0, "td");
240
210
  i0.ɵɵelementStart(1, "div");
241
211
  i0.ɵɵelement(2, "ccd-activity", 42);
@@ -249,11 +219,11 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template(rf, ct
249
219
  i0.ɵɵadvance(1);
250
220
  i0.ɵɵproperty("caseId", result_r24.case_id)("displayMode", ctx_r27.ICON);
251
221
  } }
252
- function SearchResultComponent_table_0_ng_container_14_tr_1_Template(rf, ctx) { if (rf & 1) {
222
+ function SearchResultComponent_table_0_ng_container_13_tr_1_Template(rf, ctx) { if (rf & 1) {
253
223
  i0.ɵɵelementStart(0, "tr");
254
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template, 4, 5, "td", 8);
255
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template, 3, 2, "td", 30);
256
- i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template, 3, 4, "td", 0);
224
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template, 4, 5, "td", 8);
225
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_Template, 3, 2, "td", 30);
226
+ i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_13_tr_1_td_3_Template, 3, 4, "td", 0);
257
227
  i0.ɵɵelementEnd();
258
228
  } if (rf & 2) {
259
229
  const ctx_r23 = i0.ɵɵnextContext(3);
@@ -265,9 +235,9 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_Template(rf, ctx) {
265
235
  i0.ɵɵproperty("ngIf", ctx_r23.activityEnabled());
266
236
  } }
267
237
  const _c1 = function (a0, a1, a2) { return { itemsPerPage: a0, currentPage: a1, totalItems: a2 }; };
268
- function SearchResultComponent_table_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
238
+ function SearchResultComponent_table_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
269
239
  i0.ɵɵelementContainerStart(0);
270
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_Template, 4, 3, "tr", 9);
240
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_Template, 4, 3, "tr", 9);
271
241
  i0.ɵɵpipe(2, "paginate");
272
242
  i0.ɵɵelementContainerEnd();
273
243
  } if (rf & 2) {
@@ -275,12 +245,12 @@ function SearchResultComponent_table_0_ng_container_14_Template(rf, ctx) { if (r
275
245
  i0.ɵɵadvance(1);
276
246
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(2, 1, ctx_r9.resultView.results, i0.ɵɵpureFunction3(4, _c1, ctx_r9.paginationPageSize, ctx_r9.selected.page, ctx_r9.resultTotal)));
277
247
  } }
278
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
248
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
279
249
  const _r56 = i0.ɵɵgetCurrentView();
280
250
  i0.ɵɵelementStart(0, "td", 20);
281
251
  i0.ɵɵelementStart(1, "div", 21);
282
252
  i0.ɵɵelementStart(2, "input", 43);
283
- i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r54 = i0.ɵɵnextContext(3); return ctx_r54.changeSelection(result_r50); })("keyup", function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template_input_keyup_2_listener($event) { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r57 = i0.ɵɵnextContext(3); return ctx_r57.onKeyUp($event, result_r50); });
253
+ i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r54 = i0.ɵɵnextContext(3); return ctx_r54.changeSelection(result_r50); })("keyup", function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template_input_keyup_2_listener($event) { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r57 = i0.ɵɵnextContext(3); return ctx_r57.onKeyUp($event, result_r50); });
284
254
  i0.ɵɵelementEnd();
285
255
  i0.ɵɵelement(3, "label", 32);
286
256
  i0.ɵɵelementEnd();
@@ -295,7 +265,7 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template(rf, ct
295
265
  i0.ɵɵadvance(1);
296
266
  i0.ɵɵpropertyInterpolate1("for", "select-", result_r50.case_id, "");
297
267
  } }
298
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
268
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
299
269
  i0.ɵɵelement(0, "ccd-field-read", 41);
300
270
  } if (rf & 2) {
301
271
  const col_r60 = i0.ɵɵnextContext(3).$implicit;
@@ -303,17 +273,17 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_containe
303
273
  const ctx_r65 = i0.ɵɵnextContext(3);
304
274
  i0.ɵɵproperty("caseField", ctx_r65.getColumnsWithPrefix(result_r50.columns[col_r60.case_field_id], result_r50))("contextFields", result_r50.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(3, _c0));
305
275
  } }
306
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
276
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
307
277
  i0.ɵɵtext(0);
308
278
  i0.ɵɵpipe(1, "ccdCaseReference");
309
279
  } if (rf & 2) {
310
280
  const result_r50 = i0.ɵɵnextContext(4).$implicit;
311
281
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(1, 1, result_r50.case_id));
312
282
  } }
313
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
283
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
314
284
  i0.ɵɵelementContainerStart(0, 38);
315
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
316
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
285
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
286
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
317
287
  i0.ɵɵelementContainerEnd();
318
288
  } if (rf & 2) {
319
289
  const _r66 = i0.ɵɵreference(3);
@@ -323,10 +293,10 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_containe
323
293
  i0.ɵɵadvance(1);
324
294
  i0.ɵɵproperty("ngIf", ctx_r64.draftPrefixOrGet(col_r60, result_r50))("ngIfElse", _r66);
325
295
  } }
326
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
296
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
327
297
  i0.ɵɵelementStart(0, "a", 36);
328
298
  i0.ɵɵpipe(1, "ccdCaseReference");
329
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
299
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
330
300
  i0.ɵɵelementEnd();
331
301
  } if (rf & 2) {
332
302
  const result_r50 = i0.ɵɵnextContext(2).$implicit;
@@ -336,7 +306,7 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_Template(rf
336
306
  i0.ɵɵadvance(2);
337
307
  i0.ɵɵproperty("ngIf", !ctx_r62.hideRows);
338
308
  } }
339
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
309
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
340
310
  i0.ɵɵelementStart(0, "div", 38);
341
311
  i0.ɵɵelement(1, "ccd-field-read", 41);
342
312
  i0.ɵɵelementEnd();
@@ -348,10 +318,10 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_div_2_Template(
348
318
  i0.ɵɵadvance(1);
349
319
  i0.ɵɵproperty("caseField", result_r50.columns[col_r60.case_field_id])("contextFields", result_r50.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(5, _c0));
350
320
  } }
351
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
321
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
352
322
  i0.ɵɵelementStart(0, "td", 33);
353
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
354
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
323
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
324
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
355
325
  i0.ɵɵelementEnd();
356
326
  } if (rf & 2) {
357
327
  const colIndex_r61 = ctx.index;
@@ -360,7 +330,7 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_Template(rf, ct
360
330
  i0.ɵɵadvance(1);
361
331
  i0.ɵɵproperty("ngIf", colIndex_r61 != 0);
362
332
  } }
363
- function SearchResultComponent_table_0_ng_container_15_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
333
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
364
334
  i0.ɵɵelementStart(0, "td");
365
335
  i0.ɵɵelementStart(1, "div");
366
336
  i0.ɵɵelement(2, "ccd-activity", 42);
@@ -374,11 +344,11 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_td_3_Template(rf, ct
374
344
  i0.ɵɵadvance(1);
375
345
  i0.ɵɵproperty("caseId", result_r50.case_id)("displayMode", ctx_r53.ICON);
376
346
  } }
377
- function SearchResultComponent_table_0_ng_container_15_tr_1_Template(rf, ctx) { if (rf & 1) {
347
+ function SearchResultComponent_table_0_ng_container_14_tr_1_Template(rf, ctx) { if (rf & 1) {
378
348
  i0.ɵɵelementStart(0, "tr");
379
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template, 4, 5, "td", 8);
380
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_Template, 3, 2, "td", 30);
381
- i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_15_tr_1_td_3_Template, 3, 4, "td", 0);
349
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template, 4, 5, "td", 8);
350
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template, 3, 2, "td", 30);
351
+ i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template, 3, 4, "td", 0);
382
352
  i0.ɵɵelementEnd();
383
353
  } if (rf & 2) {
384
354
  const ctx_r49 = i0.ɵɵnextContext(3);
@@ -389,9 +359,9 @@ function SearchResultComponent_table_0_ng_container_15_tr_1_Template(rf, ctx) {
389
359
  i0.ɵɵadvance(1);
390
360
  i0.ɵɵproperty("ngIf", ctx_r49.activityEnabled());
391
361
  } }
392
- function SearchResultComponent_table_0_ng_container_15_Template(rf, ctx) { if (rf & 1) {
362
+ function SearchResultComponent_table_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
393
363
  i0.ɵɵelementContainerStart(0);
394
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_Template, 4, 3, "tr", 9);
364
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_Template, 4, 3, "tr", 9);
395
365
  i0.ɵɵpipe(2, "paginate");
396
366
  i0.ɵɵpipe(3, "ccdSortSearchResult");
397
367
  i0.ɵɵelementContainerEnd();
@@ -405,29 +375,28 @@ function SearchResultComponent_table_0_Template(rf, ctx) { if (rf & 1) {
405
375
  i0.ɵɵelementStart(1, "caption");
406
376
  i0.ɵɵelementStart(2, "h2", 3);
407
377
  i0.ɵɵtext(3);
408
- i0.ɵɵpipe(4, "rpxTranslate");
409
378
  i0.ɵɵelementEnd();
410
- i0.ɵɵtemplate(5, SearchResultComponent_table_0_div_5_Template, 11, 12, "div", 4);
411
- i0.ɵɵtemplate(6, SearchResultComponent_table_0_div_6_Template, 17, 18, "div", 5);
412
- i0.ɵɵtemplate(7, SearchResultComponent_table_0_div_7_Template, 6, 6, "div", 6);
379
+ i0.ɵɵtemplate(4, SearchResultComponent_table_0_div_4_Template, 8, 3, "div", 4);
380
+ i0.ɵɵtemplate(5, SearchResultComponent_table_0_div_5_Template, 12, 4, "div", 5);
381
+ i0.ɵɵtemplate(6, SearchResultComponent_table_0_div_6_Template, 4, 0, "div", 6);
413
382
  i0.ɵɵelementEnd();
414
- i0.ɵɵelementStart(8, "thead");
415
- i0.ɵɵelementStart(9, "tr", 7);
416
- i0.ɵɵtemplate(10, SearchResultComponent_table_0_th_10_Template, 4, 2, "th", 8);
417
- i0.ɵɵtemplate(11, SearchResultComponent_table_0_th_11_Template, 9, 7, "th", 9);
418
- i0.ɵɵtemplate(12, SearchResultComponent_table_0_th_12_Template, 1, 0, "th", 10);
383
+ i0.ɵɵelementStart(7, "thead");
384
+ i0.ɵɵelementStart(8, "tr", 7);
385
+ i0.ɵɵtemplate(9, SearchResultComponent_table_0_th_9_Template, 4, 2, "th", 8);
386
+ i0.ɵɵtemplate(10, SearchResultComponent_table_0_th_10_Template, 5, 3, "th", 9);
387
+ i0.ɵɵtemplate(11, SearchResultComponent_table_0_th_11_Template, 1, 0, "th", 10);
419
388
  i0.ɵɵelementEnd();
420
389
  i0.ɵɵelementEnd();
421
- i0.ɵɵelementStart(13, "tbody");
422
- i0.ɵɵtemplate(14, SearchResultComponent_table_0_ng_container_14_Template, 3, 8, "ng-container", 0);
423
- i0.ɵɵtemplate(15, SearchResultComponent_table_0_ng_container_15_Template, 4, 11, "ng-container", 0);
390
+ i0.ɵɵelementStart(12, "tbody");
391
+ i0.ɵɵtemplate(13, SearchResultComponent_table_0_ng_container_13_Template, 3, 8, "ng-container", 0);
392
+ i0.ɵɵtemplate(14, SearchResultComponent_table_0_ng_container_14_Template, 4, 11, "ng-container", 0);
424
393
  i0.ɵɵelementEnd();
425
394
  i0.ɵɵelementEnd();
426
395
  } if (rf & 2) {
427
396
  const ctx_r0 = i0.ɵɵnextContext();
428
397
  i0.ɵɵadvance(3);
429
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 9, ctx_r0.caseState ? "Your cases" : "Search result"));
430
- i0.ɵɵadvance(2);
398
+ i0.ɵɵtextInterpolate(ctx_r0.caseState ? "Your cases" : "Search result");
399
+ i0.ɵɵadvance(1);
431
400
  i0.ɵɵproperty("ngIf", ctx_r0.paginationLimitEnforced);
432
401
  i0.ɵɵadvance(1);
433
402
  i0.ɵɵproperty("ngIf", ctx_r0.hasResults() || ctx_r0.hasDrafts());
@@ -455,14 +424,8 @@ function SearchResultComponent_ccd_pagination_1_Template(rf, ctx) { if (rf & 1)
455
424
  } }
456
425
  function SearchResultComponent_div_2_Template(rf, ctx) { if (rf & 1) {
457
426
  i0.ɵɵelementStart(0, "div", 45);
458
- i0.ɵɵpipe(1, "rpxTranslate");
459
- i0.ɵɵtext(2);
460
- i0.ɵɵpipe(3, "rpxTranslate");
427
+ i0.ɵɵtext(1, " No cases found. Try using different filters.\n");
461
428
  i0.ɵɵelementEnd();
462
- } if (rf & 2) {
463
- i0.ɵɵattribute("aria-describedby", i0.ɵɵpipeBind1(1, 2, "No cases found. Try using different filters."));
464
- i0.ɵɵadvance(2);
465
- i0.ɵɵtextInterpolate1("\n", i0.ɵɵpipeBind1(3, 4, "No cases found. Try using different filters."), "\n");
466
429
  } }
467
430
  export class SearchResultComponent {
468
431
  constructor(searchResultViewItemComparatorFactory, appConfig, activityService, caseReferencePipe, placeholderService, browserService, sessionStorageService) {
@@ -798,10 +761,10 @@ SearchResultComponent.PARAM_JURISDICTION = 'jurisdiction';
798
761
  SearchResultComponent.PARAM_CASE_TYPE = 'case-type';
799
762
  SearchResultComponent.PARAM_CASE_STATE = 'case-state';
800
763
  SearchResultComponent.ɵfac = function SearchResultComponent_Factory(t) { return new (t || SearchResultComponent)(i0.ɵɵdirectiveInject(i1.SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(i2.AbstractAppConfig), i0.ɵɵdirectiveInject(i1.ActivityService), i0.ɵɵdirectiveInject(i3.CaseReferencePipe), i0.ɵɵdirectiveInject(i4.PlaceholderService), i0.ɵɵdirectiveInject(i1.BrowserService), i0.ɵɵdirectiveInject(i1.SessionStorageService)); };
801
- SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", "role", "status", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], [4, "ngFor", "ngForOf"], ["style", "width: 110px;", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["role", "status", 1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "javascript:void(0)", 1, "search-result-reset-link", 3, "click"], ["scope", "col", 1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "checked", "disabled", "change"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], [1, "search-result-column-header"], [1, "search-result-column-label", 3, "click"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "javascript:void(0)", 1, "sort-widget", 3, "innerHTML", "click"], [2, "width", "110px"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["case_reference", ""], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change", "keyup"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
802
- i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 16, 11, "table", 0);
764
+ SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", "aria-label", "No cases found. Try using different filters.", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", "role", "status", 4, "ngIf"], ["class", "reset-selection", "attr.aria-label", "Reset selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], [4, "ngFor", "ngForOf"], ["style", "width: 110px;", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["role", "status", 1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], ["attr.aria-label", "Reset selection", 1, "reset-selection"], ["href", "javascript:void(0)", 1, "search-result-reset-link", 3, "click"], ["scope", "col", 1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "checked", "disabled", "change"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], [1, "search-result-column-header"], [1, "search-result-column-label", 3, "click"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "javascript:void(0)", 1, "sort-widget", 3, "innerHTML", "click"], [2, "width", "110px"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["case_reference", ""], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change", "keyup"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange"], ["aria-label", "No cases found. Try using different filters.", 1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
765
+ i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 15, 9, "table", 0);
803
766
  i0.ɵɵtemplate(1, SearchResultComponent_ccd_pagination_1_Template, 1, 6, "ccd-pagination", 1);
804
- i0.ɵɵtemplate(2, SearchResultComponent_div_2_Template, 4, 6, "div", 2);
767
+ i0.ɵɵtemplate(2, SearchResultComponent_div_2_Template, 2, 0, "div", 2);
805
768
  } if (rf & 2) {
806
769
  i0.ɵɵproperty("ngIf", ctx.hasResults() || ctx.hasDrafts());
807
770
  i0.ɵɵadvance(1);
@@ -851,4 +814,4 @@ SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultCompone
851
814
  }], sortHandler: [{
852
815
  type: Output
853
816
  }] }); })();
854
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUNsRCxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7SUNKM0gsK0JBQXlGO0lBQ3ZGLGdDQUEwRDtJQUFBLGlCQUFDO0lBQUEsaUJBQU87SUFDbEUsa0NBQXlDO0lBQ3ZDLGdDQUE0QztJQUFBLFlBQTRCOztJQUFBLGlC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Z0NBQWdDO2dCQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQzthQUM5Qzt3UkFZUSxtQkFBbUI7a0JBRHpCLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxJQUFJO2tCQURWLEtBQUs7WUFJQyxrQkFBa0I7a0JBRHhCLEtBQUs7WUFJQyxjQUFjO2tCQURwQixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsc0JBQXNCO2tCQUQ1QixLQUFLO1lBSUMsU0FBUztrQkFEZixNQUFNO1lBSUEsVUFBVTtrQkFEaEIsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFdBQVc7a0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENhc2VGaWVsZCwgQ2FzZVN0YXRlLCBDYXNlVHlwZSwgRGlzcGxheU1vZGUsXG4gIERSQUZUX1BSRUZJWCwgSnVyaXNkaWN0aW9uLCBQYWdpbmF0aW9uTWV0YWRhdGEsIFNlYXJjaFJlc3VsdFZpZXcsIFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sXG4gIFNlYXJjaFJlc3VsdFZpZXdJdGVtLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IsIFNvcnRPcmRlciwgU29ydFBhcmFtZXRlcnMgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UsIEJyb3dzZXJTZXJ2aWNlLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1zZWFyY2gtcmVzdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fSlVSSVNESUNUSU9OID0gJ2p1cmlzZGljdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9UWVBFID0gJ2Nhc2UtdHlwZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9TVEFURSA9ICdjYXNlLXN0YXRlJztcblxuICBwcml2YXRlIHJlYWRvbmx5IFBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUID0gMTAwMDA7XG5cbiAgcHVibGljIElDT04gPSBEaXNwbGF5TW9kZS5JQ09OO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlTGlua1VybFRlbXBsYXRlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGp1cmlzZGljdGlvbjogSnVyaXNkaWN0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlVHlwZTogQ2FzZVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VTdGF0ZTogQ2FzZVN0YXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmlsdGVyRkc6IEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVzdWx0VmlldzogU2VhcmNoUmVzdWx0VmlldztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdpbmF0aW9uTWV0YWRhdGE6IFBhZ2luYXRpb25NZXRhZGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWV0YWRhdGFGaWVsZHM6IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dPbmx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcHJlU2VsZWN0ZWRDYXNlczogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb25zdW1lclNvcnRpbmdFbmFibGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdFZpZXdJdGVtW10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjaGFuZ2VQYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsaWNrQ2FzZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzb3J0SGFuZGxlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHBhZ2luYXRpb25QYWdlU2l6ZTogbnVtYmVyO1xuXG4gIHB1YmxpYyBoaWRlUm93czogYm9vbGVhbjtcblxuICBwdWJsaWMgc2VsZWN0ZWQ6IHtcbiAgICBpbml0PzogYm9vbGVhbixcbiAgICBqdXJpc2RpY3Rpb24/OiBKdXJpc2RpY3Rpb24sXG4gICAgY2FzZVR5cGU/OiBDYXNlVHlwZSxcbiAgICBjYXNlU3RhdGU/OiBDYXNlU3RhdGUsXG4gICAgZm9ybUdyb3VwPzogRm9ybUdyb3VwLFxuICAgIG1ldGFkYXRhRmllbGRzPzogc3RyaW5nW10sXG4gICAgcGFnZT86IG51bWJlclxuICB9ID0ge307XG5cbiAgcHVibGljIHNvcnRQYXJhbWV0ZXJzOiBTb3J0UGFyYW1ldGVycztcbiAgcHVibGljIHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk7XG4gIHB1YmxpYyBkcmFmdHNDb3VudDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdW1lclNvcnRQYXJhbWV0ZXJzOiB7IGNvbHVtbjogc3RyaW5nLCBvcmRlcjogU29ydE9yZGVyLCB0eXBlOiBzdHJpbmcgfSA9IHsgY29sdW1uOiBudWxsLCBvcmRlcjogbnVsbCwgdHlwZTogbnVsbCB9O1xuXG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSxcbiAgICBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlUmVmZXJlbmNlUGlwZTogQ2FzZVJlZmVyZW5jZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlclNlcnZpY2U6IFBsYWNlaG9sZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyb3dzZXJTZXJ2aWNlOiBCcm93c2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSA9IHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk7XG4gICAgdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPSBhcHBDb25maWcuZ2V0UGFnaW5hdGlvblBhZ2VTaXplKCk7XG4gICAgdGhpcy5oaWRlUm93cyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZVNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJlU2VsZWN0ZWRDYXNlIG9mIHRoaXMucHJlU2VsZWN0ZWRDYXNlcykge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENhc2VzICYmICF0aGlzLnNlbGVjdGVkQ2FzZXMuc29tZShhQ2FzZSA9PiBhQ2FzZS5jYXNlX2lkID09PSBwcmVTZWxlY3RlZENhc2UuY2FzZV9pZCkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChwcmVTZWxlY3RlZENhc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIGlmIChjaGFuZ2VzWydyZXN1bHRWaWV3J10pIHtcbiAgICAgIHRoaXMuaGlkZVJvd3MgPSBmYWxzZTtcblxuICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIC8vIENsb25lIGByZXN1bHRWaWV3YCB0byBwcmV2ZW50IHNvcnRpbmcgdGhlIGV4dGVybmFsIHZhcmlhYmxlXG4gICAgICB0aGlzLnJlc3VsdFZpZXcgPSB7XG4gICAgICAgIGNvbHVtbnM6IHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zLnNsaWNlKDApLFxuICAgICAgICByZXN1bHRzOiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5zbGljZSgwKSxcbiAgICAgICAgaGFzRHJhZnRzOiB0aGlzLnJlc3VsdFZpZXcuaGFzRHJhZnRzXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucyA9IHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zLnNvcnQoKGE6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sIGI6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pID0+IHtcbiAgICAgICAgcmV0dXJuIGEub3JkZXIgLSBiLm9yZGVyO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaHlkcmF0ZVJlc3VsdFZpZXcoKTtcbiAgICAgIHRoaXMuZHJhZnRzQ291bnQgPSB0aGlzLmRyYWZ0c0NvdW50ID8gdGhpcy5kcmFmdHNDb3VudCA6IHRoaXMubnVtYmVyT2ZEcmFmdHMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3BhZ2UnXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gKGNoYW5nZXNbJ3BhZ2UnXSkuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzdWx0VG90YWwoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMucGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsUmVzdWx0c0NvdW50O1xuICAgIGNvbnN0IG1heGltdW1SZXN1bHRSZWFjaGVkID0gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVDtcbiAgICB0aGlzLnBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gbWF4aW11bVJlc3VsdFJlYWNoZWQ7XG5cbiAgICByZXR1cm4gbWF4aW11bVJlc3VsdFJlYWNoZWQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENhc2VzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNhbkJlU2hhcmVkKGNhc2VWaWV3OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEgJiYgY2FzZVZpZXcuc3VwcGxlbWVudGFyeV9kYXRhLmhhc093blByb3BlcnR5KCdvcmdzX2Fzc2lnbmVkX3VzZXJzJyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQW55QmVTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxPblBhZ2VTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBhbGwgY2FzZXMgYWxyZWFkeSBzZWxlY3RlZCwgc28gdW5zZWxlY3QgYWxsIG9uIHRoaXMgcGFnZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChjKSAmJiB0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChjKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gcy5jYXNlX2lkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gdGhpcy5zZWxlY3RlZENhc2VzW2ldLmNhc2VfaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxPblBhZ2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2FuQmVTaGFyZWRDb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXTtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIGNhbkJlU2hhcmVkQ291bnQgKys7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChyKSAmJiB0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhbkJlU2hhcmVkQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogSHlkcmF0ZXMgcmVzdWx0IHZpZXcgd2l0aCBjYXNlIGZpZWxkIGRlZmluaXRpb25zLlxuICAgKi9cbiAgLy8gQSBsb25nZXIgdGVybSByZXNvbHV0aW9uIGlzIHRvIG1vdmUgdGhpcyBwaWVjZSBvZiBsb2dpYyB0byB0aGUgYmFja2VuZFxuICBwdWJsaWMgaHlkcmF0ZVJlc3VsdFZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkcyA9IFtdO1xuXG4gICAgICBPYmplY3Qua2V5cyhyZXN1bHQuY2FzZV9maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSByZXN1bHQuY2FzZV9maWVsZHNbZmllbGRJZF07XG5cbiAgICAgICAgY2FzZUZpZWxkcy5wdXNoKE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICAgICAgaWQ6IGZpZWxkSWQsXG4gICAgICAgICAgbGFiZWw6IG51bGwsXG4gICAgICAgICAgZmllbGRfdHlwZToge30sXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLFxuICAgICAgICAgIGRpc3BsYXlfY29udGV4dDogbnVsbCxcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkcyA9IGNhc2VGaWVsZHM7XG4gICAgICByZXN1bHQuY29sdW1ucyA9IHt9O1xuXG4gICAgICB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgIHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSA9IHRoaXMuYnVpbGRDYXNlRmllbGQoY29sLCByZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFnZShwYWdlKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlUm93cyA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZC5pbml0ID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbjtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdGhpcy5jYXNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA9IHRoaXMuY2FzZVN0YXRlO1xuICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5jYXNlRmlsdGVyRkc7XG4gICAgdGhpcy5zZWxlY3RlZC5tZXRhZGF0YUZpZWxkcyA9IHRoaXMubWV0YWRhdGFGaWVsZHM7XG4gICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gcGFnZTtcbiAgICAvLyBBcHBseSBmaWx0ZXJzXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fSlVSSVNESUNUSU9OXSA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID8gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1RZUEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID8gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUuaWQgOiBudWxsO1xuICAgIHRoaXMuY2hhbmdlUGFnZS5lbWl0KHtcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgcXVlcnlQYXJhbXNcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKTtcbiAgICBpZiAodG9wQ29udGFpbmVyKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfVxuICAgICAgdG9wQ29udGFpbmVyLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ2FzZUZpZWxkKGNvbDogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgcmVzdWx0OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZDogY29sLmNhc2VfZmllbGRfaWQsXG4gICAgICBsYWJlbDogY29sLmxhYmVsLFxuICAgICAgZmllbGRfdHlwZTogY29sLmNhc2VfZmllbGRfdHlwZSxcbiAgICAgIHZhbHVlOiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdLFxuICAgICAgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcjogY29sLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsXG4gICAgICBkaXNwbGF5X2NvbnRleHQ6IGNvbC5kaXNwbGF5X2NvbnRleHQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uc1dpdGhQcmVmaXgoY29sOiBDYXNlRmllbGQsIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIGNvbC52YWx1ZSA9IHRoaXMuZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7XG4gICAgY29sLnZhbHVlID0gdGhpcy5wbGFjZWhvbGRlclNlcnZpY2UucmVzb2x2ZVBsYWNlaG9sZGVycyhyZXN1bHQuY2FzZV9maWVsZHMsIGNvbC52YWx1ZSk7XG4gICAgcmV0dXJuIGNvbDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNSZXN1bHRzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbFBhZ2VzQ291bnQ7XG4gIH1cblxuICBwdWJsaWMgaGFzRHJhZnRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcuaGFzRHJhZnRzKCk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyYXRvcihjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3Ige1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkuY3JlYXRlU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yKGNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc29ydChjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pIHtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBpZiAoY29sdW1uLmNhc2VfZmllbGRfaWQgIT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydE9yZGVyLkFTQ0VORElORyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfVxuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkO1xuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLnR5cGUgPSBjb2x1bW4uY2FzZV9maWVsZF90eXBlLnR5cGU7XG4gICAgICB0aGlzLnNvcnRIYW5kbGVyLmVtaXQodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pKSB7XG4gICAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSBuZXcgU29ydFBhcmFtZXRlcnModGhpcy5jb21wYXJhdG9yKGNvbHVtbiksIFNvcnRPcmRlci5BU0NFTkRJTkcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkRFU0NFTkRJTkcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzb3J0V2lkZ2V0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGxldCBjb25kaXRpb24gPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBjb25zdCBpc0NvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkID09PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uO1xuICAgICAgY29uc3QgaXNBc2NlbmRpbmcgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgICBjb25kaXRpb24gPSAhaXNDb2x1bW4gfHwgKGlzQ29sdW1uICYmIGlzQXNjZW5kaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9uID0gdGhpcy5pc1NvcnRBc2NlbmRpbmcoY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9uID8gJyYjOTY2MDsnIDogJyYjOTY1MDsnO1xuICB9XG5cbiAgcHVibGljIGFjdGl2aXR5RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuaXNFbmFibGVkO1xuICB9XG5cbiAgcHVibGljIGh5cGhlbmF0ZUlmQ2FzZVJlZmVyZW5jZU9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICBpZiAoY29sLmNhc2VfZmllbGRfaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuY2FzZV9maWVsZF9pZF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29sLmlkKSB7XG4gICAgICAgIGlmIChjb2wuaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybShyZXN1bHQuY2FzZV9maWVsZHNbY29sLmlkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk6IGFueSB7XG4gICAgcmV0dXJuIHJlc3VsdC5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSA/IERSQUZUX1BSRUZJWCA6IHRoaXMuaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpO1xuICB9XG5cbiAgcHVibGljIGlzU29ydEFzY2VuZGluZyhjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyZW50U29ydE9yZGVyID0gdGhpcy5jdXJyZW50U29ydE9yZGVyKGNvbHVtbik7XG5cbiAgICByZXR1cm4gY3VycmVudFNvcnRPcmRlciA9PT0gU29ydE9yZGVyLlVOU09SVEVEIHx8IGN1cnJlbnRTb3J0T3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50U29ydE9yZGVyKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNvcnRPcmRlciB7XG5cbiAgICBsZXQgaXNBc2NlbmRpbmcgPSB0cnVlO1xuICAgIGxldCBpc0Rlc2NlbmRpbmcgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBjb21wYXJpc29uID0gdGhpcy5jb21wYXJhdG9yKGNvbHVtbikuY29tcGFyZSh0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXSwgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaSArIDFdKTtcbiAgICAgIGlzRGVzY2VuZGluZyA9IGlzRGVzY2VuZGluZyAmJiBjb21wYXJpc29uIDw9IDA7XG4gICAgICBpc0FzY2VuZGluZyA9IGlzQXNjZW5kaW5nICYmIGNvbXBhcmlzb24gPj0gMDtcbiAgICAgIGlmICghaXNBc2NlbmRpbmcgJiYgIWlzRGVzY2VuZGluZykge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzQXNjZW5kaW5nID8gU29ydE9yZGVyLkFTQ0VORElORyA6IGlzRGVzY2VuZGluZyA/IFNvcnRPcmRlci5ERVNDRU5ESU5HIDogU29ydE9yZGVyLlVOU09SVEVEO1xuICB9XG5cbiAgcHVibGljIGdldEZpcnN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIDEgKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUmVzdWx0cygpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgKyB0aGlzLmRyYWZ0c0NvdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsID49IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZUNhc2VMaW5rVXJsKGNhc2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5jYXNlTGlua1VybFRlbXBsYXRlO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdqdXJpc2RpY3Rpb25faWQnLCB0aGlzLmp1cmlzZGljdGlvbi5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VUeXBlX2lkJywgdGhpcy5jYXNlVHlwZS5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VfaWQnLCBjYXNlSWQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpOiBudW1iZXIge1xuICAgIHJldHVybiBjdXJyZW50UGFnZSA+IDEgPyB0aGlzLmRyYWZ0c0NvdW50IDogMDtcbiAgfVxuXG4gIHByaXZhdGUgbnVtYmVyT2ZEcmFmdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZmlsdGVyKF8gPT4gXy5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdvVG9DYXNlKGNhc2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGlja0Nhc2UuZW1pdCh7XG4gICAgICBjYXNlSWRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuYnJvd3NlclNlcnZpY2UuaXNGaXJlZm94IHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNTYWZhcmkgfHwgdGhpcy5icm93c2VyU2VydmljZS5pc0lFT3JFZGdlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0aW9uKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPHRhYmxlICpuZ0lmPVwiaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpXCI+XG4gIDxjYXB0aW9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDJcIiBpZD1cInNlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dFwiIHRhYmluZGV4PVwiLTFcIj57eyAoY2FzZVN0YXRlID8gJ1lvdXIgY2FzZXMnIDogJ1NlYXJjaCByZXN1bHQnKSB8IHJweFRyYW5zbGF0ZX19PC9oMj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHQgcGFnaW5hdGlvbi1saW1pdC13YXJuaW5nXCIgKm5nSWY9XCJwYWdpbmF0aW9uTGltaXRFbmZvcmNlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+e3snV2FybmluZycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAge3snVGhlIHRvdGFsIHNpemUgb2YgdGhlIHJlc3VsdCBzZXQgaXMnIHwgcnB4VHJhbnNsYXRlfX0ge3twYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgfCBudW1iZXJ9fS4ge3snT25seSB0aGUgZmlyc3QgMTAsMDAwIHJlY29yZHMgYXJlIGF2YWlsYWJsZSBmb3IgZGlzcGxheS4nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIihoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLXRvcFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VG90YWxSZXN1bHRzKCkgKyAnIHJlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kJyB8IHJweFRyYW5zbGF0ZVwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiIGlkPVwic2VhcmNoLXJlc3VsdC1zdW1tYXJ5X190ZXh0XCI+e3snU2hvd2luZycgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldEZpcnN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIHt7J3RvJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0TGFzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICB7eydvZicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldFRvdGFsUmVzdWx0cygpIH19PC9zcGFuPiB7eydyZXN1bHRzJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIoaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpKSAmJiBzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJyZXNldC1zZWxlY3Rpb25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1Jlc2V0IHNlbGVjdGlvbicgfCBycHhUcmFuc2xhdGVcIj5cbiAgICAgIDxzcGFuPjxhIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1yZXNldC1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJjbGVhclNlbGVjdGlvbigpXCI+e3snUmVzZXQgY2FzZSBzZWxlY3Rpb24nIHwgcnB4VHJhbnNsYXRlfX08L2E+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2NhcHRpb24+XG4gIDx0aGVhZD5cbiAgICA8dHIgc2NvcGU9XCJyb3dcIj5cbiAgICAgIDx0aCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC1hbGxcIiBuYW1lPVwic2VsZWN0LWFsbFwiIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsKClcIiBbY2hlY2tlZF09XCJhbGxPblBhZ2VTZWxlY3RlZCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5BbnlCZVNoYXJlZCgpXCIgLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC1hbGxcIj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnNcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4taGVhZGVyXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIignU29ydCBieSAnICsgY29sLmxhYmVsICsgJyAnICsgaXNTb3J0QXNjZW5kaW5nKGNvbCk/ICdhc2NlbmRpbmcnIDogJ2Rlc2NlbmRpbmcnKSB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWxhYmVsXCIgKGNsaWNrKT1cInNvcnQoY29sKVwiPlxuICAgICAgICAgICAgICAgIHt7Y29sLmxhYmVsIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb21wYXJhdG9yKGNvbClcIiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLXNvcnRcIj5cbiAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic29ydChjb2wpXCIgY2xhc3M9XCJzb3J0LXdpZGdldFwiIFtpbm5lckhUTUxdPVwic29ydFdpZGdldChjb2wpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPjwvYT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIiBzdHlsZT1cIndpZHRoOiAxMTBweDtcIj48L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDwhLS0gc29ydGVkIGJ5IGNvbnN1bWVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cbiAgICAgICAgICA8YSAqbmdJZj1cImNvbEluZGV4ID09IDBcIiBbcm91dGVyTGlua109XCJwcmVwYXJlQ2FzZUxpbmtVcmwocmVzdWx0LmNhc2VfaWQpXCJcbiAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cImdvIHRvIGNhc2Ugd2l0aCBDYXNlIHJlZmVyZW5jZTp7eyByZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2UgfX1cIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhaGlkZVJvd3NcIj5cbiAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkICpuZ0lmPVwiZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7IGVsc2UgY2FzZV9yZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImdldENvbHVtbnNXaXRoUHJlZml4KHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSwgcmVzdWx0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FzZV9yZWZlcmVuY2U+e3tyZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2V9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbEluZGV4ICE9IDBcIiBjbGFzcz1cInRleHQtMTZcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgY2NkTGFiZWxTdWJzdGl0dXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRdPVwicmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpdml0eUVuYWJsZWQoKVwiPlxuICAgICAgICAgIDxkaXYgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cInJlc3VsdC5jYXNlX2lkXCIgW2Rpc3BsYXlNb2RlXT1cIklDT05cIj48L2NjZC1hY3Rpdml0eT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBzb3J0ZWQgYnkgdG9vbGtpdCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbnN1bWVyU29ydGluZ0VuYWJsZWRcIj5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHJlc3VsdFZpZXcucmVzdWx0cyB8IGNjZFNvcnRTZWFyY2hSZXN1bHQgOiBzb3J0UGFyYW1ldGVycyB8IHBhZ2luYXRlOiB7IGl0ZW1zUGVyUGFnZTogcGFnaW5hdGlvblBhZ2VTaXplLCBjdXJyZW50UGFnZTogc2VsZWN0ZWQucGFnZSwgdG90YWxJdGVtczogcmVzdWx0VG90YWwgfVwiPlxuICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgbmFtZT1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwiY2hhbmdlU2VsZWN0aW9uKHJlc3VsdClcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKHJlc3VsdClcIiBbZGlzYWJsZWRdPVwiIWNhbkJlU2hhcmVkKHJlc3VsdClcIiAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIHJlc3VsdClcIiAvPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uczsgbGV0IGNvbEluZGV4ID0gaW5kZXhcIiBzY29wZT1cInJvd1wiPlxuXG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48Y2NkLXBhZ2luYXRpb25cbiAgKm5nSWY9XCJoYXNSZXN1bHRzKClcIlxuICAocGFnZUNoYW5nZSk9XCJnb1RvUGFnZSgkZXZlbnQpXCJcbiAgW3Zpc2liaWxpdHlMYWJlbF09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcbiAgW2F1dG9IaWRlXT1cInRydWVcIlxuICBbbWF4U2l6ZV09XCI4XCJcbiAgW3NjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbF09XCInUGFnaW5hdGlvbidcIlxuICBbc2NyZWVuUmVhZGVyUGFnZUxhYmVsXT1cInBhZ2VcIlxuICBbc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsXT1cIidZb3VcXCdyZSBvbiBwYWdlJ1wiPjwvY2NkLXBhZ2luYXRpb24+XG5cbjxkaXYgKm5nSWY9XCIhKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXG5bYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLicgfCBycHhUcmFuc2xhdGVcIj5cbnt7J05vIGNhc2VzIGZvdW5kLiBUcnkgdXNpbmcgZGlmZmVyZW50IGZpbHRlcnMuJyB8IHJweFRyYW5zbGF0ZX19XG48L2Rpdj5cbiJdfQ==
817
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUNsRCxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7SUNKM0gsK0JBQXlGO0lBQ3ZGLGdDQUEwRDtJQUFBLGlCQUFDO0lBQUEsaUJBQU87SUFDbEUsa0NBQXlDO0lBQ3ZDLGdDQUE0QztJQUFBLHVCQUFPO0lBQUEsaUJB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O1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsc0JBQXNCO2tCQUQ1QixLQUFLO1lBSUMsU0FBUztrQkFEZixNQUFNO1lBSUEsVUFBVTtrQkFEaEIsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFdBQVc7a0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENhc2VGaWVsZCwgQ2FzZVN0YXRlLCBDYXNlVHlwZSwgRGlzcGxheU1vZGUsXG4gIERSQUZUX1BSRUZJWCwgSnVyaXNkaWN0aW9uLCBQYWdpbmF0aW9uTWV0YWRhdGEsIFNlYXJjaFJlc3VsdFZpZXcsIFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sXG4gIFNlYXJjaFJlc3VsdFZpZXdJdGVtLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IsIFNvcnRPcmRlciwgU29ydFBhcmFtZXRlcnMgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UsIEJyb3dzZXJTZXJ2aWNlLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1zZWFyY2gtcmVzdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fSlVSSVNESUNUSU9OID0gJ2p1cmlzZGljdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9UWVBFID0gJ2Nhc2UtdHlwZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9TVEFURSA9ICdjYXNlLXN0YXRlJztcblxuICBwcml2YXRlIHJlYWRvbmx5IFBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUID0gMTAwMDA7XG5cbiAgcHVibGljIElDT04gPSBEaXNwbGF5TW9kZS5JQ09OO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlTGlua1VybFRlbXBsYXRlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGp1cmlzZGljdGlvbjogSnVyaXNkaWN0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlVHlwZTogQ2FzZVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VTdGF0ZTogQ2FzZVN0YXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmlsdGVyRkc6IEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVzdWx0VmlldzogU2VhcmNoUmVzdWx0VmlldztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdpbmF0aW9uTWV0YWRhdGE6IFBhZ2luYXRpb25NZXRhZGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWV0YWRhdGFGaWVsZHM6IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dPbmx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcHJlU2VsZWN0ZWRDYXNlczogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb25zdW1lclNvcnRpbmdFbmFibGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdFZpZXdJdGVtW10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjaGFuZ2VQYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsaWNrQ2FzZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzb3J0SGFuZGxlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHBhZ2luYXRpb25QYWdlU2l6ZTogbnVtYmVyO1xuXG4gIHB1YmxpYyBoaWRlUm93czogYm9vbGVhbjtcblxuICBwdWJsaWMgc2VsZWN0ZWQ6IHtcbiAgICBpbml0PzogYm9vbGVhbixcbiAgICBqdXJpc2RpY3Rpb24/OiBKdXJpc2RpY3Rpb24sXG4gICAgY2FzZVR5cGU/OiBDYXNlVHlwZSxcbiAgICBjYXNlU3RhdGU/OiBDYXNlU3RhdGUsXG4gICAgZm9ybUdyb3VwPzogRm9ybUdyb3VwLFxuICAgIG1ldGFkYXRhRmllbGRzPzogc3RyaW5nW10sXG4gICAgcGFnZT86IG51bWJlclxuICB9ID0ge307XG5cbiAgcHVibGljIHNvcnRQYXJhbWV0ZXJzOiBTb3J0UGFyYW1ldGVycztcbiAgcHVibGljIHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk7XG4gIHB1YmxpYyBkcmFmdHNDb3VudDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdW1lclNvcnRQYXJhbWV0ZXJzOiB7IGNvbHVtbjogc3RyaW5nLCBvcmRlcjogU29ydE9yZGVyLCB0eXBlOiBzdHJpbmcgfSA9IHsgY29sdW1uOiBudWxsLCBvcmRlcjogbnVsbCwgdHlwZTogbnVsbCB9O1xuXG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSxcbiAgICBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlUmVmZXJlbmNlUGlwZTogQ2FzZVJlZmVyZW5jZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlclNlcnZpY2U6IFBsYWNlaG9sZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyb3dzZXJTZXJ2aWNlOiBCcm93c2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSA9IHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk7XG4gICAgdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPSBhcHBDb25maWcuZ2V0UGFnaW5hdGlvblBhZ2VTaXplKCk7XG4gICAgdGhpcy5oaWRlUm93cyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZVNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJlU2VsZWN0ZWRDYXNlIG9mIHRoaXMucHJlU2VsZWN0ZWRDYXNlcykge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENhc2VzICYmICF0aGlzLnNlbGVjdGVkQ2FzZXMuc29tZShhQ2FzZSA9PiBhQ2FzZS5jYXNlX2lkID09PSBwcmVTZWxlY3RlZENhc2UuY2FzZV9pZCkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChwcmVTZWxlY3RlZENhc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIGlmIChjaGFuZ2VzWydyZXN1bHRWaWV3J10pIHtcbiAgICAgIHRoaXMuaGlkZVJvd3MgPSBmYWxzZTtcblxuICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIC8vIENsb25lIGByZXN1bHRWaWV3YCB0byBwcmV2ZW50IHNvcnRpbmcgdGhlIGV4dGVybmFsIHZhcmlhYmxlXG4gICAgICB0aGlzLnJlc3VsdFZpZXcgPSB7XG4gICAgICAgIGNvbHVtbnM6IHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zLnNsaWNlKDApLFxuICAgICAgICByZXN1bHRzOiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5zbGljZSgwKSxcbiAgICAgICAgaGFzRHJhZnRzOiB0aGlzLnJlc3VsdFZpZXcuaGFzRHJhZnRzXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucyA9IHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zLnNvcnQoKGE6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sIGI6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pID0+IHtcbiAgICAgICAgcmV0dXJuIGEub3JkZXIgLSBiLm9yZGVyO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaHlkcmF0ZVJlc3VsdFZpZXcoKTtcbiAgICAgIHRoaXMuZHJhZnRzQ291bnQgPSB0aGlzLmRyYWZ0c0NvdW50ID8gdGhpcy5kcmFmdHNDb3VudCA6IHRoaXMubnVtYmVyT2ZEcmFmdHMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3BhZ2UnXSkge1xuICAgICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gKGNoYW5nZXNbJ3BhZ2UnXSkuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzdWx0VG90YWwoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMucGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsUmVzdWx0c0NvdW50O1xuICAgIGNvbnN0IG1heGltdW1SZXN1bHRSZWFjaGVkID0gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVDtcbiAgICB0aGlzLnBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gbWF4aW11bVJlc3VsdFJlYWNoZWQ7XG5cbiAgICByZXR1cm4gbWF4aW11bVJlc3VsdFJlYWNoZWQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENhc2VzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNhbkJlU2hhcmVkKGNhc2VWaWV3OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEgJiYgY2FzZVZpZXcuc3VwcGxlbWVudGFyeV9kYXRhLmhhc093blByb3BlcnR5KCdvcmdzX2Fzc2lnbmVkX3VzZXJzJyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQW55QmVTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxPblBhZ2VTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBhbGwgY2FzZXMgYWxyZWFkeSBzZWxlY3RlZCwgc28gdW5zZWxlY3QgYWxsIG9uIHRoaXMgcGFnZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChjKSAmJiB0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChjKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gcy5jYXNlX2lkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gdGhpcy5zZWxlY3RlZENhc2VzW2ldLmNhc2VfaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxPblBhZ2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2FuQmVTaGFyZWRDb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXTtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIGNhbkJlU2hhcmVkQ291bnQgKys7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChyKSAmJiB0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhbkJlU2hhcmVkQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogSHlkcmF0ZXMgcmVzdWx0IHZpZXcgd2l0aCBjYXNlIGZpZWxkIGRlZmluaXRpb25zLlxuICAgKi9cbiAgLy8gQSBsb25nZXIgdGVybSByZXNvbHV0aW9uIGlzIHRvIG1vdmUgdGhpcyBwaWVjZSBvZiBsb2dpYyB0byB0aGUgYmFja2VuZFxuICBwdWJsaWMgaHlkcmF0ZVJlc3VsdFZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkcyA9IFtdO1xuXG4gICAgICBPYmplY3Qua2V5cyhyZXN1bHQuY2FzZV9maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSByZXN1bHQuY2FzZV9maWVsZHNbZmllbGRJZF07XG5cbiAgICAgICAgY2FzZUZpZWxkcy5wdXNoKE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICAgICAgaWQ6IGZpZWxkSWQsXG4gICAgICAgICAgbGFiZWw6IG51bGwsXG4gICAgICAgICAgZmllbGRfdHlwZToge30sXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLFxuICAgICAgICAgIGRpc3BsYXlfY29udGV4dDogbnVsbCxcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkcyA9IGNhc2VGaWVsZHM7XG4gICAgICByZXN1bHQuY29sdW1ucyA9IHt9O1xuXG4gICAgICB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgIHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSA9IHRoaXMuYnVpbGRDYXNlRmllbGQoY29sLCByZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFnZShwYWdlKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlUm93cyA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZC5pbml0ID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbjtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdGhpcy5jYXNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA9IHRoaXMuY2FzZVN0YXRlO1xuICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5jYXNlRmlsdGVyRkc7XG4gICAgdGhpcy5zZWxlY3RlZC5tZXRhZGF0YUZpZWxkcyA9IHRoaXMubWV0YWRhdGFGaWVsZHM7XG4gICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gcGFnZTtcbiAgICAvLyBBcHBseSBmaWx0ZXJzXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fSlVSSVNESUNUSU9OXSA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID8gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1RZUEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID8gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUuaWQgOiBudWxsO1xuICAgIHRoaXMuY2hhbmdlUGFnZS5lbWl0KHtcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgcXVlcnlQYXJhbXNcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKTtcbiAgICBpZiAodG9wQ29udGFpbmVyKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfVxuICAgICAgdG9wQ29udGFpbmVyLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ2FzZUZpZWxkKGNvbDogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgcmVzdWx0OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZDogY29sLmNhc2VfZmllbGRfaWQsXG4gICAgICBsYWJlbDogY29sLmxhYmVsLFxuICAgICAgZmllbGRfdHlwZTogY29sLmNhc2VfZmllbGRfdHlwZSxcbiAgICAgIHZhbHVlOiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdLFxuICAgICAgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcjogY29sLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsXG4gICAgICBkaXNwbGF5X2NvbnRleHQ6IGNvbC5kaXNwbGF5X2NvbnRleHQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uc1dpdGhQcmVmaXgoY29sOiBDYXNlRmllbGQsIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIGNvbC52YWx1ZSA9IHRoaXMuZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7XG4gICAgY29sLnZhbHVlID0gdGhpcy5wbGFjZWhvbGRlclNlcnZpY2UucmVzb2x2ZVBsYWNlaG9sZGVycyhyZXN1bHQuY2FzZV9maWVsZHMsIGNvbC52YWx1ZSk7XG4gICAgcmV0dXJuIGNvbDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNSZXN1bHRzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbFBhZ2VzQ291bnQ7XG4gIH1cblxuICBwdWJsaWMgaGFzRHJhZnRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcuaGFzRHJhZnRzKCk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyYXRvcihjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3Ige1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkuY3JlYXRlU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yKGNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc29ydChjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pIHtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBpZiAoY29sdW1uLmNhc2VfZmllbGRfaWQgIT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydE9yZGVyLkFTQ0VORElORyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfVxuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkO1xuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLnR5cGUgPSBjb2x1bW4uY2FzZV9maWVsZF90eXBlLnR5cGU7XG4gICAgICB0aGlzLnNvcnRIYW5kbGVyLmVtaXQodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pKSB7XG4gICAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSBuZXcgU29ydFBhcmFtZXRlcnModGhpcy5jb21wYXJhdG9yKGNvbHVtbiksIFNvcnRPcmRlci5BU0NFTkRJTkcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkRFU0NFTkRJTkcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzb3J0V2lkZ2V0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGxldCBjb25kaXRpb24gPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBjb25zdCBpc0NvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkID09PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uO1xuICAgICAgY29uc3QgaXNBc2NlbmRpbmcgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgICBjb25kaXRpb24gPSAhaXNDb2x1bW4gfHwgKGlzQ29sdW1uICYmIGlzQXNjZW5kaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9uID0gdGhpcy5pc1NvcnRBc2NlbmRpbmcoY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9uID8gJyYjOTY2MDsnIDogJyYjOTY1MDsnO1xuICB9XG5cbiAgcHVibGljIGFjdGl2aXR5RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuaXNFbmFibGVkO1xuICB9XG5cbiAgcHVibGljIGh5cGhlbmF0ZUlmQ2FzZVJlZmVyZW5jZU9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICBpZiAoY29sLmNhc2VfZmllbGRfaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuY2FzZV9maWVsZF9pZF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29sLmlkKSB7XG4gICAgICAgIGlmIChjb2wuaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybShyZXN1bHQuY2FzZV9maWVsZHNbY29sLmlkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk6IGFueSB7XG4gICAgcmV0dXJuIHJlc3VsdC5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSA/IERSQUZUX1BSRUZJWCA6IHRoaXMuaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpO1xuICB9XG5cbiAgcHVibGljIGlzU29ydEFzY2VuZGluZyhjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyZW50U29ydE9yZGVyID0gdGhpcy5jdXJyZW50U29ydE9yZGVyKGNvbHVtbik7XG5cbiAgICByZXR1cm4gY3VycmVudFNvcnRPcmRlciA9PT0gU29ydE9yZGVyLlVOU09SVEVEIHx8IGN1cnJlbnRTb3J0T3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50U29ydE9yZGVyKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNvcnRPcmRlciB7XG5cbiAgICBsZXQgaXNBc2NlbmRpbmcgPSB0cnVlO1xuICAgIGxldCBpc0Rlc2NlbmRpbmcgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBjb21wYXJpc29uID0gdGhpcy5jb21wYXJhdG9yKGNvbHVtbikuY29tcGFyZSh0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXSwgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaSArIDFdKTtcbiAgICAgIGlzRGVzY2VuZGluZyA9IGlzRGVzY2VuZGluZyAmJiBjb21wYXJpc29uIDw9IDA7XG4gICAgICBpc0FzY2VuZGluZyA9IGlzQXNjZW5kaW5nICYmIGNvbXBhcmlzb24gPj0gMDtcbiAgICAgIGlmICghaXNBc2NlbmRpbmcgJiYgIWlzRGVzY2VuZGluZykge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzQXNjZW5kaW5nID8gU29ydE9yZGVyLkFTQ0VORElORyA6IGlzRGVzY2VuZGluZyA/IFNvcnRPcmRlci5ERVNDRU5ESU5HIDogU29ydE9yZGVyLlVOU09SVEVEO1xuICB9XG5cbiAgcHVibGljIGdldEZpcnN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIDEgKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUmVzdWx0cygpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgKyB0aGlzLmRyYWZ0c0NvdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsID49IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZUNhc2VMaW5rVXJsKGNhc2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5jYXNlTGlua1VybFRlbXBsYXRlO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdqdXJpc2RpY3Rpb25faWQnLCB0aGlzLmp1cmlzZGljdGlvbi5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VUeXBlX2lkJywgdGhpcy5jYXNlVHlwZS5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VfaWQnLCBjYXNlSWQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpOiBudW1iZXIge1xuICAgIHJldHVybiBjdXJyZW50UGFnZSA+IDEgPyB0aGlzLmRyYWZ0c0NvdW50IDogMDtcbiAgfVxuXG4gIHByaXZhdGUgbnVtYmVyT2ZEcmFmdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZmlsdGVyKF8gPT4gXy5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdvVG9DYXNlKGNhc2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGlja0Nhc2UuZW1pdCh7XG4gICAgICBjYXNlSWRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuYnJvd3NlclNlcnZpY2UuaXNGaXJlZm94IHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNTYWZhcmkgfHwgdGhpcy5icm93c2VyU2VydmljZS5pc0lFT3JFZGdlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0aW9uKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPHRhYmxlICpuZ0lmPVwiaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpXCI+XG4gIDxjYXB0aW9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDJcIiBpZD1cInNlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dFwiIHRhYmluZGV4PVwiLTFcIj57eyBjYXNlU3RhdGUgPyAnWW91ciBjYXNlcycgOiAnU2VhcmNoIHJlc3VsdCcgfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dCBwYWdpbmF0aW9uLWxpbWl0LXdhcm5pbmdcIiAqbmdJZj1cInBhZ2luYXRpb25MaW1pdEVuZm9yY2VkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj5XYXJuaW5nPC9zcGFuPlxuICAgICAgICBUaGUgdG90YWwgc2l6ZSBvZiB0aGUgcmVzdWx0IHNldCBpcyB7e3BhZ2luYXRpb25NZXRhZGF0YS50b3RhbFJlc3VsdHNDb3VudCB8IG51bWJlcn19LiBPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LlxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGdldFRvdGFsUmVzdWx0cygpIH19IHJlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kXCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgaWQ9XCJzZWFyY2gtcmVzdWx0LXN1bW1hcnlfX3RleHRcIj5TaG93aW5nXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0Rmlyc3RSZXN1bHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgdG9cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRMYXN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIG9mXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0VG90YWxSZXN1bHRzKCkgfX08L3NwYW4+IHJlc3VsdHM8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIihoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpICYmIHNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cInJlc2V0LXNlbGVjdGlvblwiXG4gICAgICBhdHRyLmFyaWEtbGFiZWw9XCJSZXNldCBzZWxlY3Rpb25cIj5cbiAgICAgIDxzcGFuPjxhIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1yZXNldC1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJjbGVhclNlbGVjdGlvbigpXCI+UmVzZXQgY2FzZSBzZWxlY3Rpb248L2E+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2NhcHRpb24+XG4gIDx0aGVhZD5cbiAgICA8dHIgc2NvcGU9XCJyb3dcIj5cbiAgICAgIDx0aCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC1hbGxcIiBuYW1lPVwic2VsZWN0LWFsbFwiIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsKClcIiBbY2hlY2tlZF09XCJhbGxPblBhZ2VTZWxlY3RlZCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5BbnlCZVNoYXJlZCgpXCIgLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC1hbGxcIj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWhlYWRlclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU29ydCBieSAnICsgY29sLmxhYmVsICsgJyAnICsgaXNTb3J0QXNjZW5kaW5nKGNvbCk/ICdhc2NlbmRpbmcnIDogJ2Rlc2NlbmRpbmcnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tbGFiZWxcIiAoY2xpY2spPVwic29ydChjb2wpXCI+e3tjb2wubGFiZWx9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbXBhcmF0b3IoY29sKVwiIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tc29ydFwiPlxuICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic29ydChjb2wpXCIgY2xhc3M9XCJzb3J0LXdpZGdldFwiIFtpbm5lckhUTUxdPVwic29ydFdpZGdldChjb2wpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPjwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCIgc3R5bGU9XCJ3aWR0aDogMTEwcHg7XCI+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG5cbiAgICA8IS0tIHNvcnRlZCBieSBjb25zdW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uc3VtZXJTb3J0aW5nRW5hYmxlZFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXN1bHQgb2YgcmVzdWx0Vmlldy5yZXN1bHRzIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdpbmF0aW9uUGFnZVNpemUsIGN1cnJlbnRQYWdlOiBzZWxlY3RlZC5wYWdlLCB0b3RhbEl0ZW1zOiByZXN1bHRUb3RhbCB9XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBuYW1lPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24ocmVzdWx0KVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQocmVzdWx0KVwiIFtkaXNhYmxlZF09XCIhY2FuQmVTaGFyZWQocmVzdWx0KVwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zOyBsZXQgY29sSW5kZXggPSBpbmRleFwiIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gc29ydGVkIGJ5IHRvb2xraXQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBjY2RTb3J0U2VhcmNoUmVzdWx0IDogc29ydFBhcmFtZXRlcnMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCByZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cblxuICAgICAgICAgIDxhICpuZ0lmPVwiY29sSW5kZXggPT0gMFwiIFtyb3V0ZXJMaW5rXT1cInByZXBhcmVDYXNlTGlua1VybChyZXN1bHQuY2FzZV9pZClcIlxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiZ28gdG8gY2FzZSB3aXRoIENhc2UgcmVmZXJlbmNlOnt7IHJlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fVwiIGNsYXNzPVwiZ292dWstbGlua1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFoaWRlUm93c1wiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgKm5nSWY9XCJkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTsgZWxzZSBjYXNlX3JlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZ2V0Q29sdW1uc1dpdGhQcmVmaXgocmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdLCByZXN1bHQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXNlX3JlZmVyZW5jZT57e3Jlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sSW5kZXggIT0gMFwiIGNsYXNzPVwidGV4dC0xNlwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBjY2RMYWJlbFN1YnN0aXR1dG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCI+XG4gICAgICAgICAgPGRpdiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwicmVzdWx0LmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiSUNPTlwiPjwvY2NkLWFjdGl2aXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGNjZC1wYWdpbmF0aW9uXG4gICpuZ0lmPVwiaGFzUmVzdWx0cygpXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gIFt2aXNpYmlsaXR5TGFiZWxdPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXG4gIFthdXRvSGlkZV09XCJ0cnVlXCJcbiAgW21heFNpemVdPVwiOFwiXG4gIFtzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWxdPVwiJ1BhZ2luYXRpb24nXCJcbiAgW3NjcmVlblJlYWRlclBhZ2VMYWJlbF09XCJwYWdlXCJcbiAgW3NjcmVlblJlYWRlckN1cnJlbnRMYWJlbF09XCInWW91XFwncmUgb24gcGFnZSdcIj48L2NjZC1wYWdpbmF0aW9uPlxuXG48ZGl2ICpuZ0lmPVwiIShoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIlxuICBhcmlhLWxhYmVsPVwiTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy5cIj5cbiAgTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy5cbjwvZGl2PlxuIl19