@piserve-tech/form-submission 1.3.77 → 1.3.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +42 -31
- package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +6 -6
- package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +18 -9
- package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +3 -3
- package/esm2022/form-fields/text-fields/text-fields.component.mjs +9 -3
- package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +4 -2
- package/esm2022/form-submission/submit-form/submit-form.component.mjs +4 -4
- package/fesm2022/piserve-tech-form-submission.mjs +79 -51
- package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
- package/form-fields/check-box-fields/check-box-fields.component.d.ts +1 -1
- package/form-fields/text-fields/text-fields.component.d.ts +1 -1
- package/package.json +3 -2
|
@@ -36,6 +36,10 @@ export class CheckBoxFieldsComponent {
|
|
|
36
36
|
switch (this.optionType) {
|
|
37
37
|
case 'OPTION':
|
|
38
38
|
this.customOptions = this.question.formElement.option.customOptions;
|
|
39
|
+
this.customOptions = this.question.formElement.option.customOptions.map((option) => ({
|
|
40
|
+
value: option.value,
|
|
41
|
+
label: option.value
|
|
42
|
+
}));
|
|
39
43
|
if (this.question.answer) {
|
|
40
44
|
this.initializeCustomOption();
|
|
41
45
|
}
|
|
@@ -55,34 +59,39 @@ export class CheckBoxFieldsComponent {
|
|
|
55
59
|
default:
|
|
56
60
|
console.warn('Unknown option type:', this.optionType);
|
|
57
61
|
}
|
|
58
|
-
// If selectionType is 'SINGLE', set minimumSelection and maximumSelection to 1
|
|
59
62
|
if (this.selectionType === 'SINGLE') {
|
|
60
63
|
this.minimumSelection = 1;
|
|
61
64
|
this.maximumSelection = 1;
|
|
62
65
|
}
|
|
63
|
-
// If selectionType is 'MULTIPLE' and minSelection and maxSelection are not specified, set them to undefined
|
|
64
66
|
if (this.selectionType === 'MULTIPLE' &&
|
|
65
67
|
!this.minimumSelection &&
|
|
66
68
|
!this.maximumSelection) {
|
|
67
69
|
this.minimumSelection = undefined;
|
|
68
70
|
this.maximumSelection = undefined;
|
|
69
71
|
}
|
|
70
|
-
if (this.question.childLogics && this.question.answer) {
|
|
71
|
-
this.updateChildLogics(this.question);
|
|
72
|
-
}
|
|
73
72
|
}
|
|
74
73
|
initializeCustomOption() {
|
|
74
|
+
this.selectedOptions = [];
|
|
75
75
|
this.customOptions?.forEach((option) => {
|
|
76
|
-
if (this.question?.answer?.find((a) =>
|
|
76
|
+
if (this.question?.answer?.find((a) => {
|
|
77
|
+
if (typeof a === 'string' && a.includes('|')) {
|
|
78
|
+
const parts = a.split('|');
|
|
79
|
+
return parts[1] === option.value.toString();
|
|
80
|
+
}
|
|
81
|
+
return a.toString() === option.value.toString();
|
|
82
|
+
})) {
|
|
77
83
|
this.selectedOptions.push(option);
|
|
78
84
|
}
|
|
79
85
|
});
|
|
86
|
+
if (this.question.childLogics && this.question.answer) {
|
|
87
|
+
this.updateChildLogics(this.question);
|
|
88
|
+
}
|
|
80
89
|
}
|
|
81
90
|
onCheckboxChange(option, event) {
|
|
82
91
|
if (this.selectionType === 'SINGLE') {
|
|
83
92
|
if (event.target.checked) {
|
|
84
93
|
this.selectedOptions = [option];
|
|
85
|
-
this.question.answer = [option.value];
|
|
94
|
+
this.question.answer = [`${option.label}|${option.value}`];
|
|
86
95
|
}
|
|
87
96
|
else {
|
|
88
97
|
this.selectedOptions = [];
|
|
@@ -99,16 +108,14 @@ export class CheckBoxFieldsComponent {
|
|
|
99
108
|
else {
|
|
100
109
|
this.selectedOptions = this.selectedOptions.filter((item) => item !== option);
|
|
101
110
|
}
|
|
102
|
-
this.question.answer = this.selectedOptions.map(
|
|
111
|
+
this.question.answer = this.selectedOptions.map(item => `${item.label}|${item.value}`);
|
|
103
112
|
this.isMinimumSelectionValid();
|
|
104
113
|
}
|
|
105
|
-
// Check if the number of selected options exceeds the maximum allowed
|
|
106
114
|
if (this.maximumSelection !== undefined &&
|
|
107
115
|
this.selectedOptions.length > this.maximumSelection) {
|
|
108
|
-
// If exceeded, uncheck the last selected option
|
|
109
116
|
event.target.checked = false;
|
|
110
117
|
this.selectedOptions = this.selectedOptions.filter((item) => item !== option);
|
|
111
|
-
this.question.answer = this.selectedOptions.map(
|
|
118
|
+
this.question.answer = this.selectedOptions.map(item => `${item.label}|${item.value}`);
|
|
112
119
|
this.isMinimumSelectionValid();
|
|
113
120
|
}
|
|
114
121
|
if (this.question.childLogics) {
|
|
@@ -118,52 +125,56 @@ export class CheckBoxFieldsComponent {
|
|
|
118
125
|
updateChildLogics(question) {
|
|
119
126
|
if (question.childLogics && Array.isArray(question.childLogics)) {
|
|
120
127
|
question.childLogics.forEach((childLogic) => {
|
|
121
|
-
if (this.selectionType
|
|
122
|
-
if (this.selectedOptions.length
|
|
128
|
+
if (this.selectionType === 'SINGLE') {
|
|
129
|
+
if (this.selectedOptions.length === 0) {
|
|
123
130
|
childLogic.showLogic = false;
|
|
124
131
|
}
|
|
125
132
|
else {
|
|
126
|
-
childLogic.showLogic = this.evaluateCondition(this.selectedOptions[0]?.
|
|
133
|
+
childLogic.showLogic = this.evaluateCondition(this.selectedOptions[0]?.label, childLogic.condition, childLogic.inputValue);
|
|
127
134
|
}
|
|
128
135
|
}
|
|
129
136
|
else if (this.selectionType === 'MULTIPLE') {
|
|
130
|
-
if (this.selectedOptions.length
|
|
131
|
-
childLogic.
|
|
137
|
+
if (this.selectedOptions.length === 0) {
|
|
138
|
+
childLogic.showLogic = false;
|
|
132
139
|
}
|
|
133
140
|
else {
|
|
134
|
-
const
|
|
135
|
-
childLogic.showLogic = this.evaluateMultipleCondition(
|
|
141
|
+
const selectedLabels = this.selectedOptions.map((item) => item.label);
|
|
142
|
+
childLogic.showLogic = this.evaluateMultipleCondition(selectedLabels, childLogic.condition, childLogic.inputValue);
|
|
136
143
|
}
|
|
137
144
|
}
|
|
138
145
|
});
|
|
139
146
|
}
|
|
140
147
|
}
|
|
141
148
|
evaluateCondition(answer, condition, inputValue) {
|
|
142
|
-
const
|
|
149
|
+
const inputValues = Array.isArray(inputValue)
|
|
150
|
+
? inputValue.map(val => val.toString())
|
|
151
|
+
: [inputValue.toString()];
|
|
143
152
|
switch (condition) {
|
|
144
153
|
case "!=":
|
|
145
|
-
return answer
|
|
154
|
+
return !inputValues.includes(answer);
|
|
146
155
|
case "=":
|
|
147
|
-
return answer
|
|
156
|
+
return inputValues.includes(answer);
|
|
148
157
|
case "IN":
|
|
149
|
-
return
|
|
158
|
+
return inputValues.includes(answer);
|
|
150
159
|
case "NOT IN":
|
|
151
|
-
return !
|
|
160
|
+
return !inputValues.includes(answer);
|
|
152
161
|
default:
|
|
153
162
|
return false;
|
|
154
163
|
}
|
|
155
164
|
}
|
|
156
165
|
evaluateMultipleCondition(answers, condition, inputValue) {
|
|
157
|
-
const
|
|
166
|
+
const inputValues = Array.isArray(inputValue)
|
|
167
|
+
? inputValue.map(val => val.toString())
|
|
168
|
+
: [inputValue.toString()];
|
|
158
169
|
switch (condition) {
|
|
159
170
|
case "!=":
|
|
160
|
-
return answers.every(answer => answer
|
|
171
|
+
return answers.every(answer => !inputValues.includes(answer));
|
|
161
172
|
case "=":
|
|
162
|
-
return answers.some(answer => answer
|
|
173
|
+
return answers.some(answer => inputValues.includes(answer));
|
|
163
174
|
case "IN":
|
|
164
|
-
return answers.some(answer =>
|
|
175
|
+
return answers.some(answer => inputValues.includes(answer));
|
|
165
176
|
case "NOT IN":
|
|
166
|
-
return answers.every(answer => !
|
|
177
|
+
return answers.every(answer => !inputValues.includes(answer));
|
|
167
178
|
default:
|
|
168
179
|
return false;
|
|
169
180
|
}
|
|
@@ -291,12 +302,12 @@ export class CheckBoxFieldsComponent {
|
|
|
291
302
|
!this.selectedOptions.includes(option));
|
|
292
303
|
}
|
|
293
304
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckBoxFieldsComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
294
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: { question: "question" }, ngImport: i0, template: "<div class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n <label>{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + question?.id\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n [checked]=\"selectedOptions.includes(option)\"\n />\n <label\n class=\"formCheckLabel ms-2 me-4 mb-2\"\n [for]=\"option.value + question?.id\"\n
|
|
305
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: { question: "question" }, ngImport: i0, template: "<div class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n <label>{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + question?.id\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n [checked]=\"selectedOptions.includes(option)\"\n />\n <label\n class=\"formCheckLabel ms-2 me-4 mb-2\"\n [for]=\"option.value + question?.id\"\n >{{ option.label }}</label\n >\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}:root{--library-font-family: Roboto, \"Helvetica Neue\", sans-serif;--library-font-size: 14px}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}.form-check-input,.form-check-label{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
295
306
|
}
|
|
296
307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckBoxFieldsComponent, decorators: [{
|
|
297
308
|
type: Component,
|
|
298
|
-
args: [{ selector: 'lib-check-box-fields', template: "<div class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n <label>{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + question?.id\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n [checked]=\"selectedOptions.includes(option)\"\n />\n <label\n class=\"formCheckLabel ms-2 me-4 mb-2\"\n [for]=\"option.value + question?.id\"\n
|
|
309
|
+
args: [{ selector: 'lib-check-box-fields', template: "<div class=\"mb-5 px-3\">\n <div class=\"input-wrapper mb-2\">\n <div [innerHTML]=\"question.questionNumber\"></div>\n <label>{{ question.question }}</label\n > \n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <div class=\"form-check\" *ngFor=\"let option of customOptions\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + question?.id\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n [checked]=\"selectedOptions.includes(option)\"\n />\n <label\n class=\"formCheckLabel ms-2 me-4 mb-2\"\n [for]=\"option.value + question?.id\"\n >{{ option.label }}</label\n >\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}:root{--library-font-family: Roboto, \"Helvetica Neue\", sans-serif;--library-font-size: 14px}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}.form-check-input,.form-check-label{cursor:pointer}\n"] }]
|
|
299
310
|
}], ctorParameters: function () { return [{ type: i1.FormService }]; }, propDecorators: { question: [{
|
|
300
311
|
type: Input
|
|
301
312
|
}] } });
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sdUJBQXVCO0lBa0JsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpCbkMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUM1QixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsUUFBRyxHQUFRLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFDNUIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztJQUVpQixDQUFDO0lBRWpELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsS0FB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QUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixPQUFPLENBQ0wsSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUNwRCxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUN2QyxDQUFDO0lBQ0osQ0FBQzsrR0F0VVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsOEZDUnBDLDZqSEFxR0E7OzRGRDdGYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCO2tHQUt2QixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2hlY2stYm94LWZpZWxkcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVjay1ib3gtZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja0JveEZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgY291bnQ6IG51bWJlciA9IDA7XG4gIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSAnJztcbiAgbWluaW11bVNlbGVjdGlvbj86IG51bWJlcjtcbiAgbWF4aW11bVNlbGVjdGlvbj86IG51bWJlcjtcbiAgb3B0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIGxvb2t1cFRhYmxlOiBhbnkgPSB7fTtcbiAgY3VzdG9tT3B0aW9uczogYW55W10gPSBbXTtcbiAgZGF0YWJhc2U6IGFueSA9IHt9O1xuICBhcGk6IGFueSA9IHt9O1xuICBhcGlPcHRpb25zOiBhbnlbXSA9IFtdOyBcbiAgc2VsZWN0ZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICB2YWxpZGF0aW9uRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCkge1xuICAgIHRoaXMuY291bnQgPSB0aGlzLnF1ZXN0aW9uLmNvdW50O1xuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkO1xuICAgIHRoaXMuaGludCA9IHRoaXMucXVlc3Rpb24uaGludDtcbiAgICB0aGlzLnNlbGVjdGlvblR5cGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uuc2VsZWN0aW9uVHlwZTtcbiAgICB0aGlzLm1pbmltdW1TZWxlY3Rpb24gPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1pbmltdW1TZWxlY3Rpb247XG4gICAgdGhpcy5tYXhpbXVtU2VsZWN0aW9uID1cbiAgICAgIHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhpbXVtU2VsZWN0aW9uO1xuICAgIHRoaXMub3B0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLm9wdGlvblR5cGU7XG4gICAgc3dpdGNoICh0aGlzLm9wdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgJ09QVElPTic6XG4gICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmN1c3RvbU9wdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUN1c3RvbU9wdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTE9PS1VQJzpcbiAgICAgICAgdGhpcy5sb29rdXBUYWJsZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmxvb2t1cFRhYmxlO1xuICAgICAgICB0aGlzLmZldGNoRGF0YUZyb21Mb29rdXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEQVRBQkFTRSc6XG4gICAgICAgIHRoaXMuZGF0YWJhc2UgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5kYXRhYmFzZTtcbiAgICAgICAgdGhpcy5mZXRjaERhdGFGcm9tRGF0YWJhc2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBUEknOlxuICAgICAgICB0aGlzLmFwaSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmFwaTtcbiAgICAgICAgdGhpcy5mZXRjaERhdGFGcm9tQVBJKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS53YXJuKCdVbmtub3duIG9wdGlvbiB0eXBlOicsIHRoaXMub3B0aW9uVHlwZSk7XG4gICAgfVxuXG4gICAgLy8gSWYgc2VsZWN0aW9uVHlwZSBpcyAnU0lOR0xFJywgc2V0IG1pbmltdW1TZWxlY3Rpb24gYW5kIG1heGltdW1TZWxlY3Rpb24gdG8gMVxuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdTSU5HTEUnKSB7XG4gICAgICB0aGlzLm1pbmltdW1TZWxlY3Rpb24gPSAxO1xuICAgICAgdGhpcy5tYXhpbXVtU2VsZWN0aW9uID0gMTtcbiAgICB9XG5cbiAgICAvLyBJZiBzZWxlY3Rpb25UeXBlIGlzICdNVUxUSVBMRScgYW5kIG1pblNlbGVjdGlvbiBhbmQgbWF4U2VsZWN0aW9uIGFyZSBub3Qgc3BlY2lmaWVkLCBzZXQgdGhlbSB0byB1bmRlZmluZWRcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdNVUxUSVBMRScgJiZcbiAgICAgICF0aGlzLm1pbmltdW1TZWxlY3Rpb24gJiZcbiAgICAgICF0aGlzLm1heGltdW1TZWxlY3Rpb25cbiAgICApIHtcbiAgICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZih0aGlzLnF1ZXN0aW9uLmNoaWxkTG9naWNzICYmIHRoaXMucXVlc3Rpb24uYW5zd2VyKXtcbiAgICAgIHRoaXMudXBkYXRlQ2hpbGRMb2dpY3ModGhpcy5xdWVzdGlvbilcbiAgICB9XG4gIH1cblxuICBpbml0aWFsaXplQ3VzdG9tT3B0aW9uKCkge1xuICAgIHRoaXMuY3VzdG9tT3B0aW9ucz8uZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uPy5hbnN3ZXI/LmZpbmQoKGE6IGFueSkgPT4gYS50b1N0cmluZygpID09PSBvcHRpb24udmFsdWUudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBvbkNoZWNrYm94Q2hhbmdlKG9wdGlvbjogYW55LCBldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ1NJTkdMRScpIHtcbiAgICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtvcHRpb25dO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciA9IFtvcHRpb24udmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNNaW5pbXVtU2VsZWN0aW9uVmFsaWQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ01VTFRJUExFJykge1xuICAgICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IG9wdGlvblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5pc01pbmltdW1TZWxlY3Rpb25WYWxpZCgpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgb3B0aW9ucyBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWRcbiAgICBpZiAoXG4gICAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhpbXVtU2VsZWN0aW9uXG4gICAgKSB7XG4gICAgICAvLyBJZiBleGNlZWRlZCwgdW5jaGVjayB0aGUgbGFzdCBzZWxlY3RlZCBvcHRpb25cbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbHRlcihcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IG9wdGlvblxuICAgICAgKTtcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgIHRoaXMuaXNNaW5pbXVtU2VsZWN0aW9uVmFsaWQoKTtcbiAgICB9XG5cbiAgICBpZih0aGlzLnF1ZXN0aW9uLmNoaWxkTG9naWNzKXtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkTG9naWNzKHRoaXMucXVlc3Rpb24pO1xuICAgICAgICB9XG4gIH1cblxuICB1cGRhdGVDaGlsZExvZ2ljcyhxdWVzdGlvbjogYW55KSB7XG4gICAgaWYgKHF1ZXN0aW9uLmNoaWxkTG9naWNzICYmIEFycmF5LmlzQXJyYXkocXVlc3Rpb24uY2hpbGRMb2dpY3MpKSB7XG4gICAgICBxdWVzdGlvbi5jaGlsZExvZ2ljcy5mb3JFYWNoKChjaGlsZExvZ2ljOiBhbnkpID0+IHtcbiAgICAgICAgaWYodGhpcy5zZWxlY3Rpb25UeXBlPT0nU0lOR0xFJyl7XG4gICAgICAgICAgaWYodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoPT0wKXtcbiAgICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljPWZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgY2hpbGRMb2dpYy5zaG93TG9naWMgPSB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKHRoaXMuc2VsZWN0ZWRPcHRpb25zWzBdPy52YWx1ZSwgY2hpbGRMb2dpYy5jb25kaXRpb24sIGNoaWxkTG9naWMuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ01VTFRJUExFJykge1xuICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aD09MCl7XG4gICAgICAgICAgICBjaGlsZExvZ2ljLnNob3c9ZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgICAgICBjaGlsZExvZ2ljLnNob3dMb2dpYyA9IHRoaXMuZXZhbHVhdGVNdWx0aXBsZUNvbmRpdGlvbihzZWxlY3RlZFZhbHVlcywgY2hpbGRMb2dpYy5jb25kaXRpb24sIGNoaWxkTG9naWMuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGV2YWx1YXRlQ29uZGl0aW9uKGFuc3dlcjogYW55W10sIGNvbmRpdGlvbjogc3RyaW5nLCBpbnB1dFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHJpbmdJbnB1dFZhbHVlID0gQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKSA/IGlucHV0VmFsdWUubWFwKHZhbCA9PiB2YWwudG9TdHJpbmcoKSkgOiBpbnB1dFZhbHVlO1xuXG4gICAgc3dpdGNoIChjb25kaXRpb24pIHsgICAgICBcbiAgICAgIGNhc2UgXCIhPVwiOlxuICAgICAgICByZXR1cm4gYW5zd2VyICE9c3RyaW5nSW5wdXRWYWx1ZTtcbiAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgPT1zdHJpbmdJbnB1dFZhbHVlO1xuICAgICAgY2FzZSBcIklOXCI6XG4gICAgICAgIHJldHVybiBzdHJpbmdJbnB1dFZhbHVlLmluY2x1ZGVzKGFuc3dlcik7XG4gICAgICBjYXNlIFwiTk9UIElOXCI6XG4gICAgICAgIHJldHVybiAhKHN0cmluZ0lucHV0VmFsdWUuaW5jbHVkZXMoYW5zd2VyKSlcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBldmFsdWF0ZU11bHRpcGxlQ29uZGl0aW9uKGFuc3dlcnM6IGFueVtdLCBjb25kaXRpb246IHN0cmluZywgaW5wdXRWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RyaW5nSW5wdXRWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaW5wdXRWYWx1ZSkgPyBpbnB1dFZhbHVlLm1hcCh2YWwgPT4gdmFsLnRvU3RyaW5nKCkpIDogaW5wdXRWYWx1ZS50b1N0cmluZygpO1xuICAgIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgICBjYXNlIFwiIT1cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlcnMuZXZlcnkoYW5zd2VyID0+IGFuc3dlciAhPSBzdHJpbmdJbnB1dFZhbHVlKTtcbiAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXJzLnNvbWUoYW5zd2VyID0+IGFuc3dlciA9PSBzdHJpbmdJbnB1dFZhbHVlKTtcbiAgICAgIGNhc2UgXCJJTlwiOlxuICAgICAgICByZXR1cm4gYW5zd2Vycy5zb21lKGFuc3dlciA9PiBzdHJpbmdJbnB1dFZhbHVlLmluY2x1ZGVzKGFuc3dlcikpO1xuICAgICAgY2FzZSBcIk5PVCBJTlwiOlxuICAgICAgICByZXR1cm4gYW5zd2Vycy5ldmVyeShhbnN3ZXIgPT4gIXN0cmluZ0lucHV0VmFsdWUuaW5jbHVkZXMoYW5zd2VyKSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUxvb2t1cCgpIHtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmZldGNoRGF0YUZyb21Mb29rdXAodGhpcy5sb29rdXBUYWJsZSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IHJlc3BvbnNlLnJlc3VsdC52YWx1ZXMubWFwKFxuICAgICAgICAgIChpdGVtOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplQ3VzdG9tT3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignSFRUUCBFcnJvcjonLCBlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZldGNoRGF0YUZyb21EYXRhYmFzZSgpIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGFiYXNlID0gdGhpcy50cmFuc2Zvcm1EYXRhYmFzZU9iamVjdCh0aGlzLmRhdGFiYXNlKTtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmZldGNoRGF0YUZyb21EYXRhYmFzZSh0cmFuc2Zvcm1lZERhdGFiYXNlKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbU9wdGlvbnMgPSByZXNwb25zZS5yZXN1bHQubWFwKFxuICAgICAgICAgICAgKGl0ZW06IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiAoe1xuICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21PcHRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZGF0YSBmcm9tIGRhdGFiYXNlOicsIHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hUVFAgRXJyb3I6JywgZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICB0cmFuc2Zvcm1EYXRhYmFzZU9iamVjdChkYXRhYmFzZTogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhYmxlTmFtZTogZGF0YWJhc2UudGFibGVOYW1lLFxuICAgICAgdmFsdWVGaWVsZDogZGF0YWJhc2UudmFsdWVGaWVsZCxcbiAgICAgIGxhYmVsRmllbGQ6IGRhdGFiYXNlLmxhYmVsRmllbGQsXG4gICAgICBjcml0ZXJpYTogZGF0YWJhc2UuY3JpdGVyaWEubWFwKChjcml0ZXJpYTogYW55KSA9PiAoe1xuICAgICAgICBmaWVsZDogY3JpdGVyaWE/LmZpZWxkLFxuICAgICAgICB2YWx1ZVNvdXJjZTpjcml0ZXJpYT8udmFsdWVTb3VyY2UsXG4gICAgICAgIGNvbmRpdGlvbjogY3JpdGVyaWE/LmNvbmRpdGlvbixcbiAgICAgICAgdmFsdWU6IGNyaXRlcmlhPy5pbnB1dFZhbHVlLFxuICAgICAgICBsb2dpY2FsT3BlcmF0b3I6IGNyaXRlcmlhPy5sb2dpY2FsT3BlcmF0b3IsXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIGZldGNoRGF0YUZyb21BUEkoKSB7XG4gICAgY29uc3QgYXBpQ29uZmlnID0gdGhpcy5hcGk7XG4gICAgdGhpcy5mb3JtU2VydmljZS5mZXRjaERhdGFGcm9tRXh0ZXJuYWxBUEkoYXBpQ29uZmlnKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgbGV0IGRhdGE7XG4gICAgICAgIGlmKGFwaUNvbmZpZy5wYXRoVG9WYWx1ZSkge1xuICAgICAgICAgIGRhdGEgPSB0aGlzLmV4dHJhY3REYXRhQnlQYXRoKHJlc3BvbnNlLCBhcGlDb25maWcucGF0aFRvVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogaXRlbVthcGlDb25maWcudmFsdWVGaWVsZF0sXG4gICAgICAgICAgbGFiZWw6IGl0ZW1bYXBpQ29uZmlnLmxhYmVsRmllbGRdLFxuICAgICAgICB9KSk7XG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgICAgIFxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUN1c3RvbU9wdGlvbigpO1xuICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hUVFAgRXJyb3I6JywgZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBleHRyYWN0RGF0YUJ5UGF0aChkYXRhOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLnNwbGl0KCcuJykucmVkdWNlKChhY2MsIHBhcnQpID0+IGFjYyAmJiBhY2NbcGFydF0sIGRhdGEpO1xuICB9XG5cbiAgaXNNaW5pbXVtU2VsZWN0aW9uVmFsaWQoKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gZmFsc2U7XG4gICAgXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PSAwICYmIHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gJ1RoaXMgaXMgYSByZXF1aXJlZCBxdWVzdGlvbic7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubWluaW11bVNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZih0aGlzLnNlbGVjdGlvblR5cGU9PSdTSU5HTEUnKXtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA8IHRoaXMubWluaW11bVNlbGVjdGlvbiAmJiB0aGlzLnJlcXVpcmVkKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYE1pbmltdW0gJHt0aGlzLm1pbmltdW1TZWxlY3Rpb259ICBzZWxlY3Rpb24ocykgcmVxdWlyZWQuYDtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoIDwgdGhpcy5taW5pbXVtU2VsZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYE1pbmltdW0gJHt0aGlzLm1pbmltdW1TZWxlY3Rpb259ICBzZWxlY3Rpb24ocykgcmVxdWlyZWQuYDtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnT1BUSU9OJykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tT3B0aW9ucztcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0xPT0tVUCcpIHtcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubG9va3VwVGFibGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnQVBJJykge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlRmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaXNPcHRpb25EaXNhYmxlZChvcHRpb246IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID49IHRoaXMubWF4aW11bVNlbGVjdGlvbiAmJlxuICAgICAgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvbilcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2ICBjbGFzcz1cIm1iLTUgcHgtM1wiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlciBtYi0yXCI+XG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCI+PC9kaXY+XG4gICAgJm5ic3A7Jm5ic3A7IDxsYWJlbD57eyBxdWVzdGlvbi5xdWVzdGlvbiB9fTwvbGFiZWxcbiAgICA+Jm5ic3A7XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3ZnLXdyYXBwZXIgbWItMiBoaW50SWNvblwiXG4gICAgICBbYXR0ci5kYXRhLXRpdGxlXT1cImhpbnRcIlxuICAgICAgKm5nSWY9XCJoaW50XCJcbiAgICA+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiaGludFN2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMzAgMzBcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTE1IDI2LjI1VjI2LjI1QzguNzg2MjUgMjYuMjUgMy43NSAyMS4yMTM4IDMuNzUgMTVWMTVDMy43NSA4Ljc4NjI1IDguNzg2MjUgMy43NSAxNSAzLjc1VjMuNzVDMjEuMjEzOCAzLjc1IDI2LjI1IDguNzg2MjUgMjYuMjUgMTVWMTVDMjYuMjUgMjEuMjEzOCAyMS4yMTM4IDI2LjI1IDE1IDI2LjI1WlwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNSAxNi41NjIzVjE2LjI0OThDMTUgMTUuMjI4NSAxNS42MzEyIDE0LjY3NDggMTYuMjYzNyAxNC4yNDk4QzE2Ljg4MTIgMTMuODMzNSAxNy41IDEzLjI5MSAxNy41IDEyLjI5MUMxNy41IDEwLjkwOTggMTYuMzgxMyA5Ljc5MTAyIDE1IDkuNzkxMDJDMTMuNjE4NyA5Ljc5MTAyIDEyLjUgMTAuOTA5OCAxMi41IDEyLjI5MVwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNC45OTg4IDIwQzE0LjgyNjMgMjAgMTQuNjg2MyAyMC4xNCAxNC42ODc1IDIwLjMxMjVDMTQuNjg3NSAyMC40ODUgMTQuODI3NSAyMC42MjUgMTUgMjAuNjI1QzE1LjE3MjUgMjAuNjI1IDE1LjMxMjUgMjAuNDg1IDE1LjMxMjUgMjAuMzEyNUMxNS4zMTI1IDIwLjE0IDE1LjE3MjUgMjAgMTQuOTk4OCAyMFwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdXN0b21PcHRpb25zXCI+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFtpZF09XCJvcHRpb24udmFsdWUgKyBxdWVzdGlvbj8uaWRcIlxuICAgICAgW25hbWVdPVwib3B0aW9uLnZhbHVlICsgJ0NoZWNrYm94J1wiXG4gICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZShvcHRpb24sICRldmVudClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKVwiXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiZm9ybUNoZWNrTGFiZWwgbXMtMiBtZS00IG1iLTJcIlxuICAgICAgW2Zvcl09XCJvcHRpb24udmFsdWUgKyBxdWVzdGlvbj8uaWRcIlxuICAgICAgKm5nSWY9XCJvcHRpb25UeXBlID09ICdPUFRJT04nXCJcbiAgICAgID57eyBvcHRpb24udmFsdWUgfX08L2xhYmVsXG4gICAgPlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJmb3JtQ2hlY2tMYWJlbCBtcy0yIG1lLTRcIlxuICAgICAgW2Zvcl09XCJvcHRpb24udmFsdWUgKyBxdWVzdGlvbj8uaWRcIlxuICAgICAgKm5nSWY9XCJvcHRpb25UeXBlID09ICdMT09LVVAnIHx8ICdEQVRBQkFTRScgfHwgJ0FQSSdcIlxuICAgICAgPnt7IG9wdGlvbi5sYWJlbCB9fTwvbGFiZWxcbiAgICA+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidmFsaWRhdGlvbkZhaWxlZFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInZhbGlkYXRpb25TdmdcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyLjAwMSAxNi43NUMxMi4xMzkgMTYuNzUgMTIuMjUxIDE2LjYzOCAxMi4yNSAxNi41QzEyLjI1IDE2LjM2MiAxMi4xMzggMTYuMjUgMTIgMTYuMjVDMTEuODYyIDE2LjI1IDExLjc1IDE2LjM2MiAxMS43NSAxNi41QzExLjc1IDE2LjYzOCAxMS44NjIgMTYuNzUgMTIuMDAxIDE2Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCJcbiAgICAgICAgZmlsbD1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2U9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEyLjc1TDEyIDcuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgICB7eyB2YWxpZGF0aW9uTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sdUJBQXVCO0lBa0JsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpCbkMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUM1QixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsUUFBRyxHQUFRLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFDNUIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztJQUVpQixDQUFDO0lBRWpELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsS0FB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QjttR0FBdkIsdUJBQXVCLDhGQ1JwQywwMEdBOEZBOzs0RkR0RmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjtrR0FLdkIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNoZWNrLWJveC1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrLWJveC1maWVsZHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hGaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge307XG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBoaW50OiBzdHJpbmcgPSAnJztcbiAgc2VsZWN0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIG1pbmltdW1TZWxlY3Rpb24/OiBudW1iZXI7XG4gIG1heGltdW1TZWxlY3Rpb24/OiBudW1iZXI7XG4gIG9wdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBsb29rdXBUYWJsZTogYW55ID0ge307XG4gIGN1c3RvbU9wdGlvbnM6IGFueVtdID0gW107XG4gIGRhdGFiYXNlOiBhbnkgPSB7fTtcbiAgYXBpOiBhbnkgPSB7fTtcbiAgYXBpT3B0aW9uczogYW55W10gPSBbXTsgXG4gIHNlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgdmFsaWRhdGlvbkZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWVBc3NpZ25lZCgpO1xuICB9XG5cbiAgdmFsdWVBc3NpZ25lZCgpIHtcbiAgICB0aGlzLmNvdW50ID0gdGhpcy5xdWVzdGlvbi5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZDtcbiAgICB0aGlzLmhpbnQgPSB0aGlzLnF1ZXN0aW9uLmhpbnQ7XG4gICAgdGhpcy5zZWxlY3Rpb25UeXBlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLnNlbGVjdGlvblR5cGU7XG4gICAgdGhpcy5taW5pbXVtU2VsZWN0aW9uID1cbiAgICAgIHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5taW5pbXVtU2VsZWN0aW9uO1xuICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWF4aW11bVNlbGVjdGlvbjtcbiAgICB0aGlzLm9wdGlvblR5cGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5vcHRpb25UeXBlO1xuICAgIHN3aXRjaCAodGhpcy5vcHRpb25UeXBlKSB7XG4gICAgICBjYXNlICdPUFRJT04nOlxuICAgICAgICB0aGlzLmN1c3RvbU9wdGlvbnMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5jdXN0b21PcHRpb25zO1xuICAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uY3VzdG9tT3B0aW9ucy5tYXAoKG9wdGlvbjphbnkpID0+ICh7XG4gICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICBsYWJlbDogb3B0aW9uLnZhbHVlXG4gICAgICAgIH0pKTtcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplQ3VzdG9tT3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMT09LVVAnOlxuICAgICAgICB0aGlzLmxvb2t1cFRhYmxlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24ubG9va3VwVGFibGU7XG4gICAgICAgIHRoaXMuZmV0Y2hEYXRhRnJvbUxvb2t1cCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RBVEFCQVNFJzpcbiAgICAgICAgdGhpcy5kYXRhYmFzZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmRhdGFiYXNlO1xuICAgICAgICB0aGlzLmZldGNoRGF0YUZyb21EYXRhYmFzZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FQSSc6XG4gICAgICAgIHRoaXMuYXBpID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uYXBpO1xuICAgICAgICB0aGlzLmZldGNoRGF0YUZyb21BUEkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gb3B0aW9uIHR5cGU6JywgdGhpcy5vcHRpb25UeXBlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJykge1xuICAgICAgdGhpcy5taW5pbXVtU2VsZWN0aW9uID0gMTtcbiAgICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiA9IDE7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnTVVMVElQTEUnICYmXG4gICAgICAhdGhpcy5taW5pbXVtU2VsZWN0aW9uICYmXG4gICAgICAhdGhpcy5tYXhpbXVtU2VsZWN0aW9uXG4gICAgKSB7XG4gICAgICB0aGlzLm1pbmltdW1TZWxlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gIH1cblxuICBpbml0aWFsaXplQ3VzdG9tT3B0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XG4gICAgdGhpcy5jdXN0b21PcHRpb25zPy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMucXVlc3Rpb24/LmFuc3dlcj8uZmluZCgoYTogYW55KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgYSA9PT0gJ3N0cmluZycgJiYgYS5pbmNsdWRlcygnfCcpKSB7XG4gICAgICAgICAgY29uc3QgcGFydHMgPSBhLnNwbGl0KCd8Jyk7XG4gICAgICAgICAgcmV0dXJuIHBhcnRzWzFdID09PSBvcHRpb24udmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYS50b1N0cmluZygpID09PSBvcHRpb24udmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIH0pKSB7ICAgICAgICBcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgfSAgICAgIFxuICAgIH0pO1xuICAgIGlmKHRoaXMucXVlc3Rpb24uY2hpbGRMb2dpY3MgJiYgdGhpcy5xdWVzdGlvbi5hbnN3ZXIpe1xuICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIG9uQ2hlY2tib3hDaGFuZ2Uob3B0aW9uOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJykge1xuICAgICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW29wdGlvbl07XG4gICAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gW2Ake29wdGlvbi5sYWJlbH18JHtvcHRpb24udmFsdWV9YF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciA9IFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5pc01pbmltdW1TZWxlY3Rpb25WYWxpZCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25UeXBlID09PSAnTVVMVElQTEUnKSB7XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbHRlcihcbiAgICAgICAgICAoaXRlbSkgPT4gaXRlbSAhPT0gb3B0aW9uXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChpdGVtID0+IGAke2l0ZW0ubGFiZWx9fCR7aXRlbS52YWx1ZX1gKTtcbiAgICAgIHRoaXMuaXNNaW5pbXVtU2VsZWN0aW9uVmFsaWQoKTtcbiAgICB9XG4gIFxuICAgIGlmIChcbiAgICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiB0aGlzLm1heGltdW1TZWxlY3Rpb25cbiAgICApIHtcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbHRlcihcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IG9wdGlvblxuICAgICAgKTtcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4gYCR7aXRlbS5sYWJlbH18JHtpdGVtLnZhbHVlfWApO1xuICAgICAgdGhpcy5pc01pbmltdW1TZWxlY3Rpb25WYWxpZCgpO1xuICAgIH1cbiAgXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY2hpbGRMb2dpY3MpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2hpbGRMb2dpY3ModGhpcy5xdWVzdGlvbik7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ2hpbGRMb2dpY3MocXVlc3Rpb246IGFueSkgeyAgICBcbiAgICBpZiAocXVlc3Rpb24uY2hpbGRMb2dpY3MgJiYgQXJyYXkuaXNBcnJheShxdWVzdGlvbi5jaGlsZExvZ2ljcykpIHtcbiAgICAgIHF1ZXN0aW9uLmNoaWxkTG9naWNzLmZvckVhY2goKGNoaWxkTG9naWM6IGFueSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJykge1xuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICBcbiAgICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9uc1swXT8ubGFiZWwsIGNoaWxkTG9naWMuY29uZGl0aW9uLCBjaGlsZExvZ2ljLmlucHV0VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdNVUxUSVBMRScpIHtcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjaGlsZExvZ2ljLnNob3dMb2dpYyA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZExhYmVscyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmxhYmVsKTtcbiAgICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gdGhpcy5ldmFsdWF0ZU11bHRpcGxlQ29uZGl0aW9uKHNlbGVjdGVkTGFiZWxzLCBjaGlsZExvZ2ljLmNvbmRpdGlvbiwgY2hpbGRMb2dpYy5pbnB1dFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgXG4gIGV2YWx1YXRlQ29uZGl0aW9uKGFuc3dlcjogYW55LCBjb25kaXRpb246IHN0cmluZywgaW5wdXRWYWx1ZTogYW55KTogYm9vbGVhbiB7ICAgIFxuICAgIGNvbnN0IGlucHV0VmFsdWVzID0gQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKVxuICAgICAgPyBpbnB1dFZhbHVlLm1hcCh2YWwgPT4gdmFsLnRvU3RyaW5nKCkpXG4gICAgICA6IFtpbnB1dFZhbHVlLnRvU3RyaW5nKCldO1xuICBcbiAgICBzd2l0Y2ggKGNvbmRpdGlvbikge1xuICAgICAgY2FzZSBcIiE9XCI6XG4gICAgICAgIHJldHVybiAhaW5wdXRWYWx1ZXMuaW5jbHVkZXMoYW5zd2VyKTtcbiAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgIHJldHVybiBpbnB1dFZhbHVlcy5pbmNsdWRlcyhhbnN3ZXIpO1xuICAgICAgY2FzZSBcIklOXCI6XG4gICAgICAgIHJldHVybiBpbnB1dFZhbHVlcy5pbmNsdWRlcyhhbnN3ZXIpO1xuICAgICAgY2FzZSBcIk5PVCBJTlwiOlxuICAgICAgICByZXR1cm4gIWlucHV0VmFsdWVzLmluY2x1ZGVzKGFuc3dlcik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIFxuICBldmFsdWF0ZU11bHRpcGxlQ29uZGl0aW9uKGFuc3dlcnM6IGFueVtdLCBjb25kaXRpb246IHN0cmluZywgaW5wdXRWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZXMgPSBBcnJheS5pc0FycmF5KGlucHV0VmFsdWUpXG4gICAgICA/IGlucHV0VmFsdWUubWFwKHZhbCA9PiB2YWwudG9TdHJpbmcoKSlcbiAgICAgIDogW2lucHV0VmFsdWUudG9TdHJpbmcoKV07XG4gIFxuICAgIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgICBjYXNlIFwiIT1cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlcnMuZXZlcnkoYW5zd2VyID0+ICFpbnB1dFZhbHVlcy5pbmNsdWRlcyhhbnN3ZXIpKTtcbiAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXJzLnNvbWUoYW5zd2VyID0+IGlucHV0VmFsdWVzLmluY2x1ZGVzKGFuc3dlcikpO1xuICAgICAgY2FzZSBcIklOXCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXJzLnNvbWUoYW5zd2VyID0+IGlucHV0VmFsdWVzLmluY2x1ZGVzKGFuc3dlcikpO1xuICAgICAgY2FzZSBcIk5PVCBJTlwiOlxuICAgICAgICByZXR1cm4gYW5zd2Vycy5ldmVyeShhbnN3ZXIgPT4gIWlucHV0VmFsdWVzLmluY2x1ZGVzKGFuc3dlcikpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZldGNoRGF0YUZyb21Mb29rdXAoKSB7XG4gICAgdGhpcy5mb3JtU2VydmljZS5mZXRjaERhdGFGcm9tTG9va3VwKHRoaXMubG9va3VwVGFibGUpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbU9wdGlvbnMgPSByZXNwb25zZS5yZXN1bHQudmFsdWVzLm1hcChcbiAgICAgICAgICAoaXRlbTogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0pID0+ICh7XG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUN1c3RvbU9wdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hUVFAgRXJyb3I6JywgZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBmZXRjaERhdGFGcm9tRGF0YWJhc2UoKSB7XG4gICAgY29uc3QgdHJhbnNmb3JtZWREYXRhYmFzZSA9IHRoaXMudHJhbnNmb3JtRGF0YWJhc2VPYmplY3QodGhpcy5kYXRhYmFzZSk7XG4gICAgdGhpcy5mb3JtU2VydmljZS5mZXRjaERhdGFGcm9tRGF0YWJhc2UodHJhbnNmb3JtZWREYXRhYmFzZSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gcmVzcG9uc2UucmVzdWx0Lm1hcChcbiAgICAgICAgICAgIChpdGVtOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4gKHtcbiAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplQ3VzdG9tT3B0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGRhdGEgZnJvbSBkYXRhYmFzZTonLCByZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIVFRQIEVycm9yOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgdHJhbnNmb3JtRGF0YWJhc2VPYmplY3QoZGF0YWJhc2U6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWJsZU5hbWU6IGRhdGFiYXNlLnRhYmxlTmFtZSxcbiAgICAgIHZhbHVlRmllbGQ6IGRhdGFiYXNlLnZhbHVlRmllbGQsXG4gICAgICBsYWJlbEZpZWxkOiBkYXRhYmFzZS5sYWJlbEZpZWxkLFxuICAgICAgY3JpdGVyaWE6IGRhdGFiYXNlLmNyaXRlcmlhLm1hcCgoY3JpdGVyaWE6IGFueSkgPT4gKHtcbiAgICAgICAgZmllbGQ6IGNyaXRlcmlhPy5maWVsZCxcbiAgICAgICAgdmFsdWVTb3VyY2U6Y3JpdGVyaWE/LnZhbHVlU291cmNlLFxuICAgICAgICBjb25kaXRpb246IGNyaXRlcmlhPy5jb25kaXRpb24sXG4gICAgICAgIHZhbHVlOiBjcml0ZXJpYT8uaW5wdXRWYWx1ZSxcbiAgICAgICAgbG9naWNhbE9wZXJhdG9yOiBjcml0ZXJpYT8ubG9naWNhbE9wZXJhdG9yLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICBmZXRjaERhdGFGcm9tQVBJKCkge1xuICAgIGNvbnN0IGFwaUNvbmZpZyA9IHRoaXMuYXBpO1xuICAgIHRoaXMuZm9ybVNlcnZpY2UuZmV0Y2hEYXRhRnJvbUV4dGVybmFsQVBJKGFwaUNvbmZpZykuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGxldCBkYXRhO1xuICAgICAgICBpZihhcGlDb25maWcucGF0aFRvVmFsdWUpIHtcbiAgICAgICAgICBkYXRhID0gdGhpcy5leHRyYWN0RGF0YUJ5UGF0aChyZXNwb25zZSwgYXBpQ29uZmlnLnBhdGhUb1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkYXRhID0gcmVzcG9uc2U7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IGRhdGEubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgdmFsdWU6IGl0ZW1bYXBpQ29uZmlnLnZhbHVlRmllbGRdLFxuICAgICAgICAgIGxhYmVsOiBpdGVtW2FwaUNvbmZpZy5sYWJlbEZpZWxkXSxcbiAgICAgICAgfSkpOyAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgICAgIFxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUN1c3RvbU9wdGlvbigpO1xuICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hUVFAgRXJyb3I6JywgZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBleHRyYWN0RGF0YUJ5UGF0aChkYXRhOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLnNwbGl0KCcuJykucmVkdWNlKChhY2MsIHBhcnQpID0+IGFjYyAmJiBhY2NbcGFydF0sIGRhdGEpO1xuICB9XG5cbiAgaXNNaW5pbXVtU2VsZWN0aW9uVmFsaWQoKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gZmFsc2U7XG4gICAgXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PSAwICYmIHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gJ1RoaXMgaXMgYSByZXF1aXJlZCBxdWVzdGlvbic7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubWluaW11bVNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZih0aGlzLnNlbGVjdGlvblR5cGU9PSdTSU5HTEUnKXtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA8IHRoaXMubWluaW11bVNlbGVjdGlvbiAmJiB0aGlzLnJlcXVpcmVkKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYE1pbmltdW0gJHt0aGlzLm1pbmltdW1TZWxlY3Rpb259ICBzZWxlY3Rpb24ocykgcmVxdWlyZWQuYDtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoIDwgdGhpcy5taW5pbXVtU2VsZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYE1pbmltdW0gJHt0aGlzLm1pbmltdW1TZWxlY3Rpb259ICBzZWxlY3Rpb24ocykgcmVxdWlyZWQuYDtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnT1BUSU9OJykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tT3B0aW9ucztcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0xPT0tVUCcpIHtcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubG9va3VwVGFibGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnQVBJJykge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlRmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaXNPcHRpb25EaXNhYmxlZChvcHRpb246IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID49IHRoaXMubWF4aW11bVNlbGVjdGlvbiAmJlxuICAgICAgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvbilcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2ICBjbGFzcz1cIm1iLTUgcHgtM1wiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlciBtYi0yXCI+XG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCI+PC9kaXY+XG4gICAgJm5ic3A7Jm5ic3A7IDxsYWJlbD57eyBxdWVzdGlvbi5xdWVzdGlvbiB9fTwvbGFiZWxcbiAgICA+Jm5ic3A7XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3ZnLXdyYXBwZXIgbWItMiBoaW50SWNvblwiXG4gICAgICBbYXR0ci5kYXRhLXRpdGxlXT1cImhpbnRcIlxuICAgICAgKm5nSWY9XCJoaW50XCJcbiAgICA+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiaGludFN2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMzAgMzBcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTE1IDI2LjI1VjI2LjI1QzguNzg2MjUgMjYuMjUgMy43NSAyMS4yMTM4IDMuNzUgMTVWMTVDMy43NSA4Ljc4NjI1IDguNzg2MjUgMy43NSAxNSAzLjc1VjMuNzVDMjEuMjEzOCAzLjc1IDI2LjI1IDguNzg2MjUgMjYuMjUgMTVWMTVDMjYuMjUgMjEuMjEzOCAyMS4yMTM4IDI2LjI1IDE1IDI2LjI1WlwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNSAxNi41NjIzVjE2LjI0OThDMTUgMTUuMjI4NSAxNS42MzEyIDE0LjY3NDggMTYuMjYzNyAxNC4yNDk4QzE2Ljg4MTIgMTMuODMzNSAxNy41IDEzLjI5MSAxNy41IDEyLjI5MUMxNy41IDEwLjkwOTggMTYuMzgxMyA5Ljc5MTAyIDE1IDkuNzkxMDJDMTMuNjE4NyA5Ljc5MTAyIDEyLjUgMTAuOTA5OCAxMi41IDEyLjI5MVwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNC45OTg4IDIwQzE0LjgyNjMgMjAgMTQuNjg2MyAyMC4xNCAxNC42ODc1IDIwLjMxMjVDMTQuNjg3NSAyMC40ODUgMTQuODI3NSAyMC42MjUgMTUgMjAuNjI1QzE1LjE3MjUgMjAuNjI1IDE1LjMxMjUgMjAuNDg1IDE1LjMxMjUgMjAuMzEyNUMxNS4zMTI1IDIwLjE0IDE1LjE3MjUgMjAgMTQuOTk4OCAyMFwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdXN0b21PcHRpb25zXCI+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFtpZF09XCJvcHRpb24udmFsdWUgKyBxdWVzdGlvbj8uaWRcIlxuICAgICAgW25hbWVdPVwib3B0aW9uLnZhbHVlICsgJ0NoZWNrYm94J1wiXG4gICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZShvcHRpb24sICRldmVudClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKVwiXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiZm9ybUNoZWNrTGFiZWwgbXMtMiBtZS00IG1iLTJcIlxuICAgICAgW2Zvcl09XCJvcHRpb24udmFsdWUgKyBxdWVzdGlvbj8uaWRcIlxuICAgICAgPnt7IG9wdGlvbi5sYWJlbCB9fTwvbGFiZWxcbiAgICA+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidmFsaWRhdGlvbkZhaWxlZFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInZhbGlkYXRpb25TdmdcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyLjAwMSAxNi43NUMxMi4xMzkgMTYuNzUgMTIuMjUxIDE2LjYzOCAxMi4yNSAxNi41QzEyLjI1IDE2LjM2MiAxMi4xMzggMTYuMjUgMTIgMTYuMjVDMTEuODYyIDE2LjI1IDExLjc1IDE2LjM2MiAxMS43NSAxNi41QzExLjc1IDE2LjYzOCAxMS44NjIgMTYuNzUgMTIuMDAxIDE2Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCJcbiAgICAgICAgZmlsbD1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2U9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEyLjc1TDEyIDcuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgICB7eyB2YWxpZGF0aW9uTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -65,9 +65,6 @@ export class DropDownFieldsComponent {
|
|
|
65
65
|
default:
|
|
66
66
|
console.warn('Unknown option type:', this.optionType);
|
|
67
67
|
}
|
|
68
|
-
if (this.question.childLogics && this.question.answer) {
|
|
69
|
-
this.updateChildLogics(this.question);
|
|
70
|
-
}
|
|
71
68
|
}
|
|
72
69
|
initializeCustomOption() {
|
|
73
70
|
this.customOptions.forEach((option) => {
|
|
@@ -85,6 +82,9 @@ export class DropDownFieldsComponent {
|
|
|
85
82
|
if (isMatch) {
|
|
86
83
|
this.selectedValue.push(option);
|
|
87
84
|
}
|
|
85
|
+
if (this.question.childLogics && this.question.answer) {
|
|
86
|
+
this.updateChildLogics(this.question);
|
|
87
|
+
}
|
|
88
88
|
});
|
|
89
89
|
this.cdr.detectChanges();
|
|
90
90
|
}
|
|
@@ -191,7 +191,7 @@ export class DropDownFieldsComponent {
|
|
|
191
191
|
childLogic.show = false;
|
|
192
192
|
}
|
|
193
193
|
else {
|
|
194
|
-
const selectedValue = this.selectedValue[0]?.
|
|
194
|
+
const selectedValue = this.selectedValue[0]?.label;
|
|
195
195
|
childLogic.showLogic = this.evaluateCondition(selectedValue, childLogic.condition, childLogic.inputValue);
|
|
196
196
|
}
|
|
197
197
|
}
|
|
@@ -200,7 +200,7 @@ export class DropDownFieldsComponent {
|
|
|
200
200
|
childLogic.show = false;
|
|
201
201
|
}
|
|
202
202
|
else {
|
|
203
|
-
const selectedValues = this.selectedValue.map((item) => item.
|
|
203
|
+
const selectedValues = this.selectedValue.map((item) => item.label);
|
|
204
204
|
childLogic.showLogic = this.evaluateMultipleCondition(selectedValues, childLogic.condition, childLogic.inputValue);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
@@ -248,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
248
248
|
}], ctorParameters: function () { return [{ type: i1.FormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { question: [{
|
|
249
249
|
type: Input
|
|
250
250
|
}] } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBY3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFpQmxDLFlBQW9CLFdBQXdCLEVBQ2xDLEdBQXFCO1FBRFgsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFqQnRCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDNUIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFFBQUcsR0FBUSxFQUFFLENBQUM7UUFDZCxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUUxQixzQkFBaUIsR0FBVyxFQUFFLENBQUM7SUFJM0IsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENB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OEZDZHBDLGl6R0ErRkE7OzRGRGpGYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCO2tJQUt2QixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIERyb3BEb3duRGF0YSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGltYWdlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kcm9wLWRvd24tZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtZG93bi1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wLWRvd24tZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyb3BEb3duRmllbGRzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueSA9IHt9O1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBtaW5pbXVtU2VsZWN0aW9uOiBudW1iZXIgPSAwO1xuICBtYXhpbXVtU2VsZWN0aW9uOiBudW1iZXIgPSAwO1xuICBvcHRpb25UeXBlOiBzdHJpbmcgPSAnJztcbiAgbG9va3VwVGFibGU6IHN0cmluZyA9ICcnO1xuICBjdXN0b21PcHRpb25zOiBEcm9wRG93bkRhdGFbXSA9IFtdO1xuICBkYXRhYmFzZTogYW55ID0ge307XG4gIGFwaTogYW55ID0ge307XG4gIHNlbGVjdGVkVmFsdWU6IGFueVtdID0gW107XG4gIHZhbGlkYXRpb25GYWlsZWQhOiBib29sZWFuO1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6Q2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UobmV3VmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMuc2VsZWN0SXRlbXMoKTtcbiAgfVxuXG4gIHZhbHVlQXNzaWduZWQoKSB7XG4gICAgdGhpcy5jb3VudCA9IHRoaXMucXVlc3Rpb24uY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuc2VsZWN0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5zZWxlY3Rpb25UeXBlO1xuICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluaW11bVNlbGVjdGlvbjtcbiAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1heGltdW1TZWxlY3Rpb247XG4gICAgdGhpcy5vcHRpb25UeXBlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24ub3B0aW9uVHlwZTtcbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9uVHlwZSkge1xuICAgICAgY2FzZSAnT1BUSU9OJzpcbiAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uY3VzdG9tT3B0aW9ucy5tYXAoXG4gICAgICAgICAgKG9wdGlvbjogeyB2YWx1ZTogc3RyaW5nIH0pID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgIGltYWdlOiAnJyxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5hbnN3ZXIpIHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21PcHRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xPT0tVUCc6XG4gICAgICAgIHRoaXMubG9va3VwVGFibGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5sb29rdXBUYWJsZTtcbiAgICAgICAgdGhpcy5mZXRjaERhdGFGcm9tTG9va3VwKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnREFUQUJBU0UnOlxuICAgICAgICB0aGlzLmRhdGFiYXNlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uZGF0YWJhc2U7XG4gICAgICAgIHRoaXMuZmV0Y2hEYXRhRnJvbURhdGFiYXNlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgdGhpcy5hcGkgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5hcGk7XG4gICAgICAgIHRoaXMuZmV0Y2hEYXRhRnJvbUFQSSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUud2FybignVW5rbm93biBvcHRpb24gdHlwZTonLCB0aGlzLm9wdGlvblR5cGUpO1xuICAgIH1cblxuICAgIGlmKHRoaXMucXVlc3Rpb24uY2hpbGRMb2dpY3MgJiYgdGhpcy5xdWVzdGlvbi5hbnN3ZXIpe1xuICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemVDdXN0b21PcHRpb24oKSB7XG4gICAgICB0aGlzLmN1c3RvbU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXNNYXRjaCA9IHRoaXMucXVlc3Rpb24/LmFuc3dlcj8uc29tZSgoYTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IGEudHJpbSgpLnNwbGl0KCd8Jyk7IFxuICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcGFydHNbMF07ICBcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcnRzWzFdOyAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBvcHRpb24udmFsdWU7ICBcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRyYW5zZm9ybURhdGFiYXNlT2JqZWN0KGRhdGFiYXNlOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFibGVOYW1lOiBkYXRhYmFzZS50YWJsZU5hbWUsXG4gICAgICB2YWx1ZUZpZWxkOiBkYXRhYmFzZS52YWx1ZUZpZWxkLFxuICAgICAgbGFiZWxGaWVsZDogZGF0YWJhc2UubGFiZWxGaWVsZCxcbiAgICAgIGNyaXRlcmlhOiBkYXRhYmFzZS5jcml0ZXJpYS5tYXAoKGNyaXRlcmlhOiBhbnkpID0+ICh7XG4gICAgICAgIGZpZWxkOiBjcml0ZXJpYS5maWVsZCxcbiAgICAgICAgdmFsdWVTb3VyY2U6Y3JpdGVyaWE/LnZhbHVlU291cmNlLFxuICAgICAgICBjb25kaXRpb246IGNyaXRlcmlhLmNvbmRpdGlvbixcbiAgICAgICAgdmFsdWU6IGNyaXRlcmlhLmlucHV0VmFsdWUsXG4gICAgICAgIGxvZ2ljYWxPcGVyYXRvcjogY3JpdGVyaWEubG9naWNhbE9wZXJhdG9yLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuXG4gIGZldGNoRGF0YUZyb21EYXRhYmFzZSgpIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGFiYXNlID0gdGhpcy50cmFuc2Zvcm1EYXRhYmFzZU9iamVjdCh0aGlzLmRhdGFiYXNlKTtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmZldGNoRGF0YUZyb21EYXRhYmFzZSh0cmFuc2Zvcm1lZERhdGFiYXNlKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbU9wdGlvbnMgPSByZXNwb25zZS5yZXN1bHQubWFwKFxuICAgICAgICAgICAgKGl0ZW06IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiAoe1xuICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21PcHRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZGF0YSBmcm9tIGRhdGFiYXNlOicsIHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignSFRUUCBFcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUxvb2t1cCgpIHtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmZldGNoRGF0YUZyb21Mb29rdXAodGhpcy5sb29rdXBUYWJsZSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IHJlc3BvbnNlLnJlc3VsdC52YWx1ZXMubWFwKFxuICAgICAgICAgIChpdGVtOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplQ3VzdG9tT3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignSFRUUCBFcnJvcjonLCBlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZldGNoRGF0YUZyb21BUEkoKSB7XG4gICAgY29uc3QgYXBpQ29uZmlnID0gdGhpcy5hcGk7XG4gICAgdGhpcy5mb3JtU2VydmljZS5mZXRjaERhdGFGcm9tRXh0ZXJuYWxBUEkoYXBpQ29uZmlnKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgbGV0IGRhdGE7XG4gICAgICAgIGlmKGFwaUNvbmZpZy5wYXRoVG9WYWx1ZSkge1xuICAgICAgICAgIGRhdGEgPSB0aGlzLmV4dHJhY3REYXRhQnlQYXRoKHJlc3BvbnNlLCBhcGlDb25maWcucGF0aFRvVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogaXRlbVthcGlDb25maWcudmFsdWVGaWVsZC50cmltKCldLFxuICAgICAgICAgIGxhYmVsOiBpdGVtW2FwaUNvbmZpZy5sYWJlbEZpZWxkLnRyaW0oKV0sXG4gICAgICAgIH0pKTtcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplQ3VzdG9tT3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignSFRUUCBFcnJvcjonLCBlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGV4dHJhY3REYXRhQnlQYXRoKGRhdGE6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKS5yZWR1Y2UoKGFjYywgcGFydCkgPT4gYWNjICYmIGFjY1twYXJ0XSwgZGF0YSk7XG4gIH1cblxuICBzZWxlY3RJdGVtcygpIHtcbiAgICBjb25zdCB2YWx1ZXNBcnJheSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZS5tYXAoaXRlbSA9PiBgJHtpdGVtLmxhYmVsfXwke2l0ZW0udmFsdWV9YCk7XG4gICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSB2YWx1ZXNBcnJheTsgIFxuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IGZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnJzsgICAgXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPT0gMCAmJiB0aGlzLnJlcXVpcmVkKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25GYWlsZWQgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGBUaGlzIGlzIGEgcmVxdWlyZWQgcXVlc3Rpb25gO1xuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPCB0aGlzLm1pbmltdW1TZWxlY3Rpb24gfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPiB0aGlzLm1heGltdW1TZWxlY3Rpb25cbiAgICApIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYHNlbGVjdGVkIG9wdGlvbnMgbXVzdCBiZSBiZXR3ZWVuICR7dGhpcy5taW5pbXVtU2VsZWN0aW9ufSAmICR7dGhpcy5tYXhpbXVtU2VsZWN0aW9ufWA7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jaGlsZExvZ2ljcykge1xuICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDaGlsZExvZ2ljcyhxdWVzdGlvbjogYW55KSB7XG4gICAgaWYgKHF1ZXN0aW9uLmNoaWxkTG9naWNzICYmIEFycmF5LmlzQXJyYXkocXVlc3Rpb24uY2hpbGRMb2dpY3MpKSB7XG4gICAgICBxdWVzdGlvbi5jaGlsZExvZ2ljcy5mb3JFYWNoKChjaGlsZExvZ2ljOiBhbnkpID0+IHtcbiAgICAgICAgaWYodGhpcy5zZWxlY3Rpb25UeXBlPT0nU0lOR0xFJyl7XG4gICAgICAgICAgaWYodGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aD09MCl7XG4gICAgICAgICAgICBjaGlsZExvZ2ljLnNob3c9ZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlPXRoaXMuc2VsZWN0ZWRWYWx1ZVswXT8udmFsdWVcbiAgICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihzZWxlY3RlZFZhbHVlLCBjaGlsZExvZ2ljLmNvbmRpdGlvbiwgY2hpbGRMb2dpYy5pbnB1dFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ01VTFRJUExFJykge1xuICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGg9PTApe1xuICAgICAgICAgICAgY2hpbGRMb2dpYy5zaG93PWZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0udmFsdWUpO1xuICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gdGhpcy5ldmFsdWF0ZU11bHRpcGxlQ29uZGl0aW9uKHNlbGVjdGVkVmFsdWVzLCBjaGlsZExvZ2ljLmNvbmRpdGlvbiwgY2hpbGRMb2dpYy5pbnB1dFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGV2YWx1YXRlQ29uZGl0aW9uKGFuc3dlcjogYW55LCBjb25kaXRpb246IHN0cmluZywgaW5wdXRWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RyaW5nSW5wdXRWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaW5wdXRWYWx1ZSkgPyBpbnB1dFZhbHVlLm1hcCh2YWwgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSkgOiBpbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgYW5zd2VyID0gQXJyYXkuaXNBcnJheShhbnN3ZXIpID8gYW5zd2VyPy5tYXAoYW5zID0+IGFucy50b0xvd2VyQ2FzZSgpKSA6IGFuc3dlci50b0xvd2VyQ2FzZSgpO1xuICAgIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgICBjYXNlIFwiIT1cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlciAhPSBpbnB1dFZhbHVlO1xuICAgICAgY2FzZSBcIj1cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlciA9PSBpbnB1dFZhbHVlO1xuICAgICAgY2FzZSBcIklOXCI6XG4gICAgICAgIHJldHVybiBzdHJpbmdJbnB1dFZhbHVlLmluY2x1ZGVzKGFuc3dlcik7XG4gICAgICBjYXNlIFwiTk9UIElOXCI6XG4gICAgICAgIHJldHVybiAhc3RyaW5nSW5wdXRWYWx1ZS5pbmNsdWRlcyhhbnN3ZXIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGV2YWx1YXRlTXVsdGlwbGVDb25kaXRpb24oYW5zd2VyczogYW55LCBjb25kaXRpb246IHN0cmluZywgaW5wdXRWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RyaW5nSW5wdXRWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaW5wdXRWYWx1ZSkgPyBpbnB1dFZhbHVlLm1hcCh2YWwgPT4gdmFsLnRvU3RyaW5nKCkpIDogaW5wdXRWYWx1ZS50b1N0cmluZygpO1xuICAgIGFuc3dlcnMgPSBBcnJheS5pc0FycmF5KGFuc3dlcnMpID8gYW5zd2Vycz8ubWFwKGFuc3dlciA9PiBhbnN3ZXIudG9Mb3dlckNhc2UoKSkgOiBhbnN3ZXJzLnRvTG93ZXJDYXNlKCk7XG4gICAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICAgIGNhc2UgXCIhPVwiOlxuICAgICAgICByZXR1cm4gYW5zd2Vycy5ldmVyeSgoYW5zd2VyOiBhbnkpID0+IGFuc3dlciAhPSBzdHJpbmdJbnB1dFZhbHVlKTtcbiAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXJzLnNvbWUoKGFuc3dlcjogYW55KSA9PiBhbnN3ZXIgPT0gc3RyaW5nSW5wdXRWYWx1ZSk7XG4gICAgICBjYXNlIFwiSU5cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlcnMuc29tZSgoYW5zd2VyOiBhbnkpID0+IHN0cmluZ0lucHV0VmFsdWUuaW5jbHVkZXMoYW5zd2VyKSk7XG4gICAgICBjYXNlIFwiTk9UIElOXCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXJzLmV2ZXJ5KChhbnN3ZXI6IGFueSkgPT4gIXN0cmluZ0lucHV0VmFsdWUuaW5jbHVkZXMoYW5zd2VyKSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICBjbGFzcz1cIm1iLTUgcHgtM1wiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlciBtYi0yXCI+XG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCI+PC9kaXY+XG4gICAgJm5ic3A7Jm5ic3A7IDxsYWJlbD57eyBxdWVzdGlvbi5xdWVzdGlvbiB9fTwvbGFiZWxcbiAgICA+Jm5ic3A7XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3ZnLXdyYXBwZXIgbWItMiBoaW50SWNvblwiXG4gICAgICBbYXR0ci5kYXRhLXRpdGxlXT1cImhpbnRcIlxuICAgICAgKm5nSWY9XCJoaW50XCJcbiAgICA+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiaGludFN2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMzAgMzBcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTE1IDI2LjI1VjI2LjI1QzguNzg2MjUgMjYuMjUgMy43NSAyMS4yMTM4IDMuNzUgMTVWMTVDMy43NSA4Ljc4NjI1IDguNzg2MjUgMy43NSAxNSAzLjc1VjMuNzVDMjEuMjEzOCAzLjc1IDI2LjI1IDguNzg2MjUgMjYuMjUgMTVWMTVDMjYuMjUgMjEuMjEzOCAyMS4yMTM4IDI2LjI1IDE1IDI2LjI1WlwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNSAxNi41NjIzVjE2LjI0OThDMTUgMTUuMjI4NSAxNS42MzEyIDE0LjY3NDggMTYuMjYzNyAxNC4yNDk4QzE2Ljg4MTIgMTMuODMzNSAxNy41IDEzLjI5MSAxNy41IDEyLjI5MUMxNy41IDEwLjkwOTggMTYuMzgxMyA5Ljc5MTAyIDE1IDkuNzkxMDJDMTMuNjE4NyA5Ljc5MTAyIDEyLjUgMTAuOTA5OCAxMi41IDEyLjI5MVwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNC45OTg4IDIwQzE0LjgyNjMgMjAgMTQuNjg2MyAyMC4xNCAxNC42ODc1IDIwLjMxMjVDMTQuNjg3NSAyMC40ODUgMTQuODI3NSAyMC42MjUgMTUgMjAuNjI1QzE1LjE3MjUgMjAuNjI1IDE1LjMxMjUgMjAuNDg1IDE1LjMxMjUgMjAuMzEyNUMxNS4zMTI1IDIwLjE0IDE1LjE3MjUgMjAgMTQuOTk4OCAyMFwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzMyMzIzMlwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gPGxpYi1kcm9wZG93blxuICAgIFtpdGVtc109XCJjdXN0b21PcHRpb25zXCJcbiAgICBbbXVsdGlwbGVdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ1NJTkdMRScgPyBmYWxzZSA6IHRydWVcIlxuICAgIChjbGljayk9XCJzZWxlY3RJdGVtcygpXCJcbiAgICBbKHNlbGVjdGVkSXRlbXMpXT1cInNlbGVjdGVkVmFsdWVcIlxuICA+PC9saWItZHJvcGRvd24+IC0tPlxuXG4gIDxsaWItZHJvcGRvd25cbiAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlbGVjdCdcIlxuICAgIFtpdGVtc109XCJjdXN0b21PcHRpb25zXCJcbiAgICBbbXVsdGlwbGVdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ1NJTkdMRScgPyBmYWxzZSA6IHRydWVcIlxuICAgIChjbGljayk9XCJzZWxlY3RJdGVtcygpXCJcbiAgICBbKHNlbGVjdGVkSXRlbXMpXT1cInNlbGVjdGVkVmFsdWVcIlxuICA+PC9saWItZHJvcGRvd24+XG5cbiAgPCEtLSAob25Ecm9wZG93blNjcm9sbCk9XCJnZXROZXh0U2V0T2ZJdGVtcygkZXZlbnQpXCJcbiAgKG9uU2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCIgLS0+XG4gIFxuICA8ZGl2ICpuZ0lmPVwidmFsaWRhdGlvbkZhaWxlZFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbWItMlwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IHZhbGlkYXRpb25NZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBY3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFpQmxDLFlBQW9CLFdBQXdCLEVBQ2xDLEdBQXFCO1FBRFgsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFqQnRCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDNUIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFFBQUcsR0FBUSxFQUFFLENBQUM7UUFDZCxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUUxQixzQkFBaUIsR0FBVyxFQUFFLENBQUM7SUFJM0IsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENB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LDhGQ2RwQyxpekdBK0ZBOzs0RkRqRmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjtrSUFLdkIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5cbmludGVyZmFjZSBEcm9wRG93bkRhdGEge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBpbWFnZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZHJvcC1kb3duLWZpZWxkcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wLWRvd24tZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wRG93bkZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgY291bnQ6IG51bWJlciA9IDA7XG4gIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSAnJztcbiAgbWluaW11bVNlbGVjdGlvbjogbnVtYmVyID0gMDtcbiAgbWF4aW11bVNlbGVjdGlvbjogbnVtYmVyID0gMDtcbiAgb3B0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIGxvb2t1cFRhYmxlOiBzdHJpbmcgPSAnJztcbiAgY3VzdG9tT3B0aW9uczogRHJvcERvd25EYXRhW10gPSBbXTtcbiAgZGF0YWJhc2U6IGFueSA9IHt9O1xuICBhcGk6IGFueSA9IHt9O1xuICBzZWxlY3RlZFZhbHVlOiBhbnlbXSA9IFtdO1xuICB2YWxpZGF0aW9uRmFpbGVkITogYm9vbGVhbjtcbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOkNoYW5nZURldGVjdG9yUmVmXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLnNlbGVjdEl0ZW1zKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCkge1xuICAgIHRoaXMuY291bnQgPSB0aGlzLnF1ZXN0aW9uLmNvdW50O1xuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkO1xuICAgIHRoaXMuaGludCA9IHRoaXMucXVlc3Rpb24uaGludDtcbiAgICB0aGlzLnNlbGVjdGlvblR5cGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uuc2VsZWN0aW9uVHlwZTtcbiAgICB0aGlzLm1pbmltdW1TZWxlY3Rpb24gPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1pbmltdW1TZWxlY3Rpb247XG4gICAgdGhpcy5tYXhpbXVtU2VsZWN0aW9uID1cbiAgICAgIHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhpbXVtU2VsZWN0aW9uO1xuICAgIHRoaXMub3B0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLm9wdGlvblR5cGU7XG4gICAgc3dpdGNoICh0aGlzLm9wdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgJ09QVElPTic6XG4gICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmN1c3RvbU9wdGlvbnMubWFwKFxuICAgICAgICAgIChvcHRpb246IHsgdmFsdWU6IHN0cmluZyB9KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICBpbWFnZTogJycsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplQ3VzdG9tT3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMT09LVVAnOlxuICAgICAgICB0aGlzLmxvb2t1cFRhYmxlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24ubG9va3VwVGFibGU7XG4gICAgICAgIHRoaXMuZmV0Y2hEYXRhRnJvbUxvb2t1cCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RBVEFCQVNFJzpcbiAgICAgICAgdGhpcy5kYXRhYmFzZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmRhdGFiYXNlO1xuICAgICAgICB0aGlzLmZldGNoRGF0YUZyb21EYXRhYmFzZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FQSSc6XG4gICAgICAgIHRoaXMuYXBpID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uYXBpO1xuICAgICAgICB0aGlzLmZldGNoRGF0YUZyb21BUEkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gb3B0aW9uIHR5cGU6JywgdGhpcy5vcHRpb25UeXBlKTtcbiAgICB9XG4gIH1cblxuICBpbml0aWFsaXplQ3VzdG9tT3B0aW9uKCkge1xuICAgICAgdGhpcy5jdXN0b21PcHRpb25zLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTWF0Y2ggPSB0aGlzLnF1ZXN0aW9uPy5hbnN3ZXI/LnNvbWUoKGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBhLnRyaW0oKS5zcGxpdCgnfCcpOyBcbiAgICAgICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHBhcnRzWzBdOyAgXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0c1sxXTsgIFxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlOyAgXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzTWF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5xdWVzdGlvbi5jaGlsZExvZ2ljcyAmJiB0aGlzLnF1ZXN0aW9uLmFuc3dlcil7XG4gICAgICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgXG4gICAgXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdHJhbnNmb3JtRGF0YWJhc2VPYmplY3QoZGF0YWJhc2U6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWJsZU5hbWU6IGRhdGFiYXNlLnRhYmxlTmFtZSxcbiAgICAgIHZhbHVlRmllbGQ6IGRhdGFiYXNlLnZhbHVlRmllbGQsXG4gICAgICBsYWJlbEZpZWxkOiBkYXRhYmFzZS5sYWJlbEZpZWxkLFxuICAgICAgY3JpdGVyaWE6IGRhdGFiYXNlLmNyaXRlcmlhLm1hcCgoY3JpdGVyaWE6IGFueSkgPT4gKHtcbiAgICAgICAgZmllbGQ6IGNyaXRlcmlhLmZpZWxkLFxuICAgICAgICB2YWx1ZVNvdXJjZTpjcml0ZXJpYT8udmFsdWVTb3VyY2UsXG4gICAgICAgIGNvbmRpdGlvbjogY3JpdGVyaWEuY29uZGl0aW9uLFxuICAgICAgICB2YWx1ZTogY3JpdGVyaWEuaW5wdXRWYWx1ZSxcbiAgICAgICAgbG9naWNhbE9wZXJhdG9yOiBjcml0ZXJpYS5sb2dpY2FsT3BlcmF0b3IsXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG5cbiAgZmV0Y2hEYXRhRnJvbURhdGFiYXNlKCkge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YWJhc2UgPSB0aGlzLnRyYW5zZm9ybURhdGFiYXNlT2JqZWN0KHRoaXMuZGF0YWJhc2UpO1xuICAgIHRoaXMuZm9ybVNlcnZpY2UuZmV0Y2hEYXRhRnJvbURhdGFiYXNlKHRyYW5zZm9ybWVkRGF0YWJhc2UpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IHJlc3BvbnNlLnJlc3VsdC5tYXAoXG4gICAgICAgICAgICAoaXRlbTogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0pID0+ICh7XG4gICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5hbnN3ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUN1c3RvbU9wdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBkYXRhIGZyb20gZGF0YWJhc2U6JywgcmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIVFRQIEVycm9yOicsIGVycm9yKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBmZXRjaERhdGFGcm9tTG9va3VwKCkge1xuICAgIHRoaXMuZm9ybVNlcnZpY2UuZmV0Y2hEYXRhRnJvbUxvb2t1cCh0aGlzLmxvb2t1cFRhYmxlKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gcmVzcG9uc2UucmVzdWx0LnZhbHVlcy5tYXAoXG4gICAgICAgICAgKGl0ZW06IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiAoe1xuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5hbnN3ZXIpIHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21PcHRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIVFRQIEVycm9yOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUFQSSgpIHtcbiAgICBjb25zdCBhcGlDb25maWcgPSB0aGlzLmFwaTtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmZldGNoRGF0YUZyb21FeHRlcm5hbEFQSShhcGlDb25maWcpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgaWYoYXBpQ29uZmlnLnBhdGhUb1ZhbHVlKSB7XG4gICAgICAgICAgZGF0YSA9IHRoaXMuZXh0cmFjdERhdGFCeVBhdGgocmVzcG9uc2UsIGFwaUNvbmZpZy5wYXRoVG9WYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLmN1c3RvbU9wdGlvbnMgPSBkYXRhLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgIHZhbHVlOiBpdGVtW2FwaUNvbmZpZy52YWx1ZUZpZWxkLnRyaW0oKV0sXG4gICAgICAgICAgbGFiZWw6IGl0ZW1bYXBpQ29uZmlnLmxhYmVsRmllbGQudHJpbSgpXSxcbiAgICAgICAgfSkpO1xuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5hbnN3ZXIpIHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxpemVDdXN0b21PcHRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIVFRQIEVycm9yOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZXh0cmFjdERhdGFCeVBhdGgoZGF0YTogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjLCBwYXJ0KSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBkYXRhKTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW1zKCkge1xuICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gdGhpcy5zZWxlY3RlZFZhbHVlLm1hcChpdGVtID0+IGAke2l0ZW0ubGFiZWx9fCR7aXRlbS52YWx1ZX1gKTtcbiAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciA9IHZhbHVlc0FycmF5OyAgXG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gZmFsc2U7XG4gICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICcnOyAgICBcbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCA9PSAwICYmIHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYFRoaXMgaXMgYSByZXF1aXJlZCBxdWVzdGlvbmA7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCA8IHRoaXMubWluaW11bVNlbGVjdGlvbiB8fFxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCA+IHRoaXMubWF4aW11bVNlbGVjdGlvblxuICAgICkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgc2VsZWN0ZWQgb3B0aW9ucyBtdXN0IGJlIGJldHdlZW4gJHt0aGlzLm1pbmltdW1TZWxlY3Rpb259ICYgJHt0aGlzLm1heGltdW1TZWxlY3Rpb259YDtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNoaWxkTG9naWNzKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkTG9naWNzKHRoaXMucXVlc3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNoaWxkTG9naWNzKHF1ZXN0aW9uOiBhbnkpIHtcbiAgICBpZiAocXVlc3Rpb24uY2hpbGRMb2dpY3MgJiYgQXJyYXkuaXNBcnJheShxdWVzdGlvbi5jaGlsZExvZ2ljcykpIHtcbiAgICAgIHF1ZXN0aW9uLmNoaWxkTG9naWNzLmZvckVhY2goKGNoaWxkTG9naWM6IGFueSkgPT4ge1xuICAgICAgICBpZih0aGlzLnNlbGVjdGlvblR5cGU9PSdTSU5HTEUnKXtcbiAgICAgICAgICBpZih0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoPT0wKXtcbiAgICAgICAgICAgIGNoaWxkTG9naWMuc2hvdz1mYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWU9dGhpcy5zZWxlY3RlZFZhbHVlWzBdPy5sYWJlbFxuICAgICAgICAgICAgY2hpbGRMb2dpYy5zaG93TG9naWMgPSB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKHNlbGVjdGVkVmFsdWUsIGNoaWxkTG9naWMuY29uZGl0aW9uLCBjaGlsZExvZ2ljLmlucHV0VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25UeXBlID09PSAnTVVMVElQTEUnKSB7XG4gICAgICAgICAgaWYodGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aD09MCl7XG4gICAgICAgICAgICBjaGlsZExvZ2ljLnNob3c9ZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5sYWJlbCk7XG4gICAgICAgICAgY2hpbGRMb2dpYy5zaG93TG9naWMgPSB0aGlzLmV2YWx1YXRlTXVsdGlwbGVDb25kaXRpb24oc2VsZWN0ZWRWYWx1ZXMsIGNoaWxkTG9naWMuY29uZGl0aW9uLCBjaGlsZExvZ2ljLmlucHV0VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZXZhbHVhdGVDb25kaXRpb24oYW5zd2VyOiBhbnksIGNvbmRpdGlvbjogc3RyaW5nLCBpbnB1dFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHJpbmdJbnB1dFZhbHVlID0gQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKSA/IGlucHV0VmFsdWUubWFwKHZhbCA9PiB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA6IGlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICBhbnN3ZXIgPSBBcnJheS5pc0FycmF5KGFuc3dlcikgPyBhbnN3ZXI/Lm1hcChhbnMgPT4gYW5zLnRvTG93ZXJDYXNlKCkpIDogYW5zd2VyLnRvTG93ZXJDYXNlKCk7XG4gICAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICAgIGNhc2UgXCIhPVwiOlxuICAgICAgICByZXR1cm4gYW5zd2VyICE9IGlucHV0VmFsdWU7XG4gICAgICBjYXNlIFwiPVwiOlxuICAgICAgICByZXR1cm4gYW5zd2VyID09IGlucHV0VmFsdWU7XG4gICAgICBjYXNlIFwiSU5cIjpcbiAgICAgICAgcmV0dXJuIHN0cmluZ0lucHV0VmFsdWUuaW5jbHVkZXMoYW5zd2VyKTtcbiAgICAgIGNhc2UgXCJOT1QgSU5cIjpcbiAgICAgICAgcmV0dXJuICFzdHJpbmdJbnB1dFZhbHVlLmluY2x1ZGVzKGFuc3dlcik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZXZhbHVhdGVNdWx0aXBsZUNvbmRpdGlvbihhbnN3ZXJzOiBhbnksIGNvbmRpdGlvbjogc3RyaW5nLCBpbnB1dFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHJpbmdJbnB1dFZhbHVlID0gQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKSA/IGlucHV0VmFsdWUubWFwKHZhbCA9PiB2YWwudG9TdHJpbmcoKSkgOiBpbnB1dFZhbHVlLnRvU3RyaW5nKCk7XG4gICAgYW5zd2VycyA9IEFycmF5LmlzQXJyYXkoYW5zd2VycykgPyBhbnN3ZXJzPy5tYXAoYW5zd2VyID0+IGFuc3dlci50b0xvd2VyQ2FzZSgpKSA6IGFuc3dlcnMudG9Mb3dlckNhc2UoKTtcbiAgICBzd2l0Y2ggKGNvbmRpdGlvbikge1xuICAgICAgY2FzZSBcIiE9XCI6XG4gICAgICAgIHJldHVybiBhbnN3ZXJzLmV2ZXJ5KChhbnN3ZXI6IGFueSkgPT4gYW5zd2VyICE9IHN0cmluZ0lucHV0VmFsdWUpO1xuICAgICAgY2FzZSBcIj1cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlcnMuc29tZSgoYW5zd2VyOiBhbnkpID0+IGFuc3dlciA9PSBzdHJpbmdJbnB1dFZhbHVlKTtcbiAgICAgIGNhc2UgXCJJTlwiOlxuICAgICAgICByZXR1cm4gYW5zd2Vycy5zb21lKChhbnN3ZXI6IGFueSkgPT4gc3RyaW5nSW5wdXRWYWx1ZS5pbmNsdWRlcyhhbnN3ZXIpKTtcbiAgICAgIGNhc2UgXCJOT1QgSU5cIjpcbiAgICAgICAgcmV0dXJuIGFuc3dlcnMuZXZlcnkoKGFuc3dlcjogYW55KSA9PiAhc3RyaW5nSW5wdXRWYWx1ZS5pbmNsdWRlcyhhbnN3ZXIpKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgIGNsYXNzPVwibWItNSBweC0zXCI+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyIG1iLTJcIj5cbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIj48L2Rpdj5cbiAgICAmbmJzcDsmbmJzcDsgPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbFxuICAgID4mbmJzcDtcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzdmctd3JhcHBlciBtYi0yIGhpbnRJY29uXCJcbiAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaGludFwiXG4gICAgICAqbmdJZj1cImhpbnRcIlxuICAgID5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJoaW50U3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAzMCAzMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMTUgMjYuMjVWMjYuMjVDOC43ODYyNSAyNi4yNSAzLjc1IDIxLjIxMzggMy43NSAxNVYxNUMzLjc1IDguNzg2MjUgOC43ODYyNSAzLjc1IDE1IDMuNzVWMy43NUMyMS4yMTM4IDMuNzUgMjYuMjUgOC43ODYyNSAyNi4yNSAxNVYxNUMyNi4yNSAyMS4yMTM4IDIxLjIxMzggMjYuMjUgMTUgMjYuMjVaXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE1IDE2LjU2MjNWMTYuMjQ5OEMxNSAxNS4yMjg1IDE1LjYzMTIgMTQuNjc0OCAxNi4yNjM3IDE0LjI0OThDMTYuODgxMiAxMy44MzM1IDE3LjUgMTMuMjkxIDE3LjUgMTIuMjkxQzE3LjUgMTAuOTA5OCAxNi4zODEzIDkuNzkxMDIgMTUgOS43OTEwMkMxMy42MTg3IDkuNzkxMDIgMTIuNSAxMC45MDk4IDEyLjUgMTIuMjkxXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE0Ljk5ODggMjBDMTQuODI2MyAyMCAxNC42ODYzIDIwLjE0IDE0LjY4NzUgMjAuMzEyNUMxNC42ODc1IDIwLjQ4NSAxNC44Mjc1IDIwLjYyNSAxNSAyMC42MjVDMTUuMTcyNSAyMC42MjUgMTUuMzEyNSAyMC40ODUgMTUuMzEyNSAyMC4zMTI1QzE1LjMxMjUgMjAuMTQgMTUuMTcyNSAyMCAxNC45OTg4IDIwXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSA8bGliLWRyb3Bkb3duXG4gICAgW2l0ZW1zXT1cImN1c3RvbU9wdGlvbnNcIlxuICAgIFttdWx0aXBsZV09XCJzZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJyA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgKGNsaWNrKT1cInNlbGVjdEl0ZW1zKClcIlxuICAgIFsoc2VsZWN0ZWRJdGVtcyldPVwic2VsZWN0ZWRWYWx1ZVwiXG4gID48L2xpYi1kcm9wZG93bj4gLS0+XG5cbiAgPGxpYi1kcm9wZG93blxuICAgIFtwbGFjZWhvbGRlcl09XCInc2VsZWN0J1wiXG4gICAgW2l0ZW1zXT1cImN1c3RvbU9wdGlvbnNcIlxuICAgIFttdWx0aXBsZV09XCJzZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJyA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgKGNsaWNrKT1cInNlbGVjdEl0ZW1zKClcIlxuICAgIFsoc2VsZWN0ZWRJdGVtcyldPVwic2VsZWN0ZWRWYWx1ZVwiXG4gID48L2xpYi1kcm9wZG93bj5cblxuICA8IS0tIChvbkRyb3Bkb3duU2Nyb2xsKT1cImdldE5leHRTZXRPZkl0ZW1zKCRldmVudClcIlxuICAob25TZWFyY2gpPVwic2VhcmNoKCRldmVudClcIiAtLT5cbiAgXG4gIDxkaXYgKm5nSWY9XCJ2YWxpZGF0aW9uRmFpbGVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtYi0yXCI+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ2YWxpZGF0aW9uU3ZnXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMi4wMDEgMTYuNzVDMTIuMTM5IDE2Ljc1IDEyLjI1MSAxNi42MzggMTIuMjUgMTYuNUMxMi4yNSAxNi4zNjIgMTIuMTM4IDE2LjI1IDEyIDE2LjI1QzExLjg2MiAxNi4yNSAxMS43NSAxNi4zNjIgMTEuNzUgMTYuNUMxMS43NSAxNi42MzggMTEuODYyIDE2Ljc1IDEyLjAwMSAxNi43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTIgMjFDNy4wMjkgMjEgMyAxNi45NzEgMyAxMkMzIDcuMDI5IDcuMDI5IDMgMTIgM0MxNi45NzEgMyAyMSA3LjAyOSAyMSAxMkMyMSAxNi45NzEgMTYuOTcxIDIxIDEyIDIxWlwiXG4gICAgICAgIGZpbGw9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMiAxMi43NUwxMiA3Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTZcIiByPVwiMVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgPC9zdmc+XG4gICAge3sgdmFsaWRhdGlvbk1lc3NhZ2UgfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|