@senior-gestao-pessoas/hcm-contract-employee-history 5.5.2 → 5.6.1
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/senior-gestao-pessoas-hcm-contract-employee-history.umd.js +651 -251
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js +2 -2
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js.map +1 -1
- package/core/dtos/employee-dependent-save-dto.d.ts +2 -1
- package/core/entities/dependent-draft/dependent-draft.d.ts +11 -0
- package/core/entities/dependent-draft/dependent-draft.dto.d.ts +13 -0
- package/core/entities/dependent-draft/dependent-draft.service.d.ts +13 -0
- package/esm2015/core/dtos/employee-dependent-save-dto.js +1 -1
- package/esm2015/core/entities/dependent-draft/dependent-draft.dto.js +1 -0
- package/esm2015/core/entities/dependent-draft/dependent-draft.js +56 -0
- package/esm2015/core/entities/dependent-draft/dependent-draft.service.js +26 -0
- package/esm2015/lib/employee-dependent/employee-dependent.module.js +14 -2
- package/esm2015/lib/employee-dependent/form/employee-dependent-form.component.js +179 -75
- package/esm2015/lib/employee-dependent/form/employee-dependent-personal-step/employee-dependent-personal-step.component.js +1 -1
- package/esm2015/lib/employee-dependent/list/draft/dependent-list-draft.component.js +216 -0
- package/esm2015/lib/employee-dependent/list/employee-dependent-list.component.js +13 -2
- package/esm2015/lib/utils/helpers.js +24 -1
- package/esm2015/public-api.js +1 -2
- package/esm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +10 -8
- package/esm5/core/dtos/employee-dependent-save-dto.js +1 -1
- package/esm5/core/entities/dependent-draft/dependent-draft.dto.js +1 -0
- package/esm5/core/entities/dependent-draft/dependent-draft.js +61 -0
- package/esm5/core/entities/dependent-draft/dependent-draft.service.js +29 -0
- package/esm5/lib/employee-dependent/employee-dependent.module.js +14 -2
- package/esm5/lib/employee-dependent/form/employee-dependent-form.component.js +183 -75
- package/esm5/lib/employee-dependent/form/employee-dependent-personal-step/employee-dependent-personal-step.component.js +1 -1
- package/esm5/lib/employee-dependent/list/draft/dependent-list-draft.component.js +230 -0
- package/esm5/lib/employee-dependent/list/employee-dependent-list.component.js +17 -2
- package/esm5/lib/utils/helpers.js +24 -1
- package/esm5/public-api.js +1 -2
- package/esm5/senior-gestao-pessoas-hcm-contract-employee-history.js +10 -8
- package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +612 -244
- package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js +641 -244
- package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
- package/lib/employee-dependent/form/employee-dependent-form.component.d.ts +16 -7
- package/lib/employee-dependent/list/draft/dependent-list-draft.component.d.ts +49 -0
- package/lib/employee-dependent/list/employee-dependent-list.component.d.ts +3 -0
- package/lib/utils/helpers.d.ts +11 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/senior-gestao-pessoas-hcm-contract-employee-history.d.ts +9 -7
- package/senior-gestao-pessoas-hcm-contract-employee-history.metadata.json +1 -1
- package/esm2015/locale/fallback.js +0 -54
- package/esm5/locale/fallback.js +0 -54
- package/locale/fallback.d.ts +0 -1
|
@@ -4,27 +4,33 @@ import { FormControl, FormGroup } from "@angular/forms";
|
|
|
4
4
|
import { ActivatedRoute } from "@angular/router";
|
|
5
5
|
import { TranslateService } from "@ngx-translate/core";
|
|
6
6
|
import { SUrlService } from "@senior-gestao-pessoas/angular-components";
|
|
7
|
+
import { validateSpecificControls } from "../../utils/helpers";
|
|
7
8
|
import { StepState } from "@seniorsistemas/angular-components";
|
|
8
9
|
import { ConfirmationService, MessageService } from "primeng/api";
|
|
9
10
|
import { Subject } from "rxjs";
|
|
10
11
|
import { finalize, takeUntil } from "rxjs/operators";
|
|
12
|
+
import { DependentDraft } from "../../../core/entities/dependent-draft/dependent-draft";
|
|
13
|
+
import { DependentDraftService } from "../../../core/entities/dependent-draft/dependent-draft.service";
|
|
11
14
|
import { EmployeeDependentService } from "../../../core/entities/employee-dependent-core/employee-dependent-core.service";
|
|
12
15
|
import { FocusService } from "../../../shared/focus/focus.service";
|
|
13
16
|
import { DateValidator } from "../../utils/date-validator/date-validator";
|
|
14
17
|
import { mapFormToDependentSave, mapPersonRetrieveToEmployeeDependentForm } from "./employee-dependent-form-converter";
|
|
15
18
|
let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
16
|
-
constructor(translateService, employeeDependentService, sUrlService, focusService, route, confirmationService, messageService) {
|
|
19
|
+
constructor(translateService, employeeDependentService, sUrlService, focusService, dependentDraftService, route, confirmationService, messageService) {
|
|
17
20
|
this.translateService = translateService;
|
|
18
21
|
this.employeeDependentService = employeeDependentService;
|
|
19
22
|
this.sUrlService = sUrlService;
|
|
20
23
|
this.focusService = focusService;
|
|
24
|
+
this.dependentDraftService = dependentDraftService;
|
|
21
25
|
this.route = route;
|
|
22
26
|
this.confirmationService = confirmationService;
|
|
23
27
|
this.messageService = messageService;
|
|
24
28
|
this.loading = false;
|
|
25
29
|
this.showSideBar = false;
|
|
26
30
|
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
27
|
-
this.formGroup = new FormGroup({
|
|
31
|
+
this.formGroup = new FormGroup({
|
|
32
|
+
draftId: new FormControl(null),
|
|
33
|
+
});
|
|
28
34
|
this.ngUnsubscribe = new Subject();
|
|
29
35
|
this.createSteps();
|
|
30
36
|
}
|
|
@@ -41,28 +47,133 @@ let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
|
41
47
|
this.localeConfig = data.localeConfig;
|
|
42
48
|
this.dateFormat = DateValidator.getDateFormatFromCalendar(data.localeConfig.calendar);
|
|
43
49
|
}
|
|
50
|
+
undoStep() {
|
|
51
|
+
if (this.activeIndex === 1) {
|
|
52
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
53
|
+
}
|
|
54
|
+
else if (this.activeIndex === 0) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.activeIndex--;
|
|
58
|
+
}
|
|
59
|
+
nextStep() {
|
|
60
|
+
if (this.activeIndex === 0) {
|
|
61
|
+
const formBasicStep = this.formGroup.get("basicDependentPersonData");
|
|
62
|
+
this.validateAllFormFields(formBasicStep);
|
|
63
|
+
if (!formBasicStep.valid && !this.dependentId) {
|
|
64
|
+
this.steps[1].disabled = true;
|
|
65
|
+
return this.messageService.add({
|
|
66
|
+
severity: "error",
|
|
67
|
+
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
68
|
+
detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
this.steps[1].disabled = false;
|
|
72
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.admission_employee_form_btn_step_last");
|
|
73
|
+
this.activeIndex++;
|
|
74
|
+
}
|
|
75
|
+
else if (this.activeIndex === 1) {
|
|
76
|
+
this.validateAllFormFields(this.formGroup);
|
|
77
|
+
if (!this.formGroup.valid) {
|
|
78
|
+
const msg = this.requiredFieldsStep1 ? this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group_step_1")
|
|
79
|
+
: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group");
|
|
80
|
+
return this.messageService.add({
|
|
81
|
+
severity: "error",
|
|
82
|
+
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
83
|
+
detail: msg,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (this.dependentId) {
|
|
87
|
+
this.onBeforeSave();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.onSaveDependent();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
isNew() {
|
|
95
|
+
return !this.dependentId;
|
|
96
|
+
}
|
|
97
|
+
isNewToLabel() {
|
|
98
|
+
return this.isNew() ? "create" : "edit";
|
|
99
|
+
}
|
|
100
|
+
onStepSelected(event) {
|
|
101
|
+
if (event.index === 0) {
|
|
102
|
+
const complementForm = this.formGroup.get("complementDependentPersonData");
|
|
103
|
+
if (!complementForm.valid && (!this.dependentId)) {
|
|
104
|
+
this.validateAllFormFields(complementForm);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
108
|
+
}
|
|
109
|
+
if (event.index === 1) {
|
|
110
|
+
const basicForm = this.formGroup.get("basicDependentPersonData");
|
|
111
|
+
if (!basicForm.valid && (!this.dependentId)) {
|
|
112
|
+
this.validateAllFormFields(basicForm);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.activeIndex = event.index;
|
|
117
|
+
}
|
|
118
|
+
onCancel() {
|
|
119
|
+
this.showSideBar = false;
|
|
120
|
+
}
|
|
121
|
+
saveDependentDraft() {
|
|
122
|
+
validateSpecificControls(this.formGroup, [
|
|
123
|
+
"basicDependentPersonData.fullName",
|
|
124
|
+
"complementDependentPersonData.kinshipDependentDegreeType",
|
|
125
|
+
]);
|
|
126
|
+
const fullName = this.formGroup.get("basicDependentPersonData.fullName");
|
|
127
|
+
const kinshipDependentDegreeType = this.formGroup.get("complementDependentPersonData.kinshipDependentDegreeType");
|
|
128
|
+
if ((this.activeIndex === 0 && !fullName.valid)
|
|
129
|
+
|| (this.activeIndex === 1 && !kinshipDependentDegreeType.valid)) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
else if (fullName.valid && this.activeIndex === 0) {
|
|
133
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.admission_employee_form_btn_step_last");
|
|
134
|
+
return this.activeIndex++;
|
|
135
|
+
}
|
|
136
|
+
this.loading = true;
|
|
137
|
+
this.getSaveObservable()
|
|
138
|
+
.pipe(takeUntil(this.ngUnsubscribe), finalize(() => this.loading = false))
|
|
139
|
+
.subscribe((res) => {
|
|
140
|
+
this.formGroup.get("draftId").setValue(res === null || res === void 0 ? void 0 : res.id);
|
|
141
|
+
this.messageService.add({
|
|
142
|
+
severity: "success",
|
|
143
|
+
summary: this.translateService.instant("hcm_contract.employment_contract.admission_generic_toast_success"),
|
|
144
|
+
detail: this.translateService.instant("hcm_contract.employment_contract.admission_draft_employee_form_save_sucess"),
|
|
145
|
+
});
|
|
146
|
+
this.showSideBar = false;
|
|
147
|
+
this.closeSideBar.emit(true);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
44
150
|
subscribeEvents() {
|
|
45
151
|
this.employeeDependentService.getOpenSideBarAndStartForm()
|
|
152
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
46
153
|
.subscribe((data) => {
|
|
47
154
|
this.activeIndex = 0;
|
|
48
155
|
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
49
156
|
this.dependentId = data === null || data === void 0 ? void 0 : data.dependentId;
|
|
50
157
|
this.personId = data === null || data === void 0 ? void 0 : data.personId;
|
|
51
158
|
this.formGroup.reset();
|
|
52
|
-
if (!(data === null || data === void 0 ? void 0 : data.dependentId)) {
|
|
159
|
+
if (!(data === null || data === void 0 ? void 0 : data.dependentId) && !data.dependentDraftId) {
|
|
53
160
|
this.steps[1].disabled = true;
|
|
54
161
|
this.formGroup.enable();
|
|
55
162
|
if (data.personId) {
|
|
56
163
|
this.personRetrieveInformation();
|
|
57
164
|
}
|
|
58
165
|
}
|
|
59
|
-
else {
|
|
166
|
+
else if ((data === null || data === void 0 ? void 0 : data.personId) && !data.dependentDraftId) {
|
|
60
167
|
this.personRetrieveInformation();
|
|
61
168
|
this.steps[0].disabled = false;
|
|
62
169
|
this.steps[1].disabled = false;
|
|
63
170
|
}
|
|
171
|
+
else if (data === null || data === void 0 ? void 0 : data.dependentDraftId) {
|
|
172
|
+
this.loadDraft(data.dependentDraftId);
|
|
173
|
+
}
|
|
64
174
|
this.showSideBar = true;
|
|
65
175
|
});
|
|
176
|
+
this.onSaveByListDraft();
|
|
66
177
|
}
|
|
67
178
|
createSteps() {
|
|
68
179
|
const personalData = {
|
|
@@ -102,13 +213,28 @@ let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
|
102
213
|
.pipe(takeUntil(this.ngUnsubscribe), finalize(() => {
|
|
103
214
|
this.loading = false;
|
|
104
215
|
})).subscribe(data => {
|
|
216
|
+
var _a;
|
|
217
|
+
const draftId = (_a = this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.value;
|
|
105
218
|
if (data === null || data === void 0 ? void 0 : data.id) {
|
|
106
219
|
this.addMessageSucess();
|
|
107
220
|
this.showSideBar = false;
|
|
108
221
|
this.closeSideBar.emit(true);
|
|
222
|
+
if (draftId) {
|
|
223
|
+
this.deleteDraft(draftId);
|
|
224
|
+
}
|
|
109
225
|
}
|
|
110
226
|
});
|
|
111
227
|
}
|
|
228
|
+
deleteDraft(draftId) {
|
|
229
|
+
this.loading = true;
|
|
230
|
+
this.dependentDraftService.delete(draftId)
|
|
231
|
+
.pipe(takeUntil(this.ngUnsubscribe), finalize(() => {
|
|
232
|
+
this.loading = false;
|
|
233
|
+
}))
|
|
234
|
+
.subscribe(() => {
|
|
235
|
+
this.closeSideBar.emit(true);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
112
238
|
addMessageSucess() {
|
|
113
239
|
this.messageService.add({
|
|
114
240
|
severity: "success",
|
|
@@ -128,47 +254,9 @@ let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
|
128
254
|
});
|
|
129
255
|
this.focusService.focusFirstInvalidInput();
|
|
130
256
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
else if (this.activeIndex === 0) {
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
this.activeIndex--;
|
|
139
|
-
}
|
|
140
|
-
nextStep() {
|
|
141
|
-
if (this.activeIndex === 0) {
|
|
142
|
-
const formBasicStep = this.formGroup.get("basicDependentPersonData");
|
|
143
|
-
this.validateAllFormFields(formBasicStep);
|
|
144
|
-
if (!formBasicStep.valid && !this.dependentId) {
|
|
145
|
-
this.steps[1].disabled = true;
|
|
146
|
-
return this.messageService.add({
|
|
147
|
-
severity: "error",
|
|
148
|
-
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
149
|
-
detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
this.steps[1].disabled = false;
|
|
153
|
-
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.save");
|
|
154
|
-
this.activeIndex++;
|
|
155
|
-
}
|
|
156
|
-
else if (this.activeIndex === 1) {
|
|
157
|
-
this.validateAllFormFields(this.formGroup);
|
|
158
|
-
if (!this.formGroup.valid) {
|
|
159
|
-
return this.messageService.add({
|
|
160
|
-
severity: "error",
|
|
161
|
-
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
162
|
-
detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
if (this.dependentId) {
|
|
166
|
-
this.onBeforeSave();
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
this.onSaveDependent();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
257
|
+
requiredFieldsStep1() {
|
|
258
|
+
var _a, _b, _c, _d;
|
|
259
|
+
return ((_a = this.formGroup.get("basicDependentPersonData.fullName")) === null || _a === void 0 ? void 0 : _a.value) && ((_b = this.formGroup.get("basicDependentPersonData.birthDate")) === null || _b === void 0 ? void 0 : _b.value) && ((_c = this.formGroup.get("basicDependentPersonData.genderType")) === null || _c === void 0 ? void 0 : _c.value) && ((_d = this.formGroup.get("basicDependentPersonData.cpf")) === null || _d === void 0 ? void 0 : _d.value);
|
|
172
260
|
}
|
|
173
261
|
isFormChanged(beforeData, afterData) {
|
|
174
262
|
if (!(beforeData === null || beforeData === void 0 ? void 0 : beforeData.personDependentData) || !afterData) {
|
|
@@ -177,7 +265,7 @@ let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
|
177
265
|
const keysToCheck = [
|
|
178
266
|
"basicDependentPersonData",
|
|
179
267
|
"complementDependentPersonData",
|
|
180
|
-
"documentDependentPersonData"
|
|
268
|
+
"documentDependentPersonData",
|
|
181
269
|
];
|
|
182
270
|
return keysToCheck.some(formGroup => Object.keys(beforeData.personDependentData[formGroup] || {}).some(key => {
|
|
183
271
|
var _a, _b, _c;
|
|
@@ -186,33 +274,6 @@ let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
|
186
274
|
return beforeValue !== afterValue;
|
|
187
275
|
}));
|
|
188
276
|
}
|
|
189
|
-
isNew() {
|
|
190
|
-
return !this.dependentId;
|
|
191
|
-
}
|
|
192
|
-
isNewToLabel() {
|
|
193
|
-
return this.isNew() ? "create" : "edit";
|
|
194
|
-
}
|
|
195
|
-
onStepSelected(event) {
|
|
196
|
-
if (event.index === 0) {
|
|
197
|
-
const complementForm = this.formGroup.get("complementDependentPersonData");
|
|
198
|
-
if (!complementForm.valid && (!this.dependentId)) {
|
|
199
|
-
this.validateAllFormFields(complementForm);
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
203
|
-
}
|
|
204
|
-
if (event.index === 1) {
|
|
205
|
-
const basicForm = this.formGroup.get("basicDependentPersonData");
|
|
206
|
-
if (!basicForm.valid && (!this.dependentId)) {
|
|
207
|
-
this.validateAllFormFields(basicForm);
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
this.activeIndex = event.index;
|
|
212
|
-
}
|
|
213
|
-
onCancel() {
|
|
214
|
-
this.showSideBar = false;
|
|
215
|
-
}
|
|
216
277
|
onBeforeSave() {
|
|
217
278
|
if (!this.formGroup.dirty || !this.isFormChanged(this.loadedDependent, this.formGroup.getRawValue())) {
|
|
218
279
|
return this.closeSidebarWithSuccess();
|
|
@@ -232,12 +293,52 @@ let EmployeeDependentFormComponent = class EmployeeDependentFormComponent {
|
|
|
232
293
|
this.closeSideBar.emit(true);
|
|
233
294
|
this.addMessageSucess();
|
|
234
295
|
}
|
|
296
|
+
loadDraft(draftId) {
|
|
297
|
+
this.loading = true;
|
|
298
|
+
this.dependentDraftService.get(draftId)
|
|
299
|
+
.pipe(takeUntil(this.ngUnsubscribe), finalize(() => {
|
|
300
|
+
this.loading = false;
|
|
301
|
+
}))
|
|
302
|
+
.subscribe((draft) => {
|
|
303
|
+
var _a;
|
|
304
|
+
(_a = this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.setValue(draftId);
|
|
305
|
+
const data = DependentDraft.fromDto(draft);
|
|
306
|
+
this.formGroup.patchValue(data);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
getSaveObservable() {
|
|
310
|
+
var _a;
|
|
311
|
+
const form = this.formGroup.getRawValue();
|
|
312
|
+
const dto = DependentDraft.toDto(form, this.employeeId, this.admissionDraft);
|
|
313
|
+
let observable;
|
|
314
|
+
const id = (_a = this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.value;
|
|
315
|
+
if (id) {
|
|
316
|
+
observable = this.dependentDraftService.update(id, dto);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
observable = this.dependentDraftService.insert(dto);
|
|
320
|
+
}
|
|
321
|
+
return observable;
|
|
322
|
+
}
|
|
323
|
+
onSaveByListDraft() {
|
|
324
|
+
this.dependentDraftService.saveDraftEvent
|
|
325
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
326
|
+
.subscribe((formData) => {
|
|
327
|
+
this.loading = true;
|
|
328
|
+
if (formData) {
|
|
329
|
+
const data = DependentDraft.fromDto(formData);
|
|
330
|
+
this.formGroup.patchValue(data);
|
|
331
|
+
this.onSaveDependent();
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
}
|
|
235
335
|
};
|
|
236
336
|
EmployeeDependentFormComponent.ctorParameters = () => [
|
|
237
337
|
{ type: TranslateService },
|
|
238
338
|
{ type: EmployeeDependentService },
|
|
239
339
|
{ type: SUrlService },
|
|
240
340
|
{ type: FocusService },
|
|
341
|
+
{ type: DependentDraftService },
|
|
241
342
|
{ type: ActivatedRoute },
|
|
242
343
|
{ type: ConfirmationService },
|
|
243
344
|
{ type: MessageService }
|
|
@@ -245,6 +346,9 @@ EmployeeDependentFormComponent.ctorParameters = () => [
|
|
|
245
346
|
__decorate([
|
|
246
347
|
Input()
|
|
247
348
|
], EmployeeDependentFormComponent.prototype, "employeeId", void 0);
|
|
349
|
+
__decorate([
|
|
350
|
+
Input()
|
|
351
|
+
], EmployeeDependentFormComponent.prototype, "admissionDraft", void 0);
|
|
248
352
|
__decorate([
|
|
249
353
|
Input()
|
|
250
354
|
], EmployeeDependentFormComponent.prototype, "closeSideBar", void 0);
|
|
@@ -252,9 +356,9 @@ EmployeeDependentFormComponent = __decorate([
|
|
|
252
356
|
Component({
|
|
253
357
|
// tslint:disable-next-line:component-selector
|
|
254
358
|
selector: "fnd-employee-dependent-form",
|
|
255
|
-
template: "<s-sidebar [visible]=\"showSideBar\"\n (visibleChange)=\"showSideBar = !showSideBar\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_sidebar_title_' + isNewToLabel() | translate\">\n\n <s-steps [steps]=\"steps\" [activeIndex]=\"activeIndex\" (stepSelected)=\"onStepSelected($event)\"></s-steps>\n <form [formGroup]=\"formGroup\"
|
|
359
|
+
template: "<s-loading-state [loading]=\"loading\" blockWindow=\"true\"></s-loading-state>\n<s-sidebar [visible]=\"showSideBar\"\n (visibleChange)=\"showSideBar = !showSideBar\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_sidebar_title_' + isNewToLabel() | translate\">\n\n <s-steps [steps]=\"steps\" [activeIndex]=\"activeIndex\" (stepSelected)=\"onStepSelected($event)\"></s-steps>\n <form [formGroup]=\"formGroup\" >\n <div class=\"ui-fluid\">\n <!-- Dados pessoais -->\n <fnd-employee-dependent-personal-step [hidden]=\"activeIndex !== 0\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-personal-step>\n <!-- Dados complementaris -->\n <fnd-employee-dependent-complement-step [hidden]=\"activeIndex !== 1\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-complement-step>\n\n </div>\n </form>\n <s-footer class=\"footer-sidebar-form-dependent\">\n <s-button (click)=\"onCancel()\" priority=\"link\" style=\"margin-right: auto\"\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n ></s-button>\n <div class=\"footer-end\">\n <s-button priority=\"secondary\"\n *ngIf=\"activeIndex !== 0\"\n iconClass=\"fa fa-arrow-left\"\n (onClick)=\"undoStep()\"\n [disabled]=\"activeIndex === 0\"\n [label]=\"'hcm_contract.employment_contract.employee_dependent_button_back' | translate\">\n </s-button>\n <s-button id=\"btn-draft\"\n label=\"{{ 'hcm_contract.employment_contract.btn_dependent_save_draft' | translate }}\"\n priority=\"secondary\"(click)=\"saveDependentDraft()\" [auxiliary]=\"false\"\n [disabled]=\"loading\"></s-button>\n <s-button\n class=\"btn-next\"\n [rightIconClass]=\"!activeIndex ? 'fa fa-arrow-right' : ''\"\n (onClick)=\"nextStep()\"\n [disabled]=\"loading\"\n [label]=\"this.buttonLabel\">\n </s-button>\n </div>\n </s-footer>\n</s-sidebar>\n<p-confirmDialog key=\"edit-dependent\"></p-confirmDialog>\n",
|
|
256
360
|
styles: [".tab-view-full{width:100%}.toggle-header-fieldset{display:flex!important;justify-content:space-between!important;align-items:center!important}.toggle-header-fieldset .ui-inputgroup span{margin-right:8px!important;font-size:14px;font-weight:400;line-height:21px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.footer-sidebar-form-dependent{display:flex;justify-content:space-between}.message-warn-admisison{padding-left:65px;font-size:14px}.message-warn-admisison p:first-of-type{font-weight:700}.btn-next>button{display:flex!important;flex-direction:row-reverse!important}.btn-next>button span{margin-left:5px!important}"]
|
|
257
361
|
})
|
|
258
362
|
], EmployeeDependentFormComponent);
|
|
259
363
|
export { EmployeeDependentFormComponent };
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMkMsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVF2SCxJQUFhLDhCQUE4QixHQUEzQyxNQUFhLDhCQUE4QjtJQW9CdkMsWUFDcUIs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b3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU1VybFNlcnZpY2UgfSBmcm9tIFwiQHNlbmlvci1nZXN0YW8tcGVzc29hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IExvY2FsZU9wdGlvbnMsIFN0ZXAsIFN0ZXBTZWxlY3Rpb25FdmVudCwgU3RlcFN0YXRlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE9wZW5TaWRlYmFyRHRvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZHRvcy9lbXBsb3llZS1kZXBlbmRlbnQtc2F2ZS1kdG9cIjtcbmltcG9ydCB7IFBlcnNvblJldHJpZXZlT3V0cHV0IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZHRvcy9wZXJzb24tcmV0cmlldmUuZHRvXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnRpdGllcy9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2ZvY3VzL2ZvY3VzLnNlcnZpY2VcIjtcbmltcG9ydCB7IERhdGVWYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZGF0ZS12YWxpZGF0b3IvZGF0ZS12YWxpZGF0b3JcIjtcbmltcG9ydCB7IG1hcEZvcm1Ub0RlcGVuZGVudFNhdmUsIG1hcFBlcnNvblJldHJpZXZlVG9FbXBsb3llZURlcGVuZGVudEZvcm0gfSBmcm9tIFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS1jb252ZXJ0ZXJcIjtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiBcImZuZC1lbXBsb3llZS1kZXBlbmRlbnQtZm9ybVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlRGVwZW5kZW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVtcGxveWVlSWQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIGNsb3NlU2lkZUJhcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBwZXJzb25JZDtcbiAgICBwdWJsaWMgZGVwZW5kZW50SWQ7XG4gICAgcHVibGljIGxvYWRlZERlcGVuZGVudDogYW55O1xuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgcHVibGljIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW107XG4gICAgcHVibGljIGJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfYnV0dG9uX25leHRcIik7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgbG9jYWxlQ29uZmlnOiBMb2NhbGVPcHRpb25zO1xuICAgIHByaXZhdGUgZGF0ZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbXBsb3llZURlcGVuZGVudFNlcnZpY2U6IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzVXJsU2VydmljZTogU1VybFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9jdXNTZXJ2aWNlOiBGb2N1c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLmNyZWF0ZVN0ZXBzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgICAgIHRoaXMucm91dGUuZGF0YVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB0aGlzLm9uUm91dGVEYXRhQ2hhbmdlKGRhdGEpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSBEYXRlVmFsaWRhdG9yLmdldERhdGVGb3JtYXRGcm9tQ2FsZW5kYXIoZGF0YS5sb2NhbGVDb25maWcuY2FsZW5kYXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5nZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBPcGVuU2lkZWJhckR0bykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlcGVuZGVudElkID0gZGF0YT8uZGVwZW5kZW50SWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzb25JZCA9IGRhdGE/LnBlcnNvbklkO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhPy5kZXBlbmRlbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBzWzFdLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnBlcnNvbklkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlcnNvblJldHJpZXZlSW5mb3JtYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVyc29uUmV0cmlldmVJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBzWzBdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IHRydWU7XG4gICAgICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU3RlcHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBlcnNvbmFsRGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9wZXJzb25hbF9kYXRhXCIpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb21wbGVtZW50RGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9jb21wbGVtZW50X2RhdGFcIiksXG4gICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMucGVyc29uSWQsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBheXJvbGxEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX3BheXJvbGxfZGF0YVwiKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0ZXBzID0gW3BlcnNvbmFsRGF0YSwgY29tcGxlbWVudERhdGEgLypwYXlyb2xsRGF0YSovXTtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5wZXJzb25SZXRyaWV2ZSh7IGlkOiB0aGlzLnBlcnNvbklkIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSksXG4gICAgICAgICAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IFBlcnNvblJldHJpZXZlT3V0cHV0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFwUGVyc29uUmV0cmlldmVUb0VtcGxveWVlRGVwZW5kZW50Rm9ybShyZXNwb25zZSwgdGhpcy5lbXBsb3llZUlkLCB0aGlzLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgdGhpcy5sb2FkZWREZXBlbmRlbnQgPSB7Li4uZGF0YX07XG4gICAgICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5zZXREZXBlbmRlbnRGb3JtRGF0YShkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIG9uU2F2ZURlcGVuZGVudCgpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YUNvbnZlcnRlZCA9IG1hcEZvcm1Ub0RlcGVuZGVudFNhdmUoXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLFxuICAgICAgICAgICAgdGhpcy5lbXBsb3llZUlkLFxuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbnRJZCxcbiAgICAgICAgICAgIHRoaXMucGVyc29uSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2UuZW1wbG95ZWVEcGVuZGVudFNhdmUoZGF0YUNvbnZlcnRlZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZVN1Y2VzcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlU2lkZUJhci5lbWl0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBhZGRNZXNzYWdlU3VjZXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LnN1Y2Nlc3NfdG9vbHRpcFwiKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2F2ZV9zdWNjZXNzXCIpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb2N1c1NlcnZpY2UuZm9jdXNGaXJzdEludmFsaWRJbnB1dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bmRvU3RlcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0U3RlcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1CYXNpY1N0ZXAgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUJhc2ljU3RlcCk7XG5cbiAgICAgICAgICAgIGlmICghZm9ybUJhc2ljU3RlcC52YWxpZCAmJiAhdGhpcy5kZXBlbmRlbnRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19pbnZhbGlkX2Zvcm1fZ3JvdXBcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0ZXBzWzFdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5zYXZlXCIpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCsrO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVycm9yXCIpLFxuICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfaW52YWxpZF9mb3JtX2dyb3VwXCIpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGVwZW5kZW50SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQmVmb3JlU2F2ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZURlcGVuZGVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Zvcm1DaGFuZ2VkKGJlZm9yZURhdGE6IGFueSwgYWZ0ZXJEYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFiZWZvcmVEYXRhPy5wZXJzb25EZXBlbmRlbnREYXRhIHx8ICFhZnRlckRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzVG9DaGVjayA9IFtcbiAgICAgICAgICAgIFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIsXG4gICAgICAgICAgICBcImNvbXBsZW1lbnREZXBlbmRlbnRQZXJzb25EYXRhXCIsXG4gICAgICAgICAgICBcImRvY3VtZW50RGVwZW5kZW50UGVyc29uRGF0YVwiXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBrZXlzVG9DaGVjay5zb21lKGZvcm1Hcm91cCA9PlxuICAgICAgICAgICAgT2JqZWN0LmtleXMoYmVmb3JlRGF0YS5wZXJzb25EZXBlbmRlbnREYXRhW2Zvcm1Hcm91cF0gfHwge30pLnNvbWUoa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVWYWx1ZSA9IGJlZm9yZURhdGEucGVyc29uRGVwZW5kZW50RGF0YVtmb3JtR3JvdXBdW2tleV0gPz8gXCJcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBhZnRlclZhbHVlID0gYWZ0ZXJEYXRhW2Zvcm1Hcm91cF0/LltrZXldID8/IFwiXCI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJlZm9yZVZhbHVlICE9PSBhZnRlclZhbHVlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOZXcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5kZXBlbmRlbnRJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOZXdUb0xhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTmV3KCkgPyBcImNyZWF0ZVwiIDogXCJlZGl0XCI7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU3RlcFNlbGVjdGVkKGV2ZW50OiBTdGVwU2VsZWN0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wbGVtZW50Rm9ybSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImNvbXBsZW1lbnREZXBlbmRlbnRQZXJzb25EYXRhXCIpIGFzIEZvcm1Hcm91cDtcblxuICAgICAgICAgICAgaWYgKCFjb21wbGVtZW50Rm9ybS52YWxpZCAmJiAoIXRoaXMuZGVwZW5kZW50SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29tcGxlbWVudEZvcm0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5pbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgYmFzaWNGb3JtID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIpIGFzIEZvcm1Hcm91cDtcblxuICAgICAgICAgICAgaWYgKCFiYXNpY0Zvcm0udmFsaWQgJiYgKCF0aGlzLmRlcGVuZGVudElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGJhc2ljRm9ybSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGV2ZW50LmluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25CZWZvcmVTYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmRpcnR5IHx8ICF0aGlzLmlzRm9ybUNoYW5nZWQodGhpcy5sb2FkZWREZXBlbmRlbnQsIHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9zZVNpZGViYXJXaXRoU3VjY2VzcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfdGV4dF9wZXJzb25cIlxuICAgICAgICApfVxcbiR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfY29uZmlybWF0aW9uXCIpfWA7XG5cbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGtleTogXCJlZGl0LWRlcGVuZGVudFwiLFxuICAgICAgICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfbm9cIiksXG4gICAgICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY195ZXNcIiksXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2VtcGxveWVlX2Zvcm1fZGlhbG9nX3RpdGxlXCIpLFxuICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB0aGlzLm9uU2F2ZURlcGVuZGVudCgpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlU2lkZWJhcldpdGhTdWNjZXNzKCkge1xuICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2xvc2VTaWRlQmFyLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuYWRkTWVzc2FnZVN1Y2VzcygpO1xuICAgIH1cblxufVxuIl19
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBMkMsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUs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QUMxQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUVKLENBQUE7O1lBN1cwQyxnQkFBZ0I7WUFDakIsd0JBQXdCO1lBQzVCLFdBQVc7WUFDbkIsWUFBWTtZQUNNLHFCQUFxQjtZQUM5QyxjQUFjO1lBQ0EsbUJBQW1CO1lBQ3hCLGNBQWM7O0FBN0IxQztJQURDLEtBQUssRUFBRTtrRUFDa0I7QUFFMUI7SUFEQyxLQUFLLEVBQUU7c0VBQ3NCO0FBRTlCO0lBREMsS0FBSyxFQUFFO29FQUM0QjtBQVAzQiw4QkFBOEI7SUFOMUMsU0FBUyxDQUFDO1FBQ1AsOENBQThDO1FBQzlDLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsNnlFQUF1RDs7S0FFMUQsQ0FBQztHQUNXLDhCQUE4QixDQXNZMUM7U0F0WVksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU1VybFNlcnZpY2UgfSBmcm9tIFwiQHNlbmlvci1nZXN0YW8tcGVzc29hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRlU3BlY2lmaWNDb250cm9scyB9IGZyb20gXCIuLi8uLi91dGlscy9oZWxwZXJzXCI7XG5pbXBvcnQgeyBMb2NhbGVPcHRpb25zLCBTdGVwLCBTdGVwU2VsZWN0aW9uRXZlbnQsIFN0ZXBTdGF0ZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBPcGVuU2lkZWJhckR0byB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2R0b3MvZW1wbG95ZWUtZGVwZW5kZW50LXNhdmUtZHRvXCI7XG5pbXBvcnQgeyBQZXJzb25SZXRyaWV2ZU91dHB1dCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2R0b3MvcGVyc29uLXJldHJpZXZlLmR0b1wiO1xuaW1wb3J0IHsgRGVwZW5kZW50RHJhZnQgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnRpdGllcy9kZXBlbmRlbnQtZHJhZnQvZGVwZW5kZW50LWRyYWZ0XCI7XG5pbXBvcnQgeyBEZXBlbmRlbnREcmFmdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnRpdGllcy9kZXBlbmRlbnQtZHJhZnQvZGVwZW5kZW50LWRyYWZ0LnNlcnZpY2VcIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZm9jdXMvZm9jdXMuc2VydmljZVwiO1xuaW1wb3J0IHsgRGF0ZVZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlscy9kYXRlLXZhbGlkYXRvci9kYXRlLXZhbGlkYXRvclwiO1xuaW1wb3J0IHsgbWFwRm9ybVRvRGVwZW5kZW50U2F2ZSwgbWFwUGVyc29uUmV0cmlldmVUb0VtcGxveWVlRGVwZW5kZW50Rm9ybSB9IGZyb20gXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLWNvbnZlcnRlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudC1mb3JtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wbG95ZWVJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFkbWlzc2lvbkRyYWZ0OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBjbG9zZVNpZGVCYXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBwdWJsaWMgcGVyc29uSWQ7XG4gICAgcHVibGljIGRlcGVuZGVudElkO1xuICAgIHB1YmxpYyBsb2FkZWREZXBlbmRlbnQ6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBzaG93U2lkZUJhciA9IGZhbHNlO1xuICAgIHB1YmxpYyBhY3RpdmVJbmRleDogbnVtYmVyO1xuICAgIHB1YmxpYyBzdGVwczogU3RlcFtdO1xuICAgIHB1YmxpYyBidXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBkcmFmdElkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgfSk7XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgbG9jYWxlQ29uZmlnOiBMb2NhbGVPcHRpb25zO1xuICAgIHByaXZhdGUgZGF0ZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbXBsb3llZURlcGVuZGVudFNlcnZpY2U6IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzVXJsU2VydmljZTogU1VybFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9jdXNTZXJ2aWNlOiBGb2N1c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwZW5kZW50RHJhZnRTZXJ2aWNlOiBEZXBlbmRlbnREcmFmdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLmNyZWF0ZVN0ZXBzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgICAgIHRoaXMucm91dGUuZGF0YVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB0aGlzLm9uUm91dGVEYXRhQ2hhbmdlKGRhdGEpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSBEYXRlVmFsaWRhdG9yLmdldERhdGVGb3JtYXRGcm9tQ2FsZW5kYXIoZGF0YS5sb2NhbGVDb25maWcuY2FsZW5kYXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bmRvU3RlcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleC0tO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0U3RlcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1CYXNpY1N0ZXAgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUJhc2ljU3RlcCk7XG5cbiAgICAgICAgICAgIGlmICghZm9ybUJhc2ljU3RlcC52YWxpZCAmJiAhdGhpcy5kZXBlbmRlbnRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19pbnZhbGlkX2Zvcm1fZ3JvdXBcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0ZXBzWzFdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9idG5fc3RlcF9sYXN0XCIpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCsrO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSB0aGlzLnJlcXVpcmVkRmllbGRzU3RlcDEgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX2ludmFsaWRfZm9ybV9ncm91cF9zdGVwXzFcIilcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX2ludmFsaWRfZm9ybV9ncm91cFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVycm9yXCIpLFxuICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IG1zZyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkJlZm9yZVNhdmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNhdmVEZXBlbmRlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc05ldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlcGVuZGVudElkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05ld1RvTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOZXcoKSA/IFwiY3JlYXRlXCIgOiBcImVkaXRcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TdGVwU2VsZWN0ZWQoZXZlbnQ6IFN0ZXBTZWxlY3Rpb25FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZW1lbnRGb3JtID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgICAgICBpZiAoIWNvbXBsZW1lbnRGb3JtLnZhbGlkICYmICghdGhpcy5kZXBlbmRlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb21wbGVtZW50Rm9ybSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBiYXNpY0Zvcm0gPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgICAgICBpZiAoIWJhc2ljRm9ybS52YWxpZCAmJiAoIXRoaXMuZGVwZW5kZW50SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoYmFzaWNGb3JtKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gZXZlbnQuaW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVEZXBlbmRlbnREcmFmdCgpOiBhbnkge1xuICAgICAgICB2YWxpZGF0ZVNwZWNpZmljQ29udHJvbHModGhpcy5mb3JtR3JvdXAsIFtcbiAgICAgICAgICAgIFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhLmZ1bGxOYW1lXCIsXG4gICAgICAgICAgICBcImNvbXBsZW1lbnREZXBlbmRlbnRQZXJzb25EYXRhLmtpbnNoaXBEZXBlbmRlbnREZWdyZWVUeXBlXCIsXG4gICAgICAgIF0pO1xuXG4gICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhLmZ1bGxOYW1lXCIpO1xuICAgICAgICBjb25zdCBraW5zaGlwRGVwZW5kZW50RGVncmVlVHlwZSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImNvbXBsZW1lbnREZXBlbmRlbnRQZXJzb25EYXRhLmtpbnNoaXBEZXBlbmRlbnREZWdyZWVUeXBlXCIpO1xuICAgICAgICBpZiAoKHRoaXMuYWN0aXZlSW5kZXggPT09IDAgJiYgIWZ1bGxOYW1lLnZhbGlkKVxuICAgICAgICAgICAgfHwgKHRoaXMuYWN0aXZlSW5kZXggPT09IDEgJiYgIWtpbnNoaXBEZXBlbmRlbnREZWdyZWVUeXBlLnZhbGlkKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChmdWxsTmFtZS52YWxpZCAmJiB0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9idG5fc3RlcF9sYXN0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmdldFNhdmVPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZHJhZnRJZFwiKS5zZXRWYWx1ZShyZXM/LmlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY190b2FzdF9zdWNjZXNzXCIpLFxuICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2RyYWZ0X2VtcGxveWVlX2Zvcm1fc2F2ZV9zdWNlc3NcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VTaWRlQmFyLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2UuZ2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBPcGVuU2lkZWJhckR0bykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlcGVuZGVudElkID0gZGF0YT8uZGVwZW5kZW50SWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzb25JZCA9IGRhdGE/LnBlcnNvbklkO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhPy5kZXBlbmRlbnRJZCAmJiAhZGF0YS5kZXBlbmRlbnREcmFmdElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucGVyc29uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyc29uUmV0cmlldmVJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhPy5wZXJzb25JZCAmJiAhZGF0YS5kZXBlbmRlbnREcmFmdElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVyc29uUmV0cmlldmVJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBzWzBdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGE/LmRlcGVuZGVudERyYWZ0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRHJhZnQoZGF0YS5kZXBlbmRlbnREcmFmdElkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IHRydWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uU2F2ZUJ5TGlzdERyYWZ0KCk7XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVN0ZXBzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXJzb25hbERhdGEgPSB7XG4gICAgICAgICAgICBpZDogXCJwZXJzb25hbC1kYXRhLXN0ZXBcIixcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zaWRlYmFyX3N0ZXBfcGVyc29uYWxfZGF0YVwiKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXRlOiBTdGVwU3RhdGUuRGVmYXVsdCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY29tcGxlbWVudERhdGEgPSB7XG4gICAgICAgICAgICBpZDogXCJwZXJzb25hbC1kYXRhLXN0ZXBcIixcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zaWRlYmFyX3N0ZXBfY29tcGxlbWVudF9kYXRhXCIpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICF0aGlzLnBlcnNvbklkLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXlyb2xsRGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9wYXlyb2xsX2RhdGFcIiksXG4gICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIHN0YXRlOiBTdGVwU3RhdGUuRGVmYXVsdCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdGVwcyA9IFtwZXJzb25hbERhdGEsIGNvbXBsZW1lbnREYXRhIC8qcGF5cm9sbERhdGEqL107XG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGVyc29uUmV0cmlldmVJbmZvcm1hdGlvbigpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2UucGVyc29uUmV0cmlldmUoeyBpZDogdGhpcy5wZXJzb25JZCB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpLFxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBQZXJzb25SZXRyaWV2ZU91dHB1dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1hcFBlcnNvblJldHJpZXZlVG9FbXBsb3llZURlcGVuZGVudEZvcm0ocmVzcG9uc2UsIHRoaXMuZW1wbG95ZWVJZCwgdGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMubG9hZGVkRGVwZW5kZW50ID0geyAuLi5kYXRhIH07XG4gICAgICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5zZXREZXBlbmRlbnRGb3JtRGF0YShkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNhdmVEZXBlbmRlbnQoKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGFDb252ZXJ0ZWQgPSBtYXBGb3JtVG9EZXBlbmRlbnRTYXZlKFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKSxcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZWVJZCxcbiAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50SWQsXG4gICAgICAgICAgICB0aGlzLnBlcnNvbklkLFxuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLmVtcGxveWVlRHBlbmRlbnRTYXZlKGRhdGFDb252ZXJ0ZWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkcmFmdElkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZHJhZnRJZFwiKT8udmFsdWU7XG4gICAgICAgICAgICBpZiAoZGF0YT8uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2VTdWNlc3MoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAoZHJhZnRJZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZURyYWZ0KGRyYWZ0SWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVEcmFmdChkcmFmdElkKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGVwZW5kZW50RHJhZnRTZXJ2aWNlLmRlbGV0ZShkcmFmdElkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VTaWRlQmFyLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZE1lc3NhZ2VTdWNlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3Quc3VjY2Vzc190b29sdGlwXCIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zYXZlX3N1Y2Nlc3NcIiksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9jdXNTZXJ2aWNlLmZvY3VzRmlyc3RJbnZhbGlkSW5wdXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlcXVpcmVkRmllbGRzU3RlcDEoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZnVsbE5hbWVcIik/LnZhbHVlICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuYmlydGhEYXRlXCIpPy52YWx1ZSAmJlxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhLmdlbmRlclR5cGVcIik/LnZhbHVlICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuY3BmXCIpPy52YWx1ZTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtQ2hhbmdlZChiZWZvcmVEYXRhOiBhbnksIGFmdGVyRGF0YTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYmVmb3JlRGF0YT8ucGVyc29uRGVwZW5kZW50RGF0YSB8fCAhYWZ0ZXJEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5c1RvQ2hlY2sgPSBbXG4gICAgICAgICAgICBcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiLFxuICAgICAgICAgICAgXCJjb21wbGVtZW50RGVwZW5kZW50UGVyc29uRGF0YVwiLFxuICAgICAgICAgICAgXCJkb2N1bWVudERlcGVuZGVudFBlcnNvbkRhdGFcIixcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGtleXNUb0NoZWNrLnNvbWUoZm9ybUdyb3VwID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhiZWZvcmVEYXRhLnBlcnNvbkRlcGVuZGVudERhdGFbZm9ybUdyb3VwXSB8fCB7fSkuc29tZShrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVZhbHVlID0gYmVmb3JlRGF0YS5wZXJzb25EZXBlbmRlbnREYXRhW2Zvcm1Hcm91cF1ba2V5XSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyVmFsdWUgPSBhZnRlckRhdGFbZm9ybUdyb3VwXT8uW2tleV0gPz8gXCJcIjtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmVmb3JlVmFsdWUgIT09IGFmdGVyVmFsdWU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQmVmb3JlU2F2ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5kaXJ0eSB8fCAhdGhpcy5pc0Zvcm1DaGFuZ2VkKHRoaXMubG9hZGVkRGVwZW5kZW50LCB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvc2VTaWRlYmFyV2l0aFN1Y2Nlc3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgIFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2VtcGxveWVlX2Zvcm1fZGlhbG9nX3RleHRfcGVyc29uXCIsXG4gICAgICAgICl9XFxuJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ19jb25maXJtYXRpb25cIil9YDtcblxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAga2V5OiBcImVkaXQtZGVwZW5kZW50XCIsXG4gICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19ub1wiKSxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3llc1wiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHRoaXMub25TYXZlRGVwZW5kZW50KCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VTaWRlYmFyV2l0aFN1Y2Nlc3MoKSB7XG4gICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgdGhpcy5hZGRNZXNzYWdlU3VjZXNzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRHJhZnQoZHJhZnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGVwZW5kZW50RHJhZnRTZXJ2aWNlLmdldChkcmFmdElkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRyYWZ0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkcmFmdElkXCIpPy5zZXRWYWx1ZShkcmFmdElkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gRGVwZW5kZW50RHJhZnQuZnJvbUR0byhkcmFmdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2F2ZU9ic2VydmFibGUoKSB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICBjb25zdCBkdG8gPSBEZXBlbmRlbnREcmFmdC50b0R0byhmb3JtLCB0aGlzLmVtcGxveWVlSWQsIHRoaXMuYWRtaXNzaW9uRHJhZnQpO1xuICAgICAgICBsZXQgb2JzZXJ2YWJsZTtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkcmFmdElkXCIpPy52YWx1ZTtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBvYnNlcnZhYmxlID0gdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UudXBkYXRlKGlkLCBkdG8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2JzZXJ2YWJsZSA9IHRoaXMuZGVwZW5kZW50RHJhZnRTZXJ2aWNlLmluc2VydChkdG8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TYXZlQnlMaXN0RHJhZnQoKSB7XG4gICAgICAgIHRoaXMuZGVwZW5kZW50RHJhZnRTZXJ2aWNlLnNhdmVEcmFmdEV2ZW50XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZm9ybURhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1EYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBEZXBlbmRlbnREcmFmdC5mcm9tRHRvKGZvcm1EYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNhdmVEZXBlbmRlbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -94,4 +94,4 @@ EmployeeDependentPersonalStepComponent = __decorate([
|
|
|
94
94
|
})
|
|
95
95
|
], EmployeeDependentPersonalStepComponent);
|
|
96
96
|
export { EmployeeDependentPersonalStepComponent };
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQU1qRyxJQUFhLHNDQUFzQyxHQUFuRCxNQUFhLHNDQUFzQztJQWlCL0MsWUFDVyxnQkFBa0MsRUFDeEIsS0FBcUIsRUFDOUIsV0FBd0IsRUFDZixPQUFpQztRQUgzQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFwQjdDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBTWpCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQTJDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBZ0IsRUFBRSxFQUFFO1lBQ3pHLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsa0VBQWtFLEdBQUcsSUFBSSxDQUFDO2dCQUMvRyxLQUFLLEVBQUUsSUFBSTthQUNkLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQVFILENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7YUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUNoRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQztZQUM5RCxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNySCxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQzlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQ2hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFDM0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzNGLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdHLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTywyQkFBMkI7UUFDL0IsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDekQsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNmLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO29CQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3JDO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFO2FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxDQUFDLFVBQW9DLEVBQUUsRUFBRTs7WUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLE9BQUMsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLG1CQUFtQiwwQ0FBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVM7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzFDLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDekQsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNmLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUMxQjthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUVKLENBQUE7O1lBbkVnQyxnQkFBZ0I7WUFDakIsY0FBYztZQUNqQixXQUFXO1lBQ04sd0JBQXdCOztBQWhCdEQ7SUFEQyxLQUFLLEVBQUU7K0VBQzBCO0FBTHpCLHNDQUFzQztJQUpsRCxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0NBQXNDO1FBQ2hELHExTUFBZ0U7S0FDbkUsQ0FBQztHQUNXLHNDQUFzQyxDQXFGbEQ7U0FyRlksc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXMvXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50Rm9ybUR0byB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2R0b3MvZW1wbG95ZWUtZGVwZW5kZW50LXNhdmUtZHRvXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9lbnRpdGllcy9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFbnVtVGlwU2V4IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW51bXMvZW51bS10aXAtc2V4XCI7XG5pbXBvcnQgeyBHZW5lcmljVmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC92YWxpZGF0b3JzL2dlbmVyaWMtdmFsaWRhdG9yXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87IC8vIEBIQUNLIE5lY2Vzc2FyeSBiZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9yb2xsdXAvcm9sbHVwL2lzc3Vlcy82NzBcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudC1wZXJzb25hbC1zdGVwXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llZURlcGVuZGVudFBlcnNvbmFsU3RlcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgbWF4bGVuZ3RoID0gODA7XG4gICAgcmVhZG9ubHkgZW1haWxNYXggPSA1MDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcbiAgICBwdWJsaWMgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGdlbmRlclR5cGU6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEVudW1UaXBTZXggfVtdID0gT2JqZWN0LmtleXMoRW51bVRpcFNleCkubWFwKChpdGVtOiBFbnVtVGlwU2V4KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfZ2VuZGVyX3R5cGVfXCIgKyBpdGVtKSxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgICAgICB0aGlzLnBhcmVudEZvcm1Hcm91cC5hZGRDb250cm9sKFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4gdGhpcy5vblJvdXRlRGF0YUNoYW5nZShkYXRhKSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGJpcnRoRGF0ZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnZhbGlkYXRlQmlydGhEYXRlSXNBZnRlck5vdygpXSksXG4gICAgICAgICAgICBjcGY6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENwZigpXSksXG4gICAgICAgICAgICBmdWxsTmFtZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpXSkpLFxuICAgICAgICAgICAgZW1haWw6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogbnVsbCB9LFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5lbWFpbE1heCksIHRoaXMudmFsaWRhdG9yRW1haWxzTGlzdCgpXSkpLFxuICAgICAgICAgICAgZ2VuZGVyVHlwZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIG5pY2tuYW1lOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVCaXJ0aERhdGVJc0FmdGVyTm93KCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpcnRoRGF0ZSA9IG1vbWVudChjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoYmlydGhEYXRlLmlzQWZ0ZXIobW9tZW50KCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGJpcnRoRGF0ZUlzQWZ0ZXI6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldERlcGVuZGVudEZvcm1EYXRhKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGVyc29uRGF0YTogRW1wbG95ZWVEZXBlbmRlbnRGb3JtRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShwZXJzb25EYXRhPy5wZXJzb25EZXBlbmRlbnREYXRhPy5iYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0b3JFbWFpbHNMaXN0KCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghL15bXFx3LVxcLl0rQChbXFx3LV0rXFwuKStbXFx3LV17Miw0fSQvLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZW1haWw6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQU1qRyxJQUFhLHNDQUFzQyxHQUFuRCxNQUFhLHNDQUFzQztJQWlCL0MsWUFDVyxnQkFBa0MsRUFDeEIsS0FBcUIsRUFDOUIsV0FBd0IsRUFDZixPQUFpQztRQUgz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LENBQUE7O1lBbEVnQyxnQkFBZ0I7WUFDakIsY0FBYztZQUNqQixXQUFXO1lBQ04sd0JBQXdCOztBQWhCdEQ7SUFEQyxLQUFLLEVBQUU7K0VBQzBCO0FBTHpCLHNDQUFzQztJQUpsRCxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0NBQXNDO1FBQ2hELHExTUFBZ0U7S0FDbkUsQ0FBQztHQUNXLHNDQUFzQyxDQW9GbEQ7U0FwRlksc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXMvXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50Rm9ybUR0byB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2R0b3MvZW1wbG95ZWUtZGVwZW5kZW50LXNhdmUtZHRvXCI7XG5pbXBvcnQgeyBEZXBlbmRlbnREcmFmdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9lbnRpdGllcy9kZXBlbmRlbnQtZHJhZnQvZGVwZW5kZW50LWRyYWZ0LnNlcnZpY2VcIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2VudGl0aWVzL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEVudW1UaXBTZXggfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9lbnVtcy9lbnVtLXRpcC1zZXhcIjtcbmltcG9ydCB7IEdlbmVyaWNWYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL3ZhbGlkYXRvcnMvZ2VuZXJpYy12YWxpZGF0b3JcIjtcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuY29uc3QgbW9tZW50ID0gbW9tZW50XzsgLy8gQEhBQ0sgTmVjZXNzYXJ5IGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL3JvbGx1cC9yb2xsdXAvaXNzdWVzLzY3MFxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJmbmQtZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VtcGxveWVlLWRlcGVuZGVudC1wZXJzb25hbC1zdGVwLmNvbXBvbmVudC5odG1sXCIsXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlRGVwZW5kZW50UGVyc29uYWxTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICByZWFkb25seSBtYXhsZW5ndGggPSA4MDtcbiAgICByZWFkb25seSBlbWFpbE1heCA9IDUwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBsb2NhbGVDb25maWc6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICBwdWJsaWMgZ2VuZGVyVHlwZTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogRW51bVRpcFNleCB9W10gPSBPYmplY3Qua2V5cyhFbnVtVGlwU2V4KS5tYXAoKGl0ZW06IEVudW1UaXBTZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9nZW5kZXJfdHlwZV9cIiArIGl0ZW0pLFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMucGFyZW50Rm9ybUdyb3VwLmFkZENvbnRyb2woXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIiwgdGhpcy5mb3JtR3JvdXApO1xuICAgICAgICB0aGlzLnJvdXRlLmRhdGFcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB0aGlzLm9uUm91dGVEYXRhQ2hhbmdlKGRhdGEpKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmliZUV2ZW50cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgYmlydGhEYXRlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMudmFsaWRhdGVCaXJ0aERhdGVJc0FmdGVyTm93KCldKSxcbiAgICAgICAgICAgIGNwZjogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgR2VuZXJpY1ZhbGlkYXRvci5pc1ZhbGlkQ3BmKCldKSxcbiAgICAgICAgICAgIGZ1bGxOYW1lOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCldKSksXG4gICAgICAgICAgICBlbWFpbDogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmVtYWlsTWF4KSwgdGhpcy52YWxpZGF0b3JFbWFpbHNMaXN0KCldKSksXG4gICAgICAgICAgICBnZW5kZXJUeXBlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgbmlja25hbWU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUJpcnRoRGF0ZUlzQWZ0ZXJOb3coKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmlydGhEYXRlID0gbW9tZW50KGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChiaXJ0aERhdGUuaXNBZnRlcihtb21lbnQoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgYmlydGhEYXRlSXNBZnRlcjogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0RGVwZW5kZW50Rm9ybURhdGEoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwZXJzb25EYXRhOiBFbXBsb3llZURlcGVuZGVudEZvcm1EdG8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHBlcnNvbkRhdGE/LnBlcnNvbkRlcGVuZGVudERhdGE/LmJhc2ljRGVwZW5kZW50UGVyc29uRGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRvckVtYWlsc0xpc3QoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEvXltcXHctXFwuXStAKFtcXHctXStcXC4pK1tcXHctXXsyLDR9JC8udGVzdChjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBlbWFpbDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|