@hmcts/ccd-case-ui-toolkit 5.0.32-angular11-upgrade → 5.0.33-angular11-upgrade
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.
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +3365 -640
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
- package/esm2015/lib/app.config.js +1 -1
- package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +15 -11
- package/esm2015/lib/shared/components/case-editor/services/cases.service.js +28 -1
- package/esm2015/lib/shared/components/case-editor/services/page-validation.service.js +10 -2
- package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +9 -2
- package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +15 -10
- package/esm2015/lib/shared/components/palette/base-field/abstract-form-field.component.js +4 -2
- package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +8 -14
- package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +71 -41
- package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
- package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +2 -3
- package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +13 -9
- package/esm2015/lib/shared/components/palette/case-link/components/before-you-start/before-you-start.component.js +125 -0
- package/esm2015/lib/shared/components/palette/case-link/components/check-your-answers/check-your-answers.component.js +198 -0
- package/esm2015/lib/shared/components/palette/case-link/components/index.js +10 -0
- package/esm2015/lib/shared/components/palette/case-link/components/link-cases/link-cases.component.js +493 -0
- package/esm2015/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-from-table.component.js +221 -0
- package/esm2015/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-to-table.component.js +286 -0
- package/esm2015/lib/shared/components/palette/case-link/components/no-linked-cases/no-linked-cases.component.js +76 -0
- package/esm2015/lib/shared/components/palette/case-link/components/read-linked-cases.component.js +178 -0
- package/esm2015/lib/shared/components/palette/case-link/components/unlink-cases/unlink-cases.component.js +216 -0
- package/esm2015/lib/shared/components/palette/case-link/components/write-linked-cases.component.js +260 -0
- package/esm2015/lib/shared/components/palette/case-link/domain/index.js +3 -0
- package/esm2015/lib/shared/components/palette/case-link/domain/linked-cases-state.model.js +2 -0
- package/esm2015/lib/shared/components/palette/case-link/domain/linked-cases.model.js +19 -0
- package/esm2015/lib/shared/components/palette/case-link/enums/index.js +2 -0
- package/esm2015/lib/shared/components/palette/case-link/enums/write-linked-cases-field.enum.js +33 -0
- package/esm2015/lib/shared/components/palette/case-link/index.js +4 -1
- package/esm2015/lib/shared/components/palette/case-link/read-case-link-field.component.js +28 -8
- package/esm2015/lib/shared/components/palette/case-link/services/index.js +2 -0
- package/esm2015/lib/shared/components/palette/case-link/services/jurisdiction.service.js +22 -0
- package/esm2015/lib/shared/components/palette/case-link/services/linked-cases.service.js +136 -0
- package/esm2015/lib/shared/components/palette/case-link/utils/validators.utils.js +27 -0
- package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +79 -65
- package/esm2015/lib/shared/components/palette/index.js +6 -2
- package/esm2015/lib/shared/components/palette/palette.module.js +70 -18
- package/esm2015/lib/shared/components/palette/palette.service.js +10 -4
- package/esm2015/lib/shared/components/search-result/search-result.component.js +1 -1
- package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
- package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +5 -1
- package/esm2015/lib/shared/pipes/index.js +2 -1
- package/esm2015/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.js +23 -0
- package/esm2015/lib/shared/pipes/link-cases-reason-code/index.js +2 -0
- package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
- package/esm2015/lib/shared/services/common-data-service/common-data-service.js +22 -0
- package/esm2015/lib/shared/services/fields/fields.purger.js +128 -112
- package/esm2015/lib/shared/services/fields/fields.utils.js +11 -2
- package/esm2015/lib/shared/services/form/form-value.service.js +9 -7
- package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +1 -1
- package/esm2015/lib/shared/services/search/search.service.js +8 -1
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js +2842 -415
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
- package/lib/app.config.d.ts +4 -0
- package/lib/app.config.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +2 -0
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/cases.service.d.ts +7 -0
- package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/page-validation.service.d.ts +1 -0
- package/lib/shared/components/case-editor/services/page-validation.service.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +2 -2
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/field-write.component.d.ts +2 -2
- package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +11 -5
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +2 -0
- package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +0 -1
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-link/components/before-you-start/before-you-start.component.d.ts +19 -0
- package/lib/shared/components/palette/case-link/components/before-you-start/before-you-start.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/check-your-answers/check-your-answers.component.d.ts +18 -0
- package/lib/shared/components/palette/case-link/components/check-your-answers/check-your-answers.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/index.d.ts +10 -0
- package/lib/shared/components/palette/case-link/components/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/link-cases/link-cases.component.d.ts +41 -0
- package/lib/shared/components/palette/case-link/components/link-cases/link-cases.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-from-table.component.d.ts +42 -0
- package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-from-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-to-table.component.d.ts +45 -0
- package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-to-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/no-linked-cases/no-linked-cases.component.d.ts +12 -0
- package/lib/shared/components/palette/case-link/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/read-linked-cases.component.d.ts +37 -0
- package/lib/shared/components/palette/case-link/components/read-linked-cases.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/unlink-cases/unlink-cases.component.d.ts +38 -0
- package/lib/shared/components/palette/case-link/components/unlink-cases/unlink-cases.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/components/write-linked-cases.component.d.ts +45 -0
- package/lib/shared/components/palette/case-link/components/write-linked-cases.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/domain/index.d.ts +3 -0
- package/lib/shared/components/palette/case-link/domain/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/domain/linked-cases-state.model.d.ts +12 -0
- package/lib/shared/components/palette/case-link/domain/linked-cases-state.model.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/domain/linked-cases.model.d.ts +65 -0
- package/lib/shared/components/palette/case-link/domain/linked-cases.model.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/enums/index.d.ts +2 -0
- package/lib/shared/components/palette/case-link/enums/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/enums/write-linked-cases-field.enum.d.ts +29 -0
- package/lib/shared/components/palette/case-link/enums/write-linked-cases-field.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/index.d.ts +3 -0
- package/lib/shared/components/palette/case-link/index.d.ts.map +1 -1
- package/lib/shared/components/palette/case-link/read-case-link-field.component.d.ts +3 -0
- package/lib/shared/components/palette/case-link/read-case-link-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-link/services/index.d.ts +2 -0
- package/lib/shared/components/palette/case-link/services/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/services/jurisdiction.service.d.ts +12 -0
- package/lib/shared/components/palette/case-link/services/jurisdiction.service.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/services/linked-cases.service.d.ts +51 -0
- package/lib/shared/components/palette/case-link/services/linked-cases.service.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/utils/validators.utils.d.ts +10 -0
- package/lib/shared/components/palette/case-link/utils/validators.utils.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/write-case-link-field.component.d.ts +14 -3
- package/lib/shared/components/palette/case-link/write-case-link-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/index.d.ts +5 -1
- package/lib/shared/components/palette/index.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.module.d.ts +54 -45
- package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
- package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
- package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
- package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
- package/lib/shared/pipes/index.d.ts +1 -0
- package/lib/shared/pipes/index.d.ts.map +1 -1
- package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts +11 -0
- package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts.map +1 -0
- package/lib/shared/pipes/link-cases-reason-code/index.d.ts +2 -0
- package/lib/shared/pipes/link-cases-reason-code/index.d.ts.map +1 -0
- package/lib/shared/pipes/pipes.module.d.ts +3 -2
- package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
- package/lib/shared/services/common-data-service/common-data-service.d.ts +29 -0
- package/lib/shared/services/common-data-service/common-data-service.d.ts.map +1 -0
- package/lib/shared/services/fields/fields.purger.d.ts +19 -12
- package/lib/shared/services/fields/fields.purger.d.ts.map +1 -1
- package/lib/shared/services/fields/fields.utils.d.ts +1 -0
- package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
- package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
- package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
- package/lib/shared/services/search/search.service.d.ts +4 -0
- package/lib/shared/services/search/search.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
import { throwError } from 'rxjs';
|
|
4
|
+
import { CasesService } from '../../../../case-editor/services/cases.service';
|
|
5
|
+
import { LinkedCasesErrorMessages, LinkedCasesPages, Patterns } from '../../enums';
|
|
6
|
+
import { LinkedCasesService } from '../../services/linked-cases.service';
|
|
7
|
+
import { ValidatorsUtils } from '../../utils/validators.utils';
|
|
8
|
+
import * as moment from 'moment';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../../../case-editor/services/cases.service";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "../../utils/validators.utils";
|
|
13
|
+
import * as i4 from "../../services/linked-cases.service";
|
|
14
|
+
function LinkCasesComponent_div_8_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
16
|
+
i0.ɵɵelementStart(1, "span", 29);
|
|
17
|
+
i0.ɵɵtext(2, "Error:");
|
|
18
|
+
i0.ɵɵelementEnd();
|
|
19
|
+
i0.ɵɵtext(3);
|
|
20
|
+
i0.ɵɵelementEnd();
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
23
|
+
i0.ɵɵadvance(3);
|
|
24
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r4.caseNumberError, " ");
|
|
25
|
+
} }
|
|
26
|
+
function LinkCasesComponent_div_8_span_10_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
28
|
+
i0.ɵɵelementStart(1, "span", 29);
|
|
29
|
+
i0.ɵɵtext(2, "Error:");
|
|
30
|
+
i0.ɵɵelementEnd();
|
|
31
|
+
i0.ɵɵtext(3);
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
35
|
+
i0.ɵɵadvance(3);
|
|
36
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r5.caseReasonError, " ");
|
|
37
|
+
} }
|
|
38
|
+
function LinkCasesComponent_div_8_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementStart(0, "div", 30);
|
|
40
|
+
i0.ɵɵelement(1, "input", 31);
|
|
41
|
+
i0.ɵɵelementStart(2, "label", 32);
|
|
42
|
+
i0.ɵɵtext(3);
|
|
43
|
+
i0.ɵɵelementEnd();
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
const reason_r8 = ctx.$implicit;
|
|
47
|
+
const pos_r9 = ctx.index;
|
|
48
|
+
i0.ɵɵproperty("formGroupName", pos_r9);
|
|
49
|
+
i0.ɵɵadvance(1);
|
|
50
|
+
i0.ɵɵpropertyInterpolate("id", reason_r8.key);
|
|
51
|
+
i0.ɵɵproperty("value", reason_r8.value_en);
|
|
52
|
+
i0.ɵɵadvance(1);
|
|
53
|
+
i0.ɵɵpropertyInterpolate("for", reason_r8.key);
|
|
54
|
+
i0.ɵɵadvance(1);
|
|
55
|
+
i0.ɵɵtextInterpolate(reason_r8.value_en);
|
|
56
|
+
} }
|
|
57
|
+
function LinkCasesComponent_div_8_span_15_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
59
|
+
i0.ɵɵelementStart(1, "span", 29);
|
|
60
|
+
i0.ɵɵtext(2, "Error:");
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵtext(3);
|
|
63
|
+
i0.ɵɵelementEnd();
|
|
64
|
+
} if (rf & 2) {
|
|
65
|
+
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
66
|
+
i0.ɵɵadvance(3);
|
|
67
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r7.caseSelectionError, " ");
|
|
68
|
+
} }
|
|
69
|
+
const _c0 = function (a0) { return { "govuk-form-group--error": a0 }; };
|
|
70
|
+
function LinkCasesComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
72
|
+
i0.ɵɵelementStart(0, "div", 21);
|
|
73
|
+
i0.ɵɵelementStart(1, "h3", 22);
|
|
74
|
+
i0.ɵɵtext(2, "Enter case reference");
|
|
75
|
+
i0.ɵɵelementEnd();
|
|
76
|
+
i0.ɵɵelementStart(3, "div", 5);
|
|
77
|
+
i0.ɵɵtemplate(4, LinkCasesComponent_div_8_span_4_Template, 4, 1, "span", 6);
|
|
78
|
+
i0.ɵɵelement(5, "input", 23);
|
|
79
|
+
i0.ɵɵelementEnd();
|
|
80
|
+
i0.ɵɵelementStart(6, "h3", 22);
|
|
81
|
+
i0.ɵɵtext(7, "Why should these cases be linked?");
|
|
82
|
+
i0.ɵɵelementEnd();
|
|
83
|
+
i0.ɵɵelementStart(8, "div", 24);
|
|
84
|
+
i0.ɵɵtext(9, " Select all that apply. ");
|
|
85
|
+
i0.ɵɵelementEnd();
|
|
86
|
+
i0.ɵɵtemplate(10, LinkCasesComponent_div_8_span_10_Template, 4, 1, "span", 6);
|
|
87
|
+
i0.ɵɵelementStart(11, "div", 25);
|
|
88
|
+
i0.ɵɵtemplate(12, LinkCasesComponent_div_8_div_12_Template, 4, 5, "div", 26);
|
|
89
|
+
i0.ɵɵelementEnd();
|
|
90
|
+
i0.ɵɵelement(13, "br");
|
|
91
|
+
i0.ɵɵelement(14, "br");
|
|
92
|
+
i0.ɵɵtemplate(15, LinkCasesComponent_div_8_span_15_Template, 4, 1, "span", 6);
|
|
93
|
+
i0.ɵɵelementStart(16, "button", 27);
|
|
94
|
+
i0.ɵɵlistener("click", function LinkCasesComponent_div_8_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.submitCaseInfo(); });
|
|
95
|
+
i0.ɵɵtext(17, "Propose case link");
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵelementEnd();
|
|
98
|
+
} if (rf & 2) {
|
|
99
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
100
|
+
i0.ɵɵproperty("formGroup", ctx_r0.linkCaseForm);
|
|
101
|
+
i0.ɵɵadvance(3);
|
|
102
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0, !!ctx_r0.caseNumberError));
|
|
103
|
+
i0.ɵɵadvance(1);
|
|
104
|
+
i0.ɵɵproperty("ngIf", ctx_r0.caseNumberError);
|
|
105
|
+
i0.ɵɵadvance(6);
|
|
106
|
+
i0.ɵɵproperty("ngIf", ctx_r0.caseReasonError);
|
|
107
|
+
i0.ɵɵadvance(1);
|
|
108
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0, !!ctx_r0.caseReasonError));
|
|
109
|
+
i0.ɵɵadvance(1);
|
|
110
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.linkedCasesService.linkCaseReasons);
|
|
111
|
+
i0.ɵɵadvance(3);
|
|
112
|
+
i0.ɵɵproperty("ngIf", ctx_r0.caseSelectionError);
|
|
113
|
+
} }
|
|
114
|
+
function LinkCasesComponent_span_13_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
116
|
+
i0.ɵɵelementStart(1, "span", 29);
|
|
117
|
+
i0.ɵɵtext(2, "Error:");
|
|
118
|
+
i0.ɵɵelementEnd();
|
|
119
|
+
i0.ɵɵtext(3);
|
|
120
|
+
i0.ɵɵelementEnd();
|
|
121
|
+
} if (rf & 2) {
|
|
122
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
123
|
+
i0.ɵɵadvance(3);
|
|
124
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.noSelectedCaseError, " ");
|
|
125
|
+
} }
|
|
126
|
+
function LinkCasesComponent_tr_31_span_15_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
i0.ɵɵelementStart(0, "span");
|
|
128
|
+
i0.ɵɵtext(1);
|
|
129
|
+
i0.ɵɵpipe(2, "ccdLinkCasesReasonValue");
|
|
130
|
+
i0.ɵɵelement(3, "br");
|
|
131
|
+
i0.ɵɵelementEnd();
|
|
132
|
+
} if (rf & 2) {
|
|
133
|
+
const reason_r15 = ctx.$implicit;
|
|
134
|
+
i0.ɵɵadvance(1);
|
|
135
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, reason_r15.reasonCode));
|
|
136
|
+
} }
|
|
137
|
+
const _c1 = function (a0) { return { "table-group-error": a0 }; };
|
|
138
|
+
function LinkCasesComponent_tr_31_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
140
|
+
i0.ɵɵelementStart(0, "tr", 10);
|
|
141
|
+
i0.ɵɵelementStart(1, "td", 33);
|
|
142
|
+
i0.ɵɵelement(2, "div", 34);
|
|
143
|
+
i0.ɵɵelementStart(3, "span");
|
|
144
|
+
i0.ɵɵtext(4);
|
|
145
|
+
i0.ɵɵelement(5, "br");
|
|
146
|
+
i0.ɵɵtext(6);
|
|
147
|
+
i0.ɵɵpipe(7, "ccdCaseReference");
|
|
148
|
+
i0.ɵɵelementEnd();
|
|
149
|
+
i0.ɵɵelementEnd();
|
|
150
|
+
i0.ɵɵelementStart(8, "td", 35);
|
|
151
|
+
i0.ɵɵtext(9);
|
|
152
|
+
i0.ɵɵelementEnd();
|
|
153
|
+
i0.ɵɵelementStart(10, "td", 33);
|
|
154
|
+
i0.ɵɵtext(11);
|
|
155
|
+
i0.ɵɵelementEnd();
|
|
156
|
+
i0.ɵɵelementStart(12, "td", 35);
|
|
157
|
+
i0.ɵɵtext(13);
|
|
158
|
+
i0.ɵɵelementEnd();
|
|
159
|
+
i0.ɵɵelementStart(14, "td", 33);
|
|
160
|
+
i0.ɵɵtemplate(15, LinkCasesComponent_tr_31_span_15_Template, 4, 3, "span", 36);
|
|
161
|
+
i0.ɵɵelementEnd();
|
|
162
|
+
i0.ɵɵelementStart(16, "td", 33);
|
|
163
|
+
i0.ɵɵelementStart(17, "a", 37);
|
|
164
|
+
i0.ɵɵlistener("click", function LinkCasesComponent_tr_31_Template_a_click_17_listener() { i0.ɵɵrestoreView(_r17); const pos_r13 = ctx.index; const case_r12 = ctx.$implicit; const ctx_r16 = i0.ɵɵnextContext(); return ctx_r16.onSelectedLinkedCaseRemove(pos_r13, case_r12.caseReference); });
|
|
165
|
+
i0.ɵɵtext(18, "Remove");
|
|
166
|
+
i0.ɵɵelementEnd();
|
|
167
|
+
i0.ɵɵelementEnd();
|
|
168
|
+
i0.ɵɵelementEnd();
|
|
169
|
+
} if (rf & 2) {
|
|
170
|
+
const case_r12 = ctx.$implicit;
|
|
171
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
172
|
+
i0.ɵɵadvance(2);
|
|
173
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c1, ctx_r2.caseSelectionError && case_r12.caseReference === ctx_r2.linkCaseForm.value.caseNumber));
|
|
174
|
+
i0.ɵɵadvance(2);
|
|
175
|
+
i0.ɵɵtextInterpolate1("", case_r12.caseName, " ");
|
|
176
|
+
i0.ɵɵadvance(2);
|
|
177
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 10, case_r12.caseReference), "");
|
|
178
|
+
i0.ɵɵadvance(2);
|
|
179
|
+
i0.ɵɵproperty("title", case_r12.caseTypeDescription);
|
|
180
|
+
i0.ɵɵadvance(1);
|
|
181
|
+
i0.ɵɵtextInterpolate(case_r12.caseType);
|
|
182
|
+
i0.ɵɵadvance(2);
|
|
183
|
+
i0.ɵɵtextInterpolate(case_r12.caseService);
|
|
184
|
+
i0.ɵɵadvance(1);
|
|
185
|
+
i0.ɵɵproperty("title", case_r12.caseStateDescription);
|
|
186
|
+
i0.ɵɵadvance(1);
|
|
187
|
+
i0.ɵɵtextInterpolate(case_r12.caseState);
|
|
188
|
+
i0.ɵɵadvance(2);
|
|
189
|
+
i0.ɵɵproperty("ngForOf", case_r12.reasons);
|
|
190
|
+
i0.ɵɵadvance(2);
|
|
191
|
+
i0.ɵɵattribute("id", case_r12.caseReference);
|
|
192
|
+
} }
|
|
193
|
+
function LinkCasesComponent_tr_32_Template(rf, ctx) { if (rf & 1) {
|
|
194
|
+
i0.ɵɵelementStart(0, "tr", 10);
|
|
195
|
+
i0.ɵɵelementStart(1, "td", 38);
|
|
196
|
+
i0.ɵɵtext(2, " None ");
|
|
197
|
+
i0.ɵɵelementEnd();
|
|
198
|
+
i0.ɵɵelementEnd();
|
|
199
|
+
} }
|
|
200
|
+
export class LinkCasesComponent {
|
|
201
|
+
constructor(casesService, fb, validatorsUtils, linkedCasesService) {
|
|
202
|
+
this.casesService = casesService;
|
|
203
|
+
this.fb = fb;
|
|
204
|
+
this.validatorsUtils = validatorsUtils;
|
|
205
|
+
this.linkedCasesService = linkedCasesService;
|
|
206
|
+
this.linkedCasesStateEmitter = new EventEmitter();
|
|
207
|
+
this.errorMessages = [];
|
|
208
|
+
this.selectedCases = [];
|
|
209
|
+
this.ISO_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS';
|
|
210
|
+
}
|
|
211
|
+
ngOnInit() {
|
|
212
|
+
this.initForm();
|
|
213
|
+
if (this.linkedCasesService.editMode) {
|
|
214
|
+
// this may have includes the currently added one but yet to be submitted.
|
|
215
|
+
this.selectedCases = this.linkedCasesService.linkedCases;
|
|
216
|
+
}
|
|
217
|
+
else if (this.linkedCasesService.initialCaseLinks.length !== this.linkedCasesService.caseFieldValue.length) {
|
|
218
|
+
this.linkedCasesService.linkedCases = this.linkedCasesService.initialCaseLinks;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
initForm() {
|
|
222
|
+
this.linkCaseForm = this.fb.group({
|
|
223
|
+
caseNumber: ['', [Validators.minLength(16), this.validatorsUtils.regexPattern(Patterns.CASE_REF)]],
|
|
224
|
+
reasonType: this.getReasonTypeFormArray,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
get getReasonTypeFormArray() {
|
|
228
|
+
return this.fb.array(this.linkedCasesService.linkCaseReasons.map((val) => this.fb.group({
|
|
229
|
+
key: [val.key],
|
|
230
|
+
value_en: [val.value_en],
|
|
231
|
+
value_cy: [val.value_cy],
|
|
232
|
+
hint_text_en: [val.hint_text_en],
|
|
233
|
+
hint_text_cy: [val.hint_text_cy],
|
|
234
|
+
lov_order: [val.lov_order],
|
|
235
|
+
parent_key: [val.parent_key],
|
|
236
|
+
selected: [!!val.selected],
|
|
237
|
+
})), this.validatorsUtils.formArraySelectedValidator());
|
|
238
|
+
}
|
|
239
|
+
submitCaseInfo() {
|
|
240
|
+
this.errorMessages = [];
|
|
241
|
+
this.caseReasonError = null;
|
|
242
|
+
this.caseNumberError = null;
|
|
243
|
+
this.caseSelectionError = null;
|
|
244
|
+
this.noSelectedCaseError = null;
|
|
245
|
+
if (this.linkCaseForm.valid &&
|
|
246
|
+
!this.isCaseSelected(this.selectedCases) &&
|
|
247
|
+
!this.isCaseSelected(this.linkedCasesService.linkedCases) &&
|
|
248
|
+
!this.isCaseSelectedSameAsCurrentCase()) {
|
|
249
|
+
this.getCaseInfo();
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
this.showErrorInfo();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
isCaseSelected(linkedCases) {
|
|
256
|
+
if (linkedCases.length === 0) {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
const caseNumber = this.linkCaseForm.value.caseNumber;
|
|
260
|
+
return !!linkedCases.find((caseLink) => caseLink.caseReference.split('-').join('') === caseNumber.split('-').join(''));
|
|
261
|
+
}
|
|
262
|
+
isCaseSelectedSameAsCurrentCase() {
|
|
263
|
+
return this.linkCaseForm.value.caseNumber.split('-').join('') === this.linkedCasesService.caseId.split('-').join('');
|
|
264
|
+
}
|
|
265
|
+
showErrorInfo() {
|
|
266
|
+
if (this.linkCaseForm.controls.caseNumber.invalid) {
|
|
267
|
+
this.caseNumberError = LinkedCasesErrorMessages.CaseNumberError;
|
|
268
|
+
this.errorMessages.push({
|
|
269
|
+
title: 'dummy-case-number',
|
|
270
|
+
description: LinkedCasesErrorMessages.CaseNumberError,
|
|
271
|
+
fieldId: 'caseNumber',
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
if (this.linkCaseForm.controls.reasonType.invalid) {
|
|
275
|
+
this.caseReasonError = LinkedCasesErrorMessages.ReasonSelectionError;
|
|
276
|
+
this.errorMessages.push({
|
|
277
|
+
title: 'dummy-case-reason',
|
|
278
|
+
description: LinkedCasesErrorMessages.ReasonSelectionError,
|
|
279
|
+
fieldId: 'caseReason',
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
if (this.isCaseSelected(this.selectedCases)) {
|
|
283
|
+
this.caseSelectionError = LinkedCasesErrorMessages.CaseProposedError;
|
|
284
|
+
this.errorMessages.push({
|
|
285
|
+
title: 'dummy-case-number',
|
|
286
|
+
description: LinkedCasesErrorMessages.CaseProposedError,
|
|
287
|
+
fieldId: 'caseNumber',
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
if (this.isCaseSelected(this.linkedCasesService.linkedCases)) {
|
|
291
|
+
this.caseSelectionError = LinkedCasesErrorMessages.CasesLinkedError;
|
|
292
|
+
this.errorMessages.push({
|
|
293
|
+
title: 'dummy-case-number',
|
|
294
|
+
description: LinkedCasesErrorMessages.CasesLinkedError,
|
|
295
|
+
fieldId: 'caseNumber',
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
if (this.linkCaseForm.value.caseNumber.split('-').join('') === this.linkedCasesService.caseId.split('-').join('')) {
|
|
299
|
+
this.errorMessages.push({
|
|
300
|
+
title: 'dummy-case-number',
|
|
301
|
+
description: LinkedCasesErrorMessages.ProposedCaseWithIn,
|
|
302
|
+
fieldId: 'caseNumber',
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
window.scrollTo(0, 0);
|
|
306
|
+
this.emitLinkedCasesState(false);
|
|
307
|
+
}
|
|
308
|
+
getCaseInfo() {
|
|
309
|
+
const caseNumberData = this.linkCaseForm.value.caseNumber.replace(/[- ]/g, '');
|
|
310
|
+
this.casesService
|
|
311
|
+
.getCaseViewV2(caseNumberData)
|
|
312
|
+
.subscribe((caseView) => {
|
|
313
|
+
this.linkedCasesService.caseDetails = caseView;
|
|
314
|
+
const caseLink = {
|
|
315
|
+
caseReference: caseView.case_id,
|
|
316
|
+
reasons: this.getSelectedCaseReasons(),
|
|
317
|
+
createdDateTime: moment(new Date()).format(this.ISO_FORMAT),
|
|
318
|
+
caseType: caseView.case_type.name || '',
|
|
319
|
+
caseTypeDescription: caseView.case_type.description || '',
|
|
320
|
+
caseState: caseView.state.name || '',
|
|
321
|
+
caseStateDescription: caseView.state.description || '',
|
|
322
|
+
caseService: caseView.case_type && caseView.case_type.jurisdiction && caseView.case_type.jurisdiction.description || '',
|
|
323
|
+
caseName: this.linkedCasesService.getCaseName(caseView),
|
|
324
|
+
};
|
|
325
|
+
const ccdApiCaseLinkData = {
|
|
326
|
+
CaseReference: caseView.case_id,
|
|
327
|
+
CaseType: caseView.case_type.id,
|
|
328
|
+
CreatedDateTime: moment(new Date()).format(this.ISO_FORMAT),
|
|
329
|
+
ReasonForLink: this.getSelectedCCDTypeCaseReason()
|
|
330
|
+
};
|
|
331
|
+
if (!this.linkedCasesService.caseFieldValue) {
|
|
332
|
+
this.linkedCasesService.caseFieldValue = [];
|
|
333
|
+
}
|
|
334
|
+
this.linkedCasesService.caseFieldValue.push({ id: caseView.case_id.toString(), value: ccdApiCaseLinkData });
|
|
335
|
+
this.selectedCases.push(caseLink);
|
|
336
|
+
this.initForm();
|
|
337
|
+
this.emitLinkedCasesState(false);
|
|
338
|
+
}, (error) => {
|
|
339
|
+
this.caseNumberError = LinkedCasesErrorMessages.CaseCheckAgainError;
|
|
340
|
+
this.errorMessages.push({
|
|
341
|
+
title: 'dummy-case-number',
|
|
342
|
+
description: LinkedCasesErrorMessages.CaseCheckAgainError,
|
|
343
|
+
fieldId: 'caseNumber',
|
|
344
|
+
});
|
|
345
|
+
this.emitLinkedCasesState(false);
|
|
346
|
+
window.scrollTo(0, 0);
|
|
347
|
+
return throwError(error);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
// Return linked cases state and error messages to the parent
|
|
351
|
+
emitLinkedCasesState(isNavigateToNextPage) {
|
|
352
|
+
this.linkedCasesStateEmitter.emit({
|
|
353
|
+
currentLinkedCasesPage: LinkedCasesPages.LINK_CASE,
|
|
354
|
+
errorMessages: this.errorMessages,
|
|
355
|
+
navigateToNextPage: isNavigateToNextPage,
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
getSelectedCaseReasons() {
|
|
359
|
+
const selectedReasons = [];
|
|
360
|
+
this.linkCaseForm.controls.reasonType.value.forEach((selectedReason) => {
|
|
361
|
+
if (selectedReason.selected) {
|
|
362
|
+
selectedReasons.push({
|
|
363
|
+
reasonCode: selectedReason.key
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
return selectedReasons;
|
|
368
|
+
}
|
|
369
|
+
getSelectedCCDTypeCaseReason() {
|
|
370
|
+
const selectedReasons = [];
|
|
371
|
+
this.linkCaseForm.controls.reasonType.value.forEach((selectedReason) => {
|
|
372
|
+
if (selectedReason.selected) {
|
|
373
|
+
selectedReasons.push({
|
|
374
|
+
value: {
|
|
375
|
+
Reason: selectedReason.key,
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
return selectedReasons;
|
|
381
|
+
}
|
|
382
|
+
onSelectedLinkedCaseRemove(pos, selectedCaseReference) {
|
|
383
|
+
const caseFieldValue = this.linkedCasesService.caseFieldValue || [];
|
|
384
|
+
const updatedItems = caseFieldValue.filter(item => item.value && item.value.CaseReference !== selectedCaseReference);
|
|
385
|
+
if (updatedItems) {
|
|
386
|
+
this.linkedCasesService.caseFieldValue = updatedItems;
|
|
387
|
+
}
|
|
388
|
+
this.selectedCases.splice(pos, 1);
|
|
389
|
+
}
|
|
390
|
+
onNext() {
|
|
391
|
+
this.errorMessages = [];
|
|
392
|
+
this.caseReasonError = null;
|
|
393
|
+
this.caseNumberError = null;
|
|
394
|
+
this.caseSelectionError = null;
|
|
395
|
+
this.noSelectedCaseError = null;
|
|
396
|
+
let navigateToNextPage = true;
|
|
397
|
+
if (this.selectedCases.length) {
|
|
398
|
+
this.linkedCasesService.linkedCases = this.selectedCases;
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
this.noSelectedCaseError = LinkedCasesErrorMessages.CaseSelectionError;
|
|
402
|
+
this.errorMessages.push({
|
|
403
|
+
title: 'dummy-case-selection',
|
|
404
|
+
description: LinkedCasesErrorMessages.CaseSelectionError,
|
|
405
|
+
fieldId: 'caseReason',
|
|
406
|
+
});
|
|
407
|
+
navigateToNextPage = false;
|
|
408
|
+
}
|
|
409
|
+
this.emitLinkedCasesState(navigateToNextPage);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
LinkCasesComponent.ɵfac = function LinkCasesComponent_Factory(t) { return new (t || LinkCasesComponent)(i0.ɵɵdirectiveInject(i1.CasesService), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.ValidatorsUtils), i0.ɵɵdirectiveInject(i4.LinkedCasesService)); };
|
|
413
|
+
LinkCasesComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LinkCasesComponent, selectors: [["ccd-link-cases"]], outputs: { linkedCasesStateEmitter: "linkedCasesStateEmitter" }, decls: 36, vars: 11, consts: [[1, "govuk-grid-row"], [1, "govuk-grid-column-full"], [1, "govuk-caption-l"], [1, "govuk-heading-xl"], ["class", "form-group", 3, "formGroup", 4, "ngIf"], ["id", "caseNumber", 1, "govuk-form-group", 3, "ngClass"], ["class", "govuk-error-message", 4, "ngIf"], [1, "govuk-table"], [1, "govuk-table__caption", "govuk-table__caption--m"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["scope", "col", "width", "300", 1, "govuk-table__header"], ["scope", "col", "width", "150", 1, "govuk-table__header"], ["scope", "col", "width", "200", 1, "govuk-table__header"], ["scope", "col", "width", "400", 1, "govuk-table__header"], ["scope", "col", "width", "50", 1, "govuk-table__header"], [1, "govuk-table__body"], ["class", "govuk-table__row", 4, "ngFor", "ngForOf"], ["class", "govuk-table__row", 4, "ngIf"], [1, "govuk-button-group"], ["type", "button", "id", "next-button", 1, "button", "button-primary", 3, "click"], [1, "form-group", 3, "formGroup"], [1, "govuk-heading-s"], ["formControlName", "caseNumber", "id", "width-20", "name", "width-20", "type", "text", 1, "govuk-input", "govuk-input--width-20"], ["id", "waste-hint", 1, "govuk-hint"], ["data-module", "govuk-checkboxes", "formArrayName", "reasonType", "id", "caseReason", 1, "govuk-checkboxes", 3, "ngClass"], ["class", "govuk-checkboxes__item", 3, "formGroupName", 4, "ngFor", "ngForOf"], ["id", "propose", "type", "button", "data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", 3, "click"], [1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-checkboxes__item", 3, "formGroupName"], ["formControlName", "selected", "name", "pos", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "value"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], [1, "govuk-table__cell"], [1, "govuk-form-group--error", 3, "ngClass"], [1, "govuk-table__cell", 3, "title"], [4, "ngFor", "ngForOf"], [1, "govuk-link", "no-visited-state", 3, "click"], ["colspan", "6", 1, "govuk-table__cell"]], template: function LinkCasesComponent_Template(rf, ctx) { if (rf & 1) {
|
|
414
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
415
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
416
|
+
i0.ɵɵelementStart(2, "div");
|
|
417
|
+
i0.ɵɵelementStart(3, "span", 2);
|
|
418
|
+
i0.ɵɵtext(4);
|
|
419
|
+
i0.ɵɵpipe(5, "ccdCaseReference");
|
|
420
|
+
i0.ɵɵelementEnd();
|
|
421
|
+
i0.ɵɵelementStart(6, "h1", 3);
|
|
422
|
+
i0.ɵɵtext(7, "Select a\u00A0case you want to link to this case");
|
|
423
|
+
i0.ɵɵelementEnd();
|
|
424
|
+
i0.ɵɵtemplate(8, LinkCasesComponent_div_8_Template, 18, 11, "div", 4);
|
|
425
|
+
i0.ɵɵelement(9, "hr");
|
|
426
|
+
i0.ɵɵelement(10, "br");
|
|
427
|
+
i0.ɵɵelement(11, "br");
|
|
428
|
+
i0.ɵɵelementStart(12, "div", 5);
|
|
429
|
+
i0.ɵɵtemplate(13, LinkCasesComponent_span_13_Template, 4, 1, "span", 6);
|
|
430
|
+
i0.ɵɵelementStart(14, "table", 7);
|
|
431
|
+
i0.ɵɵelementStart(15, "caption", 8);
|
|
432
|
+
i0.ɵɵtext(16, "Proposed case links ");
|
|
433
|
+
i0.ɵɵelementEnd();
|
|
434
|
+
i0.ɵɵelementStart(17, "thead", 9);
|
|
435
|
+
i0.ɵɵelementStart(18, "tr", 10);
|
|
436
|
+
i0.ɵɵelementStart(19, "th", 11);
|
|
437
|
+
i0.ɵɵtext(20, "Case name and number");
|
|
438
|
+
i0.ɵɵelementEnd();
|
|
439
|
+
i0.ɵɵelementStart(21, "th", 12);
|
|
440
|
+
i0.ɵɵtext(22, "Case type ");
|
|
441
|
+
i0.ɵɵelementEnd();
|
|
442
|
+
i0.ɵɵelementStart(23, "th", 13);
|
|
443
|
+
i0.ɵɵtext(24, "Service");
|
|
444
|
+
i0.ɵɵelementEnd();
|
|
445
|
+
i0.ɵɵelementStart(25, "th", 13);
|
|
446
|
+
i0.ɵɵtext(26, "State");
|
|
447
|
+
i0.ɵɵelementEnd();
|
|
448
|
+
i0.ɵɵelementStart(27, "th", 14);
|
|
449
|
+
i0.ɵɵtext(28, "Reasons for case link");
|
|
450
|
+
i0.ɵɵelementEnd();
|
|
451
|
+
i0.ɵɵelement(29, "th", 15);
|
|
452
|
+
i0.ɵɵelementEnd();
|
|
453
|
+
i0.ɵɵelementEnd();
|
|
454
|
+
i0.ɵɵelementStart(30, "tbody", 16);
|
|
455
|
+
i0.ɵɵtemplate(31, LinkCasesComponent_tr_31_Template, 19, 14, "tr", 17);
|
|
456
|
+
i0.ɵɵtemplate(32, LinkCasesComponent_tr_32_Template, 3, 0, "tr", 18);
|
|
457
|
+
i0.ɵɵelementEnd();
|
|
458
|
+
i0.ɵɵelementEnd();
|
|
459
|
+
i0.ɵɵelementEnd();
|
|
460
|
+
i0.ɵɵelementStart(33, "div", 19);
|
|
461
|
+
i0.ɵɵelementStart(34, "button", 20);
|
|
462
|
+
i0.ɵɵlistener("click", function LinkCasesComponent_Template_button_click_34_listener() { return ctx.onNext(); });
|
|
463
|
+
i0.ɵɵtext(35, "Next");
|
|
464
|
+
i0.ɵɵelementEnd();
|
|
465
|
+
i0.ɵɵelementEnd();
|
|
466
|
+
i0.ɵɵelementEnd();
|
|
467
|
+
i0.ɵɵelementEnd();
|
|
468
|
+
i0.ɵɵelementEnd();
|
|
469
|
+
} if (rf & 2) {
|
|
470
|
+
i0.ɵɵadvance(4);
|
|
471
|
+
i0.ɵɵtextInterpolate2("Link cases to ", ctx.linkedCasesService.caseName, " ", i0.ɵɵpipeBind1(5, 7, ctx.linkedCasesService.caseId), "");
|
|
472
|
+
i0.ɵɵadvance(4);
|
|
473
|
+
i0.ɵɵproperty("ngIf", ctx.linkCaseForm);
|
|
474
|
+
i0.ɵɵadvance(4);
|
|
475
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c0, !!ctx.noSelectedCaseError));
|
|
476
|
+
i0.ɵɵadvance(1);
|
|
477
|
+
i0.ɵɵproperty("ngIf", ctx.noSelectedCaseError);
|
|
478
|
+
i0.ɵɵadvance(18);
|
|
479
|
+
i0.ɵɵproperty("ngForOf", ctx.selectedCases);
|
|
480
|
+
i0.ɵɵadvance(1);
|
|
481
|
+
i0.ɵɵproperty("ngIf", !ctx.selectedCases.length);
|
|
482
|
+
} }, styles: [".no-visited-state[_ngcontent-%COMP%]{color:#1d70b8;cursor:pointer}.no-visited-state[_ngcontent-%COMP%]:hover{color:#003078}.govuk-checkboxes[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex-wrap:wrap;max-height:500px;width:100%;overflow-x:auto;overflow-y:hidden;padding-top:5px}.govuk-checkboxes[_ngcontent-%COMP%] .govuk-checkboxes__item[_ngcontent-%COMP%]{display:flex} .govuk-width-container .screen-990 .width-50{width:100%}.govuk-table__row[_ngcontent-%COMP%]{position:relative}.govuk-table__row[_ngcontent-%COMP%] .table-group-error[_ngcontent-%COMP%]{position:absolute;height:calc(100% - 20px);margin-left:-15px}"] });
|
|
483
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LinkCasesComponent, [{
|
|
484
|
+
type: Component,
|
|
485
|
+
args: [{
|
|
486
|
+
selector: 'ccd-link-cases',
|
|
487
|
+
styleUrls: ['./link-cases.component.scss'],
|
|
488
|
+
templateUrl: './link-cases.component.html',
|
|
489
|
+
}]
|
|
490
|
+
}], function () { return [{ type: i1.CasesService }, { type: i2.FormBuilder }, { type: i3.ValidatorsUtils }, { type: i4.LinkedCasesService }]; }, { linkedCasesStateEmitter: [{
|
|
491
|
+
type: Output
|
|
492
|
+
}] }); })();
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWxpbmsvY29tcG9uZW50cy9saW5rLWNhc2VzL2xpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1saW5rL2NvbXBvbmVudHMvbGluay1jYXNlcy9saW5rLWNhc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQWEsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBUTlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0lDUHZCLGdDQUEwRDtJQUN4RCxnQ0FBb0M7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBTzs7O0lBRDZDLGVBQ3BEO0lBRG9ELHVEQUNwRDs7O0lBUUYsZ0NBQTBEO0lBQ3hELGdDQUFvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQyxZQUNwRDtJQUFBLGlCQUFPOzs7SUFENkMsZUFDcEQ7SUFEb0QsdURBQ3BEOzs7SUFHRSwrQkFBaUk7SUFDL0gsNEJBQzRDO0lBQzVDLGlDQUF3RTtJQUFBLFlBQW1CO0lBQUEsaUJBQVE7SUFDckcsaUJBQU07Ozs7SUFKcUcsc0NBQXFCO0lBQ3ZGLGVBQW1CO0lBQW5CLDZDQUFtQjtJQUN4QywwQ0FBeUI7SUFDUSxlQUFvQjtJQUFwQiw4Q0FBb0I7SUFBQyxlQUFtQjtJQUFuQix3Q0FBbUI7OztJQUsvRixnQ0FBNkQ7SUFDM0QsZ0NBQW9DO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQU87OztJQUQ2QyxlQUNwRDtJQURvRCwwREFDcEQ7Ozs7O0lBNUJGLCtCQUF3RTtJQUN0RSw4QkFBNEI7SUFBQSxvQ0FBb0I7SUFBQSxpQkFBSztJQUNyRCw4QkFBeUc7SUFDdkcsMkVBRU87SUFDUCw0QkFDYztJQUNoQixpQkFBTTtJQUNOLDhCQUE0QjtJQUFBLGlEQUFpQztJQUFBLGlCQUFLO0lBQ2xFLCtCQUF3QztJQUN0Qyx3Q0FDRjtJQUFBLGlCQUFNO0lBQ04sNkVBRU87SUFDUCxnQ0FDNkQ7SUFDM0QsNEVBSU07SUFDUixpQkFBTTtJQUVOLHNCQUFJO0lBQUEsc0JBQUk7SUFDUiw2RUFFTztJQUVQLG1DQUM2QjtJQUEzQiw4TEFBMEI7SUFBQyxrQ0FBaUI7SUFBQSxpQkFBUztJQUN6RCxpQkFBTTs7O0lBaENrQiwrQ0FBMEI7SUFFRixlQUEwRDtJQUExRCw4RUFBMEQ7SUFDbkUsZUFBcUI7SUFBckIsNkNBQXFCO0lBVXZCLGVBQXFCO0lBQXJCLDZDQUFxQjtJQUl0RCxlQUEwRDtJQUExRCw4RUFBMEQ7SUFDSCxlQUFzQztJQUF0QyxtRUFBc0M7SUFRNUQsZUFBd0I7SUFBeEIsZ0RBQXdCOzs7SUFVM0QsZ0NBQThEO0lBQzVELGdDQUFvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQyxZQUNwRDtJQUFBLGlCQUFPOzs7SUFENkMsZUFDcEQ7SUFEb0QsMkRBQ3BEOzs7SUF3Qm9DLDRCQUNVO0lBQUEsWUFBK0M7O0lBQUEscUJBQUk7SUFBQSxpQkFBTzs7O0lBQTFELGVBQStDO0lBQS9DLGlFQUErQzs7Ozs7SUFYekYsOEJBQWlGO0lBQy9FLDhCQUE4QjtJQUM1QiwwQkFFTTtJQUNOLDRCQUFNO0lBQUEsWUFBa0I7SUFBQSxxQkFBSTtJQUFDLFlBQXlDOztJQUFBLGlCQUFPO0lBQy9FLGlCQUFLO0lBQ0wsOEJBQWlFO0lBQUEsWUFBaUI7SUFBQSxpQkFBSztJQUN2RiwrQkFBOEI7SUFBQSxhQUFvQjtJQUFBLGlCQUFLO0lBQ3ZELCtCQUFrRTtJQUFBLGFBQWtCO0lBQUEsaUJBQUs7SUFDekYsK0JBQThCO0lBQUEsOEVBQ29FO0lBQUEsaUJBQUs7SUFDdkcsK0JBQThCO0lBQUEsOEJBQ1U7SUFEd0IsK1JBQThEO0lBQ3RGLHVCQUFNO0lBQUEsaUJBQUk7SUFBQSxpQkFBSztJQUN6RCxpQkFBSzs7OztJQVhDLGVBQTRHO0lBQTVHLG1KQUE0RztJQUV4RyxlQUFrQjtJQUFsQixpREFBa0I7SUFBSyxlQUF5QztJQUF6Qyw2RUFBeUM7SUFFMUMsZUFBa0M7SUFBbEMsb0RBQWtDO0lBQUMsZUFBaUI7SUFBakIsdUNBQWlCO0lBQ3BELGVBQW9CO0lBQXBCLDBDQUFvQjtJQUNwQixlQUFtQztJQUFuQyxxREFBbUM7SUFBQyxlQUFrQjtJQUFsQix3Q0FBa0I7SUFFN0QsZUFBZTtJQUFmLDBDQUFlO0lBQ0wsZUFBOEI7SUFBOUIsNENBQThCOzs7SUFHakUsOEJBQTJEO0lBQ3pELDhCQUEwQztJQUN4QyxzQkFDRjtJQUFBLGlCQUFLO0lBQ1AsaUJBQUs7O0FEdERqQixNQUFNLE9BQU8sa0JBQWtCO0lBYTdCLFlBQ21CLFlBQTBCLEVBQzFCLEVBQWUsRUFDZixlQUFnQyxFQUNqQyxrQkFBc0M7UUFIckMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBZmpELDRCQUF1QixHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUUvRixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFbkMsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFLckIsZUFBVSxHQUFHLHlCQUF5QixDQUFDO0lBTUksQ0FBQztJQUV0RCxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtZQUNwQywwRUFBMEU7WUFDMUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDO1NBQzFEO2FBQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQzVHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO1NBQ2hGO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEcsVUFBVSxFQUFFLElBQUksQ0FBQyxzQkFBc0I7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDbEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDWixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ2QsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ3hCLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFDaEMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztZQUNoQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQzFCLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDNUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDM0IsQ0FBQyxDQUNILEVBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQywwQkFBMEIsRUFBRSxDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQ3ZCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3hDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDO1lBQ3pELENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLEVBQ3ZDO1lBQ0EsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU0sY0FBYyxDQUFDLFdBQXVCO1FBQzNDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUN0RCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN2QixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUM1RixDQUFDO0lBQ0osQ0FBQztJQUVPLCtCQUErQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxlQUFlLENBQUM7WUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxlQUFlO2dCQUNyRCxPQUFPLEVBQUUsWUFBWTthQUN0QixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLHdCQUF3QixDQUFDLG9CQUFvQixDQUFDO1lBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixXQUFXLEVBQUUsd0JBQXdCLENBQUMsb0JBQW9CO2dCQUMxRCxPQUFPLEVBQUUsWUFBWTthQUN0QixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDO1lBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixXQUFXLEVBQUUsd0JBQXdCLENBQUMsaUJBQWlCO2dCQUN2RCxPQUFPLEVBQUUsWUFBWTthQUN0QixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDO1lBQ3BFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixXQUFXLEVBQUUsd0JBQXdCLENBQUMsZ0JBQWdCO2dCQUN0RCxPQUFPLEVBQUUsWUFBWTthQUN0QixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2pILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixXQUFXLEVBQUUsd0JBQXdCLENBQUMsa0JBQWtCO2dCQUN4RCxPQUFPLEVBQUUsWUFBWTthQUN0QixDQUFDLENBQUM7U0FDSjtRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sV0FBVztRQUNoQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsWUFBWTthQUNkLGFBQWEsQ0FBQyxjQUFjLENBQUM7YUFDN0IsU0FBUyxDQUNSLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1lBQy9DLE1BQU0sUUFBUSxHQUFhO2dCQUN6QixhQUFhLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ3RDLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUMzRCxRQUFRLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDdkMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtnQkFDekQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7Z0JBQ3RELFdBQVcsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFO2dCQUN2SCxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7YUFDeEQsQ0FBQztZQUNGLE1BQU0sa0JBQWtCLEdBQW9CO2dCQUMxQyxhQUFhLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQy9CLFFBQVEsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQy9CLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUMzRCxhQUFhLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixFQUFFO2FBQ25ELENBQUE7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7YUFDN0M7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDNUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLEVBQ0QsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDdEIsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIsV0FBVyxFQUFFLHdCQUF3QixDQUFDLG1CQUFtQjtnQkFDekQsT0FBTyxFQUFFLFlBQVk7YUFDdEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxvQkFBb0IsQ0FBQyxvQkFBNkI7UUFDdkQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQztZQUNoQyxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ2xELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxrQkFBa0IsRUFBRSxvQkFBb0I7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2pELENBQUMsY0FBOEIsRUFBRSxFQUFFO1lBQ2pDLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRTtnQkFDM0IsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDbkIsVUFBVSxFQUFFLGNBQWMsQ0FBQyxHQUFHO2lCQUNqQixDQUFDLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNqRCxDQUFDLGNBQThCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzNCLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsY0FBYyxDQUFDLEdBQUc7cUJBQzNCO2lCQUNGLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRU0sMEJBQTBCLENBQUMsR0FBRyxFQUFFLHFCQUFxQjtRQUMxRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JILElBQUksWUFBWSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzFEO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsd0JBQXdCLENBQUMsa0JBQWtCLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssRUFBRSxzQkFBc0I7Z0JBQzdCLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxrQkFBa0I7Z0JBQ3hELE9BQU8sRUFBRSxZQUFZO2FBQ3RCLENBQUMsQ0FBQztZQUNILGtCQUFrQixHQUFHLEtBQUssQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O29GQW5QVSxrQkFBa0I7dURBQWxCLGtCQUFrQjtRQ3RCL0IsOEJBQTRCO1FBQzFCLDhCQUFvQztRQUNsQywyQkFBSztRQUNILCtCQUE4QjtRQUFBLFlBQThGOztRQUFBLGlCQUFPO1FBQ25JLDZCQUE2QjtRQUFBLGdFQUFnRDtRQUFBLGlCQUFLO1FBQ2xGLHFFQWdDTTtRQUNOLHFCQUFJO1FBQ0osc0JBQUk7UUFBQSxzQkFBSTtRQUNSLCtCQUE2RztRQUMzRyx1RUFFTztRQUNQLGlDQUEyQjtRQUN6QixtQ0FBOEQ7UUFBQSxxQ0FBb0I7UUFBQSxpQkFBVTtRQUM1RixpQ0FBaUM7UUFDL0IsK0JBQTZCO1FBQzNCLCtCQUF3RDtRQUFBLHFDQUFvQjtRQUFBLGlCQUFLO1FBQ2pGLCtCQUF3RDtRQUFBLDJCQUFVO1FBQUEsaUJBQUs7UUFDdkUsK0JBQXdEO1FBQUEsd0JBQU87UUFBQSxpQkFBSztRQUNwRSwrQkFBd0Q7UUFBQSxzQkFBSztRQUFBLGlCQUFLO1FBQ2xFLCtCQUF3RDtRQUFBLHNDQUFxQjtRQUFBLGlCQUFLO1FBQ2xGLDBCQUE0RDtRQUM5RCxpQkFBSztRQUNQLGlCQUFRO1FBQ1Isa0NBQWlDO1FBQy9CLHNFQWNLO1FBQ0wsb0VBSUs7UUFDUCxpQkFBUTtRQUNWLGlCQUFRO1FBQ1YsaUJBQU07UUFDTixnQ0FBZ0M7UUFDOUIsbUNBQXdGO1FBQW5CLGdHQUFTLFlBQVEsSUFBQztRQUFDLHFCQUFJO1FBQUEsaUJBQVM7UUFDdkcsaUJBQU07UUFDUixpQkFBTTtRQUVSLGlCQUFNO1FBRVIsaUJBQU07O1FBcEY4QixlQUE4RjtRQUE5RixzSUFBOEY7UUFFeEUsZUFBa0I7UUFBbEIsdUNBQWtCO1FBbUN4QixlQUE4RDtRQUE5RCwrRUFBOEQ7UUFDdkUsZUFBeUI7UUFBekIsOENBQXlCO1FBZ0JWLGdCQUFrQjtRQUFsQiwyQ0FBa0I7UUFlbEMsZUFBMkI7UUFBM0IsZ0RBQTJCOzt1RkRsRHhELGtCQUFrQjtjQUw5QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzFDLFdBQVcsRUFBRSw2QkFBNkI7YUFDM0M7d0pBR1EsdUJBQXVCO2tCQUQ3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldywgRXJyb3JNZXNzYWdlLCBIdHRwRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1N0YXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VMaW5rLFxuICBDQ0RDYXNlTGlua1R5cGUsXG4gIExpbmtDYXNlUmVhc29uLFxuICBMaW5rUmVhc29uLFxufSBmcm9tICcuLi8uLi9kb21haW4vbGlua2VkLWNhc2VzLm1vZGVsJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcywgUGF0dGVybnMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saW5rZWQtY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzLnV0aWxzJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbGluay1jYXNlcycsXG4gIHN0eWxlVXJsczogWycuL2xpbmstY2FzZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstY2FzZXMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rQ2FzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KClcbiAgcHVibGljIGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+KCk7XG5cbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyBsaW5rQ2FzZUZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIHNlbGVjdGVkQ2FzZXM6IENhc2VMaW5rW10gPSBbXTtcbiAgcHVibGljIGNhc2VOdW1iZXJFcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZVJlYXNvbkVycm9yOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlU2VsZWN0aW9uRXJyb3I6IHN0cmluZztcbiAgcHVibGljIG5vU2VsZWN0ZWRDYXNlRXJyb3I6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBJU09fRk9STUFUID0gJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRhdG9yc1V0aWxzOiBWYWxpZGF0b3JzVXRpbHMsXG4gICAgcHVibGljIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIGlmICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5lZGl0TW9kZSkge1xuICAgICAgLy8gdGhpcyBtYXkgaGF2ZSBpbmNsdWRlcyB0aGUgY3VycmVudGx5IGFkZGVkIG9uZSBidXQgeWV0IHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzO1xuICAgIH0gZWxzZSBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcy5sZW5ndGggIT09IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pbml0aWFsQ2FzZUxpbmtzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbml0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtDYXNlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY2FzZU51bWJlcjogWycnLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMTYpLCB0aGlzLnZhbGlkYXRvcnNVdGlscy5yZWdleFBhdHRlcm4oUGF0dGVybnMuQ0FTRV9SRUYpXV0sXG4gICAgICByZWFzb25UeXBlOiB0aGlzLmdldFJlYXNvblR5cGVGb3JtQXJyYXksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFJlYXNvblR5cGVGb3JtQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtDYXNlUmVhc29ucy5tYXAoKHZhbCkgPT5cbiAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAga2V5OiBbdmFsLmtleV0sXG4gICAgICAgICAgdmFsdWVfZW46IFt2YWwudmFsdWVfZW5dLFxuICAgICAgICAgIHZhbHVlX2N5OiBbdmFsLnZhbHVlX2N5XSxcbiAgICAgICAgICBoaW50X3RleHRfZW46IFt2YWwuaGludF90ZXh0X2VuXSxcbiAgICAgICAgICBoaW50X3RleHRfY3k6IFt2YWwuaGludF90ZXh0X2N5XSxcbiAgICAgICAgICBsb3Zfb3JkZXI6IFt2YWwubG92X29yZGVyXSxcbiAgICAgICAgICBwYXJlbnRfa2V5OiBbdmFsLnBhcmVudF9rZXldLFxuICAgICAgICAgIHNlbGVjdGVkOiBbISF2YWwuc2VsZWN0ZWRdLFxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHRoaXMudmFsaWRhdG9yc1V0aWxzLmZvcm1BcnJheVNlbGVjdGVkVmFsaWRhdG9yKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdENhc2VJbmZvKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2FzZVJlYXNvbkVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IG51bGw7XG4gICAgaWYgKFxuICAgICAgdGhpcy5saW5rQ2FzZUZvcm0udmFsaWQgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMuc2VsZWN0ZWRDYXNlcykgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSAmJlxuICAgICAgIXRoaXMuaXNDYXNlU2VsZWN0ZWRTYW1lQXNDdXJyZW50Q2FzZSgpXG4gICAgKSB7XG4gICAgICB0aGlzLmdldENhc2VJbmZvKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0Vycm9ySW5mbygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Nhc2VTZWxlY3RlZChsaW5rZWRDYXNlczogQ2FzZUxpbmtbXSk6IGJvb2xlYW4ge1xuICAgIGlmIChsaW5rZWRDYXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY2FzZU51bWJlciA9IHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXI7XG4gICAgcmV0dXJuICEhbGlua2VkQ2FzZXMuZmluZChcbiAgICAgIChjYXNlTGluaykgPT4gY2FzZUxpbmsuY2FzZVJlZmVyZW5jZS5zcGxpdCgnLScpLmpvaW4oJycpID09PSBjYXNlTnVtYmVyLnNwbGl0KCctJykuam9pbignJylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Nhc2VTZWxlY3RlZFNhbWVBc0N1cnJlbnRDYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyLnNwbGl0KCctJykuam9pbignJykgPT09IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VJZC5zcGxpdCgnLScpLmpvaW4oJycpO1xuICB9XG5cbiAgcHVibGljIHNob3dFcnJvckluZm8oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLmNhc2VOdW1iZXIuaW52YWxpZCkge1xuICAgICAgdGhpcy5jYXNlTnVtYmVyRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZU51bWJlckVycm9yO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtbnVtYmVyJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlTnVtYmVyRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmNhc2VSZWFzb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5SZWFzb25TZWxlY3Rpb25FcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuUmVhc29uU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlUmVhc29uJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLnNlbGVjdGVkQ2FzZXMpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlUHJvcG9zZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVByb3Bvc2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcykpIHtcbiAgICAgIHRoaXMuY2FzZVNlbGVjdGlvbkVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VzTGlua2VkRXJyb3I7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VzTGlua2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpID09PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQuc3BsaXQoJy0nKS5qb2luKCcnKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtbnVtYmVyJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5Qcm9wb3NlZENhc2VXaXRoSW4sXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUluZm8oKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZU51bWJlckRhdGEgPSB0aGlzLmxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyLnJlcGxhY2UoL1stIF0vZywgJycpO1xuICAgIHRoaXMuY2FzZXNTZXJ2aWNlXG4gICAgICAuZ2V0Q2FzZVZpZXdWMihjYXNlTnVtYmVyRGF0YSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChjYXNlVmlldzogQ2FzZVZpZXcpID0+IHtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IGNhc2VWaWV3O1xuICAgICAgICAgIGNvbnN0IGNhc2VMaW5rOiBDYXNlTGluayA9IHtcbiAgICAgICAgICAgIGNhc2VSZWZlcmVuY2U6IGNhc2VWaWV3LmNhc2VfaWQsXG4gICAgICAgICAgICByZWFzb25zOiB0aGlzLmdldFNlbGVjdGVkQ2FzZVJlYXNvbnMoKSxcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlVGltZTogbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCh0aGlzLklTT19GT1JNQVQpLFxuICAgICAgICAgICAgY2FzZVR5cGU6IGNhc2VWaWV3LmNhc2VfdHlwZS5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVR5cGVEZXNjcmlwdGlvbjogY2FzZVZpZXcuY2FzZV90eXBlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVN0YXRlOiBjYXNlVmlldy5zdGF0ZS5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVN0YXRlRGVzY3JpcHRpb246IGNhc2VWaWV3LnN0YXRlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVNlcnZpY2U6IGNhc2VWaWV3LmNhc2VfdHlwZSAmJiBjYXNlVmlldy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uICYmIGNhc2VWaWV3LmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlTmFtZTogdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZ2V0Q2FzZU5hbWUoY2FzZVZpZXcpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgY2NkQXBpQ2FzZUxpbmtEYXRhOiBDQ0RDYXNlTGlua1R5cGUgPSB7XG4gICAgICAgICAgICBDYXNlUmVmZXJlbmNlOiBjYXNlVmlldy5jYXNlX2lkLFxuICAgICAgICAgICAgQ2FzZVR5cGU6IGNhc2VWaWV3LmNhc2VfdHlwZS5pZCxcbiAgICAgICAgICAgIENyZWF0ZWREYXRlVGltZTogbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCh0aGlzLklTT19GT1JNQVQpLFxuICAgICAgICAgICAgUmVhc29uRm9yTGluazogdGhpcy5nZXRTZWxlY3RlZENDRFR5cGVDYXNlUmVhc29uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUucHVzaCh7IGlkOiBjYXNlVmlldy5jYXNlX2lkLnRvU3RyaW5nKCksIHZhbHVlOiBjY2RBcGlDYXNlTGlua0RhdGEgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goY2FzZUxpbmspO1xuICAgICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAgICAgICB0aGlzLmVtaXRMaW5rZWRDYXNlc1N0YXRlKGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBIdHRwRXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlQ2hlY2tBZ2FpbkVycm9yO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlQ2hlY2tBZ2FpbkVycm9yLFxuICAgICAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUoZmFsc2UpO1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICAvLyBSZXR1cm4gbGlua2VkIGNhc2VzIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gIHB1YmxpYyBlbWl0TGlua2VkQ2FzZXNTdGF0ZShpc05hdmlnYXRlVG9OZXh0UGFnZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMubGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50TGlua2VkQ2FzZXNQYWdlOiBMaW5rZWRDYXNlc1BhZ2VzLkxJTktfQ0FTRSxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZTogaXNOYXZpZ2F0ZVRvTmV4dFBhZ2UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRDYXNlUmVhc29ucygpOiBMaW5rUmVhc29uW10ge1xuICAgIGNvbnN0IHNlbGVjdGVkUmVhc29ucyA9IFtdO1xuICAgIHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLnJlYXNvblR5cGUudmFsdWUuZm9yRWFjaChcbiAgICAgIChzZWxlY3RlZFJlYXNvbjogTGlua0Nhc2VSZWFzb24pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkUmVhc29uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgc2VsZWN0ZWRSZWFzb25zLnB1c2goe1xuICAgICAgICAgICAgcmVhc29uQ29kZTogc2VsZWN0ZWRSZWFzb24ua2V5XG4gICAgICAgICAgfSBhcyBMaW5rUmVhc29uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHNlbGVjdGVkUmVhc29ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZENDRFR5cGVDYXNlUmVhc29uKCk6IExpbmtSZWFzb25bXSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSZWFzb25zID0gW107XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS52YWx1ZS5mb3JFYWNoKFxuICAgICAgKHNlbGVjdGVkUmVhc29uOiBMaW5rQ2FzZVJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRSZWFzb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICBzZWxlY3RlZFJlYXNvbnMucHVzaCh7XG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICBSZWFzb246IHNlbGVjdGVkUmVhc29uLmtleSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHNlbGVjdGVkUmVhc29ucztcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkTGlua2VkQ2FzZVJlbW92ZShwb3MsIHNlbGVjdGVkQ2FzZVJlZmVyZW5jZSk6IHZvaWQge1xuICAgIGNvbnN0IGNhc2VGaWVsZFZhbHVlID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgfHwgW107XG4gICAgY29uc3QgdXBkYXRlZEl0ZW1zID0gY2FzZUZpZWxkVmFsdWUuZmlsdGVyKGl0ZW0gPT4gaXRlbS52YWx1ZSAmJiBpdGVtLnZhbHVlLkNhc2VSZWZlcmVuY2UgIT09IHNlbGVjdGVkQ2FzZVJlZmVyZW5jZSk7XG4gICAgaWYgKHVwZGF0ZWRJdGVtcykge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgPSB1cGRhdGVkSXRlbXM7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UocG9zLCAxKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5jYXNlUmVhc29uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IG51bGw7XG4gICAgdGhpcy5ub1NlbGVjdGVkQ2FzZUVycm9yID0gbnVsbDtcbiAgICBsZXQgbmF2aWdhdGVUb05leHRQYWdlID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLnNlbGVjdGVkQ2FzZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlU2VsZWN0aW9uRXJyb3I7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1zZWxlY3Rpb24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VTZWxlY3Rpb25FcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VSZWFzb24nLFxuICAgICAgfSk7XG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2UgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShuYXZpZ2F0ZVRvTmV4dFBhZ2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGxcIj5cbiAgICA8ZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLWxcIj5MaW5rIGNhc2VzIHRvIHt7bGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VOYW1lfX0ge3tsaW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPlxuICAgICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiPlNlbGVjdCBhJm5ic3A7Y2FzZSB5b3Ugd2FudCB0byBsaW5rIHRvIHRoaXMgY2FzZTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwibGlua0Nhc2VGb3JtXCIgKm5nSWY9XCJsaW5rQ2FzZUZvcm1cIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+RW50ZXIgY2FzZSByZWZlcmVuY2U8L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIGlkPVwiY2FzZU51bWJlclwiIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiAhIWNhc2VOdW1iZXJFcnJvcn1cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImNhc2VOdW1iZXJFcnJvclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7Y2FzZU51bWJlckVycm9yfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstaW5wdXQgZ292dWstaW5wdXQtLXdpZHRoLTIwXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2FzZU51bWJlclwiIGlkPVwid2lkdGgtMjBcIiBuYW1lPVwid2lkdGgtMjBcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxoMyBjbGFzcz1cImdvdnVrLWhlYWRpbmctc1wiPldoeSBzaG91bGQgdGhlc2UgY2FzZXMgYmUgbGlua2VkPzwvaDM+XG4gICAgICAgIDxkaXYgaWQ9XCJ3YXN0ZS1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICAgICAgU2VsZWN0IGFsbCB0aGF0IGFwcGx5LlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlUmVhc29uRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlUmVhc29uRXJyb3J9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1jaGVja2JveGVzXCIgZm9ybUFycmF5TmFtZT1cInJlYXNvblR5cGVcIiBpZD1cImNhc2VSZWFzb25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiAhIWNhc2VSZWFzb25FcnJvcn1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiICpuZ0Zvcj1cImxldCByZWFzb24gb2YgbGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtDYXNlUmVhc29ucztpbmRleCBhcyBwb3NcIiBbZm9ybUdyb3VwTmFtZV09XCJwb3NcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJ7e3JlYXNvbi5rZXl9fVwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkXCIgbmFtZT1cInBvc1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCJyZWFzb24udmFsdWVfZW5cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwie3tyZWFzb24ua2V5fX1cIj57e3JlYXNvbi52YWx1ZV9lbn19PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJyPjxicj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlU2VsZWN0aW9uRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlU2VsZWN0aW9uRXJyb3J9fVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPGJ1dHRvbiBpZD1cInByb3Bvc2VcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdENhc2VJbmZvKClcIj5Qcm9wb3NlIGNhc2UgbGluazwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8aHI+XG4gICAgICA8YnI+PGJyPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBpZD1cImNhc2VOdW1iZXJcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFub1NlbGVjdGVkQ2FzZUVycm9yfVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm5vU2VsZWN0ZWRDYXNlRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tub1NlbGVjdGVkQ2FzZUVycm9yfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgICAgIDxjYXB0aW9uIGNsYXNzPVwiZ292dWstdGFibGVfX2NhcHRpb24gZ292dWstdGFibGVfX2NhcHRpb24tLW1cIj5Qcm9wb3NlZCBjYXNlIGxpbmtzIDwvY2FwdGlvbj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiB3aWR0aD1cIjMwMFwiPkNhc2UgbmFtZSBhbmQgbnVtYmVyPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIxNTBcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIyMDBcIj5TZXJ2aWNlPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIyMDBcIj5TdGF0ZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiNDAwXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCI1MFwiPjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBzZWxlY3RlZENhc2VzOyBsZXQgcG9zID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cC0tZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0YWJsZS1ncm91cC1lcnJvcic6Y2FzZVNlbGVjdGlvbkVycm9yICYmIGNhc2UuY2FzZVJlZmVyZW5jZSA9PT0gbGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXJ9XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tjYXNlLmNhc2VOYW1lfX0gPGJyPiB7e2Nhc2UuY2FzZVJlZmVyZW5jZSB8IGNjZENhc2VSZWZlcmVuY2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBbdGl0bGVdPVwiY2FzZS5jYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNhc2VUeXBlfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7Y2FzZS5jYXNlU2VydmljZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBbdGl0bGVdPVwiY2FzZS5jYXNlU3RhdGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5jYXNlU3RhdGV9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+PHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZWFzb24gb2YgY2FzZS5yZWFzb25zXCI+e3tyZWFzb24ucmVhc29uQ29kZSB8IGNjZExpbmtDYXNlc1JlYXNvblZhbHVlfX08YnI+PC9zcGFuPjwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+PGEgW2F0dHIuaWRdPVwiY2FzZS5jYXNlUmVmZXJlbmNlXCIgKGNsaWNrKT1cIm9uU2VsZWN0ZWRMaW5rZWRDYXNlUmVtb3ZlKHBvcywgY2FzZS5jYXNlUmVmZXJlbmNlKTtcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1saW5rIG5vLXZpc2l0ZWQtc3RhdGVcIj5SZW1vdmU8L2E+PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nSWY9XCIhc2VsZWN0ZWRDYXNlcy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBjb2xzcGFuPVwiNlwiPlxuICAgICAgICAgICAgICAgIE5vbmVcbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGlkPVwibmV4dC1idXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj5OZXh0PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|