survery-lib 2.1.20 → 2.1.23

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.
@@ -33,6 +33,7 @@ export class QuestionInstitutionsTemplateComponent {
33
33
  isShow: value.isShow
34
34
  });
35
35
  value.questionAllInfo.surveySubQuestionLevels.forEach(surveySubQuestionLevel => {
36
+ console.log(surveySubQuestionLevel);
36
37
  var question = this.pageQuestions$().find(x => x.questionId == value.questionId);
37
38
  this.setQuestionFormGroup(surveySubQuestionLevel, question?.isRequired, question?.answerId);
38
39
  });
@@ -52,6 +53,7 @@ export class QuestionInstitutionsTemplateComponent {
52
53
  id: x.submissionId,
53
54
  name: this.isArabicLang == true ? x.institutionNameArabic : x.institutionNameEnglish,
54
55
  requestTimestamp: x.requestTimestamp,
56
+ generatedId: x.generatedId
55
57
  };
56
58
  });
57
59
  });
@@ -64,9 +66,12 @@ export class QuestionInstitutionsTemplateComponent {
64
66
  isRequired: new FormControl(null),
65
67
  institutionId: new FormControl(null),
66
68
  institutionTimestamp: new FormControl(null),
69
+ institutionGeneratedId: new FormControl(null),
70
+ programRelatedToInstitutionId: new FormControl(null),
67
71
  branchId: new FormControl(null),
68
72
  collageId: new FormControl(null),
69
73
  sectionId: new FormControl(null),
74
+ programId: new FormControl(null),
70
75
  questionArr: this._formBuilder.array([])
71
76
  });
72
77
  }
@@ -115,31 +120,39 @@ export class QuestionInstitutionsTemplateComponent {
115
120
  this.rForm.patchValue({
116
121
  institutionId: answerId,
117
122
  institutionTimestamp: this.institutionsQuestionArr().find(x => x.id == answerId)?.requestTimestamp,
123
+ institutionGeneratedId: this.institutionsQuestionArr().find(x => x.id == answerId)?.generatedId,
118
124
  branchId: null,
119
125
  collageId: null,
120
126
  sectionId: null
121
127
  }, { emitEvent: false });
122
128
  }
123
129
  else if (value.level == 2) {
130
+ this.rForm.patchValue({
131
+ programId: answerId
132
+ }, { emitEvent: false });
133
+ }
134
+ else if (value.level == 3) {
124
135
  this.rForm.patchValue({
125
136
  branchId: answerId,
126
137
  collageId: null,
127
138
  sectionId: null
128
139
  }, { emitEvent: false });
129
140
  }
130
- else if (value.level == 3) {
141
+ else if (value.level == 4) {
131
142
  this.rForm.patchValue({
132
143
  collageId: answerId,
133
144
  sectionId: null
134
145
  }, { emitEvent: false });
135
146
  }
136
- else if (value.level == 4) {
147
+ else if (value.level == 5) {
137
148
  this.rForm.patchValue({
138
149
  sectionId: answerId
139
150
  }, { emitEvent: false });
140
151
  }
141
152
  const level = group.value.level;
142
- this.resetAnswersOfFormGroupinHigherLevel(level);
153
+ if (level != 2) {
154
+ this.resetAnswersOfFormGroupinHigherLevel(level);
155
+ }
143
156
  var nextGroupIndex = this.fCtrls.questionArr.controls.findIndex(x => x.value.level == level + 1);
144
157
  if (nextGroupIndex) {
145
158
  this.fillQuestionAnswers(nextGroupIndex);
@@ -176,8 +189,19 @@ export class QuestionInstitutionsTemplateComponent {
176
189
  var group = this.fCtrls.questionArr.at(nextGroupIndex);
177
190
  if (group) {
178
191
  if (group.value.level == 2) {
179
- this._ApiService.getAllBranches({ submissionId: formValue.institutionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {
192
+ this._ApiService.getAllProgramsRelatedToInstitutions({
193
+ submissionId: formValue.institutionId,
194
+ generatedId: formValue.institutionGeneratedId, requestTimestamp: formValue.institutionTimestamp
195
+ }).pipe(take(1)).subscribe(res => {
180
196
  group.controls.answers.setValue(res.responseDetails.map(x => {
197
+ return {
198
+ id: x.generatedKey,
199
+ name: this.isArabicLang == true ? x.programNameArabic : x.programNameEnglish
200
+ };
201
+ }));
202
+ });
203
+ this._ApiService.getAllBranches({ submissionId: formValue.institutionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {
204
+ this.fCtrls.questionArr.at(nextGroupIndex + 1).controls.answers.setValue(res.responseDetails.map(x => {
181
205
  return {
182
206
  id: x.branchSubmissionId,
183
207
  name: this.isArabicLang == true ? x.branchNameInArabic : x.branchNameInEnglish
@@ -185,7 +209,7 @@ export class QuestionInstitutionsTemplateComponent {
185
209
  }));
186
210
  });
187
211
  }
188
- else if (group.value.level == 3) {
212
+ else if (group.value.level == 4) {
189
213
  this._ApiService.getAllCollages({ submissionId: formValue.institutionId, branchSubmissionId: formValue.branchId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {
190
214
  group.controls.answers.setValue(res.responseDetails.map(x => {
191
215
  return {
@@ -195,7 +219,7 @@ export class QuestionInstitutionsTemplateComponent {
195
219
  }));
196
220
  });
197
221
  }
198
- else if (group.value.level == 4) {
222
+ else if (group.value.level == 5) {
199
223
  this._ApiService.getAllSections({ submissionId: formValue.institutionId, collageSubmissionId: formValue.collageId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {
200
224
  group.controls.answers.setValue(res.responseDetails.map(x => {
201
225
  return {
@@ -205,7 +229,7 @@ export class QuestionInstitutionsTemplateComponent {
205
229
  }));
206
230
  });
207
231
  }
208
- else if (group.value.level == 5) {
232
+ else if (group.value.level == 6) {
209
233
  this._ApiService.getAllPrograms({ submissionId: formValue.institutionId, sectionGeneratedKey: formValue.sectionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {
210
234
  group.controls.answers.setValue(res.responseDetails.map(x => {
211
235
  return {
@@ -229,14 +253,14 @@ export class QuestionInstitutionsTemplateComponent {
229
253
  });
230
254
  }
231
255
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionInstitutionsTemplateComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }, { token: i3.ApiService }], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionInstitutionsTemplateComponent, selector: "lib-question-institutions-template", inputs: { isArabicLang: "isArabicLang", setQuestion: "setQuestion" }, ngImport: i0, template: "<div class=\"quastion\">\n <h3 class=\"quastion-title mb-2\">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n </h3>\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"item.value.title\"></span>\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\n [multiple]=\"false\">\n </ng-select>\n </div>\n </div>\n\n </ng-container>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
256
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionInstitutionsTemplateComponent, selector: "lib-question-institutions-template", inputs: { isArabicLang: "isArabicLang", setQuestion: "setQuestion" }, ngImport: i0, template: "<div class=\"quastion\">\r\n <h3 class=\"quastion-title mb-2\">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n </h3>\r\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\r\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\r\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"item.value.title\"></span>\r\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\r\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\r\n [multiple]=\"false\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n</div>\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
233
257
  }
234
258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionInstitutionsTemplateComponent, decorators: [{
235
259
  type: Component,
236
- args: [{ selector: 'lib-question-institutions-template', template: "<div class=\"quastion\">\n <h3 class=\"quastion-title mb-2\">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n </h3>\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"item.value.title\"></span>\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\n [multiple]=\"false\">\n </ng-select>\n </div>\n </div>\n\n </ng-container>\n</div>\n\n" }]
260
+ args: [{ selector: 'lib-question-institutions-template', template: "<div class=\"quastion\">\r\n <h3 class=\"quastion-title mb-2\">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n </h3>\r\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\r\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\r\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"item.value.title\"></span>\r\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\r\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\r\n [multiple]=\"false\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n</div>\r\n\r\n" }]
237
261
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.FormBuilder }, { type: i3.ApiService }]; }, propDecorators: { isArabicLang: [{
238
262
  type: Input
239
263
  }], setQuestion: [{
240
264
  type: Input
241
265
  }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBT3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUk3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQVksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQU9qRixNQUFNLE9BQU8scUNBQXFDO0lBUWhELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25C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QXJDLHFDQUFxQyxnSkN4QmxELGdxQ0F1QkE7OzJGRENhLHFDQUFxQztrQkFMakQsU0FBUzsrQkFDRSxvQ0FBb0M7K0lBVXJDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBd0JPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGNvbXB1dGVkLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IHF1ZXN0aW9uU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3F1ZXN0aW9uLnNlbGVjdG9yJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgUXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZSxcbiAgUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2Vcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1JbnN0aXR1dGlvbnMtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25OZ3J4TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eSc7XG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5hY3Rpb24nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFN1cnZleVN1YlF1ZXN0aW9uTGV2ZWxEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktc3ViLXF1ZXN0aW9uLWxldmVsLmR0byc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHBhaXJ3aXNlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdXJ2ZXlMYW5ndWFnZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvc3VydmV5LWxhbmd1YWdlLmVudW0nO1xuaW1wb3J0IHsgc3VydmV5U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5zZWxlY3Rvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaW5zdGl0dXRpb25zUXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvID0gbnVsbDtcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT47XG4gIHBhZ2VRdWVzdGlvbnMkID0gdGhpcy5fU3RvcmUuc2VsZWN0U2lnbmFsKHF1ZXN0aW9uU2VsZWN0b3JzLnBhZ2VRdWVzdGlvbnMpO1xuICBpbnN0aXR1dGlvbnNBcnIkID0gdGhpcy5fU3RvcmUuc2VsZWN0U2lnbmFsKHN1cnZleVNlbGVjdG9ycy5pbnN0aXR1dGlvbkFycik7XG5cbiAgQElucHV0KCkgaXNBcmFiaWNMYW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uRm9ybUFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmZDdHJscy5xdWVzdGlvbkFyclxuICB9XG5cbiAgaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGl0dXRpb25zQXJyJCgpLm1hcCh4ID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB4LnN1Ym1pc3Npb25JZCxcbiAgICAgICAgbmFtZTogdGhpcy5pc0FyYWJpY0xhbmcgPT0gdHJ1ZSA/IHguaW5zdGl0dXRpb25OYW1lQXJhYmljIDogeC5pbnN0aXR1dGlvbk5hbWVFbmdsaXNoLFxuICAgICAgICByZXF1ZXN0VGltZXN0YW1wOiB4LnJlcXVlc3RUaW1lc3RhbXAsXG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogUXVlc3Rpb25OZ3J4TW9kZWwpIHtcbiAgICBpZiAodGhpcy5pbnN0aXR1dGlvbnNRdWVzdGlvbiA9PSBudWxsKSB7XG4gICAgICB0aGlzLmluc3RpdHV0aW9uc1F1ZXN0aW9uID0gdmFsdWUucXVlc3Rpb25BbGxJbmZvO1xuXG4gICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcbiAgICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5xdWVzdGlvblRpdGxlLFxuICAgICAgICBtYXhMZXZlbFZhbHVlOiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8ubWF4TGV2ZWxWYWx1ZSxcbiAgICAgICAgaXNSZXF1aXJlZDogdmFsdWUuaXNSZXF1aXJlZCxcbiAgICAgICAgaXNEaXNhYmxlZDogdmFsdWUuaXNEaXNhYmxlZCxcbiAgICAgICAgaXNTaG93OiB2YWx1ZS5pc1Nob3dcbiAgICAgIH0pO1xuXG4gICAgICB2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5U3ViUXVlc3Rpb25MZXZlbHMuZm9yRWFjaChzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsID0+IHtcblxuICAgICAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLnBhZ2VRdWVzdGlvbnMkKCkuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSB2YWx1ZS5xdWVzdGlvbklkKTtcbiAgICAgICAgdGhpcy5zZXRRdWVzdGlvbkZvcm1Hcm91cChzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsLCBxdWVzdGlvbj8uaXNSZXF1aXJlZCwgcXVlc3Rpb24/LmFuc3dlcklkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX1N0b3JlOiBTdG9yZSwgcHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9BcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgdGl0bGU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIG1heExldmVsVmFsdWU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGlzRGlzYWJsZWQ6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBpc1Nob3c6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBpc1JlcXVpcmVkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICBpbnN0aXR1dGlvbklkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICBpbnN0aXR1dGlvblRpbWVzdGFtcDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgYnJhbmNoSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGNvbGxhZ2VJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgc2VjdGlvbklkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICBxdWVzdGlvbkFycjogdGhpcy5fZm9ybUJ1aWxkZXIuYXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+PihbXSlcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMubG9hZEluc3RpdHV0aW9uQXJyKCkpO1xuICB9XG5cbiAgb25VcGRhdGVBbnN3ZXIobW9kZWw6IHsgaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nIH0sIGdyb3VwSW5kZXg6IG51bWJlcikge1xuICAgIHZhciBncm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KGdyb3VwSW5kZXgpO1xuICAgIGdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgYW5zd2VySWQ6IG1vZGVsLmlkLFxuICAgICAgYW5zd2VyVmFsdWU6IG1vZGVsLm5hbWVcbiAgICB9KTtcblxuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlSW5zdGl0dXRpb25RdWVzdGlvbkFuc3dlcih7XG4gICAgICBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCxcbiAgICAgIGFuc3dlcklkOiBncm91cC52YWx1ZS5hbnN3ZXJJZCxcbiAgICAgIGFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyVmFsdWUsXG4gICAgICBpc1ZhbGlkOiBncm91cC5jb250cm9scy5hbnN3ZXJJZC52YWxpZCxcbiAgICAgIGFuc3dlckxldmVsSWQ6IGdyb3VwLnZhbHVlLmxldmVsQW5zd2VySWQsXG4gICAgfSkpO1xuICB9XG5cbiAgaWRlbnRpZnkoaW5kZXgsIGl0ZW06IEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPikge1xuICAgIHJldHVybiBpdGVtLnZhbHVlLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRRdWVzdGlvbkZvcm1Hcm91cCh2YWx1ZTogU3VydmV5U3ViUXVlc3Rpb25MZXZlbER0bywgaXNScXVpcmVkOiBib29sZWFuLCBhbnN3ZXJJZDogc3RyaW5nKSB7XG4gICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbklkKSxcbiAgICAgIHR5cGVJZDogbmV3IEZvcm1Db250cm9sKHZhbHVlLnF1ZXN0aW9uVHlwZUlkKSxcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbk5hbWUpLFxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uKSxcbiAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wodmFsdWUucXVlc3Rpb25UaXRsZSksXG4gICAgICBsZXZlbDogbmV3IEZvcm1Db250cm9sKHZhbHVlLmxldmVsKSxcbiAgICAgIGxldmVsQW5zd2VySWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5sZXZlbEFuc3dlci5hbnN3ZXJJZCksXG4gICAgICBhbnN3ZXJJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgYW5zd2VyVmFsdWU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGFuc3dlcnM6IG5ldyBGb3JtQ29udHJvbChbXSksXG4gICAgfSk7XG5cbiAgICBpZiAoaXNScXVpcmVkID09IHRydWUpIHtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBncm91cC5jb250cm9scy5hbnN3ZXJJZC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoYW5zd2VySWQgPT4ge1xuICAgICAgaWYgKGFuc3dlcklkKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZXZlbCA9PSAxKSB7XG4gICAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGluc3RpdHV0aW9uSWQ6IGFuc3dlcklkLFxuICAgICAgICAgICAgaW5zdGl0dXRpb25UaW1lc3RhbXA6IHRoaXMuaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIoKS5maW5kKHggPT4geC5pZCA9PSBhbnN3ZXJJZCk/LnJlcXVlc3RUaW1lc3RhbXAsXG4gICAgICAgICAgICBicmFuY2hJZDogbnVsbCxcbiAgICAgICAgICAgIGNvbGxhZ2VJZDogbnVsbCxcbiAgICAgICAgICAgIHNlY3Rpb25JZDogbnVsbFxuICAgICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZS5sZXZlbCA9PSAyKSB7XG4gICAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGJyYW5jaElkOiBhbnN3ZXJJZCxcbiAgICAgICAgICAgIGNvbGxhZ2VJZDogbnVsbCxcbiAgICAgICAgICAgIHNlY3Rpb25JZDogbnVsbFxuICAgICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZS5sZXZlbCA9PSAzKSB7XG4gICAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGNvbGxhZ2VJZDogYW5zd2VySWQsXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IG51bGxcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUubGV2ZWwgPT0gNCkge1xuICAgICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBzZWN0aW9uSWQ6IGFuc3dlcklkXG4gICAgICAgICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGV2ZWwgPSBncm91cC52YWx1ZS5sZXZlbDtcbiAgICAgICAgdGhpcy5yZXNldEFuc3dlcnNPZkZvcm1Hcm91cGluSGlnaGVyTGV2ZWwobGV2ZWwpO1xuXG4gICAgICAgIHZhciBuZXh0R3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmNvbnRyb2xzLmZpbmRJbmRleCh4ID0+IHgudmFsdWUubGV2ZWwgPT0gbGV2ZWwgKyAxKTtcbiAgICAgICAgaWYgKG5leHRHcm91cEluZGV4KSB7XG4gICAgICAgICAgdGhpcy5maWxsUXVlc3Rpb25BbnN3ZXJzKG5leHRHcm91cEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZ3JvdXAuY29udHJvbHMuYW5zd2Vycy52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmNvbnRyb2xzLmZpbmRJbmRleCh4ID0+IHgudmFsdWUubGV2ZWwgPT0gZ3JvdXAudmFsdWUubGV2ZWwpO1xuICAgICAgdmFyIHF1ZXN0aW9uR3JvdXAgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5hdChncm91cEluZGV4KTtcblxuICAgICAgaWYgKHF1ZXN0aW9uR3JvdXApIHtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAodGhpcy5mQ3RybHMuaXNSZXF1aXJlZC52YWx1ZSA9PSB0cnVlKSB7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyVmFsdWUuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uUmVxdWlyZWQoeyBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCwgaXNSZXF1aXJlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWQuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJWYWx1ZS5jbGVhclZhbGlkYXRvcnMoKTtcblxuICAgICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25SZXF1aXJlZCh7IHF1ZXN0aW9uSWQ6IGdyb3VwLnZhbHVlLmlkLCBpc1JlcXVpcmVkOiBmYWxzZSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJWYWx1ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG5cbiAgICB9KTtcblxuICAgIGlmIChhbnN3ZXJJZCkge1xuICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VySWQuc2V0VmFsdWUoYW5zd2VySWQpO1xuICAgIH1cblxuICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLnB1c2goZ3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWxsUXVlc3Rpb25BbnN3ZXJzKG5leHRHcm91cEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xuICAgIHZhciBncm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KG5leHRHcm91cEluZGV4KTtcbiAgICBpZiAoZ3JvdXApIHtcbiAgICAgIGlmIChncm91cC52YWx1ZS5sZXZlbCA9PSAyKSB7XG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsQnJhbmNoZXMoeyBzdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5pbnN0aXR1dGlvbklkICwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2Vycy5zZXRWYWx1ZShyZXMucmVzcG9uc2VEZXRhaWxzLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB4LmJyYW5jaFN1Ym1pc3Npb25JZCxcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5pc0FyYWJpY0xhbmcgPT0gdHJ1ZSA/IHguYnJhbmNoTmFtZUluQXJhYmljIDogeC5icmFuY2hOYW1lSW5FbmdsaXNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGdyb3VwLnZhbHVlLmxldmVsID09IDMpIHtcbiAgICAgICAgdGhpcy5fQXBpU2VydmljZS5nZXRBbGxDb2xsYWdlcyh7IHN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmluc3RpdHV0aW9uSWQsIGJyYW5jaFN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmJyYW5jaElkICwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2Vycy5zZXRWYWx1ZShyZXMucmVzcG9uc2VEZXRhaWxzLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB4LmNvbGxhZ2VTdWJtaXNzaW9uSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LmNvbGxhZ2VOYW1lSW5BcmFiaWMgOiB4LmNvbGxhZ2VOYW1lSW5FbmdsaXNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGdyb3VwLnZhbHVlLmxldmVsID09IDQpIHtcbiAgICAgICAgdGhpcy5fQXBpU2VydmljZS5nZXRBbGxTZWN0aW9ucyh7IHN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmluc3RpdHV0aW9uSWQsIGNvbGxhZ2VTdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5jb2xsYWdlSWQgLCByZXF1ZXN0VGltZXN0YW1wOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25UaW1lc3RhbXAgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguZ2VuZXJhdGVkS2V5LFxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmlzQXJhYmljTGFuZyA9PSB0cnVlID8geC5zZWN0aW9uTmFtZUluQXJhYmljIDogeC5zZWN0aW9uTmFtZUluRW5nbGlzaFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChncm91cC52YWx1ZS5sZXZlbCA9PSA1KSB7XG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsUHJvZ3JhbXMoeyBzdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5pbnN0aXR1dGlvbklkLCBzZWN0aW9uR2VuZXJhdGVkS2V5OiBmb3JtVmFsdWUuc2VjdGlvbklkICwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2Vycy5zZXRWYWx1ZShyZXMucmVzcG9uc2VEZXRhaWxzLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB4LmdlbmVyYXRlZEtleSxcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5pc0FyYWJpY0xhbmcgPT0gdHJ1ZSA/IHgucHJvZ3JhbU5hbWVBcmFiaWMgOiB4LnByb2dyYW1OYW1lRW5nbGlzaFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEFuc3dlcnNPZkZvcm1Hcm91cGluSGlnaGVyTGV2ZWwobGV2ZWw6IG51bWJlcikge1xuICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmNvbnRyb2xzLmZvckVhY2goKGdyb3VwOiBGb3JtR3JvdXA8UXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT4pID0+IHtcbiAgICAgIGlmIChncm91cC52YWx1ZS5sZXZlbCA+IGxldmVsKSB7XG4gICAgICAgIGdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGFuc3dlcklkOiBudWxsLFxuICAgICAgICAgIGFuc3dlclZhbHVlOiBudWxsLFxuICAgICAgICAgIGFuc3dlcnM6IFtdXG4gICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiPlxuICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBtYi0yXCI+XG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJmQ3RybHMudGl0bGUudmFsdWVcIj48L3NwYW4+XG4gIDwvaDM+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb25Gb3JtQXJyYXkuY29udHJvbHM7IHRyYWNrQnk6aWRlbnRpZnkgOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycraXRlbS52YWx1ZS5pZFwiXG4gICAgICAqbmdJZj1cIml0ZW0udmFsdWUubGV2ZWwgPT0gMSB8fCAoIGl0ZW0udmFsdWUubGV2ZWwgPiAxICYmIGl0ZW0udmFsdWUuYW5zd2Vycy5sZW5ndGggPiAwIClcIlxuICAgICAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogaXRlbS5jb250cm9scy5hbnN3ZXJJZC5pbnZhbGlkICAsICdkLW5vbmUnOmZDdHJscy5pc1Nob3cudmFsdWUgIT0gdHJ1ZX1cIj5cbiAgICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUudGl0bGVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cImZDdHJscy5pc1JlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgIDwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1xdWFzdGlvbiB0ZXh0LXF1YXN0aW9uX19kcm9wZG93blwiPlxuICAgICAgICA8bmctc2VsZWN0IFtpdGVtc109XCJpdGVtLnZhbHVlLmxldmVsID09MSA/IGluc3RpdHV0aW9uc1F1ZXN0aW9uQXJyKCkgOiBpdGVtLnZhbHVlLmFuc3dlcnNcIiBiaW5kVmFsdWU9XCJpZFwiIGJpbmRMYWJlbD1cIm5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cIml0ZW0uY29udHJvbHMuYW5zd2VySWRcIiBbdmlydHVhbFNjcm9sbF09XCJ0cnVlXCIgW2Rpc2FibGVkXT1cImZDdHJscy5pc0Rpc2FibGVkLnZhbHVlXCIgKGNoYW5nZSk9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQsaSlcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPlxuICAgICAgICA8L25nLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbiJdfQ==
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBT3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUk3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQVksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQU9qRixNQUFNLE9BQU8scUNBQXFDO0lBUWhELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25C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QixLQUFLLENBQUMsVUFBVSxDQUFDO29CQUNmLFFBQVEsRUFBRSxJQUFJO29CQUNkLFdBQVcsRUFBRSxJQUFJO29CQUNqQixPQUFPLEVBQUUsRUFBRTtpQkFDWixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7OEdBNVFVLHFDQUFxQztrR0FBckMscUNBQXFDLGdKQ3hCbEQsOHNDQXVCQTs7MkZEQ2EscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNFLG9DQUFvQzsrSUFVckMsWUFBWTtzQkFBcEIsS0FBSztnQkF5Qk8sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBxdWVzdGlvblNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvcic7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsXHJcbiAgUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2VcclxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLUluc3RpdHV0aW9ucy10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTmdyeE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi5lbnRpdHknO1xyXG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5hY3Rpb24nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTdWJRdWVzdGlvbkxldmVsRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXN1Yi1xdWVzdGlvbi1sZXZlbC5kdG8nO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcGFpcndpc2UsIHRha2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3VydmV5TGFuZ3VhZ2VFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3N1cnZleS1sYW5ndWFnZS5lbnVtJztcclxuaW1wb3J0IHsgc3VydmV5U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5zZWxlY3Rvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWluc3RpdHV0aW9ucy10ZW1wbGF0ZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGluc3RpdHV0aW9uc1F1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0byA9IG51bGw7XHJcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT47XHJcbiAgcGFnZVF1ZXN0aW9ucyQgPSB0aGlzLl9TdG9yZS5zZWxlY3RTaWduYWwocXVlc3Rpb25TZWxlY3RvcnMucGFnZVF1ZXN0aW9ucyk7XHJcbiAgaW5zdGl0dXRpb25zQXJyJCA9IHRoaXMuX1N0b3JlLnNlbGVjdFNpZ25hbChzdXJ2ZXlTZWxlY3RvcnMuaW5zdGl0dXRpb25BcnIpO1xyXG5cclxuICBASW5wdXQoKSBpc0FyYWJpY0xhbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVzdGlvbkZvcm1BcnJheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZDdHJscy5xdWVzdGlvbkFyclxyXG4gIH1cclxuXHJcbiAgaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnN0aXR1dGlvbnNBcnIkKCkubWFwKHggPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGlkOiB4LnN1Ym1pc3Npb25JZCxcclxuICAgICAgICBuYW1lOiB0aGlzLmlzQXJhYmljTGFuZyA9PSB0cnVlID8geC5pbnN0aXR1dGlvbk5hbWVBcmFiaWMgOiB4Lmluc3RpdHV0aW9uTmFtZUVuZ2xpc2gsXHJcbiAgICAgICAgcmVxdWVzdFRpbWVzdGFtcDogeC5yZXF1ZXN0VGltZXN0YW1wLFxyXG4gICAgICAgIGdlbmVyYXRlZElkOiB4LmdlbmVyYXRlZElkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFF1ZXN0aW9uTmdyeE1vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0aXR1dGlvbnNRdWVzdGlvbiA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuaW5zdGl0dXRpb25zUXVlc3Rpb24gPSB2YWx1ZS5xdWVzdGlvbkFsbEluZm87XHJcblxyXG4gICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxyXG4gICAgICAgIHRpdGxlOiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8ucXVlc3Rpb25UaXRsZSxcclxuICAgICAgICBtYXhMZXZlbFZhbHVlOiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8ubWF4TGV2ZWxWYWx1ZSxcclxuICAgICAgICBpc1JlcXVpcmVkOiB2YWx1ZS5pc1JlcXVpcmVkLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IHZhbHVlLmlzRGlzYWJsZWQsXHJcbiAgICAgICAgaXNTaG93OiB2YWx1ZS5pc1Nob3dcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5U3ViUXVlc3Rpb25MZXZlbHMuZm9yRWFjaChzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsID0+IHtcclxuY29uc29sZS5sb2coc3VydmV5U3ViUXVlc3Rpb25MZXZlbCk7XHJcbiAgICAgICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5wYWdlUXVlc3Rpb25zJCgpLmZpbmQoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gdmFsdWUucXVlc3Rpb25JZCk7XHJcbiAgICAgICAgdGhpcy5zZXRRdWVzdGlvbkZvcm1Hcm91cChzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsLCBxdWVzdGlvbj8uaXNSZXF1aXJlZCwgcXVlc3Rpb24/LmFuc3dlcklkKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9TdG9yZTogU3RvcmUsIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfQXBpU2VydmljZTogQXBpU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XHJcbiAgICAgIGlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIG1heExldmVsVmFsdWU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgaXNEaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcclxuICAgICAgaXNTaG93OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBpc1JlcXVpcmVkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGluc3RpdHV0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgaW5zdGl0dXRpb25UaW1lc3RhbXA6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgaW5zdGl0dXRpb25HZW5lcmF0ZWRJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBwcm9ncmFtUmVsYXRlZFRvSW5zdGl0dXRpb25JZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBicmFuY2hJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBjb2xsYWdlSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgc2VjdGlvbklkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIHByb2dyYW1JZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBxdWVzdGlvbkFycjogdGhpcy5fZm9ybUJ1aWxkZXIuYXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+PihbXSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFycigpKTtcclxuICB9XHJcblxyXG4gIG9uVXBkYXRlQW5zd2VyKG1vZGVsOiB7IGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyB9LCBncm91cEluZGV4OiBudW1iZXIpIHtcclxuICAgIHZhciBncm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KGdyb3VwSW5kZXgpO1xyXG4gICAgZ3JvdXAucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGFuc3dlcklkOiBtb2RlbC5pZCxcclxuICAgICAgYW5zd2VyVmFsdWU6IG1vZGVsLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlSW5zdGl0dXRpb25RdWVzdGlvbkFuc3dlcih7XHJcbiAgICAgIHF1ZXN0aW9uSWQ6IGdyb3VwLnZhbHVlLmlkLFxyXG4gICAgICBhbnN3ZXJJZDogZ3JvdXAudmFsdWUuYW5zd2VySWQsXHJcbiAgICAgIGFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyVmFsdWUsXHJcbiAgICAgIGlzVmFsaWQ6IGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnZhbGlkLFxyXG4gICAgICBhbnN3ZXJMZXZlbElkOiBncm91cC52YWx1ZS5sZXZlbEFuc3dlcklkLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgaWRlbnRpZnkoaW5kZXgsIGl0ZW06IEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPikge1xyXG4gICAgcmV0dXJuIGl0ZW0udmFsdWUuaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1ZXN0aW9uRm9ybUdyb3VwKHZhbHVlOiBTdXJ2ZXlTdWJRdWVzdGlvbkxldmVsRHRvLCBpc1JxdWlyZWQ6IGJvb2xlYW4sIGFuc3dlcklkOiBzdHJpbmcpIHtcclxuICAgIHZhciBncm91cCA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbklkKSxcclxuICAgICAgdHlwZUlkOiBuZXcgRm9ybUNvbnRyb2wodmFsdWUucXVlc3Rpb25UeXBlSWQpLFxyXG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2wodmFsdWUucXVlc3Rpb25OYW1lKSxcclxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uKSxcclxuICAgICAgdGl0bGU6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvblRpdGxlKSxcclxuICAgICAgbGV2ZWw6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5sZXZlbCksXHJcbiAgICAgIGxldmVsQW5zd2VySWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5sZXZlbEFuc3dlci5hbnN3ZXJJZCksXHJcbiAgICAgIGFuc3dlcklkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGFuc3dlclZhbHVlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGFuc3dlcnM6IG5ldyBGb3JtQ29udHJvbChbXSksXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoaXNScXVpcmVkID09IHRydWUpIHtcclxuICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VySWQuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgICBncm91cC5jb250cm9scy5hbnN3ZXJJZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyVmFsdWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZShhbnN3ZXJJZCA9PiB7XHJcbiAgICAgIGlmIChhbnN3ZXJJZCkge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZXZlbCA9PSAxKSB7XHJcbiAgICAgICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBpbnN0aXR1dGlvbklkOiBhbnN3ZXJJZCxcclxuICAgICAgICAgICAgaW5zdGl0dXRpb25UaW1lc3RhbXA6IHRoaXMuaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIoKS5maW5kKHggPT4geC5pZCA9PSBhbnN3ZXJJZCk/LnJlcXVlc3RUaW1lc3RhbXAsXHJcbiAgICAgICAgICAgIGluc3RpdHV0aW9uR2VuZXJhdGVkSWQ6IHRoaXMuaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIoKS5maW5kKHggPT4geC5pZCA9PSBhbnN3ZXJJZCk/LmdlbmVyYXRlZElkLFxyXG4gICAgICAgICAgICBicmFuY2hJZDogbnVsbCxcclxuICAgICAgICAgICAgY29sbGFnZUlkOiBudWxsLFxyXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IG51bGxcclxuICAgICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodmFsdWUubGV2ZWwgPT0gMikge1xyXG4gICAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgcHJvZ3JhbUlkOiBhbnN3ZXJJZFxyXG4gICAgICAgICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh2YWx1ZS5sZXZlbCA9PSAzKSB7XHJcbiAgICAgICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBicmFuY2hJZDogYW5zd2VySWQsXHJcbiAgICAgICAgICAgIGNvbGxhZ2VJZDogbnVsbCxcclxuICAgICAgICAgICAgc2VjdGlvbklkOiBudWxsXHJcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlLmxldmVsID09IDQpIHtcclxuICAgICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgIGNvbGxhZ2VJZDogYW5zd2VySWQsXHJcbiAgICAgICAgICAgIHNlY3Rpb25JZDogbnVsbFxyXG4gICAgICAgICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh2YWx1ZS5sZXZlbCA9PSA1KSB7XHJcbiAgICAgICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IGFuc3dlcklkXHJcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBsZXZlbCA9IGdyb3VwLnZhbHVlLmxldmVsO1xyXG5cclxuICAgICAgICBpZihsZXZlbCAhPSAyKXtcclxuICAgICAgICB0aGlzLnJlc2V0QW5zd2Vyc09mRm9ybUdyb3VwaW5IaWdoZXJMZXZlbChsZXZlbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgbmV4dEdyb3VwSW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5maW5kSW5kZXgoeCA9PiB4LnZhbHVlLmxldmVsID09IGxldmVsICsgMSk7XHJcbiAgICAgICAgaWYgKG5leHRHcm91cEluZGV4ICkge1xyXG4gICAgICAgICAgdGhpcy5maWxsUXVlc3Rpb25BbnN3ZXJzKG5leHRHcm91cEluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmNvbnRyb2xzLmZpbmRJbmRleCh4ID0+IHgudmFsdWUubGV2ZWwgPT0gZ3JvdXAudmFsdWUubGV2ZWwpO1xyXG4gICAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KGdyb3VwSW5kZXgpO1xyXG5cclxuICAgICAgaWYgKHF1ZXN0aW9uR3JvdXApIHtcclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZkN0cmxzLmlzUmVxdWlyZWQudmFsdWUgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJWYWx1ZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uUmVxdWlyZWQoeyBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCwgaXNSZXF1aXJlZDogdHJ1ZSB9KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWQuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmNsZWFyVmFsaWRhdG9ycygpO1xyXG5cclxuICAgICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25SZXF1aXJlZCh7IHF1ZXN0aW9uSWQ6IGdyb3VwLnZhbHVlLmlkLCBpc1JlcXVpcmVkOiBmYWxzZSB9KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChhbnN3ZXJJZCkge1xyXG4gICAgICBncm91cC5jb250cm9scy5hbnN3ZXJJZC5zZXRWYWx1ZShhbnN3ZXJJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnIucHVzaChncm91cCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGxRdWVzdGlvbkFuc3dlcnMobmV4dEdyb3VwSW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgIHZhciBncm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KG5leHRHcm91cEluZGV4KTtcclxuICAgIGlmIChncm91cCkge1xyXG4gICAgICBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPT0gMikge1xyXG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsUHJvZ3JhbXNSZWxhdGVkVG9JbnN0aXR1dGlvbnMoe1xyXG4gICAgICAgICAgc3VibWlzc2lvbklkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25JZCxcclxuICAgICAgICAgIGdlbmVyYXRlZElkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25HZW5lcmF0ZWRJZCwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wXHJcbiAgICAgICAgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMuc2V0VmFsdWUocmVzLnJlc3BvbnNlRGV0YWlscy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgaWQ6IHguZ2VuZXJhdGVkS2V5LFxyXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LnByb2dyYW1OYW1lQXJhYmljIDogeC5wcm9ncmFtTmFtZUVuZ2xpc2hcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9BcGlTZXJ2aWNlLmdldEFsbEJyYW5jaGVzKHsgc3VibWlzc2lvbklkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25JZCwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5hdChuZXh0R3JvdXBJbmRleCArIDEpLmNvbnRyb2xzLmFuc3dlcnMuc2V0VmFsdWUocmVzLnJlc3BvbnNlRGV0YWlscy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgaWQ6IHguYnJhbmNoU3VibWlzc2lvbklkLFxyXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LmJyYW5jaE5hbWVJbkFyYWJpYyA6IHguYnJhbmNoTmFtZUluRW5nbGlzaFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPT0gNCkge1xyXG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsQ29sbGFnZXMoeyBzdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5pbnN0aXR1dGlvbklkLCBicmFuY2hTdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5icmFuY2hJZCwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGlkOiB4LmNvbGxhZ2VTdWJtaXNzaW9uSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5pc0FyYWJpY0xhbmcgPT0gdHJ1ZSA/IHguY29sbGFnZU5hbWVJbkFyYWJpYyA6IHguY29sbGFnZU5hbWVJbkVuZ2xpc2hcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGdyb3VwLnZhbHVlLmxldmVsID09IDUpIHtcclxuICAgICAgICB0aGlzLl9BcGlTZXJ2aWNlLmdldEFsbFNlY3Rpb25zKHsgc3VibWlzc2lvbklkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25JZCwgY29sbGFnZVN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmNvbGxhZ2VJZCwgcmVxdWVzdFRpbWVzdGFtcDogZm9ybVZhbHVlLmluc3RpdHV0aW9uVGltZXN0YW1wIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGlkOiB4LmdlbmVyYXRlZEtleSxcclxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmlzQXJhYmljTGFuZyA9PSB0cnVlID8geC5zZWN0aW9uTmFtZUluQXJhYmljIDogeC5zZWN0aW9uTmFtZUluRW5nbGlzaFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPT0gNikge1xyXG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsUHJvZ3JhbXMoeyBzdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5pbnN0aXR1dGlvbklkLCBzZWN0aW9uR2VuZXJhdGVkS2V5OiBmb3JtVmFsdWUuc2VjdGlvbklkLCByZXF1ZXN0VGltZXN0YW1wOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25UaW1lc3RhbXAgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMuc2V0VmFsdWUocmVzLnJlc3BvbnNlRGV0YWlscy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgaWQ6IHguZ2VuZXJhdGVkS2V5LFxyXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LnByb2dyYW1OYW1lQXJhYmljIDogeC5wcm9ncmFtTmFtZUVuZ2xpc2hcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0QW5zd2Vyc09mRm9ybUdyb3VwaW5IaWdoZXJMZXZlbChsZXZlbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5mb3JFYWNoKChncm91cDogRm9ybUdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KSA9PiB7XHJcbiAgICAgIGlmIChncm91cC52YWx1ZS5sZXZlbCA+IGxldmVsKSB7XHJcbiAgICAgICAgZ3JvdXAucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlclZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyczogW11cclxuICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiPlxyXG4gIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIG1iLTJcIj5cclxuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZkN0cmxzLnRpdGxlLnZhbHVlXCI+PC9zcGFuPlxyXG4gIDwvaDM+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbkZvcm1BcnJheS5jb250cm9sczsgdHJhY2tCeTppZGVudGlmeSA7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2l0ZW0udmFsdWUuaWRcIlxyXG4gICAgICAqbmdJZj1cIml0ZW0udmFsdWUubGV2ZWwgPT0gMSB8fCAoIGl0ZW0udmFsdWUubGV2ZWwgPiAxICYmIGl0ZW0udmFsdWUuYW5zd2Vycy5sZW5ndGggPiAwIClcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBpdGVtLmNvbnRyb2xzLmFuc3dlcklkLmludmFsaWQgICwgJ2Qtbm9uZSc6ZkN0cmxzLmlzU2hvdy52YWx1ZSAhPSB0cnVlfVwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUudGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkO1wiICpuZ0lmPVwiZkN0cmxzLmlzUmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICA8L2gzPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1xdWFzdGlvbiB0ZXh0LXF1YXN0aW9uX19kcm9wZG93blwiPlxyXG4gICAgICAgIDxuZy1zZWxlY3QgW2l0ZW1zXT1cIml0ZW0udmFsdWUubGV2ZWwgPT0xID8gaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIoKSA6IGl0ZW0udmFsdWUuYW5zd2Vyc1wiIGJpbmRWYWx1ZT1cImlkXCIgYmluZExhYmVsPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpdGVtLmNvbnRyb2xzLmFuc3dlcklkXCIgW3ZpcnR1YWxTY3JvbGxdPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJmQ3RybHMuaXNEaXNhYmxlZC52YWx1ZVwiIChjaGFuZ2UpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50LGkpXCJcclxuICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -55,6 +55,9 @@ export class QuestionTextTemplateComponent {
55
55
  isDisabled: value.questionAllInfo.isReadOnly,
56
56
  isShow: value.questionAllInfo.isVisable
57
57
  });
58
+ if (value.isShow == true) {
59
+ this.fCtrls.isShow.setValue(value.isShow);
60
+ }
58
61
  if (value.questionAllInfo.surveyAnswers[0]?.answerId != null && value.questionAllInfo.surveyAnswers[0]?.answerId != undefined) {
59
62
  this.fCtrls.surveyAnswerId.setValue(value.questionAllInfo.surveyAnswers[0].answerId);
60
63
  this.fCtrls.inputTypeId.setValue(value.questionAllInfo.surveyAnswers[0].inputTypeId);
@@ -197,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
197
200
  }], isDisabled: [{
198
201
  type: Input
199
202
  }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7OztBQU9yRixNQUFNLE9BQU8sNkJBQTZCO0lBUXhDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBRTVELElBQUksU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQzVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsaUNBQWlDLEdBQUcsU0FBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVE7b0JBQzlHLENBQUMsQ0FBQyxrQ0FBa0MsU0FBUyxDQUFDLFFBQVEsT0FBTyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDckY7aUJBQ0ksSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtvQkFDbEYsQ0FBQyxDQUFDLDBDQUEwQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDcEU7aUJBQ0ksSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0MsU0FBUyxDQUFDLFFBQVEsRUFBRTtvQkFDbkYsQ0FBQyxDQUFDLDBDQUEwQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDcEU7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUlELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUU1QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUM7WUFFMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsWUFBWTtnQkFDeEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYTtnQkFDMUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsY0FBYztnQkFDNUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsbUJBQW1CO2dCQUN0RCxVQUFVLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVO2dCQUM1QyxNQUFNLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTO2FBQ3hDLENBQUMsQ0FBQztZQUVILElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFO2dCQUM3SCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0RjtZQUVELElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUV4RCxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO29CQUM5RSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7d0JBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3JHO29CQUVELElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTt3QkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDckc7b0JBRUQsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7d0JBQ3RILElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3REO2lCQUNGO3FCQUNJLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUU7b0JBQ2pGLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTt3QkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDM0c7b0JBRUQsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO3dCQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMzRztpQkFDRjtxQkFDSSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFO29CQUNsRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDdEQ7cUJBQ0ksSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDLEtBQUssRUFBRTtvQkFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztpQkFDcEQ7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUM3QztZQUVELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RSxJQUFJLFFBQVEsRUFBRSxVQUFVLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO29CQUNwQixNQUFNLEVBQUcsUUFBUSxDQUFDLFVBQVU7b0JBQzVCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDL0IsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2lCQUN4QixFQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7YUFDdEI7WUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBR0QsWUFBb0IsWUFBeUIsRUFBVSxpQkFBbUMsRUFDaEYsTUFBYTtRQURILGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNoRixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBcEh2QixnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBb0MvRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQWlGckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBb0M7WUFDdEUsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzNCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDNUIsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztZQUM3QixXQUFXLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2xDLGNBQWMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDckMsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztZQUM3QixVQUFVLEVBQUUsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDN0IsV0FBVyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztZQUNsQyxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksU0FBUyxDQUFDLFdBQVcsSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNmLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDdEQ7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7cUJBQ3RDO29CQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7aUJBQzdDO2FBQ0Y7WUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7b0JBQ3RELFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRTtvQkFDeEIsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUs7aUJBQ2xDLENBQUMsQ0FBQyxDQUFBO1lBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVYsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIsZ0JBQWdCO1lBQ2hCLElBQUksUUFBUSxFQUFFLFVBQVUsSUFBSSxRQUFRLEVBQUUsVUFBVSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsb0JBQW9CO1lBQ3BCLElBQUksUUFBUSxFQUFFLFVBQVUsSUFBSSxRQUFRLEVBQUUsVUFBVSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3ZEO1lBRUQsZ0JBQWdCO1lBQ2hCLElBQUksUUFBUSxFQUFFLE1BQU0sSUFBSSxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUU5QyxJQUFJLFFBQVEsRUFBRSxNQUFNLElBQUksS0FBSyxFQUFFO29CQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ25DO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFZO1FBQy9CLE9BQU8sT0FBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsVUFBbUI7UUFDNUMsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUM1QjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0ExTVUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa0tDckIxQyx5cURBMEJrQjs7MkZETEwsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDRCQUE0QjtxSkE4QzdCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSztnQkF5RU8sVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUXVlc3Rpb25UZXh0VGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHBhaXJ3aXNlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9pbnB1dC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBQaG9uZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMvcGhvbmUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgUXVlc3Rpb25OZ3J4TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eSc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5hY3Rpb24nO1xyXG5pbXBvcnQgeyBxdWVzdGlvblNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvblRleHRUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcclxuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZT47XHJcbiAgY3VzdG9tUGF0dGVybnM6IG51bGw7XHJcbiAgaXNUZXh0QXJlYTogYm9vbGVhbjtcclxuICBxdWVzdGlvbkFyciA9IHRoaXMuX1N0b3JlLnNlbGVjdFNpZ25hbChxdWVzdGlvblNlbGVjdG9ycy5wYWdlUXVlc3Rpb25zKTtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIGdldCBpbnB1dFR5cGVFbnVtKCkge1xyXG4gICAgcmV0dXJuIElucHV0VHlwZUVudW07XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlc3Rpb25NaW5NYXhJbmRpY2F0b3IoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xyXG4gICAgaWYgKGZvcm1WYWx1ZS5pbnB1dE1heCAhPSBudWxsIHx8IGZvcm1WYWx1ZS5pbnB1dE1pbiAhPSBudWxsKSB7XHJcblxyXG4gICAgICBpZiAoZm9ybVZhbHVlLmlucHV0TWF4ICE9IG51bGwgJiYgZm9ybVZhbHVlLmlucHV0TWluICE9IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0FyYWJpY0xhbmcgPyBgINmK2KzYqCDYo9mGINiq2YPZiNmGINin2YTZgtmK2YXYqSDYp9mE2YXYr9iu2YTYqSDZhdmGIGAgKyBmb3JtVmFsdWUuaW5wdXRNaW4gKyAnINil2YTZiSAnICsgZm9ybVZhbHVlLmlucHV0TWF4XHJcbiAgICAgICAgICA6IGB0aGUgdmFsdWUgZW50ZXJlZCBtdXN0IGJlIGZyb20gJHtmb3JtVmFsdWUuaW5wdXRNaW59IHRvICR7Zm9ybVZhbHVlLmlucHV0TWF4fWA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZm9ybVZhbHVlLmlucHV0TWluICE9IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0FyYWJpY0xhbmcgPyBg2YrYrNioINij2YYg2KrZg9mI2YYg2KPZgtmEINmC2YrZhdipINmE2YTZhdiv2K7ZhCDYqtiz2KfZiNmKICR7Zm9ybVZhbHVlLmlucHV0TWlufWBcclxuICAgICAgICAgIDogYHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBpbnB1dCBtdXN0IGJlICR7Zm9ybVZhbHVlLmlucHV0TWlufWA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZm9ybVZhbHVlLmlucHV0TWF4ICE9IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0FyYWJpY0xhbmcgPyBg2YrYrNioINij2YYg2KrZg9mI2YYg2KPZg9io2LEg2YLZitmF2Kkg2YTZhNmF2K/YrtmEINiq2LPYp9mI2YogJHtmb3JtVmFsdWUuaW5wdXRNYXh9YFxyXG4gICAgICAgICAgOiBgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIGlucHV0IG11c3QgYmUgJHtmb3JtVmFsdWUuaW5wdXRNYXh9YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIGlzQXJhYmljTGFuZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogUXVlc3Rpb25OZ3J4TW9kZWwpIHtcclxuICAgIGlmICghdGhpcy5zdXJ2ZXlRdWVzdGlvbikge1xyXG4gICAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWUucXVlc3Rpb25BbGxJbmZvO1xyXG5cclxuICAgICAgdGhpcy5pc1RleHRBcmVhID0gdmFsdWUucXVlc3Rpb25BbGxJbmZvLmlzQWR2YW5jZVRleHRBcmVhO1xyXG5cclxuICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcclxuICAgICAgICBuYW1lOiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8ucXVlc3Rpb25OYW1lLFxyXG4gICAgICAgIHRpdGxlOiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8ucXVlc3Rpb25UaXRsZSxcclxuICAgICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICBkZXNjcmlwdGlvbjogdmFsdWUucXVlc3Rpb25BbGxJbmZvLnF1ZXN0aW9uRGVzY3JpcHRpb24sXHJcbiAgICAgICAgaXNEaXNhYmxlZDogdmFsdWUucXVlc3Rpb25BbGxJbmZvLmlzUmVhZE9ubHksXHJcbiAgICAgICAgaXNTaG93OiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8uaXNWaXNhYmxlXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdPy5hbnN3ZXJJZCAhPSBudWxsICYmIHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdPy5hbnN3ZXJJZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmZDdHJscy5zdXJ2ZXlBbnN3ZXJJZC5zZXRWYWx1ZSh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5hbnN3ZXJJZCk7XHJcbiAgICAgICAgdGhpcy5mQ3RybHMuaW5wdXRUeXBlSWQuc2V0VmFsdWUodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkID09IElucHV0VHlwZUVudW0uTnVtYmVyKSB7XHJcbiAgICAgICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5pbnB1dE1pbi5zZXRWYWx1ZSh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbik7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbih2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbildKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXggIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5pbnB1dE1heC5zZXRWYWx1ZSh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCk7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1heCh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCldKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4gIT0gbnVsbCB8fCB2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmlucHV0VHlwZUlkLnNldFZhbHVlKElucHV0VHlwZUVudW0uVGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkID09IElucHV0VHlwZUVudW0uVGV4dCkge1xyXG4gICAgICAgICAgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWluICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuaW5wdXRNaW4uc2V0VmFsdWUodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4pO1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5taW5MZW5ndGgodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4pXSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWF4ICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuaW5wdXRNYXguc2V0VmFsdWUodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXgpO1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5tYXhMZW5ndGgodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXgpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkID09IElucHV0VHlwZUVudW0uRW1haWwpIHtcclxuICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLmVtYWlsXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkID09IElucHV0VHlwZUVudW0uUGhvbmUpIHtcclxuICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtQaG9uZVZhbGlkYXRvcl0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbkFycigpLmZpbmQoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gdmFsdWUucXVlc3Rpb25JZCk7XHJcbiAgICAgIGlmIChxdWVzdGlvbj8uYW5zd2VyVGV4dCkge1xyXG4gICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBhbnN3ZXIgOiBxdWVzdGlvbi5hbnN3ZXJUZXh0ICxcclxuICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uLmlzRGlzYWJsZWQsXHJcbiAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uLmlzU2hvd1xyXG4gICAgICAgIH0se2VtaXRFdmVudDpmYWxzZX0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRvZ2dsZUVuYWJsZUFuc3dlcih2YWx1ZS5xdWVzdGlvbkFsbEluZm8uaXNSZWFkT25seSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy50b2dnbGVFbmFibGVBbnN3ZXIodmFsdWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfc3VydmV5TGliU2VydmljZTogU3VydmV5TGliU2VydmljZSxcclxuICAgIHByaXZhdGUgX1N0b3JlOiBTdG9yZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBpZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIHR5cGVJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBzdXJ2ZXlBbnN3ZXJJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBhbnN3ZXI6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgaXNEaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcclxuICAgICAgaXNTaG93OiBuZXcgRm9ybUNvbnRyb2wodHJ1ZSksXHJcbiAgICAgIGlucHV0VHlwZUlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGlucHV0TWluOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGlucHV0TWF4OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgICAgaWYgKGZvcm1WYWx1ZS5pbnB1dFR5cGVJZCA9PSBJbnB1dFR5cGVFbnVtLkVtYWlsKSB7XHJcbiAgICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IHRoaXMuZkN0cmxzLmFuc3dlci5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgaWYgKCFpc1JlcXVpcmVkKSB7XHJcbiAgICAgICAgICBpZiAodmFsdWU/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5lbWFpbF0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkFuc3dlcih7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IHZhbHVlLFxyXG4gICAgICAgICAgaXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkXHJcbiAgICAgICAgfSkpXHJcbiAgICAgIH0sIDEwMCk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fU3RvcmUuc2VsZWN0KHF1ZXN0aW9uU2VsZWN0b3JzLnBhZ2VRdWVzdGlvbnMpLnBpcGUobWFwKGFyciA9PiBhcnIuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpKVxyXG4gICAgICAucGlwZShmaWx0ZXIoeCA9PiB4ICE9IG51bGwpLCBwYWlyd2lzZSgpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdmFsdWVbMF07XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZVsxXTtcclxuXHJcbiAgICAgICAgLy91cGRhdGVkIGFuc3dlclxyXG4gICAgICAgIGlmIChvbGRWYWx1ZT8uYW5zd2VyVGV4dCAhPSBuZXdWYWx1ZT8uYW5zd2VyVGV4dCkge1xyXG4gICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG5ld1ZhbHVlPy5hbnN3ZXJUZXh0LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3VwZGF0ZWQgaXNEaXNhYmxlZFxyXG4gICAgICAgIGlmIChvbGRWYWx1ZT8uaXNEaXNhYmxlZCAhPSBuZXdWYWx1ZT8uaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgdGhpcy5mQ3RybHMuaXNEaXNhYmxlZC5zZXRWYWx1ZShuZXdWYWx1ZT8uaXNEaXNhYmxlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3VwZGF0ZWQgaXNTaG93XHJcbiAgICAgICAgaWYgKG9sZFZhbHVlPy5pc1Nob3cgIT0gbmV3VmFsdWU/LmlzU2hvdykge1xyXG4gICAgICAgICAgdGhpcy5mQ3RybHMuaXNTaG93LnNldFZhbHVlKG5ld1ZhbHVlPy5pc1Nob3cpO1xyXG5cclxuICAgICAgICAgIGlmIChuZXdWYWx1ZT8uaXNTaG93ID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XHJcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlRW5hYmxlQW5zd2VyKGlzUmVhZE9ubHk6IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc1JlYWRPbmx5ID09IHRydWUpIHtcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmRpc2FibGUoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmVuYWJsZSgpXHJcbiAgICB9XHJcbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2Zvcm1Hcm91cF09XCJyRm9ybVwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWQgLCAnZC1ub25lJzpmQ3RybHMuaXNTaG93LnZhbHVlICE9IHRydWV9XCI+XHJcbiAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInN1cnZleVF1ZXN0aW9uPy5xdWVzdGlvblRpdGxlXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cInN1cnZleVF1ZXN0aW9uLmlzUmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgIDxwICpuZ0lmPVwicXVlc3Rpb25NaW5NYXhJbmRpY2F0b3JcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgIDxzbWFsbCA+e3txdWVzdGlvbk1pbk1heEluZGljYXRvcn19PC9zbWFsbD5cclxuICAgICAgICA8L3A+IFxyXG4gICAgPC9oMz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGV4dEFyZWEgPT0gZmFsc2UgZWxzZSB0ZXh0QXJlYVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGxpYk1hc2tlZEZvck1pbk1heFxyXG4gICAgICAgICAgICAgKm5nSWY9XCJmQ3RybHMuaW5wdXRUeXBlSWQudmFsdWUgPT0gaW5wdXRUeXBlRW51bS5OdW1iZXIgZWxzZSBpbnB1dFRleHRUeXBlTnVtYmVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFthdHRyLm1pbl09XCJmQ3RybHMuaW5wdXRNaW4udmFsdWVcIiAgW2F0dHIubWF4XT1cImZDdHJscy5pbnB1dE1heC52YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJjb252ZXJ0VG9Gb3JtQ29udHJvbChmQ3RybHMuYW5zd2VyKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIFthdHRyLnR5cGVdPVwiZkN0cmxzLmlucHV0VHlwZUlkLnZhbHVlIHwgdGV4dEJveFR5cGVBdHRyXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0QXJlYVRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiMlwiIFtmb3JtQ29udHJvbF09XCJjb252ZXJ0VG9Gb3JtQ29udHJvbChmQ3RybHMuYW5zd2VyKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRUZXh0VHlwZU51bWJlclRlbXBsYXRlPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiICBsaWJNYXNrZWRGb3JNYXhMZW5ndGggXHJcbiAgICAgICAgW2F0dHIubWF4XT1cImZDdHJscy5pbnB1dE1heC52YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJjb252ZXJ0VG9Gb3JtQ29udHJvbChmQ3RybHMuYW5zd2VyKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbYXR0ci50eXBlXT1cImZDdHJscy5pbnB1dFR5cGVJZC52YWx1ZSB8IHRleHRCb3hUeXBlQXR0clwiPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7OztBQU9yRixNQUFNLE9BQU8sNkJBQTZCO0lBUXhDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIs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Q0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNuQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBWTtRQUMvQixPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQW1CO1FBQzVDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUM3QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDNUI7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBOU1VLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtLQ3JCMUMseXFEQTBCa0I7OzJGRExMLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw0QkFBNEI7cUpBOEM3QixZQUFZO3NCQUFwQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBNkVPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBwYWlyd2lzZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9kZWZhdWx0LXF1ZXN0aW9uLWFuc3dlcnMuZHRvJztcclxuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XHJcbmltcG9ydCB7IElucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUGhvbmVWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzL3Bob25lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTmdyeE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi5lbnRpdHknO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgc3VydmV5QWN0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9zdXJ2ZXkuYWN0aW9uJztcclxuaW1wb3J0IHsgcXVlc3Rpb25TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvcXVlc3Rpb24uc2VsZWN0b3InO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25UZXh0VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzdXJ2ZXlRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG87XHJcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xyXG4gIGN1c3RvbVBhdHRlcm5zOiBudWxsO1xyXG4gIGlzVGV4dEFyZWE6IGJvb2xlYW47XHJcbiAgcXVlc3Rpb25BcnIgPSB0aGlzLl9TdG9yZS5zZWxlY3RTaWduYWwocXVlc3Rpb25TZWxlY3RvcnMucGFnZVF1ZXN0aW9ucyk7XHJcblxyXG4gIGdldCBmQ3RybHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xyXG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XHJcbiAgfVxyXG5cclxuICBnZXQgaW5wdXRUeXBlRW51bSgpIHtcclxuICAgIHJldHVybiBJbnB1dFR5cGVFbnVtO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uTWluTWF4SW5kaWNhdG9yKCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgIGlmIChmb3JtVmFsdWUuaW5wdXRNYXggIT0gbnVsbCB8fCBmb3JtVmFsdWUuaW5wdXRNaW4gIT0gbnVsbCkge1xyXG5cclxuICAgICAgaWYgKGZvcm1WYWx1ZS5pbnB1dE1heCAhPSBudWxsICYmIGZvcm1WYWx1ZS5pbnB1dE1pbiAhPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBcmFiaWNMYW5nID8gYCDZitis2Kgg2KPZhiDYqtmD2YjZhiDYp9mE2YLZitmF2Kkg2KfZhNmF2K/YrtmE2Kkg2YXZhiBgICsgZm9ybVZhbHVlLmlucHV0TWluICsgJyDYpdmE2YkgJyArIGZvcm1WYWx1ZS5pbnB1dE1heFxyXG4gICAgICAgICAgOiBgdGhlIHZhbHVlIGVudGVyZWQgbXVzdCBiZSBmcm9tICR7Zm9ybVZhbHVlLmlucHV0TWlufSB0byAke2Zvcm1WYWx1ZS5pbnB1dE1heH1gO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGZvcm1WYWx1ZS5pbnB1dE1pbiAhPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBcmFiaWNMYW5nID8gYNmK2KzYqCDYo9mGINiq2YPZiNmGINij2YLZhCDZgtmK2YXYqSDZhNmE2YXYr9iu2YQg2KrYs9in2YjZiiAke2Zvcm1WYWx1ZS5pbnB1dE1pbn1gXHJcbiAgICAgICAgICA6IGB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgaW5wdXQgbXVzdCBiZSAke2Zvcm1WYWx1ZS5pbnB1dE1pbn1gO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGZvcm1WYWx1ZS5pbnB1dE1heCAhPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBcmFiaWNMYW5nID8gYNmK2KzYqCDYo9mGINiq2YPZiNmGINij2YPYqNixINmC2YrZhdipINmE2YTZhdiv2K7ZhCDYqtiz2KfZiNmKICR7Zm9ybVZhbHVlLmlucHV0TWF4fWBcclxuICAgICAgICAgIDogYHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSBpbnB1dCBtdXN0IGJlICR7Zm9ybVZhbHVlLmlucHV0TWF4fWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBpc0FyYWJpY0xhbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFF1ZXN0aW9uTmdyeE1vZGVsKSB7XHJcbiAgICBpZiAoIXRoaXMuc3VydmV5UXVlc3Rpb24pIHtcclxuICAgICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlLnF1ZXN0aW9uQWxsSW5mbztcclxuXHJcbiAgICAgIHRoaXMuaXNUZXh0QXJlYSA9IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5pc0FkdmFuY2VUZXh0QXJlYTtcclxuXHJcbiAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgbmFtZTogdmFsdWUucXVlc3Rpb25BbGxJbmZvLnF1ZXN0aW9uTmFtZSxcclxuICAgICAgICB0aXRsZTogdmFsdWUucXVlc3Rpb25BbGxJbmZvLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvbkFsbEluZm8ucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5xdWVzdGlvbkRlc2NyaXB0aW9uLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5pc1JlYWRPbmx5LFxyXG4gICAgICAgIGlzU2hvdzogdmFsdWUucXVlc3Rpb25BbGxJbmZvLmlzVmlzYWJsZVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh2YWx1ZS5pc1Nob3cgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuZkN0cmxzLmlzU2hvdy5zZXRWYWx1ZSh2YWx1ZS5pc1Nob3cpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0/LmFuc3dlcklkICE9IG51bGwgJiYgdmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0/LmFuc3dlcklkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZkN0cmxzLnN1cnZleUFuc3dlcklkLnNldFZhbHVlKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmFuc3dlcklkKTtcclxuICAgICAgICB0aGlzLmZDdHJscy5pbnB1dFR5cGVJZC5zZXRWYWx1ZSh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5OdW1iZXIpIHtcclxuICAgICAgICAgIGlmICh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbiAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmlucHV0TWluLnNldFZhbHVlKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWluKTtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWluKV0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmlucHV0TWF4LnNldFZhbHVlKHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWF4KTtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4KHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWF4KV0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbiAhPSBudWxsIHx8IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWF4ICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuaW5wdXRUeXBlSWQuc2V0VmFsdWUoSW5wdXRUeXBlRW51bS5UZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5UZXh0KSB7XHJcbiAgICAgICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5pbnB1dE1pbi5zZXRWYWx1ZSh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbik7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbkxlbmd0aCh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbildKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXggIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5pbnB1dE1heC5zZXRWYWx1ZSh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCk7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1heExlbmd0aCh2YWx1ZS5xdWVzdGlvbkFsbEluZm8uc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5FbWFpbCkge1xyXG4gICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMuZW1haWxdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodmFsdWUucXVlc3Rpb25BbGxJbmZvLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5QaG9uZSkge1xyXG4gICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1Bob25lVmFsaWRhdG9yXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uQXJyKCkuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSB2YWx1ZS5xdWVzdGlvbklkKTtcclxuICAgICAgaWYgKHF1ZXN0aW9uPy5hbnN3ZXJUZXh0KSB7XHJcbiAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgIGFuc3dlcjogcXVlc3Rpb24uYW5zd2VyVGV4dCxcclxuICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uLmlzRGlzYWJsZWQsXHJcbiAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uLmlzU2hvd1xyXG4gICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50b2dnbGVFbmFibGVBbnN3ZXIodmFsdWUucXVlc3Rpb25BbGxJbmZvLmlzUmVhZE9ubHkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMudG9nZ2xlRW5hYmxlQW5zd2VyKHZhbHVlKTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9TdG9yZTogU3RvcmUpIHtcclxuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICB0aXRsZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICB0eXBlSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgc3VydmV5QW5zd2VySWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgYW5zd2VyOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGlzRGlzYWJsZWQ6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXHJcbiAgICAgIGlzU2hvdzogbmV3IEZvcm1Db250cm9sKHRydWUpLFxyXG4gICAgICBpbnB1dFR5cGVJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBpbnB1dE1pbjogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBpbnB1dE1heDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgIGlmIChmb3JtVmFsdWUuaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5FbWFpbCkge1xyXG4gICAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSB0aGlzLmZDdHJscy5hbnN3ZXIuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgIGlmICghaXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgaWYgKHZhbHVlPy50cmltKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMuZW1haWxdKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25BbnN3ZXIoe1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogZm9ybVZhbHVlLmlkLFxyXG4gICAgICAgICAgYW5zd2VyOiB2YWx1ZSxcclxuICAgICAgICAgIGlzVmFsaWQ6IHRoaXMuZkN0cmxzLmFuc3dlci52YWxpZFxyXG4gICAgICAgIH0pKVxyXG4gICAgICB9LCAxMDApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX1N0b3JlLnNlbGVjdChxdWVzdGlvblNlbGVjdG9ycy5wYWdlUXVlc3Rpb25zKS5waXBlKG1hcChhcnIgPT4gYXJyLmZpbmQoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcclxuICAgICAgLnBpcGUoZmlsdGVyKHggPT4geCAhPSBudWxsKSwgcGFpcndpc2UoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHZhbHVlWzBdO1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWVbMV07XHJcblxyXG4gICAgICAgIC8vdXBkYXRlZCBhbnN3ZXJcclxuICAgICAgICBpZiAob2xkVmFsdWU/LmFuc3dlclRleHQgIT0gbmV3VmFsdWU/LmFuc3dlclRleHQpIHtcclxuICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShuZXdWYWx1ZT8uYW5zd2VyVGV4dCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy91cGRhdGVkIGlzRGlzYWJsZWRcclxuICAgICAgICBpZiAob2xkVmFsdWU/LmlzRGlzYWJsZWQgIT0gbmV3VmFsdWU/LmlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgIHRoaXMuZkN0cmxzLmlzRGlzYWJsZWQuc2V0VmFsdWUobmV3VmFsdWU/LmlzRGlzYWJsZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy91cGRhdGVkIGlzU2hvd1xyXG4gICAgICAgIGlmIChvbGRWYWx1ZT8uaXNTaG93ICE9IG5ld1ZhbHVlPy5pc1Nob3cpIHtcclxuICAgICAgICAgIHRoaXMuZkN0cmxzLmlzU2hvdy5zZXRWYWx1ZShuZXdWYWx1ZT8uaXNTaG93KTtcclxuXHJcbiAgICAgICAgICBpZiAobmV3VmFsdWU/LmlzU2hvdyA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUb0Zvcm1Db250cm9sKGVsZW1lbnQ6IGFueSkge1xyXG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvZ2dsZUVuYWJsZUFuc3dlcihpc1JlYWRPbmx5OiBib29sZWFuKSB7XHJcbiAgICBpZiAoaXNSZWFkT25seSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5kaXNhYmxlKClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5lbmFibGUoKVxyXG4gICAgfVxyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFtmb3JtR3JvdXBdPVwickZvcm1cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIlxyXG4gICAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogZkN0cmxzLmFuc3dlci5pbnZhbGlkICwgJ2Qtbm9uZSc6ZkN0cmxzLmlzU2hvdy52YWx1ZSAhPSB0cnVlfVwiPlxyXG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJzdXJ2ZXlRdWVzdGlvbj8ucXVlc3Rpb25UaXRsZVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCIgKm5nSWY9XCJzdXJ2ZXlRdWVzdGlvbi5pc1JlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8cCAqbmdJZj1cInF1ZXN0aW9uTWluTWF4SW5kaWNhdG9yXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICA8c21hbGwgPnt7cXVlc3Rpb25NaW5NYXhJbmRpY2F0b3J9fTwvc21hbGw+XHJcbiAgICAgICAgPC9wPiBcclxuICAgIDwvaDM+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1xdWFzdGlvblwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RleHRBcmVhID09IGZhbHNlIGVsc2UgdGV4dEFyZWFUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBsaWJNYXNrZWRGb3JNaW5NYXhcclxuICAgICAgICAgICAgICpuZ0lmPVwiZkN0cmxzLmlucHV0VHlwZUlkLnZhbHVlID09IGlucHV0VHlwZUVudW0uTnVtYmVyIGVsc2UgaW5wdXRUZXh0VHlwZU51bWJlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbYXR0ci5taW5dPVwiZkN0cmxzLmlucHV0TWluLnZhbHVlXCIgIFthdHRyLm1heF09XCJmQ3RybHMuaW5wdXRNYXgudmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbYXR0ci50eXBlXT1cImZDdHJscy5pbnB1dFR5cGVJZC52YWx1ZSB8IHRleHRCb3hUeXBlQXR0clwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dEFyZWFUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjJcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2lucHV0VGV4dFR5cGVOdW1iZXJUZW1wbGF0ZT5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAgbGliTWFza2VkRm9yTWF4TGVuZ3RoIFxyXG4gICAgICAgIFthdHRyLm1heF09XCJmQ3RybHMuaW5wdXRNYXgudmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW2F0dHIudHlwZV09XCJmQ3RybHMuaW5wdXRUeXBlSWQudmFsdWUgfCB0ZXh0Qm94VHlwZUF0dHJcIj5cclxuICAgIDwvbmctdGVtcGxhdGU+Il19
@@ -107,6 +107,19 @@ export class SurveyEffects {
107
107
  questionId: resultQuestion.questionId,
108
108
  isDisabled: question.isDisabled_default
109
109
  }));
110
+ if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {
111
+ var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);
112
+ subQuestions.forEach(subQuestion => {
113
+ this._store.dispatch(surveyActions.updateQuestionShow({
114
+ questionId: subQuestion.questionId,
115
+ isShow: question.isShow_default
116
+ }));
117
+ this._store.dispatch(surveyActions.updateQuestionDisable({
118
+ questionId: subQuestion.questionId,
119
+ isDisabled: question.isDisabled_default
120
+ }));
121
+ });
122
+ }
110
123
  });
111
124
  }
112
125
  });
@@ -125,4 +138,4 @@ export class SurveyEffects {
125
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveyEffects, decorators: [{
126
139
  type: Injectable
127
140
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.Store }, { type: i3.CheckRuleExpsUsecase }, { type: i4.ApiService }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBSS9FLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQW9CLFFBQWlCLEVBQVUsTUFBYSxFQUNoRCxxQkFBMkMsRUFBVSxXQUF1QjtRQURwRSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFHeEYsMEJBQXFCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENB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Q0FBQyxDQUFDLENBQUM7cUJBQ047Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFUCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsQyx3QkFBbUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQ3pILE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMxRCxPQUFPLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUM1RixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBaEhiLENBQUM7OEdBSFEsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSBcIkBuZ3J4L2VmZmVjdHNcIjtcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcclxuaW1wb3J0IHsgd2l0aExhdGVzdEZyb20sIGZpbHRlciwgc3dpdGNoTWFwLCBtYXAsIGNhdGNoRXJyb3IsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgc3VydmV5QWN0aW9ucyB9IGZyb20gXCIuL3N1cnZleS5hY3Rpb25cIjtcclxuaW1wb3J0IHsgQ2hlY2tSdWxlRXhwc1VzZWNhc2UgfSBmcm9tIFwiLi4vLi4vLi4vdXNlY2FzZXMvY2hlY2stcnVsZS1leHBzLnVzZWNhc2VcIjtcclxuaW1wb3J0IHsgc3VydmV5U2VsZWN0b3JzIH0gZnJvbSBcIi4vc3VydmV5LnNlbGVjdG9yXCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uU2VsZWN0b3JzIH0gZnJvbSBcIi4vcXVlc3Rpb24uc2VsZWN0b3JcIjtcclxuaW1wb3J0IHsgTG9naWNBY3Rpb25FbnVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9sb2dpYy1hY3Rpb24uZW51bVwiO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3VydmV5RWZmZWN0cyB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hY3Rpb25zOiBBY3Rpb25zLCBwcml2YXRlIF9zdG9yZTogU3RvcmUsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hlY2tSdWxlRXhwc1VzZWNhc2U6IENoZWNrUnVsZUV4cHNVc2VjYXNlLCBwcml2YXRlIF9hcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUXVlc3Rpb25BbnN3ZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5waXBlKG9mVHlwZShzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKSwgd2l0aExhdGVzdEZyb20odGhpcy5fc3RvcmUuc2VsZWN0KHN1cnZleVNlbGVjdG9ycy5ydWxlQXJyKVxyXG4gICAgICAgICAgICAsIHRoaXMuX3N0b3JlLnNlbGVjdChxdWVzdGlvblNlbGVjdG9ycy5hbGxRdWVzdGlvbnMpKSwgc3dpdGNoTWFwKChbYWN0aW9uLCBydWxlQXJyLCBxdWVzdGlvbkFycl0pID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBmb3JtYXRlZFJ1bGVBcnI6IHsgcnVsZUlkOiBhbnksIHF1ZXN0aW9uSWQ6IGFueSB9W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIHJ1bGVBcnIuZm9yRWFjaChydWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBydWxlLnJ1bGVFeHBzLmZvckVhY2gocnVsZVF1ZXN0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ZWRSdWxlQXJyLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZUlkOiBydWxlLnJ1bGVJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJ1bGVRdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkUnVsZUlkQXJyID0gZm9ybWF0ZWRSdWxlQXJyLmZpbHRlcih4ID0+IHgucXVlc3Rpb25JZCA9PSBhY3Rpb24ucXVlc3Rpb25JZCkubWFwKHggPT4gTnVtYmVyKHgucnVsZUlkKSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgYXJyID0gcnVsZUFyci5maWx0ZXIoeCA9PiBzZWxlY3RlZFJ1bGVJZEFyci5maW5kKGMgPT4gYyA9PSB4LnJ1bGVJZCkgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgICAgICBhcnIuZm9yRWFjaChydWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1J1bGVFeHBzVXNlY2FzZS5leGVjdXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZUV4cHM6IHJ1bGUucnVsZUV4cHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb25BcnIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNQYXNzZWQgPSByZXN1bHQuZXhwcmVzdGlvblJlc3VsdEFyci5maWx0ZXIoeCA9PiB4ID09IGZhbHNlKS5sZW5ndGggPT0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGFzc2VkKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNob3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5FbmFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkRpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRGlzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uRGlzYWJsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNldEFuc3dlcikge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25BcnIuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91cGRhdGUgbWF0cml4IHN1YiBxdWVzdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4ICYmIHF1ZXN0aW9uLmlzUXVlc3Rpb25Hcm91cCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdWJRdWVzdGlvbnMgPSBxdWVzdGlvbkFyci5maWx0ZXIoeCA9PiB4LnBhcmVudFF1ZXN0aW9uSWQgPT0gcXVlc3Rpb24ucXVlc3Rpb25JZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TaG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Nob3c6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uSGlkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25TaG93KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTaG93OiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRW5hYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkRpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkRpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJ1bGVSZXN1bHRRdWVzdGlvbnMuZm9yRWFjaChyZXN1bHRRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBxdWVzdGlvbkFyci5maW5kKHggPT4geC5xdWVzdGlvbklkID09IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uU2hvdyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNTaG93X2RlZmF1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25EaXNhYmxlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNEaXNhYmxlZF9kZWZhdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSlcclxuICAgICAgICAgICAgfSkpLCB7IGRpc3BhdGNoOiBmYWxzZSB9KTtcclxuXHJcbiAgICBsb2FkSW5zdGl0dXRpb25BcnIkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5waXBlKG9mVHlwZShzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFyciksIHdpdGhMYXRlc3RGcm9tKHRoaXMuX3N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuaW5zdGl0dXRpb25BcnIpKVxyXG4gICAgICAgICAgICAsIGZpbHRlcigoW2FjdGlvbiwgaW5zdGl0dXRpb25BcnJdKSA9PiBpbnN0aXR1dGlvbkFyci5sZW5ndGggPT0gMCksIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXRBbGxJbnN0aXR1dGlvbnMoKS5waXBlKG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1cnZleUFjdGlvbnMubG9hZEluc3RpdHV0aW9uQXJyU3VjY2Vzcyh7IGluc3RpdHV0aW9uQXJyOiByZXMucmVzcG9uc2VEZXRhaWxzIH0pO1xyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIH0pKSk7XHJcbn1cclxuXHJcbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBSS9FLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQW9CLFFBQWlCLEVBQVUsTUFBYSxFQUNoRCxxQkFBMkMsRUFBVSxXQUF1QjtRQURwRSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFHeEYsMEJBQXFCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENB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QyxDQUFDLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMxRCxPQUFPLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUM1RixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBL0hiLENBQUM7OEdBSFEsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSBcIkBuZ3J4L2VmZmVjdHNcIjtcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcclxuaW1wb3J0IHsgd2l0aExhdGVzdEZyb20sIGZpbHRlciwgc3dpdGNoTWFwLCBtYXAsIGNhdGNoRXJyb3IsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgc3VydmV5QWN0aW9ucyB9IGZyb20gXCIuL3N1cnZleS5hY3Rpb25cIjtcclxuaW1wb3J0IHsgQ2hlY2tSdWxlRXhwc1VzZWNhc2UgfSBmcm9tIFwiLi4vLi4vLi4vdXNlY2FzZXMvY2hlY2stcnVsZS1leHBzLnVzZWNhc2VcIjtcclxuaW1wb3J0IHsgc3VydmV5U2VsZWN0b3JzIH0gZnJvbSBcIi4vc3VydmV5LnNlbGVjdG9yXCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uU2VsZWN0b3JzIH0gZnJvbSBcIi4vcXVlc3Rpb24uc2VsZWN0b3JcIjtcclxuaW1wb3J0IHsgTG9naWNBY3Rpb25FbnVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9sb2dpYy1hY3Rpb24uZW51bVwiO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3VydmV5RWZmZWN0cyB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hY3Rpb25zOiBBY3Rpb25zLCBwcml2YXRlIF9zdG9yZTogU3RvcmUsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hlY2tSdWxlRXhwc1VzZWNhc2U6IENoZWNrUnVsZUV4cHNVc2VjYXNlLCBwcml2YXRlIF9hcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUXVlc3Rpb25BbnN3ZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5waXBlKG9mVHlwZShzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKSwgd2l0aExhdGVzdEZyb20odGhpcy5fc3RvcmUuc2VsZWN0KHN1cnZleVNlbGVjdG9ycy5ydWxlQXJyKVxyXG4gICAgICAgICAgICAsIHRoaXMuX3N0b3JlLnNlbGVjdChxdWVzdGlvblNlbGVjdG9ycy5hbGxRdWVzdGlvbnMpKSwgc3dpdGNoTWFwKChbYWN0aW9uLCBydWxlQXJyLCBxdWVzdGlvbkFycl0pID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBmb3JtYXRlZFJ1bGVBcnI6IHsgcnVsZUlkOiBhbnksIHF1ZXN0aW9uSWQ6IGFueSB9W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIHJ1bGVBcnIuZm9yRWFjaChydWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBydWxlLnJ1bGVFeHBzLmZvckVhY2gocnVsZVF1ZXN0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ZWRSdWxlQXJyLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZUlkOiBydWxlLnJ1bGVJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJ1bGVRdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkUnVsZUlkQXJyID0gZm9ybWF0ZWRSdWxlQXJyLmZpbHRlcih4ID0+IHgucXVlc3Rpb25JZCA9PSBhY3Rpb24ucXVlc3Rpb25JZCkubWFwKHggPT4gTnVtYmVyKHgucnVsZUlkKSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgYXJyID0gcnVsZUFyci5maWx0ZXIoeCA9PiBzZWxlY3RlZFJ1bGVJZEFyci5maW5kKGMgPT4gYyA9PSB4LnJ1bGVJZCkgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgICAgICBhcnIuZm9yRWFjaChydWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1J1bGVFeHBzVXNlY2FzZS5leGVjdXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZUV4cHM6IHJ1bGUucnVsZUV4cHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb25BcnIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNQYXNzZWQgPSByZXN1bHQuZXhwcmVzdGlvblJlc3VsdEFyci5maWx0ZXIoeCA9PiB4ID09IGZhbHNlKS5sZW5ndGggPT0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGFzc2VkKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNob3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5FbmFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkRpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRGlzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uRGlzYWJsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNldEFuc3dlcikge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25BcnIuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91cGRhdGUgbWF0cml4IHN1YiBxdWVzdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4ICYmIHF1ZXN0aW9uLmlzUXVlc3Rpb25Hcm91cCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdWJRdWVzdGlvbnMgPSBxdWVzdGlvbkFyci5maWx0ZXIoeCA9PiB4LnBhcmVudFF1ZXN0aW9uSWQgPT0gcXVlc3Rpb24ucXVlc3Rpb25JZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TaG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Nob3c6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uSGlkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25TaG93KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTaG93OiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRW5hYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkRpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkRpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJ1bGVSZXN1bHRRdWVzdGlvbnMuZm9yRWFjaChyZXN1bHRRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBxdWVzdGlvbkFyci5maW5kKHggPT4geC5xdWVzdGlvbklkID09IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uU2hvdyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNTaG93X2RlZmF1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25EaXNhYmxlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNEaXNhYmxlZF9kZWZhdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4ICYmIHF1ZXN0aW9uLmlzUXVlc3Rpb25Hcm91cCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdWJRdWVzdGlvbnMgPSBxdWVzdGlvbkFyci5maWx0ZXIoeCA9PiB4LnBhcmVudFF1ZXN0aW9uSWQgPT0gcXVlc3Rpb24ucXVlc3Rpb25JZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25TaG93KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNTaG93X2RlZmF1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uRGlzYWJsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBxdWVzdGlvbi5pc0Rpc2FibGVkX2RlZmF1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSlcclxuICAgICAgICAgICAgfSkpLCB7IGRpc3BhdGNoOiBmYWxzZSB9KTtcclxuXHJcbiAgICBsb2FkSW5zdGl0dXRpb25BcnIkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5waXBlKG9mVHlwZShzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFyciksIHdpdGhMYXRlc3RGcm9tKHRoaXMuX3N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuaW5zdGl0dXRpb25BcnIpKVxyXG4gICAgICAgICAgICAsIGZpbHRlcigoW2FjdGlvbiwgaW5zdGl0dXRpb25BcnJdKSA9PiBpbnN0aXR1dGlvbkFyci5sZW5ndGggPT0gMCksIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXRBbGxJbnN0aXR1dGlvbnMoKS5waXBlKG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1cnZleUFjdGlvbnMubG9hZEluc3RpdHV0aW9uQXJyU3VjY2Vzcyh7IGluc3RpdHV0aW9uQXJyOiByZXMucmVzcG9uc2VEZXRhaWxzIH0pO1xyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIH0pKSk7XHJcbn1cclxuXHJcbiJdfQ==
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
32
32
  type: HostListener,
33
33
  args: ['keypress', ['$event']]
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2VkLWZvci1tYXgtbGVuZ3RoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvZGlyZWN0aXZlcy9tYXNrZWQtZm9yLW1heC1sZW5ndGguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt4RCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3RDLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxVQUFVLEdBQVEsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUVsQyxvQkFBb0I7UUFDcEIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBRWhCLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUU5QyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pFLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7YUFDdkQ7WUFFRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDOzhHQTFCVSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO2lCQUNwQzs4QkFJQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xpYk1hc2tlZEZvck1heExlbmd0aF0nXG59KVxuZXhwb3J0IGNsYXNzIE1hc2tlZEZvck1heExlbmd0aERpcmVjdGl2ZSB7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5cHJlc3MnLCBbJyRldmVudCddKVxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB2YXIgbWF4ID0gbnVsbDtcbiAgICBpZiAoaW5wdXQuZ2V0QXR0cmlidXRlKCdtYXgnKSAhPT0gbnVsbCkge1xuICAgICAgbWF4ID0gcGFyc2VJbnQoaW5wdXQuZ2V0QXR0cmlidXRlKCdtYXgnKSk7XG4gICAgfVxuXG4gICAgdmFyIGlucHV0VmxhdWU6IGFueSA9IGlucHV0LnZhbHVlO1xuXG4gICAgLy8gYWxsb3dlZCBrZXkgYXJyYXlcbiAgICBpZiAobWF4ICE9PSBudWxsKSB7XG5cbiAgICAgIGlmIChpbnB1dC5zZWxlY3Rpb25TdGFydCAhPSBpbnB1dC5zZWxlY3Rpb25FbmQpIHtcblxuICAgICAgICBsZXQgZmlyc3RQYXJ0ID0gaW5wdXQudmFsdWUuc2xpY2UoMCwgaW5wdXQuc2VsZWN0aW9uU3RhcnQpO1xuICAgICAgICBsZXQgbGFzdFBhcnQgPSBpbnB1dC52YWx1ZS5zbGljZShpbnB1dC5zZWxlY3Rpb25FbmQsIGlucHV0LnZhbHVlLmxlbmd0aCk7XG4gICAgICAgIGlucHV0VmxhdWUgPSBOdW1iZXIoZmlyc3RQYXJ0ICsgZXZlbnQua2V5ICsgbGFzdFBhcnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5wdXRWbGF1ZS5sZW5ndGggKyAxID4gbWF4KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2VkLWZvci1tYXgtbGVuZ3RoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvZGlyZWN0aXZlcy9tYXNrZWQtZm9yLW1heC1sZW5ndGguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt4RCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3RDLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxVQUFVLEdBQVEsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUVsQyxvQkFBb0I7UUFDcEIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBRWhCLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUU5QyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pFLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7YUFDdkQ7WUFFRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDOzhHQTFCVSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO2lCQUNwQzs4QkFJQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2xpYk1hc2tlZEZvck1heExlbmd0aF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXNrZWRGb3JNYXhMZW5ndGhEaXJlY3RpdmUge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlwcmVzcycsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHZhciBtYXggPSBudWxsO1xyXG4gICAgaWYgKGlucHV0LmdldEF0dHJpYnV0ZSgnbWF4JykgIT09IG51bGwpIHtcclxuICAgICAgbWF4ID0gcGFyc2VJbnQoaW5wdXQuZ2V0QXR0cmlidXRlKCdtYXgnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGlucHV0VmxhdWU6IGFueSA9IGlucHV0LnZhbHVlO1xyXG5cclxuICAgIC8vIGFsbG93ZWQga2V5IGFycmF5XHJcbiAgICBpZiAobWF4ICE9PSBudWxsKSB7XHJcblxyXG4gICAgICBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgIT0gaW5wdXQuc2VsZWN0aW9uRW5kKSB7XHJcblxyXG4gICAgICAgIGxldCBmaXJzdFBhcnQgPSBpbnB1dC52YWx1ZS5zbGljZSgwLCBpbnB1dC5zZWxlY3Rpb25TdGFydCk7XHJcbiAgICAgICAgbGV0IGxhc3RQYXJ0ID0gaW5wdXQudmFsdWUuc2xpY2UoaW5wdXQuc2VsZWN0aW9uRW5kLCBpbnB1dC52YWx1ZS5sZW5ndGgpO1xyXG4gICAgICAgIGlucHV0VmxhdWUgPSBOdW1iZXIoZmlyc3RQYXJ0ICsgZXZlbnQua2V5ICsgbGFzdFBhcnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaW5wdXRWbGF1ZS5sZW5ndGggKyAxID4gbWF4KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19