@hmcts/ccd-case-ui-toolkit 5.0.33-angular11-upgrade → 5.0.33-angular11-updgrade-welsh-release-v3

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 (156) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +3399 -2364
  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/components/banners/alert/alert.component.js +7 -5
  6. package/esm2015/lib/components/banners/alert/alert.module.js +12 -4
  7. package/esm2015/lib/components/footer/footer.component.js +55 -30
  8. package/esm2015/lib/components/footer/footers.module.js +12 -4
  9. package/esm2015/lib/components/form/date-input/date-input.component.js +56 -37
  10. package/esm2015/lib/components/form/form.module.js +8 -4
  11. package/esm2015/lib/components/header/header-bar/header-bar.component.js +32 -19
  12. package/esm2015/lib/components/header/headers.module.js +6 -4
  13. package/esm2015/lib/components/header/navigation/navigation-item.component.js +9 -7
  14. package/esm2015/lib/components/header/phase/phase.component.js +20 -9
  15. package/esm2015/lib/components/tabs/tabs.component.js +7 -5
  16. package/esm2015/lib/components/tabs/tabs.module.js +6 -2
  17. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +12 -9
  18. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +11 -8
  19. package/esm2015/lib/shared/components/activity/activity.component.js +15 -10
  20. package/esm2015/lib/shared/components/activity/activity.module.js +6 -2
  21. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +29 -25
  22. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +76 -48
  23. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +179 -131
  24. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +30 -26
  25. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +51 -26
  26. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +51 -28
  27. package/esm2015/lib/shared/components/case-history/case-history.component.js +89 -63
  28. package/esm2015/lib/shared/components/case-history/case-history.module.js +18 -14
  29. package/esm2015/lib/shared/components/case-list/case-list.component.js +56 -49
  30. package/esm2015/lib/shared/components/case-list/case-list.module.js +8 -4
  31. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +11 -7
  32. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +8 -5
  33. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +12 -8
  34. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +106 -61
  35. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +89 -69
  36. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +45 -23
  37. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +86 -58
  38. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +32 -20
  39. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +107 -79
  40. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +79 -49
  41. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  42. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +37 -27
  43. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +36 -22
  44. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +63 -40
  45. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +6 -2
  46. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +28 -14
  47. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +6 -2
  48. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +28 -14
  49. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +28 -14
  50. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +28 -14
  51. package/esm2015/lib/shared/components/error/callback-errors.component.js +34 -23
  52. package/esm2015/lib/shared/components/error/errors.module.js +6 -2
  53. package/esm2015/lib/shared/components/error-message/error-message.component.js +14 -11
  54. package/esm2015/lib/shared/components/error-message/error-message.module.js +8 -4
  55. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +39 -20
  56. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +34 -18
  57. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +34 -19
  58. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +50 -25
  59. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +39 -20
  60. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +34 -18
  61. package/esm2015/lib/shared/components/event-start/event-start.module.js +8 -4
  62. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +27 -17
  63. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +6 -2
  64. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +7 -5
  65. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +6 -2
  66. package/esm2015/lib/shared/components/pagination/pagination.component.js +84 -67
  67. package/esm2015/lib/shared/components/pagination/pagination.module.js +8 -4
  68. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +50 -31
  69. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +10 -8
  70. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +8 -6
  71. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +45 -32
  72. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +50 -46
  73. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +7 -6
  74. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +22 -20
  75. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +5 -4
  76. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +16 -12
  77. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +29 -17
  78. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +31 -25
  79. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +22 -14
  80. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +26 -17
  81. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +16 -12
  82. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +16 -12
  83. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +20 -15
  84. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +87 -65
  85. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +60 -46
  86. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +16 -12
  87. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +15 -11
  88. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +19 -14
  89. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +16 -12
  90. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +43 -25
  91. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +7 -6
  92. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +41 -29
  93. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +48 -35
  94. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +88 -50
  95. package/esm2015/lib/shared/components/palette/palette.module.js +52 -48
  96. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +16 -12
  97. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +16 -12
  98. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +16 -12
  99. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +20 -15
  100. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +60 -35
  101. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +14 -10
  102. package/esm2015/lib/shared/components/search-result/search-result.component.js +120 -89
  103. package/esm2015/lib/shared/components/search-result/search-result.module.js +16 -13
  104. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +64 -46
  105. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +13 -9
  106. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +3099 -2089
  107. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  108. package/lib/components/banners/alert/alert.module.d.ts +2 -1
  109. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  110. package/lib/components/footer/footers.module.d.ts +2 -1
  111. package/lib/components/footer/footers.module.d.ts.map +1 -1
  112. package/lib/components/form/form.module.d.ts +2 -1
  113. package/lib/components/form/form.module.d.ts.map +1 -1
  114. package/lib/components/header/headers.module.d.ts +2 -1
  115. package/lib/components/header/headers.module.d.ts.map +1 -1
  116. package/lib/components/tabs/tabs.module.d.ts +2 -1
  117. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  118. package/lib/shared/components/activity/activity.module.d.ts +2 -1
  119. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  120. package/lib/shared/components/case-editor/case-editor.module.d.ts +3 -2
  121. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  122. package/lib/shared/components/case-history/case-history.module.d.ts +2 -1
  123. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  124. package/lib/shared/components/case-list/case-list.module.d.ts +2 -1
  125. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  126. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +2 -1
  127. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  128. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +2 -1
  129. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  130. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +6 -4
  131. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  132. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +2 -1
  133. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  134. package/lib/shared/components/dialogs/dialogs.module.d.ts +2 -1
  135. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  136. package/lib/shared/components/error/errors.module.d.ts +2 -1
  137. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  138. package/lib/shared/components/error-message/error-message.module.d.ts +2 -1
  139. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  140. package/lib/shared/components/event-start/event-start.module.d.ts +2 -1
  141. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  142. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +2 -1
  143. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  144. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +2 -1
  145. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  146. package/lib/shared/components/pagination/pagination.module.d.ts +2 -1
  147. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  148. package/lib/shared/components/palette/palette.module.d.ts +2 -1
  149. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  150. package/lib/shared/components/search-filters/search-filters.module.d.ts +2 -1
  151. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  152. package/lib/shared/components/search-result/search-result.module.d.ts +3 -2
  153. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  154. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +2 -1
  155. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  156. package/package.json +1 -1
@@ -4,24 +4,26 @@ import { CaseField } from '../../../domain/definition/case-field.model';
4
4
  import { AbstractFieldReadComponent } from './abstract-field-read.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
- function FieldReadLabelComponent_dl_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
7
+ import * as i2 from "rpx-xui-translation";
8
+ function FieldReadLabelComponent_dl_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
8
9
  i0.ɵɵelementContainer(0);
9
10
  } }
10
11
  function FieldReadLabelComponent_dl_1_Template(rf, ctx) { if (rf & 1) {
11
12
  i0.ɵɵelementStart(0, "dl", 3);
12
13
  i0.ɵɵelementStart(1, "dt", 4);
13
14
  i0.ɵɵtext(2);
15
+ i0.ɵɵpipe(3, "rpxTranslate");
14
16
  i0.ɵɵelementEnd();
15
- i0.ɵɵelementStart(3, "dd", 5);
16
- i0.ɵɵtemplate(4, FieldReadLabelComponent_dl_1_ng_container_4_Template, 1, 0, "ng-container", 6);
17
+ i0.ɵɵelementStart(4, "dd", 5);
18
+ i0.ɵɵtemplate(5, FieldReadLabelComponent_dl_1_ng_container_5_Template, 1, 0, "ng-container", 6);
17
19
  i0.ɵɵelementEnd();
18
20
  i0.ɵɵelementEnd();
19
21
  } if (rf & 2) {
20
22
  const ctx_r0 = i0.ɵɵnextContext();
21
23
  const _r1 = i0.ɵɵreference(3);
22
24
  i0.ɵɵadvance(2);
23
- i0.ɵɵtextInterpolate(ctx_r0.caseField.label);
24
- i0.ɵɵadvance(2);
25
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, ctx_r0.caseField.label));
26
+ i0.ɵɵadvance(3);
25
27
  i0.ɵɵproperty("ngTemplateOutlet", _r1);
26
28
  } }
27
29
  function FieldReadLabelComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
@@ -65,7 +67,7 @@ FieldReadLabelComponent.ɵfac = function FieldReadLabelComponent_Factory(t) { re
65
67
  FieldReadLabelComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldReadLabelComponent, selectors: [["ccd-field-read-label"]], inputs: { withLabel: "withLabel", markdownUseHrefAsRouterLink: "markdownUseHrefAsRouterLink" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 4, vars: 5, consts: [[3, "hidden"], ["class", "case-field", 4, "ngIf", "ngIfElse"], ["caseFieldValue", ""], [1, "case-field"], [1, "case-field__label"], [1, "case-field__value"], [4, "ngTemplateOutlet"]], template: function FieldReadLabelComponent_Template(rf, ctx) { if (rf & 1) {
66
68
  i0.ɵɵprojectionDef();
67
69
  i0.ɵɵelementStart(0, "div", 0);
68
- i0.ɵɵtemplate(1, FieldReadLabelComponent_dl_1_Template, 5, 2, "dl", 1);
70
+ i0.ɵɵtemplate(1, FieldReadLabelComponent_dl_1_Template, 6, 4, "dl", 1);
69
71
  i0.ɵɵtemplate(2, FieldReadLabelComponent_ng_template_2_Template, 1, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
70
72
  i0.ɵɵelementEnd();
71
73
  } if (rf & 2) {
@@ -74,7 +76,7 @@ FieldReadLabelComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldReadLabelCom
74
76
  i0.ɵɵproperty("hidden", ctx.caseField.hidden);
75
77
  i0.ɵɵadvance(1);
76
78
  i0.ɵɵproperty("ngIf", ctx.withLabel && !ctx.isLabel() && (!ctx.isComplex() || ctx.isCaseLink()))("ngIfElse", _r1);
77
- } }, directives: [i1.NgIf, i1.NgTemplateOutlet], styles: [".case-field[_ngcontent-%COMP%]:after{content:\"\";display:block;clear:both}.case-field[_ngcontent-%COMP%]{box-sizing:border-box;margin-bottom:15px}@media (min-width:641px){.case-field[_ngcontent-%COMP%]{margin-bottom:30px}}.case-field[_ngcontent-%COMP%] .case-field__label[_ngcontent-%COMP%]{display:block;color:#0b0c0c;padding-bottom:2px;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width:641px){.case-field[_ngcontent-%COMP%] .case-field__label[_ngcontent-%COMP%]{font-size:19px;line-height:1.3157894737}}.case-field[_ngcontent-%COMP%] .case-field__value[_ngcontent-%COMP%]{font-family:nta,Arial,sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25}@media (min-width:641px){.case-field[_ngcontent-%COMP%] .case-field__value[_ngcontent-%COMP%]{font-size:19px;line-height:1.3157894737}}.form [_nghost-%COMP%] .grey-bar>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form [_nghost-%COMP%] .grey-bar>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field:not(.form-group-error){border-left:5px solid #b1b4b6}.form [_nghost-%COMP%] .grey-bar>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}"] });
79
+ } }, directives: [i1.NgIf, i1.NgTemplateOutlet], pipes: [i2.RpxTranslatePipe], styles: [".case-field[_ngcontent-%COMP%]:after{content:\"\";display:block;clear:both}.case-field[_ngcontent-%COMP%]{box-sizing:border-box;margin-bottom:15px}@media (min-width:641px){.case-field[_ngcontent-%COMP%]{margin-bottom:30px}}.case-field[_ngcontent-%COMP%] .case-field__label[_ngcontent-%COMP%]{display:block;color:#0b0c0c;padding-bottom:2px;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width:641px){.case-field[_ngcontent-%COMP%] .case-field__label[_ngcontent-%COMP%]{font-size:19px;line-height:1.3157894737}}.case-field[_ngcontent-%COMP%] .case-field__value[_ngcontent-%COMP%]{font-family:nta,Arial,sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25}@media (min-width:641px){.case-field[_ngcontent-%COMP%] .case-field__value[_ngcontent-%COMP%]{font-size:19px;line-height:1.3157894737}}.form [_nghost-%COMP%] .grey-bar>*>.form-group, .form [_nghost-%COMP%] .grey-bar>*>dl.case-field{margin-left:15px;padding-left:15px}.form [_nghost-%COMP%] .grey-bar>*>.form-group:not(.form-group-error), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field:not(.form-group-error){border-left:5px solid #b1b4b6}.form [_nghost-%COMP%] .grey-bar>*>.form-group input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>.form-group textarea:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field input:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field select:not(.inline-block), .form [_nghost-%COMP%] .grey-bar>*>dl.case-field textarea:not(.inline-block){display:block}"] });
78
80
  const ɵFieldReadLabelComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(FieldReadLabelComponent);
79
81
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldReadLabelComponent, [{
80
82
  type: Component,
@@ -90,4 +92,4 @@ const ɵFieldReadLabelComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedF
90
92
  }], markdownUseHrefAsRouterLink: [{
91
93
  type: Input
92
94
  }] }); })();
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtcmVhZC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2ZpZWxkLXJlYWQtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYmFzZS1maWVsZC9maWVsZC1yZWFkLWxhYmVsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztJQ0F2RSx3QkFBZ0U7OztJQUhwRSw2QkFBOEc7SUFDNUcsNkJBQThCO0lBQUEsWUFBbUI7SUFBQSxpQkFBSztJQUN0RCw2QkFBOEI7SUFDNUIsK0ZBQWdFO0lBQ2xFLGlCQUFLO0lBQ1AsaUJBQUs7Ozs7SUFKMkIsZUFBbUI7SUFBbkIsNENBQW1CO0lBRWhDLGVBQWdDO0lBQWhDLHNDQUFnQzs7O0lBSWpELGtCQUF5Qjs7O0FESzdCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBMEI7SUFQdkU7O1FBU0UsOERBQThEO1FBQ3ZELG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBdUMvQjtJQS9CUSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNsQyxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksU0FBUyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtZQUVELFlBQVk7WUFDWix3REFBd0Q7WUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7OzhIQXpDVSx1QkFBdUI7NERBQXZCLHVCQUF1Qjs7UUNicEMsOEJBQW9HO1FBQ2xHLHNFQUtLO1FBQ0wseUhBRWM7UUFDaEIsaUJBQU07OztRQVYyQixtRkFBa0U7UUFBOUYsNkNBQTJCO1FBQ04sZUFBaUU7UUFBakUsZ0dBQWlFLGlCQUFBOztvRkRZOUUsdUJBQXVCO3VGQUF2Qix1QkFBdUI7Y0FQbkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFdBQVcsRUFBRSx5QkFBeUI7Z0JBQ3RDLFNBQVMsRUFBRTtvQkFDVCx5QkFBeUI7aUJBQzFCO2FBQ0Y7Z0JBT1EsU0FBUztrQkFEZixLQUFLO1lBSUMsMkJBQTJCO2tCQURqQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWZpZWxkLXJlYWQtbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtcmVhZC1sYWJlbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vZmllbGQtcmVhZC1sYWJlbC5zY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkUmVhZExhYmVsQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8vIEVVSS0zMjY3LiBGbGFnIGZvciB3aGV0aGVyIG9yIG5vdCB0aGlzIGNhbiBoYXZlIGEgZ3JleSBiYXIuXG4gIHB1YmxpYyBjYW5IYXZlR3JleUJhciA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB3aXRoTGFiZWw6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGluaz86IGJvb2xlYW47XG5cbiAgcHVibGljIGlzTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnTGFiZWwnO1xuICB9XG5cbiAgcHVibGljIGlzQ29tcGxleCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQuaXNDb21wbGV4KCk7XG4gIH1cblxuICBwdWJsaWMgaXNDYXNlTGluaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQuaXNDYXNlTGluaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VzWydjYXNlRmllbGQnXTtcbiAgICBpZiAoY2hhbmdlKSB7XG4gICAgICBjb25zdCBjZk5ldyA9IGNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAoIShjZk5ldyBpbnN0YW5jZW9mIENhc2VGaWVsZCkpIHtcbiAgICAgICAgdGhpcy5maXhDYXNlRmllbGQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gRVVJLTMyNjcuXG4gICAgICAvLyBTZXQgdXAgdGhlIGZsYWcgZm9yIHdoZXRoZXIgdGhpcyBjYW4gaGF2ZSBhIGdyZXkgYmFyLlxuICAgICAgdGhpcy5jYW5IYXZlR3JleUJhciA9ICEhdGhpcy5jYXNlRmllbGQuc2hvd19jb25kaXRpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaXhDYXNlRmllbGQoKSB7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkICYmICEodGhpcy5jYXNlRmllbGQgaW5zdGFuY2VvZiBDYXNlRmllbGQpKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZCA9IHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHRoaXMuY2FzZUZpZWxkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCJjYXNlRmllbGQuaGlkZGVuXCIgW2NsYXNzLmdyZXktYmFyXT1cImNhbkhhdmVHcmV5QmFyICYmICFjYXNlRmllbGQuaGlkZGVuQ2Fubm90Q2hhbmdlXCI+XG4gIDxkbCBjbGFzcz1cImNhc2UtZmllbGRcIiAqbmdJZj1cIndpdGhMYWJlbCAmJiAhaXNMYWJlbCgpICYmICghaXNDb21wbGV4KCkgfHwgaXNDYXNlTGluaygpKTsgZWxzZSBjYXNlRmllbGRWYWx1ZVwiPlxuICAgIDxkdCBjbGFzcz1cImNhc2UtZmllbGRfX2xhYmVsXCI+e3tjYXNlRmllbGQubGFiZWx9fTwvZHQ+XG4gICAgPGRkIGNsYXNzPVwiY2FzZS1maWVsZF9fdmFsdWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXNlRmllbGRWYWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGQ+XG4gIDwvZGw+XG4gIDxuZy10ZW1wbGF0ZSAjY2FzZUZpZWxkVmFsdWU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtcmVhZC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2ZpZWxkLXJlYWQtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYmFzZS1maWVsZC9maWVsZC1yZWFkLWxhYmVsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7SUNBdkUsd0JBQWdFOzs7SUFIcEUsNkJBQThHO0lBQzVHLDZCQUE4QjtJQUFBLFlBQWtDOztJQUFBLGlCQUFLO0lBQ3JFLDZCQUE4QjtJQUM1QiwrRkFBZ0U7SUFDbEUsaUJBQUs7SUFDUCxpQkFBSzs7OztJQUoyQixlQUFrQztJQUFsQyxrRUFBa0M7SUFFL0MsZUFBZ0M7SUFBaEMsc0NBQWdDOzs7SUFJakQsa0JBQXlCOzs7QURLN0IsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDBCQUEwQjtJQVB2RTs7UUFTRSw4REFBOEQ7UUFDdkQsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0F1Qy9CO0lBL0JRLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7SUFDakYsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxTQUFTLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1lBRUQsWUFBWTtZQUNaLHdEQUF3RDtZQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLENBQUMsRUFBRTtZQUM1RCxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLElBQUksU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQzs7OEhBekNVLHVCQUF1Qjs0REFBdkIsdUJBQXVCOztRQ2JwQyw4QkFBb0c7UUFDbEcsc0VBS0s7UUFDTCx5SEFFYztRQUNoQixpQkFBTTs7O1FBVjJCLG1GQUFrRTtRQUE5Riw2Q0FBMkI7UUFDTixlQUFpRTtRQUFqRSxnR0FBaUUsaUJBQUE7O29GRFk5RSx1QkFBdUI7dUZBQXZCLHVCQUF1QjtjQVBuQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsU0FBUyxFQUFFO29CQUNULHlCQUF5QjtpQkFDMUI7YUFDRjtnQkFPUSxTQUFTO2tCQURmLEtBQUs7WUFJQywyQkFBMkI7a0JBRGpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtZmllbGQtcmVhZC1sYWJlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1yZWFkLWxhYmVsLmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9maWVsZC1yZWFkLWxhYmVsLnNjc3MnXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmllbGRSZWFkTGFiZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgLy8gRVVJLTMyNjcuIEZsYWcgZm9yIHdoZXRoZXIgb3Igbm90IHRoaXMgY2FuIGhhdmUgYSBncmV5IGJhci5cbiAgcHVibGljIGNhbkhhdmVHcmV5QmFyID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHdpdGhMYWJlbDogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rPzogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNMYWJlbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZSAmJiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdMYWJlbCc7XG4gIH1cblxuICBwdWJsaWMgaXNDb21wbGV4KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5pc0NvbXBsZXgoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0Nhc2VMaW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5pc0Nhc2VMaW5rKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbJ2Nhc2VGaWVsZCddO1xuICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgIGNvbnN0IGNmTmV3ID0gY2hhbmdlLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICghKGNmTmV3IGluc3RhbmNlb2YgQ2FzZUZpZWxkKSkge1xuICAgICAgICB0aGlzLmZpeENhc2VGaWVsZCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBFVUktMzI2Ny5cbiAgICAgIC8vIFNldCB1cCB0aGUgZmxhZyBmb3Igd2hldGhlciB0aGlzIGNhbiBoYXZlIGEgZ3JleSBiYXIuXG4gICAgICB0aGlzLmNhbkhhdmVHcmV5QmFyID0gISF0aGlzLmNhc2VGaWVsZC5zaG93X2NvbmRpdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpeENhc2VGaWVsZCgpIHtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgISh0aGlzLmNhc2VGaWVsZCBpbnN0YW5jZW9mIENhc2VGaWVsZCkpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBDYXNlRmllbGQoKSwgdGhpcy5jYXNlRmllbGQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiBbY2xhc3MuZ3JleS1iYXJdPVwiY2FuSGF2ZUdyZXlCYXIgJiYgIWNhc2VGaWVsZC5oaWRkZW5DYW5ub3RDaGFuZ2VcIj5cbiAgPGRsIGNsYXNzPVwiY2FzZS1maWVsZFwiICpuZ0lmPVwid2l0aExhYmVsICYmICFpc0xhYmVsKCkgJiYgKCFpc0NvbXBsZXgoKSB8fCBpc0Nhc2VMaW5rKCkpOyBlbHNlIGNhc2VGaWVsZFZhbHVlXCI+XG4gICAgPGR0IGNsYXNzPVwiY2FzZS1maWVsZF9fbGFiZWxcIj57e2Nhc2VGaWVsZC5sYWJlbCB8IHJweFRyYW5zbGF0ZX19PC9kdD5cbiAgICA8ZGQgY2xhc3M9XCJjYXNlLWZpZWxkX192YWx1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhc2VGaWVsZFZhbHVlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kZD5cbiAgPC9kbD5cbiAgPG5nLXRlbXBsYXRlICNjYXNlRmllbGRWYWx1ZT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -10,28 +10,30 @@ const _c0 = ["writeComplexFieldComponent"];
10
10
  function WriteCaseLinkFieldComponent_div_1_span_2_Template(rf, ctx) { if (rf & 1) {
11
11
  i0.ɵɵelementStart(0, "span", 6);
12
12
  i0.ɵɵtext(1);
13
- i0.ɵɵpipe(2, "ccdFieldLabel");
13
+ i0.ɵɵpipe(2, "rpxTranslate");
14
+ i0.ɵɵpipe(3, "ccdFieldLabel");
14
15
  i0.ɵɵelementEnd();
15
16
  } if (rf & 2) {
16
17
  const ctx_r2 = i0.ɵɵnextContext(2);
17
18
  i0.ɵɵadvance(1);
18
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r2.caseField));
19
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind1(3, 3, ctx_r2.caseField)));
19
20
  } }
20
21
  function WriteCaseLinkFieldComponent_div_1_span_3_Template(rf, ctx) { if (rf & 1) {
21
22
  i0.ɵɵelementStart(0, "span", 7);
22
23
  i0.ɵɵtext(1);
24
+ i0.ɵɵpipe(2, "rpxTranslate");
23
25
  i0.ɵɵelementEnd();
24
26
  } if (rf & 2) {
25
27
  const ctx_r3 = i0.ɵɵnextContext(2);
26
28
  i0.ɵɵadvance(1);
27
- i0.ɵɵtextInterpolate(ctx_r3.caseField.hint_text);
29
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r3.caseField.hint_text));
28
30
  } }
29
31
  function WriteCaseLinkFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
30
32
  i0.ɵɵelementStart(0, "div", 1);
31
33
  i0.ɵɵelementStart(1, "label", 2);
32
- i0.ɵɵtemplate(2, WriteCaseLinkFieldComponent_div_1_span_2_Template, 3, 3, "span", 3);
34
+ i0.ɵɵtemplate(2, WriteCaseLinkFieldComponent_div_1_span_2_Template, 4, 5, "span", 3);
33
35
  i0.ɵɵelementEnd();
34
- i0.ɵɵtemplate(3, WriteCaseLinkFieldComponent_div_1_span_3_Template, 2, 1, "span", 4);
36
+ i0.ɵɵtemplate(3, WriteCaseLinkFieldComponent_div_1_span_3_Template, 3, 3, "span", 4);
35
37
  i0.ɵɵelement(4, "input", 5);
36
38
  i0.ɵɵelementEnd();
37
39
  } if (rf & 2) {
@@ -136,4 +138,4 @@ WriteCaseLinkFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCaseLink
136
138
  type: ViewChild,
137
139
  args: ['writeComplexFieldComponent', /* TODO: add static flag */ {}]
138
140
  }] }); })();
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1saW5rLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtbGluay93cml0ZS1jYXNlLWxpbmstZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1saW5rL3dyaXRlLWNhc2UtbGluay1maWVsZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7SUNIMUMsK0JBQWlEO0lBQUEsWUFBNkI7O0lBQUEsaUJBQU87OztJQUFwQyxlQUE2QjtJQUE3Qiw0REFBNkI7OztJQUVoRiwrQkFBb0Q7SUFBQSxZQUF1QjtJQUFBLGlCQUFPOzs7SUFBOUIsZUFBdUI7SUFBdkIsZ0RBQXVCOzs7SUFKN0UsOEJBQTREO0lBQzFELGdDQUFvQjtJQUNsQixvRkFBcUY7SUFDdkYsaUJBQVE7SUFDUixvRkFBa0Y7SUFDbEYsMkJBQW1HO0lBQ3JHLGlCQUFN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LE1BQU0sQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVk7WUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FDbEUsQ0FBQztJQUNKLENBQUM7O3NHQW5FVSwyQkFBMkI7Z0VBQTNCLDJCQUEyQjs7Ozs7O1FDYnhDLDZCQUFjO1FBQ1osNEVBTU07UUFDUCw0RUFHTTtRQUNQLDBCQUFlOztRQVhQLGVBQWlDO1FBQWpDLHNEQUFpQztRQU9mLGVBQWdDO1FBQWhDLHFEQUFnQzs7dUZESzdDLDJCQUEyQjtjQUx2QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsV0FBVyxFQUFFLDRCQUE0QjthQUMxQztxRUFLUSxVQUFVO2tCQURoQixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBTUMscUJBQXFCO2tCQUQzQixLQUFLO1lBUUMsMEJBQTBCO2tCQURoQyxTQUFTO21CQUFDLDRCQUE0QixFQUFFLDJCQUEyQixDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENhc2VFZGl0UGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1wYWdlL2Nhc2UtZWRpdC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBsZXgvd3JpdGUtY29tcGxleC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jYXNlLWxpbmstZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJ3dyaXRlLWNhc2UtbGluay1maWVsZC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIFdyaXRlQ2FzZUxpbmtGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBmb3JtQXJyYXk6IEZvcm1BcnJheTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUVkaXRQYWdlQ29tcG9uZW50OiBDYXNlRWRpdFBhZ2VDb21wb25lbnQ7XG5cbiAgcHVibGljIGNhc2VSZWZlcmVuY2VDb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIHB1YmxpYyBjYXNlTGlua0dyb3VwOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBjb250YWluc0Nhc2VMaW5rQ29sbGVjdGlvbjogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCd3cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudCcsIC8qIFRPRE86IGFkZCBzdGF0aWMgZmxhZyAqLyB7fSlcbiAgcHVibGljIHdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50OiBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUFycmF5ID0gdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1BcnJheShbXSksIHRydWUpIGFzIEZvcm1BcnJheTtcbiAgICB0aGlzLmZvcm1BcnJheVsnY2FzZUZpZWxkJ10gPSB0aGlzLmNhc2VGaWVsZDtcblxuICAgIGlmICghdGhpcy5oYXNDYXNlTGlua0NvbGxlY3Rpb24oKSkge1xuICAgICAgdGhpcy5jYXNlTGlua0dyb3VwID0gdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIENhc2VSZWZlcmVuY2U6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhc2VGaWVsZC52YWx1ZS5DYXNlUmVmZXJlbmNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIH0pLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuICAgIC8vIEVuc3VyZSB0aGF0IGFsbCBzdWItZmllbGRzIGluaGVyaXQgdGhlIHNhbWUgdmFsdWUgZm9yIHJldGFpbl9oaWRkZW5fdmFsdWUgYXMgdGhpcyBwYXJlbnQ7IGFsdGhvdWdoIGEgQ2FzZUxpbmtcbiAgICAvLyBmaWVsZCB1c2VzIHRoZSBDb21wbGV4IHR5cGUsIGl0IGlzIG1lYW50IHRvIGJlIHRyZWF0ZWQgYXMgb25lIGZpZWxkXG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkICYmIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICBmb3IgKGNvbnN0IGNhc2VMaW5rU3ViRmllbGQgb2YgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICBjYXNlTGlua1N1YkZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUgPSB0aGlzLmNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbnRhaW5zQ2FzZUxpbmtDb2xsZWN0aW9uID0gdGhpcy5oYXNDYXNlTGlua0NvbGxlY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRMaW5rZWRDYXNlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cDtcbiAgICBpZiAoIXRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIpIHtcbiAgICAgIGNvbnN0IHVubGlua2VkQ2FzZVJlZmVyZW5lSWRzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS51bmxpbmspLm1hcChpdGVtID0+IGl0ZW0uY2FzZVJlZmVyZW5jZSk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5jYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiB1bmxpbmtlZENhc2VSZWZlcmVuZUlkcy5pbmRleE9mKGl0ZW0uaWQpID09PSAtMSk7XG4gICAgfSBlbHNlIGlmIChmb3JtR3JvdXAudmFsdWUgJiYgZm9ybUdyb3VwLnZhbHVlLmNhc2VMaW5rcyAmJiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcykge1xuICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWUuY2FzZUxpbmtzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZhbGlkQ2FzZVJlZmVyZW5jZSh2YWx1ZVN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF2YWx1ZVN0cmluZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ0V4cCgnXlxcXFxiXFxcXGR7NH1bIC1dP1xcXFxkezR9WyAtXT9cXFxcZHs0fVsgLV0/XFxcXGR7NH1cXFxcYiQnKS50ZXN0KHZhbHVlU3RyaW5nLnRyaW0oKSk7XG4gIH1cblxuICBwdWJsaWMgaGFzQ2FzZUxpbmtDb2xsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlICYmXG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb2xsZWN0aW9uJyAmJlxuICAgICAgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuaWQgPT09ICdDYXNlTGluaydcbiAgICApO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2ICpuZ0lmPVwiIWNvbnRhaW5zQ2FzZUxpbmtDb2xsZWN0aW9uXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIFtmb3JdPVwiaWQoKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJjYXNlRmllbGQubGFiZWxcIj57e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCI+e3tjYXNlRmllbGQuaGludF90ZXh0fX08L3NwYW4+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGJvdHRvbS0zMFwiIFtpZF09XCJpZCgpXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwiY2FzZVJlZmVyZW5jZUNvbnRyb2xcIj5cbiAgPC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nSWY9XCJjb250YWluc0Nhc2VMaW5rQ29sbGVjdGlvblwiPlxuXHRcdDxjY2Qtd3JpdGUtbGlua2VkLWNhc2VzIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIiBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgW2Nhc2VFZGl0UGFnZUNvbXBvbmVudF09XCJjYXNlRWRpdFBhZ2VDb21wb25lbnRcIiBcbiAgICAgICAgICAgIChvbkxpbmtlZENhc2VzU2VsZWN0ZWQpPVwic3VibWl0TGlua2VkQ2FzZXMoKTtcIiBbaXNMaW5rZWRDYXNlc0pvdXJuZXldPVwibGlua2VkQ2FzZXNTZXJ2aWNlLmlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXJcIj48L2NjZC13cml0ZS1saW5rZWQtY2FzZXM+XG5cdDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1saW5rLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtbGluay93cml0ZS1jYXNlLWxpbmstZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1saW5rL3dyaXRlLWNhc2UtbGluay1maWVsZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7SUNIMUMsK0JBQWlEO0lBQUEsWUFBNEM7OztJQUFBLGlCQUFPOzs7SUFBbkQsZUFBNEM7SUFBNUMsa0ZBQTRDOzs7SUFFL0YsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxlQUFzQztJQUF0QyxzRUFBc0M7OztJQUo1Riw4QkFBNEQ7SUFDMUQsZ0NBQW9CO0lBQ2xCLG9GQUFvRztJQUN0RyxpQkFBUTtJQUNSLG9GQUFpRztJQUNqRywyQkFBbUc7SUFDckcsaUJB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QUksTUFBTSxDQUFDLGlEQUFpRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWTtZQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUNsRSxDQUFDO0lBQ0osQ0FBQzs7c0dBbkVVLDJCQUEyQjtnRUFBM0IsMkJBQTJCOzs7Ozs7UUNieEMsNkJBQWM7UUFDWiw0RUFNTTtRQUNQLDRFQUdNO1FBQ1AsMEJBQWU7O1FBWFAsZUFBaUM7UUFBakMsc0RBQWlDO1FBT2YsZUFBZ0M7UUFBaEMscURBQWdDOzt1RkRLN0MsMkJBQTJCO2NBTHZDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO3FFQUtRLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFNQyxxQkFBcUI7a0JBRDNCLEtBQUs7WUFRQywwQkFBMEI7a0JBRGhDLFNBQVM7bUJBQUMsNEJBQTRCLEVBQUUsMkJBQTJCLENBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUVkaXRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXBhZ2UvY2FzZS1lZGl0LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcGxleC93cml0ZS1jb21wbGV4LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNhc2UtbGluay1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnd3JpdGUtY2FzZS1saW5rLWZpZWxkLmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgV3JpdGVDYXNlTGlua0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRWRpdFBhZ2VDb21wb25lbnQ6IENhc2VFZGl0UGFnZUNvbXBvbmVudDtcblxuICBwdWJsaWMgY2FzZVJlZmVyZW5jZUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgcHVibGljIGNhc2VMaW5rR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGNvbnRhaW5zQ2FzZUxpbmtDb2xsZWN0aW9uOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ3dyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50JywgLyogVE9ETzogYWRkIHN0YXRpYyBmbGFnICovIHt9KVxuICBwdWJsaWMgd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ6IFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuXG4gICAgaWYgKCF0aGlzLmhhc0Nhc2VMaW5rQ29sbGVjdGlvbigpKSB7XG4gICAgICB0aGlzLmNhc2VMaW5rR3JvdXAgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgQ2FzZVJlZmVyZW5jZTogbmV3IEZvcm1Db250cm9sKHRoaXMuY2FzZUZpZWxkLnZhbHVlLkNhc2VSZWZlcmVuY2UsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgfSksIHRydWUpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gICAgLy8gRW5zdXJlIHRoYXQgYWxsIHN1Yi1maWVsZHMgaW5oZXJpdCB0aGUgc2FtZSB2YWx1ZSBmb3IgcmV0YWluX2hpZGRlbl92YWx1ZSBhcyB0aGlzIHBhcmVudDsgYWx0aG91Z2ggYSBDYXNlTGlua1xuICAgIC8vIGZpZWxkIHVzZXMgdGhlIENvbXBsZXggdHlwZSwgaXQgaXMgbWVhbnQgdG8gYmUgdHJlYXRlZCBhcyBvbmUgZmllbGRcbiAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcpIHtcbiAgICAgIGZvciAoY29uc3QgY2FzZUxpbmtTdWJGaWVsZCBvZiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICAgIGNhc2VMaW5rU3ViRmllbGQucmV0YWluX2hpZGRlbl92YWx1ZSA9IHRoaXMuY2FzZUZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29udGFpbnNDYXNlTGlua0NvbGxlY3Rpb24gPSB0aGlzLmhhc0Nhc2VMaW5rQ29sbGVjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdExpbmtlZENhc2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwO1xuICAgIGlmICghdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcikge1xuICAgICAgY29uc3QgdW5saW5rZWRDYXNlUmVmZXJlbmVJZHMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnVubGluaykubWFwKGl0ZW0gPT4gaXRlbS5jYXNlUmVmZXJlbmNlKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlLmNhc2VMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IHVubGlua2VkQ2FzZVJlZmVyZW5lSWRzLmluZGV4T2YoaXRlbS5pZCkgPT09IC0xKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC52YWx1ZSAmJiBmb3JtR3JvdXAudmFsdWUuY2FzZUxpbmtzICYmIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5jYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsaWRDYXNlUmVmZXJlbmNlKHZhbHVlU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbHVlU3RyaW5nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVnRXhwKCdeXFxcXGJcXFxcZHs0fVsgLV0/XFxcXGR7NH1bIC1dP1xcXFxkezR9WyAtXT9cXFxcZHs0fVxcXFxiJCcpLnRlc3QodmFsdWVTdHJpbmcudHJpbSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNDYXNlTGlua0NvbGxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUgJiZcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbGxlY3Rpb24nICYmXG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgKm5nSWY9XCIhY29udGFpbnNDYXNlTGlua0NvbGxlY3Rpb25cIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgW2Zvcl09XCJpZCgpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiPnt7Y2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbCB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwXCIgW2lkXT1cImlkKClcIiB0eXBlPVwidGV4dFwiIFtmb3JtQ29udHJvbF09XCJjYXNlUmVmZXJlbmNlQ29udHJvbFwiPlxuICA8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiAqbmdJZj1cImNvbnRhaW5zQ2FzZUxpbmtDb2xsZWN0aW9uXCI+XG5cdFx0PGNjZC13cml0ZS1saW5rZWQtY2FzZXMgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY2FzZUVkaXRQYWdlQ29tcG9uZW50XT1cImNhc2VFZGl0UGFnZUNvbXBvbmVudFwiXG4gICAgICAgICAgICAob25MaW5rZWRDYXNlc1NlbGVjdGVkKT1cInN1Ym1pdExpbmtlZENhc2VzKCk7XCIgW2lzTGlua2VkQ2FzZXNKb3VybmV5XT1cImxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyXCI+PC9jY2Qtd3JpdGUtbGlua2VkLWNhc2VzPlxuXHQ8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -16,29 +16,31 @@ import * as i1 from "@angular/material/dialog";
16
16
  import * as i2 from "@nicky-lenaers/ngx-scroll-to";
17
17
  import * as i3 from "../../../services/profile/profile.notifier";
18
18
  const _c0 = ["collectionItem"];
19
- function WriteCollectionFieldComponent_h2_7_span_1_Template(rf, ctx) { if (rf & 1) {
19
+ function WriteCollectionFieldComponent_h2_9_span_1_Template(rf, ctx) { if (rf & 1) {
20
20
  i0.ɵɵelementStart(0, "span", 9);
21
21
  i0.ɵɵtext(1);
22
+ i0.ɵɵpipe(2, "rpxTranslate");
22
23
  i0.ɵɵelementEnd();
23
24
  } if (rf & 2) {
24
25
  const ctx_r3 = i0.ɵɵnextContext(2);
25
26
  i0.ɵɵadvance(1);
26
- i0.ɵɵtextInterpolate(ctx_r3.caseField.hint_text);
27
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r3.caseField.hint_text));
27
28
  } }
28
- function WriteCollectionFieldComponent_h2_7_span_2_Template(rf, ctx) { if (rf & 1) {
29
+ function WriteCollectionFieldComponent_h2_9_span_2_Template(rf, ctx) { if (rf & 1) {
29
30
  i0.ɵɵelementStart(0, "span", 10);
30
31
  i0.ɵɵtext(1);
31
- i0.ɵɵpipe(2, "ccdFirstError");
32
+ i0.ɵɵpipe(2, "rpxTranslate");
33
+ i0.ɵɵpipe(3, "ccdFirstError");
32
34
  i0.ɵɵelementEnd();
33
35
  } if (rf & 2) {
34
36
  const ctx_r4 = i0.ɵɵnextContext(2);
35
37
  i0.ɵɵadvance(1);
36
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r4.formArray.errors, ctx_r4.caseField.label));
38
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind2(3, 3, ctx_r4.formArray.errors, ctx_r4.caseField.label)));
37
39
  } }
38
- function WriteCollectionFieldComponent_h2_7_Template(rf, ctx) { if (rf & 1) {
40
+ function WriteCollectionFieldComponent_h2_9_Template(rf, ctx) { if (rf & 1) {
39
41
  i0.ɵɵelementStart(0, "h2", 2);
40
- i0.ɵɵtemplate(1, WriteCollectionFieldComponent_h2_7_span_1_Template, 2, 1, "span", 7);
41
- i0.ɵɵtemplate(2, WriteCollectionFieldComponent_h2_7_span_2_Template, 3, 4, "span", 8);
42
+ i0.ɵɵtemplate(1, WriteCollectionFieldComponent_h2_9_span_1_Template, 3, 3, "span", 7);
43
+ i0.ɵɵtemplate(2, WriteCollectionFieldComponent_h2_9_span_2_Template, 4, 6, "span", 8);
42
44
  i0.ɵɵelementEnd();
43
45
  } if (rf & 2) {
44
46
  const ctx_r0 = i0.ɵɵnextContext();
@@ -47,7 +49,7 @@ function WriteCollectionFieldComponent_h2_7_Template(rf, ctx) { if (rf & 1) {
47
49
  i0.ɵɵadvance(1);
48
50
  i0.ɵɵproperty("ngIf", ctx_r0.formArray.errors);
49
51
  } }
50
- function WriteCollectionFieldComponent_div_8_div_1_Template(rf, ctx) { if (rf & 1) {
52
+ function WriteCollectionFieldComponent_div_10_div_1_Template(rf, ctx) { if (rf & 1) {
51
53
  const _r10 = i0.ɵɵgetCurrentView();
52
54
  i0.ɵɵelementStart(0, "div", 13, 14);
53
55
  i0.ɵɵelementStart(2, "div", 15);
@@ -55,17 +57,19 @@ function WriteCollectionFieldComponent_div_8_div_1_Template(rf, ctx) { if (rf &
55
57
  i0.ɵɵelementStart(4, "label", 17);
56
58
  i0.ɵɵelementStart(5, "h3", 18);
57
59
  i0.ɵɵtext(6);
60
+ i0.ɵɵpipe(7, "rpxTranslate");
58
61
  i0.ɵɵelementEnd();
59
62
  i0.ɵɵelementEnd();
60
63
  i0.ɵɵelementEnd();
61
- i0.ɵɵelementStart(7, "div", 19);
62
- i0.ɵɵelementStart(8, "button", 20);
63
- i0.ɵɵlistener("click", function WriteCollectionFieldComponent_div_8_div_1_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r10); const i_r7 = ctx.index; const ctx_r9 = i0.ɵɵnextContext(2); return ctx_r9.openModal(i_r7); });
64
- i0.ɵɵtext(9, "Remove");
64
+ i0.ɵɵelementStart(8, "div", 19);
65
+ i0.ɵɵelementStart(9, "button", 20);
66
+ i0.ɵɵlistener("click", function WriteCollectionFieldComponent_div_10_div_1_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r10); const i_r7 = ctx.index; const ctx_r9 = i0.ɵɵnextContext(2); return ctx_r9.openModal(i_r7); });
67
+ i0.ɵɵtext(10);
68
+ i0.ɵɵpipe(11, "rpxTranslate");
65
69
  i0.ɵɵelementEnd();
66
70
  i0.ɵɵelementEnd();
67
71
  i0.ɵɵelementEnd();
68
- i0.ɵɵelement(10, "ccd-field-write", 21);
72
+ i0.ɵɵelement(12, "ccd-field-write", 21);
69
73
  i0.ɵɵelementEnd();
70
74
  } if (rf & 2) {
71
75
  const item_r6 = ctx.$implicit;
@@ -74,16 +78,18 @@ function WriteCollectionFieldComponent_div_8_div_1_Template(rf, ctx) { if (rf &
74
78
  i0.ɵɵadvance(4);
75
79
  i0.ɵɵproperty("for", item_r6.prefix + i_r7);
76
80
  i0.ɵɵadvance(2);
77
- i0.ɵɵtextInterpolate(ctx_r5.itemLabel(i_r7));
78
- i0.ɵɵadvance(2);
81
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 13, ctx_r5.itemLabel(i_r7)));
82
+ i0.ɵɵadvance(3);
79
83
  i0.ɵɵattributeInterpolate1("aria-label", "Remove ", ctx_r5.itemLabel(i_r7), "");
80
84
  i0.ɵɵproperty("disabled", ctx_r5.isNotAuthorisedToDelete(i_r7));
85
+ i0.ɵɵadvance(1);
86
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 15, "Remove"));
81
87
  i0.ɵɵadvance(2);
82
88
  i0.ɵɵproperty("caseField", item_r6.caseField)("caseFields", ctx_r5.caseFields)("formGroup", ctx_r5.formGroup)("parent", item_r6.container)("idPrefix", item_r6.prefix)("hidden", item_r6.caseField.hidden)("isExpanded", ctx_r5.isExpanded)("isInSearchBlock", ctx_r5.isInSearchBlock);
83
89
  } }
84
- function WriteCollectionFieldComponent_div_8_Template(rf, ctx) { if (rf & 1) {
90
+ function WriteCollectionFieldComponent_div_10_Template(rf, ctx) { if (rf & 1) {
85
91
  i0.ɵɵelementStart(0, "div", 11);
86
- i0.ɵɵtemplate(1, WriteCollectionFieldComponent_div_8_div_1_Template, 11, 12, "div", 12);
92
+ i0.ɵɵtemplate(1, WriteCollectionFieldComponent_div_10_div_1_Template, 13, 17, "div", 12);
87
93
  i0.ɵɵelementEnd();
88
94
  } if (rf & 2) {
89
95
  const ctx_r1 = i0.ɵɵnextContext();
@@ -91,15 +97,18 @@ function WriteCollectionFieldComponent_div_8_Template(rf, ctx) { if (rf & 1) {
91
97
  i0.ɵɵadvance(1);
92
98
  i0.ɵɵproperty("ngForOf", ctx_r1.collItems);
93
99
  } }
94
- function WriteCollectionFieldComponent_button_9_Template(rf, ctx) { if (rf & 1) {
100
+ function WriteCollectionFieldComponent_button_11_Template(rf, ctx) { if (rf & 1) {
95
101
  const _r12 = i0.ɵɵgetCurrentView();
96
102
  i0.ɵɵelementStart(0, "button", 22);
97
- i0.ɵɵlistener("click", function WriteCollectionFieldComponent_button_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.addItem(false); });
98
- i0.ɵɵtext(1, "Add new");
103
+ i0.ɵɵlistener("click", function WriteCollectionFieldComponent_button_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.addItem(false); });
104
+ i0.ɵɵtext(1);
105
+ i0.ɵɵpipe(2, "rpxTranslate");
99
106
  i0.ɵɵelementEnd();
100
107
  } if (rf & 2) {
101
108
  const ctx_r2 = i0.ɵɵnextContext();
102
109
  i0.ɵɵproperty("disabled", ctx_r2.isNotAuthorisedToCreate() || ctx_r2.isSearchFilter());
110
+ i0.ɵɵadvance(1);
111
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "Add new"));
103
112
  } }
104
113
  export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
105
114
  constructor(dialog, scrollToService, profileNotifier) {
@@ -393,28 +402,32 @@ WriteCollectionFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCollec
393
402
  } if (rf & 2) {
394
403
  let _t;
395
404
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);
396
- } }, inputs: { caseFields: "caseFields", formGroup: "formGroup" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 8, consts: [[1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], [1, "heading-h2", "error-spacing"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "disabled", "click"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [1, "error-message"], [1, "form-group", 3, "hidden"], ["class", "form-group", 4, "ngFor", "ngForOf"], [1, "form-group"], ["collectionItem", ""], [1, "collection-title"], [1, "float-left"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "disabled", "click"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
405
+ } }, inputs: { caseFields: "caseFields", formGroup: "formGroup" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 13, consts: [[1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], [1, "heading-h2", "error-spacing"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "disabled", "click"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [1, "error-message"], [1, "form-group", 3, "hidden"], ["class", "form-group", 4, "ngFor", "ngForOf"], [1, "form-group"], ["collectionItem", ""], [1, "collection-title"], [1, "float-left"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "disabled", "click"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
397
406
  i0.ɵɵelementStart(0, "div", 0);
398
407
  i0.ɵɵelementStart(1, "div", 1);
399
408
  i0.ɵɵelementStart(2, "h2", 2);
400
409
  i0.ɵɵtext(3);
401
- i0.ɵɵpipe(4, "ccdFieldLabel");
410
+ i0.ɵɵpipe(4, "rpxTranslate");
411
+ i0.ɵɵpipe(5, "ccdFieldLabel");
402
412
  i0.ɵɵelementEnd();
403
- i0.ɵɵelementStart(5, "button", 3);
404
- i0.ɵɵlistener("click", function WriteCollectionFieldComponent_Template_button_click_5_listener() { return ctx.addItem(true); });
405
- i0.ɵɵtext(6, "Add new");
413
+ i0.ɵɵelementStart(6, "button", 3);
414
+ i0.ɵɵlistener("click", function WriteCollectionFieldComponent_Template_button_click_6_listener() { return ctx.addItem(true); });
415
+ i0.ɵɵtext(7);
416
+ i0.ɵɵpipe(8, "rpxTranslate");
406
417
  i0.ɵɵelementEnd();
407
- i0.ɵɵtemplate(7, WriteCollectionFieldComponent_h2_7_Template, 3, 2, "h2", 4);
408
- i0.ɵɵtemplate(8, WriteCollectionFieldComponent_div_8_Template, 2, 2, "div", 5);
409
- i0.ɵɵtemplate(9, WriteCollectionFieldComponent_button_9_Template, 2, 1, "button", 6);
418
+ i0.ɵɵtemplate(9, WriteCollectionFieldComponent_h2_9_Template, 3, 2, "h2", 4);
419
+ i0.ɵɵtemplate(10, WriteCollectionFieldComponent_div_10_Template, 2, 2, "div", 5);
420
+ i0.ɵɵtemplate(11, WriteCollectionFieldComponent_button_11_Template, 3, 4, "button", 6);
410
421
  i0.ɵɵelementEnd();
411
422
  i0.ɵɵelementEnd();
412
423
  } if (rf & 2) {
413
424
  i0.ɵɵproperty("id", ctx.id());
414
425
  i0.ɵɵadvance(3);
415
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 6, ctx.caseField), " ");
416
- i0.ɵɵadvance(2);
426
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 7, i0.ɵɵpipeBind1(5, 9, ctx.caseField)), " ");
427
+ i0.ɵɵadvance(3);
417
428
  i0.ɵɵproperty("disabled", ctx.isNotAuthorisedToCreate() || ctx.isSearchFilter());
429
+ i0.ɵɵadvance(1);
430
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 11, "Add new"));
418
431
  i0.ɵɵadvance(2);
419
432
  i0.ɵɵproperty("ngIf", ctx.caseField.hint_text || ctx.formArray.errors);
420
433
  i0.ɵɵadvance(1);
@@ -437,4 +450,4 @@ WriteCollectionFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCollec
437
450
  type: ViewChildren,
438
451
  args: ['collectionItem']
439
452
  }] }); })();
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FB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LFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDO3dIQUdRLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFTVyxLQUFLO2tCQURyQixZQUFZO21CQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS5tb2RlbCc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlL3Byb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZmlsZS9wcm9maWxlLm5vdGlmaWVyJztcbmltcG9ydCB7IFJlbW92ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvcmVtb3ZlLWRpYWxvZy9yZW1vdmUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbnR5cGUgQ29sbGVjdGlvbkl0ZW0gPSB7XG4gIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBpdGVtOiBhbnk7XG4gIHByZWZpeDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjb250YWluZXI6IEZvcm1Hcm91cDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jb2xsZWN0aW9uLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tZmllbGQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIHB1YmxpYyBwcm9maWxlOiBQcm9maWxlO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbGxlY3Rpb25JdGVtJylcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBwdWJsaWMgcmVhZG9ubHkgY29sbEl0ZW1zOiBDb2xsZWN0aW9uSXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFRvU2VydmljZTogU2Nyb2xsVG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkgeyAvLyBtZWFuaW5nIEkgYW0gbm90IHJlbmRlcmVkIG9uIHRoZSBzZWFyY2gvd29ya2Jhc2tldCBpbnB1dCBmaWx0ZXJcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKF8gPT4gdGhpcy5wcm9maWxlID0gXyk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgW107XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXMubGVuZ3RoIDw9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA9IGluZGV4ICsgMTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29sbEl0ZW1zW2luZGV4XSA9IHsgY2FzZUZpZWxkLCBpdGVtLCBwcmVmaXgsIGluZGV4LCBjb250YWluZXIgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXg6IG51bWJlciwgaXNOZXcgPSBmYWxzZSk6IENhc2VGaWVsZCB7XG4gICAgLyoqXG4gICAgICogV2hhdCBmb2xsb3cgaXMgY29kZSB0aGF0IG1ha2VzIG1lIHdhbnQgdG8gZ28ganVtcCBpbiB0aGUgc2hvd2VyIVxuICAgICAqIEJhc2ljYWxseSwgd2UgbGFuZCBpbiBoZXJlIHJlcGVhdGVkbHkgYmVjYXVzZSBvZiB0aGUgYmluZGluZywgYW5kXG4gICAgICogdGhpcyBpcyB3aGF0IGFwcGVhcnMgdG8gYmUgaGFwcGVuaW5nOlxuICAgICAqICAgMS4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgbm8gY29udHJvbHMgYXQgYWxsLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbXTtcbiAgICAgKiAgIDIuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIGEgRm9ybUdyb3VwLCB3aGljaCBjb250YWlucyBhIHNpbmdsZVxuICAgICAqICAgICAgRm9ybUNvbnRyb2wgd2l0aCB0aGUgaWQgJ2NvZGUnLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbeyBjb2RlOiBudWxsIH1dXG4gICAgICogICAzLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyB3aGF0IGlzIGJlaW5nIHNldCB1cCBiZWxvdy5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW3sgY29kZTogbnVsbCwgaWQ6IG51bGwsIHZhbHVlOiB7IGNvZGU6IG51bGwgfSB9XVxuICAgICAqICAgNCwgNSwgNiwgZXRjIC0gdGhlIHNhbWUgYXMgMy5cbiAgICAgKi9cbiAgICBsZXQgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBpZiAodGhpcy5mb3JtQXJyYXkgJiYgKGluZGV4IDwgdGhpcy5mb3JtQXJyYXkubGVuZ3RoKSkge1xuICAgICAgZ3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAodGhpcy5pc0NvbGxlY3Rpb25PZlNpbXBsZVR5cGUodGhpcy5jYXNlRmllbGQpKSB7XG4gICAgICB2YWx1ZSA9IGdyb3VwLmdldCgndmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUNvbnRyb2woaXRlbS52YWx1ZSk7XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Db250cm9sIHRvIHRoZSBvdXRlciBncm91cC5cbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbCgndmFsdWUnLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZ3JvdXAuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpKSB7XG4gICAgICAgICAgdmFsdWUuYWRkQ29udHJvbChrZXksIGdyb3VwLmdldChrZXkpKTtcbiAgICAgICAgICAvLyBET04nVCByZW1vdmUgdGhlIGNvbnRyb2wgZm9yIHRoaXMga2V5IGZyb20gdGhlIG91dGVyIGdyb3VwIG9yIGl0XG4gICAgICAgICAgLy8gZ29lcyBhd3J5LiBTbyBET04nVCB1bmNvbW1lbnQgdGhlIGJlbG93IGxpbmUhXG4gICAgICAgICAgLy8gZ3JvdXAucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Hcm91cCB0byB0aGUgb3V0ZXIgZ3JvdXAuXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaWQgPSBncm91cC5nZXQoJ2lkJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgLy8gSWYgd2UncmUgbm90IGluIHNjZW5hcmlvIDMsIGFib3ZlLCB3ZSBuZWVkIHRvIGRvIHNvbWUgamlnZ2VyeSBwb2tlcnlcbiAgICAvLyBhbmQgc2V0IHVwIHRoZSBpZCBhbmQgdmFsdWUgY29udHJvbHMuXG4gICAgLy8gQWxzbyBzZXQgdXAgYW4gaWQgY29udHJvbCBpZiBpdCBkb2Vzbid0IHlldCBleGlzdC5cbiAgICBpZiAoIWlkKSB7XG4gICAgICBpZCA9IG5ldyBGb3JtQ29udHJvbChpdGVtLmlkKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2woJ2lkJywgaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFnYWluLCB2ZXJ5IHNvcnJ5LiBJJ3ZlIG5vdCBmb3VuZCBhIGJldHRlciB3YXkgdG8gcHJvZHVjZSB0aGVcbiAgICAgKiBvdXRwdXQgbmVlZGVkIGZvciB3aGF0IG5lZWRzIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlciB5ZXQuXG4gICAgICovXG5cbiAgICAvLyBOb3csIGFkZCB0aGUgb3V0ZXIgZ3JvdXAgdG8gdGhlIGFycmF5IChvciByZXBsYWNlIGl0KS5cbiAgICBpZiAoaW5kZXggPCB0aGlzLmZvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybUFycmF5LnNldENvbnRyb2woaW5kZXgsIGdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucHVzaChncm91cCk7XG4gICAgfVxuXG4gICAgLy8gTm93IHNldCB1cCB0aGUgQ2FzZUZpZWxkIGFuZCB2YWxpZGF0aW9uLlxuICAgIGxldCBjZmlkOiBzdHJpbmc7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgIGNmaWQgPSAndmFsdWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjZmlkID0gaW5kZXgudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyBpc05ldzpcbiAgICBjb25zdCBjZjogQ2FzZUZpZWxkID0gdGhpcy5uZXdDYXNlRmllbGQoY2ZpZCwgaXRlbSwgaW5kZXgsIGlzTmV3KTtcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyhjZiwgdmFsdWUpO1xuICAgIEZpZWxkc1V0aWxzLmFkZENhc2VGaWVsZEFuZENvbXBvbmVudFJlZmVyZW5jZXModmFsdWUsIGNmLCB0aGlzKTtcbiAgICByZXR1cm4gY2Y7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSBgJHt0aGlzLmlkUHJlZml4fSR7dGhpcy5jYXNlRmllbGQuaWR9X2A7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke2luZGV4fV9gO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5TZWFyY2hCbG9jayAmJiB0aGlzLmNvbGxJdGVtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW0oZG9TY3JvbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBNYW51YWxseSByZXNldHRpbmcgZXJyb3JzIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgXG4gICAgdGhpcy5mb3JtQXJyYXkuc2V0RXJyb3JzKG51bGwpO1xuICAgIGNvbnN0IGl0ZW0gPSB7IHZhbHVlOiBudWxsIH07XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUucHVzaChpdGVtKTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGl0ZW0sIGluZGV4LCB0cnVlKTtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyKGluZGV4KTtcbiAgICB0aGlzLmNvbGxJdGVtcy5wdXNoKHsgY2FzZUZpZWxkLCBpdGVtLCBpbmRleCwgcHJlZml4LCBjb250YWluZXIgfSk7XG5cbiAgICAvLyBUaW1lb3V0IGlzIHJlcXVpcmVkIGZvciB0aGUgY29sbGVjdGlvbiBpdGVtIHRvIGJlIHJlbmRlcmVkIGJlZm9yZSBpdCBjYW4gYmUgc2Nyb2xsZWQgdG8gb3IgZm9jdXNlZC5cbiAgICBpZiAoZG9TY3JvbGwpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU2VydmljZS5zY3JvbGxUbyh7XG4gICAgICAgICAgdGFyZ2V0OiBgJHt0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpfSR7aW5kZXh9YCxcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcbiAgICAgICAgICBvZmZzZXQ6IC0xNTAsXG4gICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5mb2N1c0xhc3RJdGVtKCkpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB9LCBjb25zb2xlLmVycm9yKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNMYXN0SXRlbSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5ld0Nhc2VGaWVsZChpZDogc3RyaW5nLCBpdGVtLCBpbmRleCwgaXNOZXcgPSBmYWxzZSkge1xuICAgIGNvbnN0IGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlID0gIWlzTmV3ICYmIHRoaXMuaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpO1xuXG4gICAgY29uc3QgZmllbGRUeXBlID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBGaWVsZFR5cGUoKSwgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpO1xuICAgIGlmIChmaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgIGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKChjZjogQ2FzZUZpZWxkKSA9PiAhIWNmLnNob3dfY29uZGl0aW9uKVxuICAgICAgICAubWFwKChjZjogQ2FzZUZpZWxkKSA9PiBjZi5oaWRkZW4gPSB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGJpdCBzZXR0aW5nIHRoZSBoaWRkZW4gZmxhZyBoZXJlIGFzIGl0J3MgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kXG4gICAgLy8gaXRzIGhpZGRlbiBzdGF0ZSBpc24ndCBpbmRlcGVuZGVudGx5IHJlLWV2YWx1YXRlZCB3aGVuIHRoZSBmb3JtIGlzIGNoYW5nZWQuXG4gICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkLFxuICAgICAgZmllbGRfdHlwZTogZmllbGRUeXBlLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA/ICdSRUFET05MWScgOiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQsXG4gICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgYWNsczogdGhpcy5jYXNlRmllbGQuYWNsc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YWluZXIoaW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkuZ2V0KCd2YWx1ZScpO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTGFzdEl0ZW0oKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0gdGhpcy5pdGVtcy5sYXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0tY29udHJvbCcpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVzZXRJZHMoaW5kZXgpO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldElkcyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5jb2xsSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvdW50ZXIgPSBpICsgMTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9PT0gY291bnRlcikge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9IGk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkXG4gICAgICAgICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9PT0gY291bnRlci50b1N0cmluZygpKSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9IGkudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWRQcmVmaXgxID0gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID8gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4LnJlcGxhY2UoJ18nICsgY291bnRlci50b1N0cmluZygpLCAnXycgKyBpLnRvU3RyaW5nKCkpIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDFDdXJyZW50ID0gaWRQcmVmaXgxLnJlcGxhY2UoJ18nICsgaS50b1N0cmluZygpLCAnXycgKyBjb3VudGVyLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ICYmIHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA9PT0gaWRQcmVmaXgxQ3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPSBpZFByZWZpeDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkUHJlZml4QXZhaWxhYmxlID0gdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J11cbiAgICAgICAgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgY29uc3QgaWRQcmVmaXgyID0gaWRQcmVmaXhBdmFpbGFibGUgP1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4LnJlcGxhY2UoJ18nICsgY291bnRlci50b1N0cmluZygpLCAnXycgKyBpLnRvU3RyaW5nKCkpIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDJjdXJyZW50ID0gaWRQcmVmaXgyLnJlcGxhY2UoJ18nICsgaS50b1N0cmluZygpLCAnXycgKyBjb3VudGVyLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAoaWRQcmVmaXhBdmFpbGFibGUgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA9PT0gaWRQcmVmaXgyY3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID0gaWRQcmVmaXgyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpdGVtTGFiZWwoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY2FzZUZpZWxkLmxhYmVsfSAke2luZGV4ICsgMX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0luc2VydCcpO1xuICB9XG5cbiAgcHVibGljIGdldENvbGxlY3Rpb25QZXJtaXNzaW9uKGZpZWxkOiBDYXNlRmllbGQsIHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLnNwbGl0KCcjJylcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uc3RhcnRzV2l0aCgnQ09MTEVDVElPTignKSlbMF1cbiAgICAgICAgLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXYXMgcmVhc3Nlc2VkIGFzIHBhcnQgb2YgRVVJLTM1MDUuIFRoZXJlIGlzIHN0aWxsIGEgY2F2ZWF0IGFyb3VuZCBDUkQsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgYW4gdW5saWtlbHkgc2NlbmFyaW9cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIGlmIChpZCkge1xuICAgICAgaWYgKCEhdGhpcy5wcm9maWxlLnVzZXIgJiYgISF0aGlzLnByb2ZpbGUudXNlci5pZGFtKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJvbGUgPSB0aGlzLnByb2ZpbGUudXNlci5pZGFtLnJvbGVzLmZpbmQocm9sZSA9PiB0aGlzLmhhc1VwZGF0ZUFjY2Vzcyhyb2xlKSk7XG4gICAgICAgIHJldHVybiAhdXBkYXRlUm9sZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGhhc1VwZGF0ZUFjY2Vzcyhyb2xlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNhc2VGaWVsZC5hY2xzLmZpbmQoYWNsID0+IGFjbC5yb2xlID09PSByb2xlICYmIGFjbC51cGRhdGUgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIGRlbGV0ZSBpZiBjcmVhdGluZyBhIGNhc2UgZXZlbiBpZiBcIkRcIiBpcyBhYnNlbnQsIGhlbmNlOlxuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgcmV0dXJuICEhaWQgJiYgIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0RlbGV0ZScpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbChpOiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9ICdMYWJlbCc7XG4gICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcyMjBweCc7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzU1MHB4JztcbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9ICdkaWFsb2cnO1xuXG4gICAgZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgZGlhbG9nQ29uZmlnLnBvc2l0aW9uID0ge1xuICAgICAgdG9wOiBgJHt3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gMTEwfXB4YCwgbGVmdDogYCR7d2luZG93LmlubmVyV2lkdGggLyAyIC0gMjc1fXB4YFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbW92ZURpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gJ1JlbW92ZScpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZWQgZnVsbCBzb2x1dGlvbiBhcyBwYXJ0IG9mIEVVSS0zNTA1XG4gICAqL1xuICBwcml2YXRlIGdldENvbnRyb2xJZEF0KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgLy8gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgWyBGb3JtR3JvdXAoIGlkOiBGb3JtQ29udHJvbCwgdmFsdWU6IEZvcm1Hcm91cCApLCAuLi4gXS5cbiAgICAvLyBIZXJlLCB3ZSBuZWVkIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGlkIEZvcm1Db250cm9sLlxuICAgIGNvbnN0IGdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGNvbnN0IGNvbnRyb2w6IEZvcm1Db250cm9sID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIHJldHVybiBjb250cm9sID8gY29udHJvbC52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgY29uc3Qgbm90U2ltcGxlID0gWydDb2xsZWN0aW9uJywgJ0NvbXBsZXgnXTtcbiAgICByZXR1cm4gbm90U2ltcGxlLmluZGV4T2YoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUpIDwgMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBjb2xsZWN0aW9uLWluZGljYXRvclwiPlxuXG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCI+XG4gICAgICB7e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fVxuICAgIDwvaDI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX190b3BcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0odHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB8fCBpc1NlYXJjaEZpbHRlcigpXCI+QWRkIG5ldzwvYnV0dG9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDIgZXJyb3Itc3BhY2luZ1wiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dCB8fCBmb3JtQXJyYXkuZXJyb3JzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIiBjbGFzcz1cImZvcm0taGludFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tmb3JtQXJyYXkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiAqbmdJZj1cImNhc2VGaWVsZC52YWx1ZSAmJiBjYXNlRmllbGQudmFsdWUubGVuZ3RoXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgI2NvbGxlY3Rpb25JdGVtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi10aXRsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1sZWZ0XCI+XG4gICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtLnByZWZpeCArIGlcIj48aDMgY2xhc3M9XCJoZWFkaW5nLWgzXCI+e3tpdGVtTGFiZWwoaSl9fTwvaDM+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbk1vZGFsKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVtb3ZlIHt7IGl0ZW1MYWJlbChpKSB9fVwiPlJlbW92ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cIml0ZW0uY2FzZUZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJpdGVtLmNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5BZGQgbmV3PC9idXR0b24+XG5cbiAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FB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VGxNLDZCQUE2QjtjQUx6QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7YUFDdkM7d0hBR1EsVUFBVTtrQkFEaEIsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQVNXLEtBQUs7a0JBRHJCLFlBQVk7bUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICdAbmlja3ktbGVuYWVycy9uZ3gtc2Nyb2xsLXRvJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLm1vZGVsJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9maWxlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3Byb2ZpbGUvcHJvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbGlkYXRvcnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlTm90aWZpZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9maWxlL3Byb2ZpbGUubm90aWZpZXInO1xuaW1wb3J0IHsgUmVtb3ZlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9yZW1vdmUtZGlhbG9nL3JlbW92ZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcblxudHlwZSBDb2xsZWN0aW9uSXRlbSA9IHtcbiAgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG4gIGl0ZW06IGFueTtcbiAgcHJlZml4OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIGNvbnRhaW5lcjogRm9ybUdyb3VwO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNvbGxlY3Rpb24tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtY29sbGVjdGlvbi1maWVsZC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbi1maWVsZC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVDb2xsZWN0aW9uRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGRzOiBDYXNlRmllbGRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZm9ybUFycmF5OiBGb3JtQXJyYXk7XG5cbiAgcHVibGljIHByb2ZpbGU6IFByb2ZpbGU7XG4gIHB1YmxpYyBwcm9maWxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZHJlbignY29sbGVjdGlvbkl0ZW0nKVxuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIHB1YmxpYyByZWFkb25seSBjb2xsSXRlbXM6IENvbGxlY3Rpb25JdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsVG9TZXJ2aWNlOiBTY3JvbGxUb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9maWxlTm90aWZpZXI6IFByb2ZpbGVOb3RpZmllclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7IC8vIG1lYW5pbmcgSSBhbSBub3QgcmVuZGVyZWQgb24gdGhlIHNlYXJjaC93b3JrYmFza2V0IGlucHV0IGZpbHRlclxuICAgICAgdGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uID0gdGhpcy5wcm9maWxlTm90aWZpZXIucHJvZmlsZS5zdWJzY3JpYmUoXyA9PiB0aGlzLnByb2ZpbGUgPSBfKTtcbiAgICB9XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUgPSB0aGlzLmNhc2VGaWVsZC52YWx1ZSB8fCBbXTtcbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtQXJyYXkoW10pLCB0cnVlKSBhcyBGb3JtQXJyYXk7XG4gICAgdGhpcy5mb3JtQXJyYXlbJ2Nhc2VGaWVsZCddID0gdGhpcy5jYXNlRmllbGQ7XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBwcmVmaXg6IHN0cmluZyA9IHRoaXMuYnVpbGRJZFByZWZpeChpbmRleCk7XG4gICAgICBjb25zdCBjYXNlRmllbGQgPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGl0ZW0sIGluZGV4KTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyKGluZGV4KTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtcy5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgdGhpcy5jb2xsSXRlbXMubGVuZ3RoID0gaW5kZXggKyAxO1xuICAgICAgfVxuICAgICAgdGhpcy5jb2xsSXRlbXNbaW5kZXhdID0geyBjYXNlRmllbGQsIGl0ZW0sIHByZWZpeCwgaW5kZXgsIGNvbnRhaW5lciB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VGaWVsZChpdGVtLCBpbmRleDogbnVtYmVyLCBpc05ldyA9IGZhbHNlKTogQ2FzZUZpZWxkIHtcbiAgICAvKipcbiAgICAgKiBXaGF0IGZvbGxvdyBpcyBjb2RlIHRoYXQgbWFrZXMgbWUgd2FudCB0byBnbyBqdW1wIGluIHRoZSBzaG93ZXIhXG4gICAgICogQmFzaWNhbGx5LCB3ZSBsYW5kIGluIGhlcmUgcmVwZWF0ZWRseSBiZWNhdXNlIG9mIHRoZSBiaW5kaW5nLCBhbmRcbiAgICAgKiB0aGlzIGlzIHdoYXQgYXBwZWFycyB0byBiZSBoYXBwZW5pbmc6XG4gICAgICogICAxLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyBubyBjb250cm9scyBhdCBhbGwuXG4gICAgICogICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZSA9IFtdO1xuICAgICAqICAgMi4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgYSBGb3JtR3JvdXAsIHdoaWNoIGNvbnRhaW5zIGEgc2luZ2xlXG4gICAgICogICAgICBGb3JtQ29udHJvbCB3aXRoIHRoZSBpZCAnY29kZScuXG4gICAgICogICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZSA9IFt7IGNvZGU6IG51bGwgfV1cbiAgICAgKiAgIDMuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIHdoYXQgaXMgYmVpbmcgc2V0IHVwIGJlbG93LlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbeyBjb2RlOiBudWxsLCBpZDogbnVsbCwgdmFsdWU6IHsgY29kZTogbnVsbCB9IH1dXG4gICAgICogICA0LCA1LCA2LCBldGMgLSB0aGUgc2FtZSBhcyAzLlxuICAgICAqL1xuICAgIGxldCBncm91cDogRm9ybUdyb3VwO1xuICAgIGlmICh0aGlzLmZvcm1BcnJheSAmJiAoaW5kZXggPCB0aGlzLmZvcm1BcnJheS5sZW5ndGgpKSB7XG4gICAgICBncm91cCA9IHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlO1xuICAgIGlmICh0aGlzLmlzQ29sbGVjdGlvbk9mU2ltcGxlVHlwZSh0aGlzLmNhc2VGaWVsZCkpIHtcbiAgICAgIHZhbHVlID0gZ3JvdXAuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Db250cm9sO1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IG5ldyBGb3JtQ29udHJvbChpdGVtLnZhbHVlKTtcbiAgICAgICAgLy8gTm93IGFkZCB0aGUgdmFsdWUgRm9ybUNvbnRyb2wgdG8gdGhlIG91dGVyIGdyb3VwLlxuICAgICAgICBncm91cC5hZGRDb250cm9sKCd2YWx1ZScsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBncm91cC5nZXQoJ3ZhbHVlJykgYXMgRm9ybUdyb3VwO1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhncm91cC5jb250cm9scykpIHtcbiAgICAgICAgICB2YWx1ZS5hZGRDb250cm9sKGtleSwgZ3JvdXAuZ2V0KGtleSkpO1xuICAgICAgICAgIC8vIERPTidUIHJlbW92ZSB0aGUgY29udHJvbCBmb3IgdGhpcyBrZXkgZnJvbSB0aGUgb3V0ZXIgZ3JvdXAgb3IgaXRcbiAgICAgICAgICAvLyBnb2VzIGF3cnkuIFNvIERPTidUIHVuY29tbWVudCB0aGUgYmVsb3cgbGluZSFcbiAgICAgICAgICAvLyBncm91cC5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm93IGFkZCB0aGUgdmFsdWUgRm9ybUdyb3VwIHRvIHRoZSBvdXRlciBncm91cC5cbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbCgndmFsdWUnLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBpZCA9IGdyb3VwLmdldCgnaWQnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAvLyBJZiB3ZSdyZSBub3QgaW4gc2NlbmFyaW8gMywgYWJvdmUsIHdlIG5lZWQgdG8gZG8gc29tZSBqaWdnZXJ5IHBva2VyeVxuICAgIC8vIGFuZCBzZXQgdXAgdGhlIGlkIGFuZCB2YWx1ZSBjb250cm9scy5cbiAgICAvLyBBbHNvIHNldCB1cCBhbiBpZCBjb250cm9sIGlmIGl0IGRvZXNuJ3QgeWV0IGV4aXN0LlxuICAgIGlmICghaWQpIHtcbiAgICAgIGlkID0gbmV3IEZvcm1Db250cm9sKGl0ZW0uaWQpO1xuICAgICAgZ3JvdXAuYWRkQ29udHJvbCgnaWQnLCBpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWdhaW4sIHZlcnkgc29ycnkuIEkndmUgbm90IGZvdW5kIGEgYmV0dGVyIHdheSB0byBwcm9kdWNlIHRoZVxuICAgICAqIG91dHB1dCBuZWVkZWQgZm9yIHdoYXQgbmVlZHMgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyIHlldC5cbiAgICAgKi9cblxuICAgIC8vIE5vdywgYWRkIHRoZSBvdXRlciBncm91cCB0byB0aGUgYXJyYXkgKG9yIHJlcGxhY2UgaXQpLlxuICAgIGlmIChpbmRleCA8IHRoaXMuZm9ybUFycmF5Lmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtQXJyYXkuc2V0Q29udHJvbChpbmRleCwgZ3JvdXApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGdyb3VwKTtcbiAgICB9XG5cbiAgICAvLyBOb3cgc2V0IHVwIHRoZSBDYXNlRmllbGQgYW5kIHZhbGlkYXRpb24uXG4gICAgbGV0IGNmaWQ6IHN0cmluZztcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgY2ZpZCA9ICd2YWx1ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNmaWQgPSBpbmRleC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8vIGlzTmV3OlxuICAgIGNvbnN0IGNmOiBDYXNlRmllbGQgPSB0aGlzLm5ld0Nhc2VGaWVsZChjZmlkLCBpdGVtLCBpbmRleCwgaXNOZXcpO1xuICAgIEZvcm1WYWxpZGF0b3JzU2VydmljZS5hZGRWYWxpZGF0b3JzKGNmLCB2YWx1ZSk7XG4gICAgRmllbGRzVXRpbHMuYWRkQ2FzZUZpZWxkQW5kQ29tcG9uZW50UmVmZXJlbmNlcyh2YWx1ZSwgY2YsIHRoaXMpO1xuICAgIHJldHVybiBjZjtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZElkUHJlZml4KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9IGAke3RoaXMuaWRQcmVmaXh9JHt0aGlzLmNhc2VGaWVsZC5pZH1fYDtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICByZXR1cm4gYCR7cHJlZml4fSR7aW5kZXh9X2A7XG4gICAgfVxuICAgIHJldHVybiBwcmVmaXg7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hGaWx0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJblNlYXJjaEJsb2NrICYmIHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgYWRkSXRlbShkb1Njcm9sbDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIE1hbnVhbGx5IHJlc2V0dGluZyBlcnJvcnMgaXMgcmVxdWlyZWQgdG8gcHJldmVudCBgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcmBcbiAgICB0aGlzLmZvcm1BcnJheS5zZXRFcnJvcnMobnVsbCk7XG4gICAgY29uc3QgaXRlbSA9IHsgdmFsdWU6IG51bGwgfTtcbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5wdXNoKGl0ZW0pO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jYXNlRmllbGQudmFsdWUubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBjYXNlRmllbGQ6IENhc2VGaWVsZCA9IHRoaXMuYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXgsIHRydWUpO1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuYnVpbGRJZFByZWZpeChpbmRleCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXIoaW5kZXgpO1xuICAgIHRoaXMuY29sbEl0ZW1zLnB1c2goeyBjYXNlRmllbGQsIGl0ZW0sIGluZGV4LCBwcmVmaXgsIGNvbnRhaW5lciB9KTtcblxuICAgIC8vIFRpbWVvdXQgaXMgcmVxdWlyZWQgZm9yIHRoZSBjb2xsZWN0aW9uIGl0ZW0gdG8gYmUgcmVuZGVyZWQgYmVmb3JlIGl0IGNhbiBiZSBzY3JvbGxlZCB0byBvciBmb2N1c2VkLlxuICAgIGlmIChkb1Njcm9sbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9TZXJ2aWNlLnNjcm9sbFRvKHtcbiAgICAgICAgICB0YXJnZXQ6IGAke3RoaXMuYnVpbGRJZFByZWZpeChpbmRleCl9JHtpbmRleH1gLFxuICAgICAgICAgIGR1cmF0aW9uOiAxMDAwLFxuICAgICAgICAgIG9mZnNldDogLTE1MCxcbiAgICAgICAgfSlcbiAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmZvY3VzTGFzdEl0ZW0oKSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7IH0sIGNvbnNvbGUuZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1c0xhc3RJdGVtKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmV3Q2FzZUZpZWxkKGlkOiBzdHJpbmcsIGl0ZW0sIGluZGV4LCBpc05ldyA9IGZhbHNlKSB7XG4gICAgY29uc3QgaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUgPSAhaXNOZXcgJiYgdGhpcy5pc05vdEF1dGhvcmlzZWRUb1VwZGF0ZShpbmRleCk7XG5cbiAgICBjb25zdCBmaWVsZFR5cGUgPSBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IEZpZWxkVHlwZSgpLCB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSk7XG4gICAgaWYgKGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgZmllbGRUeXBlLmNvbXBsZXhfZmllbGRzXG4gICAgICAgIC5maWx0ZXIoKGNmOiBDYXNlRmllbGQpID0+ICEhY2Yuc2hvd19jb25kaXRpb24pXG4gICAgICAgIC5tYXAoKGNmOiBDYXNlRmllbGQpID0+IGNmLmhpZGRlbiA9IHRydWUpO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgYml0IHNldHRpbmcgdGhlIGhpZGRlbiBmbGFnIGhlcmUgYXMgaXQncyBhbiBpdGVtIGluIHRoZSBhcnJheSBhbmRcbiAgICAvLyBpdHMgaGlkZGVuIHN0YXRlIGlzbid0IGluZGVwZW5kZW50bHkgcmUtZXZhbHVhdGVkIHdoZW4gdGhlIGZvcm0gaXMgY2hhbmdlZC5cbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgaWQsXG4gICAgICBmaWVsZF90eXBlOiBmaWVsZFR5cGUsXG4gICAgICBkaXNwbGF5X2NvbnRleHQ6IGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlID8gJ1JFQURPTkxZJyA6IHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dCxcbiAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgbGFiZWw6IG51bGwsXG4gICAgICBhY2xzOiB0aGlzLmNhc2VGaWVsZC5hY2xzXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRhaW5lcihpbmRleDogbnVtYmVyKTogRm9ybUdyb3VwIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KS5nZXQoJ3ZhbHVlJyk7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNMYXN0SXRlbSgpIHtcbiAgICBjb25zdCBpdGVtOiBhbnkgPSB0aGlzLml0ZW1zLmxhc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1jb250cm9sJyk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGl0ZW0uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY29sbEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZXNldElkcyhpbmRleCk7XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0SWRzKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCB0aGlzLmNvbGxJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY291bnRlciA9IGkgKyAxO1xuICAgICAgaWYgKHRoaXMuY29sbEl0ZW1zW2ldLmluZGV4ICYmIHRoaXMuY29sbEl0ZW1zW2ldLmluZGV4ID09PSBjb3VudGVyKSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmluZGV4ID0gaTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQuaWRcbiAgICAgICAgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkID09PSBjb3VudGVyLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkID0gaS50b1N0cmluZygpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpZFByZWZpeDEgPSB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPyB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXgucmVwbGFjZSgnXycgKyBjb3VudGVyLnRvU3RyaW5nKCksICdfJyArIGkudG9TdHJpbmcoKSkgOiAnJztcbiAgICAgIGNvbnN0IGlkUHJlZml4MUN1cnJlbnQgPSBpZFByZWZpeDEucmVwbGFjZSgnXycgKyBpLnRvU3RyaW5nKCksICdfJyArIGNvdW50ZXIudG9TdHJpbmcoKSk7XG5cbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggJiYgdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID09PSBpZFByZWZpeDFDdXJyZW50KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA9IGlkUHJlZml4MTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWRQcmVmaXhBdmFpbGFibGUgPSB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXIgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXVxuICAgICAgICAmJiB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICBjb25zdCBpZFByZWZpeDIgPSBpZFByZWZpeEF2YWlsYWJsZSA/XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J10uaWRQcmVmaXgucmVwbGFjZSgnXycgKyBjb3VudGVyLnRvU3RyaW5nKCksICdfJyArIGkudG9TdHJpbmcoKSkgOiAnJztcbiAgICAgIGNvbnN0IGlkUHJlZml4MmN1cnJlbnQgPSBpZFByZWZpeDIucmVwbGFjZSgnXycgKyBpLnRvU3RyaW5nKCksICdfJyArIGNvdW50ZXIudG9TdHJpbmcoKSk7XG5cbiAgICAgIGlmIChpZFByZWZpeEF2YWlsYWJsZSAmJiB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID09PSBpZFByZWZpeDJjdXJyZW50KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J10uaWRQcmVmaXggPSBpZFByZWZpeDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGl0ZW1MYWJlbChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4KSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jYXNlRmllbGQubGFiZWx9ICR7aW5kZXggKyAxfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5sYWJlbDtcbiAgfVxuXG4gIHB1YmxpYyBpc05vdEF1dGhvcmlzZWRUb0NyZWF0ZSgpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5nZXRDb2xsZWN0aW9uUGVybWlzc2lvbih0aGlzLmNhc2VGaWVsZCwgJ2FsbG93SW5zZXJ0Jyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24oZmllbGQ6IENhc2VGaWVsZCwgdHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgJiZcbiAgICAgIGZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIuc3BsaXQoJyMnKVxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zdGFydHNXaXRoKCdDT0xMRUNUSU9OKCcpKVswXVxuICAgICAgICAuaW5jbHVkZXModHlwZSk7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFdhcyByZWFzc2VzZWQgYXMgcGFydCBvZiBFVUktMzUwNS4gVGhlcmUgaXMgc3RpbGwgYSBjYXZlYXQgYXJvdW5kIENSRCwgYnV0IHRoYXQgd2FzIGRlZW1lZCBhbiB1bmxpa2VseSBzY2VuYXJpb1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgaWYgKGlkKSB7XG4gICAgICBpZiAoISF0aGlzLnByb2ZpbGUudXNlciAmJiAhIXRoaXMucHJvZmlsZS51c2VyLmlkYW0pIHtcbiAgICAgICAgY29uc3QgdXBkYXRlUm9sZSA9IHRoaXMucHJvZmlsZS51c2VyLmlkYW0ucm9sZXMuZmluZChyb2xlID0+IHRoaXMuaGFzVXBkYXRlQWNjZXNzKHJvbGUpKTtcbiAgICAgICAgcmV0dXJuICF1cGRhdGVSb2xlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaGFzVXBkYXRlQWNjZXNzKHJvbGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY2FzZUZpZWxkLmFjbHMuZmluZChhY2wgPT4gYWNsLnJvbGUgPT09IHJvbGUgJiYgYWNsLnVwZGF0ZSA9PT0gdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9EZWxldGUoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gU2hvdWxkIGJlIGFibGUgdG8gZGVsZXRlIGlmIGNyZWF0aW5nIGEgY2FzZSBldmVuIGlmIFwiRFwiIGlzIGFic2VudCwgaGVuY2U6XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldENvbnRyb2xJZEF0KGluZGV4KTtcbiAgICByZXR1cm4gISFpZCAmJiAhdGhpcy5nZXRDb2xsZWN0aW9uUGVybWlzc2lvbih0aGlzLmNhc2VGaWVsZCwgJ2FsbG93RGVsZXRlJyk7XG4gIH1cblxuICBwdWJsaWMgb3Blbk1vZGFsKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICBkaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gdHJ1ZTtcbiAgICBkaWFsb2dDb25maWcuYXJpYUxhYmVsID0gJ0xhYmVsJztcbiAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzIyMHB4JztcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTUwcHgnO1xuICAgIGRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID0gJ2RpYWxvZyc7XG5cbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB7XG4gICAgICB0b3A6IGAke3dpbmRvdy5pbm5lckhlaWdodCAvIDIgLSAxMTB9cHhgLCBsZWZ0OiBgJHt3aW5kb3cuaW5uZXJXaWR0aCAvIDIgLSAyNzV9cHhgXG4gICAgfTtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUmVtb3ZlRGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAnUmVtb3ZlJykge1xuICAgICAgICB0aGlzLnJlbW92ZUl0ZW0oaSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllZCBmdWxsIHNvbHV0aW9uIGFzIHBhcnQgb2YgRVVJLTM1MDVcbiAgICovXG4gIHByaXZhdGUgZ2V0Q29udHJvbElkQXQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG5cbiAgICAvLyB0aGlzLmZvcm1BcnJheSBjb250YWlucyBbIEZvcm1Hcm91cCggaWQ6IEZvcm1Db250cm9sLCB2YWx1ZTogRm9ybUdyb3VwICksIC4uLiBdLlxuICAgIC8vIEhlcmUsIHdlIG5lZWQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgaWQgRm9ybUNvbnRyb2wuXG4gICAgY29uc3QgZ3JvdXA6IEZvcm1Hcm91cCA9IHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgY29uc3QgY29udHJvbDogRm9ybUNvbnRyb2wgPSBncm91cC5nZXQoJ2lkJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgcmV0dXJuIGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbGxlY3Rpb25PZlNpbXBsZVR5cGUoY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICBjb25zdCBub3RTaW1wbGUgPSBbJ0NvbGxlY3Rpb24nLCAnQ29tcGxleCddO1xuICAgIHJldHVybiBub3RTaW1wbGUuaW5kZXhPZihjYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSkgPCAwO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtpZF09XCJpZCgpXCI+XG5cbiAgPGRpdiBjbGFzcz1cInBhbmVsIGNvbGxlY3Rpb24taW5kaWNhdG9yXCI+XG5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyIGVycm9yLXNwYWNpbmdcIj5cbiAgICAgIHt7KGNhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWwpIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgPC9oMj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHdyaXRlLWNvbGxlY3Rpb24tYWRkLWl0ZW1fX3RvcFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkSXRlbSh0cnVlKVwiIFtkaXNhYmxlZF09XCJpc05vdEF1dGhvcmlzZWRUb0NyZWF0ZSgpIHx8IGlzU2VhcmNoRmlsdGVyKClcIj57eydBZGQgbmV3JyB8IHJweFRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0IHx8IGZvcm1BcnJheS5lcnJvcnNcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dFwiIGNsYXNzPVwiZm9ybS1oaW50XCI+e3tjYXNlRmllbGQuaGludF90ZXh0IHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3soZm9ybUFycmF5LmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6Y2FzZUZpZWxkLmxhYmVsKSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvaDI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtoaWRkZW5dPVwiY2FzZUZpZWxkLmhpZGRlblwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2xsSXRlbXM7IGxldCBpID0gaW5kZXhcIiAjY29sbGVjdGlvbkl0ZW0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsb2F0LWxlZnRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIml0ZW0ucHJlZml4ICsgaVwiPjxoMyBjbGFzcz1cImhlYWRpbmctaDNcIj57e2l0ZW1MYWJlbChpKSB8IHJweFRyYW5zbGF0ZX19PC9oMz48L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1yaWdodFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuTW9kYWwoaSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9EZWxldGUoaSlcIlxuICAgICAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJSZW1vdmUge3sgaXRlbUxhYmVsKGkpIH19XCI+e3snUmVtb3ZlJyB8IHJweFRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cIml0ZW0uY2FzZUZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJpdGVtLmNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj57eydBZGQgbmV3JyB8IHJweFRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuXG4gIDwvZGl2PlxuXG48L2Rpdj4iXX0=