@po-ui/ng-components 16.9.0 → 16.10.0
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/lib/components/po-field/po-select/po-select.component.mjs +72 -48
- package/esm2022/lib/components/po-search/po-search-base.component.mjs +19 -4
- package/esm2022/lib/components/po-search/po-search.component.mjs +76 -57
- package/esm2022/lib/components/po-search/po-search.module.mjs +5 -4
- package/esm2022/lib/utils/util.mjs +6 -1
- package/fesm2022/po-ui-ng-components.mjs +171 -108
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-field/po-select/po-select.component.d.ts +1 -0
- package/lib/components/po-search/po-search-base.component.d.ts +16 -3
- package/lib/components/po-search/po-search.component.d.ts +1 -3
- package/lib/components/po-search/po-search.module.d.ts +3 -2
- package/lib/utils/util.d.ts +1 -0
- package/package.json +4 -4
- package/po-ui-ng-components-16.10.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-16.9.0.tgz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { convertToBoolean, removeDuplicatedOptions, removeUndefinedAndNullOptions, uuid, validValue } from '../../../utils/util';
|
|
3
|
+
import { convertToBoolean, isSafari, removeDuplicatedOptions, removeUndefinedAndNullOptions, uuid, validValue } from '../../../utils/util';
|
|
4
4
|
import { PoFieldValidateModel } from '../po-field-validate.model';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
@@ -8,77 +8,104 @@ import * as i2 from "@angular/forms";
|
|
|
8
8
|
import * as i3 from "../po-field-container/po-field-container-bottom/po-field-container-bottom.component";
|
|
9
9
|
import * as i4 from "../po-field-container/po-field-container.component";
|
|
10
10
|
const _c0 = ["select"];
|
|
11
|
-
function
|
|
11
|
+
function PoSelectComponent_ng_container_4_option_1_Template(rf, ctx) { if (rf & 1) {
|
|
12
12
|
i0.ɵɵelementStart(0, "option", 8);
|
|
13
13
|
i0.ɵɵtext(1);
|
|
14
14
|
i0.ɵɵelementEnd();
|
|
15
15
|
} if (rf & 2) {
|
|
16
|
-
const
|
|
16
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
17
17
|
let tmp_3_0;
|
|
18
|
-
i0.ɵɵproperty("disabled", !!
|
|
18
|
+
i0.ɵɵproperty("disabled", !!ctx_r5.placeholder)("hidden", !(ctx_r5.selectedValue == null ? null : ctx_r5.selectedValue.toString()) && !ctx_r5.placeholder)("selected", !(ctx_r5.selectedValue == null ? null : ctx_r5.selectedValue.toString()))("value", (tmp_3_0 = ctx_r5.placeholder) !== null && tmp_3_0 !== undefined ? tmp_3_0 : "");
|
|
19
19
|
i0.ɵɵadvance(1);
|
|
20
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
20
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r5.placeholder, " ");
|
|
21
21
|
} }
|
|
22
|
-
function
|
|
22
|
+
function PoSelectComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelementContainerStart(0);
|
|
24
|
+
i0.ɵɵtemplate(1, PoSelectComponent_ng_container_4_option_1_Template, 2, 5, "option", 6);
|
|
25
|
+
i0.ɵɵelementStart(2, "option", 7);
|
|
26
|
+
i0.ɵɵtext(3);
|
|
27
|
+
i0.ɵɵelementEnd();
|
|
28
|
+
i0.ɵɵelementContainerEnd();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
31
|
+
i0.ɵɵadvance(1);
|
|
32
|
+
i0.ɵɵproperty("ngIf", !(ctx_r1.selectedValue == null ? null : ctx_r1.selectedValue.toString()) || !!ctx_r1.placeholder);
|
|
33
|
+
i0.ɵɵadvance(1);
|
|
34
|
+
i0.ɵɵproperty("hidden", true);
|
|
35
|
+
i0.ɵɵadvance(1);
|
|
36
|
+
i0.ɵɵtextInterpolate(ctx_r1.displayValue);
|
|
37
|
+
} }
|
|
38
|
+
function PoSelectComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementContainerStart(0);
|
|
40
|
+
i0.ɵɵelementStart(1, "option");
|
|
41
|
+
i0.ɵɵtext(2);
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
i0.ɵɵelementContainerEnd();
|
|
44
|
+
} if (rf & 2) {
|
|
45
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
46
|
+
i0.ɵɵadvance(2);
|
|
47
|
+
i0.ɵɵtextInterpolate(ctx_r2.displayValue || ctx_r2.placeholder);
|
|
48
|
+
} }
|
|
49
|
+
function PoSelectComponent_ng_container_6_option_1_Template(rf, ctx) { if (rf & 1) {
|
|
23
50
|
i0.ɵɵelementStart(0, "option", 10);
|
|
24
51
|
i0.ɵɵtext(1);
|
|
25
52
|
i0.ɵɵelementEnd();
|
|
26
53
|
} if (rf & 2) {
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
i0.ɵɵproperty("disabled",
|
|
54
|
+
const item_r7 = ctx.$implicit;
|
|
55
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
56
|
+
i0.ɵɵproperty("disabled", ctx_r6.readonly)("value", item_r7 == null ? null : item_r7[ctx_r6.fieldValue]);
|
|
30
57
|
i0.ɵɵadvance(1);
|
|
31
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
58
|
+
i0.ɵɵtextInterpolate1(" ", item_r7 == null ? null : item_r7[ctx_r6.fieldLabel], " ");
|
|
32
59
|
} }
|
|
33
|
-
function
|
|
60
|
+
function PoSelectComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
34
61
|
i0.ɵɵelementContainerStart(0);
|
|
35
|
-
i0.ɵɵtemplate(1,
|
|
62
|
+
i0.ɵɵtemplate(1, PoSelectComponent_ng_container_6_option_1_Template, 2, 3, "option", 9);
|
|
36
63
|
i0.ɵɵelementContainerEnd();
|
|
37
64
|
} if (rf & 2) {
|
|
38
|
-
const
|
|
65
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
39
66
|
i0.ɵɵadvance(1);
|
|
40
|
-
i0.ɵɵproperty("ngForOf",
|
|
67
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.optionWithoutGroup);
|
|
41
68
|
} }
|
|
42
|
-
function
|
|
69
|
+
function PoSelectComponent_ng_container_7_ng_container_1_optgroup_1_option_1_Template(rf, ctx) { if (rf & 1) {
|
|
43
70
|
i0.ɵɵelementStart(0, "option", 15);
|
|
44
71
|
i0.ɵɵtext(1);
|
|
45
72
|
i0.ɵɵelementEnd();
|
|
46
73
|
} if (rf & 2) {
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
i0.ɵɵproperty("value",
|
|
74
|
+
const subItem_r12 = ctx.$implicit;
|
|
75
|
+
const ctx_r11 = i0.ɵɵnextContext(4);
|
|
76
|
+
i0.ɵɵproperty("value", subItem_r12 == null ? null : subItem_r12[ctx_r11.fieldValue])("disabled", ctx_r11.readonly);
|
|
50
77
|
i0.ɵɵadvance(1);
|
|
51
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
78
|
+
i0.ɵɵtextInterpolate1(" ", subItem_r12 == null ? null : subItem_r12[ctx_r11.fieldLabel], " ");
|
|
52
79
|
} }
|
|
53
|
-
function
|
|
80
|
+
function PoSelectComponent_ng_container_7_ng_container_1_optgroup_1_Template(rf, ctx) { if (rf & 1) {
|
|
54
81
|
i0.ɵɵelementStart(0, "optgroup", 13);
|
|
55
|
-
i0.ɵɵtemplate(1,
|
|
82
|
+
i0.ɵɵtemplate(1, PoSelectComponent_ng_container_7_ng_container_1_optgroup_1_option_1_Template, 2, 3, "option", 14);
|
|
56
83
|
i0.ɵɵelementEnd();
|
|
57
84
|
} if (rf & 2) {
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
i0.ɵɵpropertyInterpolate("label",
|
|
61
|
-
i0.ɵɵproperty("disabled",
|
|
85
|
+
const item_r9 = i0.ɵɵnextContext().$implicit;
|
|
86
|
+
const ctx_r10 = i0.ɵɵnextContext(2);
|
|
87
|
+
i0.ɵɵpropertyInterpolate("label", item_r9 == null ? null : item_r9.label);
|
|
88
|
+
i0.ɵɵproperty("disabled", ctx_r10.readonly);
|
|
62
89
|
i0.ɵɵadvance(1);
|
|
63
|
-
i0.ɵɵproperty("ngForOf",
|
|
90
|
+
i0.ɵɵproperty("ngForOf", item_r9.options);
|
|
64
91
|
} }
|
|
65
|
-
function
|
|
92
|
+
function PoSelectComponent_ng_container_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
66
93
|
i0.ɵɵelementContainerStart(0);
|
|
67
|
-
i0.ɵɵtemplate(1,
|
|
94
|
+
i0.ɵɵtemplate(1, PoSelectComponent_ng_container_7_ng_container_1_optgroup_1_Template, 2, 3, "optgroup", 12);
|
|
68
95
|
i0.ɵɵelementContainerEnd();
|
|
69
96
|
} if (rf & 2) {
|
|
70
|
-
const
|
|
97
|
+
const item_r9 = ctx.$implicit;
|
|
71
98
|
i0.ɵɵadvance(1);
|
|
72
|
-
i0.ɵɵproperty("ngIf", (
|
|
99
|
+
i0.ɵɵproperty("ngIf", (item_r9 == null ? null : item_r9.options.length) > 0);
|
|
73
100
|
} }
|
|
74
|
-
function
|
|
101
|
+
function PoSelectComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
75
102
|
i0.ɵɵelementContainerStart(0);
|
|
76
|
-
i0.ɵɵtemplate(1,
|
|
103
|
+
i0.ɵɵtemplate(1, PoSelectComponent_ng_container_7_ng_container_1_Template, 2, 1, "ng-container", 11);
|
|
77
104
|
i0.ɵɵelementContainerEnd();
|
|
78
105
|
} if (rf & 2) {
|
|
79
|
-
const
|
|
106
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
80
107
|
i0.ɵɵadvance(1);
|
|
81
|
-
i0.ɵɵproperty("ngForOf",
|
|
108
|
+
i0.ɵɵproperty("ngForOf", ctx_r4.listGroupOptions);
|
|
82
109
|
} }
|
|
83
110
|
const PO_SELECT_FIELD_LABEL_DEFAULT = 'label';
|
|
84
111
|
const PO_SELECT_FIELD_VALUE_DEFAULT = 'value';
|
|
@@ -162,6 +189,7 @@ export class PoSelectComponent extends PoFieldValidateModel {
|
|
|
162
189
|
optionsDefault = [];
|
|
163
190
|
listGroupOptions = [];
|
|
164
191
|
optionWithoutGroup = [];
|
|
192
|
+
isSafari = isSafari();
|
|
165
193
|
onModelTouched;
|
|
166
194
|
_fieldLabel = PO_SELECT_FIELD_LABEL_DEFAULT;
|
|
167
195
|
_fieldValue = PO_SELECT_FIELD_VALUE_DEFAULT;
|
|
@@ -412,17 +440,15 @@ export class PoSelectComponent extends PoFieldValidateModel {
|
|
|
412
440
|
useExisting: forwardRef(() => PoSelectComponent),
|
|
413
441
|
multi: true
|
|
414
442
|
}
|
|
415
|
-
]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls:
|
|
443
|
+
]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 9, vars: 18, consts: [[3, "p-disabled", "p-id", "p-label", "p-optional", "p-required", "p-show-required"], [1, "po-field-container-content"], [1, "po-select", 3, "disabled", "id", "required", "change"], ["select", ""], [4, "ngIf"], [3, "p-help", "p-disabled"], [3, "disabled", "hidden", "selected", "value", 4, "ngIf"], [3, "hidden"], [3, "disabled", "hidden", "selected", "value"], [3, "disabled", "value", 4, "ngFor", "ngForOf"], [3, "disabled", "value"], [4, "ngFor", "ngForOf"], [3, "label", "disabled", 4, "ngIf"], [3, "label", "disabled"], [3, "value", "disabled", 4, "ngFor", "ngForOf"], [3, "value", "disabled"]], template: function PoSelectComponent_Template(rf, ctx) { if (rf & 1) {
|
|
416
444
|
i0.ɵɵelementStart(0, "po-field-container", 0)(1, "div", 1)(2, "select", 2, 3);
|
|
417
445
|
i0.ɵɵlistener("change", function PoSelectComponent_Template_select_change_2_listener($event) { return ctx.onSelectChange($event.target.value); });
|
|
418
|
-
i0.ɵɵtemplate(4,
|
|
419
|
-
i0.ɵɵ
|
|
420
|
-
i0.ɵɵ
|
|
421
|
-
i0.ɵɵ
|
|
422
|
-
i0.ɵɵtemplate(7, PoSelectComponent_ng_container_7_Template, 2, 1, "ng-container", 6);
|
|
423
|
-
i0.ɵɵtemplate(8, PoSelectComponent_ng_container_8_Template, 2, 1, "ng-container", 6);
|
|
446
|
+
i0.ɵɵtemplate(4, PoSelectComponent_ng_container_4_Template, 4, 3, "ng-container", 4);
|
|
447
|
+
i0.ɵɵtemplate(5, PoSelectComponent_ng_container_5_Template, 3, 1, "ng-container", 4);
|
|
448
|
+
i0.ɵɵtemplate(6, PoSelectComponent_ng_container_6_Template, 2, 1, "ng-container", 4);
|
|
449
|
+
i0.ɵɵtemplate(7, PoSelectComponent_ng_container_7_Template, 2, 1, "ng-container", 4);
|
|
424
450
|
i0.ɵɵelementEnd()();
|
|
425
|
-
i0.ɵɵelement(
|
|
451
|
+
i0.ɵɵelement(8, "po-field-container-bottom", 5);
|
|
426
452
|
i0.ɵɵelementEnd();
|
|
427
453
|
} if (rf & 2) {
|
|
428
454
|
i0.ɵɵproperty("p-disabled", ctx.disabled)("p-id", ctx.id)("p-label", ctx.label)("p-optional", ctx.optional)("p-required", ctx.required)("p-show-required", ctx.showRequired);
|
|
@@ -431,11 +457,9 @@ export class PoSelectComponent extends PoFieldValidateModel {
|
|
|
431
457
|
i0.ɵɵproperty("disabled", ctx.disabled)("id", ctx.id)("required", ctx.required);
|
|
432
458
|
i0.ɵɵattribute("name", ctx.name);
|
|
433
459
|
i0.ɵɵadvance(2);
|
|
434
|
-
i0.ɵɵproperty("ngIf", !
|
|
435
|
-
i0.ɵɵadvance(1);
|
|
436
|
-
i0.ɵɵproperty("hidden", true);
|
|
460
|
+
i0.ɵɵproperty("ngIf", !ctx.isSafari);
|
|
437
461
|
i0.ɵɵadvance(1);
|
|
438
|
-
i0.ɵɵ
|
|
462
|
+
i0.ɵɵproperty("ngIf", ctx.isSafari);
|
|
439
463
|
i0.ɵɵadvance(1);
|
|
440
464
|
i0.ɵɵproperty("ngIf", ctx.optionWithoutGroup.length > 0);
|
|
441
465
|
i0.ɵɵadvance(1);
|
|
@@ -457,7 +481,7 @@ export class PoSelectComponent extends PoFieldValidateModel {
|
|
|
457
481
|
useExisting: forwardRef(() => PoSelectComponent),
|
|
458
482
|
multi: true
|
|
459
483
|
}
|
|
460
|
-
], template: "<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n>\n <div class=\"po-field-container-content\">\n <select\n #select\n class=\"po-select\"\n [attr.name]=\"name\"\n [class.po-select-placeholder]=\"!selectedValue?.toString() && !!placeholder\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [required]=\"required\"\n (change)=\"onSelectChange($event.target.value)\"\n >\n <option\n
|
|
484
|
+
], template: "<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n>\n <div class=\"po-field-container-content\">\n <select\n #select\n class=\"po-select\"\n [attr.name]=\"name\"\n [class.po-select-placeholder]=\"!selectedValue?.toString() && !!placeholder\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [required]=\"required\"\n (change)=\"onSelectChange($event.target.value)\"\n >\n <ng-container *ngIf=\"!isSafari\">\n <option\n *ngIf=\"!selectedValue?.toString() || !!placeholder\"\n [disabled]=\"!!placeholder\"\n [hidden]=\"!selectedValue?.toString() && !placeholder\"\n [selected]=\"!selectedValue?.toString()\"\n [value]=\"placeholder ?? ''\"\n >\n {{ placeholder }}\n </option>\n <option [hidden]=\"true\">{{ displayValue }}</option>\n </ng-container>\n\n <ng-container *ngIf=\"isSafari\">\n <option>{{ displayValue || placeholder }}</option>\n </ng-container>\n\n <ng-container *ngIf=\"optionWithoutGroup.length > 0\">\n <option *ngFor=\"let item of optionWithoutGroup\" [disabled]=\"readonly\" [value]=\"item?.[this.fieldValue]\">\n {{ item?.[this.fieldLabel] }}\n </option>\n </ng-container>\n <ng-container *ngIf=\"listGroupOptions.length > 0\">\n <ng-container *ngFor=\"let item of listGroupOptions\">\n <optgroup *ngIf=\"item?.options.length > 0\" label=\"{{ item?.label }}\" [disabled]=\"readonly\">\n <option *ngFor=\"let subItem of item.options\" [value]=\"subItem?.[this.fieldValue]\" [disabled]=\"readonly\">\n {{ subItem?.[this.fieldLabel] }}\n </option>\n </optgroup>\n </ng-container>\n </ng-container>\n </select>\n </div>\n\n <po-field-container-bottom [p-help]=\"help\" [p-disabled]=\"disabled\"></po-field-container-bottom>\n</po-field-container>\n" }]
|
|
461
485
|
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, { selectElement: [{
|
|
462
486
|
type: ViewChild,
|
|
463
487
|
args: ['select', { read: ElementRef, static: true }]
|
|
@@ -480,4 +504,4 @@ export class PoSelectComponent extends PoFieldValidateModel {
|
|
|
480
504
|
type: Input,
|
|
481
505
|
args: ['p-field-value']
|
|
482
506
|
}] }); })();
|
|
483
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsNkJBQTZCLEVBQzdCLElBQUksRUFDSixVQUFVLEVBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7SUNMNUQsaUNBTUM7SUFDQyxZQUNGO0lBQUEsaUJBQVM7Ozs7SUFOUCwrQ0FBMEIsMkdBQUEsc0ZBQUEsMEZBQUE7SUFLMUIsZUFDRjtJQURFLG1EQUNGOzs7SUFNRSxrQ0FBd0c7SUFDdEcsWUFDRjtJQUFBLGlCQUFTOzs7O0lBRnVDLDBDQUFxQiw4REFBQTtJQUNuRSxlQUNGO0lBREUsb0ZBQ0Y7OztJQUhGLDZCQUFvRDtJQUNsRCx1RkFFUztJQUNYLDBCQUFlOzs7SUFIWSxlQUFxQjtJQUFyQixtREFBcUI7OztJQU8xQyxrQ0FBd0c7SUFDdEcsWUFDRjtJQUFBLGlCQUFTOzs7O0lBRm9DLG1GQUFvQyw2QkFBQTtJQUMvRSxl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QWU7WUFrREUsT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBMENVLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQW9CTSxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgY29udmVydFRvQm9vbGVhbixcbiAgcmVtb3ZlRHVwbGljYXRlZE9wdGlvbnMsXG4gIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxPcHRpb25zLFxuICB1dWlkLFxuICB2YWxpZFZhbHVlXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb0ZpZWxkVmFsaWRhdGVNb2RlbCB9IGZyb20gJy4uL3BvLWZpZWxkLXZhbGlkYXRlLm1vZGVsJztcbmltcG9ydCB7IFBvU2VsZWN0T3B0aW9uR3JvdXAgfSBmcm9tICcuL3BvLXNlbGVjdC1vcHRpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9wby1zZWxlY3Qtb3B0aW9uLmludGVyZmFjZSc7XG5cbmNvbnN0IFBPX1NFTEVDVF9GSUVMRF9MQUJFTF9ERUZBVUxUID0gJ2xhYmVsJztcbmNvbnN0IFBPX1NFTEVDVF9GSUVMRF9WQUxVRV9ERUZBVUxUID0gJ3ZhbHVlJztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9GaWVsZFZhbGlkYXRlTW9kZWxcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1zZWxlY3QtYmFzaWNcIiB0aXRsZT1cIlBPIFNlbGVjdCBCYXNpY1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1iYXNpYy9zYW1wbGUtcG8tc2VsZWN0LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtYmFzaWMvc2FtcGxlLXBvLXNlbGVjdC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1zZWxlY3QtbGFic1wiIHRpdGxlPVwiUE8gU2VsZWN0IExhYnNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtbGFicy9zYW1wbGUtcG8tc2VsZWN0LWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1sYWJzL3NhbXBsZS1wby1zZWxlY3QtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uXCIgdGl0bGU9XCJQTyBTZWxlY3QgLSBDdXN0b21lciByZWdpc3RyYXRpb25cIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uL3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uL3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT0nc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uY29tcG9uZW50LmUyZS1zcGVjLnRzJz4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPSdzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQucG8udHMnPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXNlbGVjdC1jb21wYW5pZXNcIiB0aXRsZT1cIlBPIFNlbGVjdCBDb21wYW5pZXNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtY29tcGFuaWVzL3NhbXBsZS1wby1zZWxlY3QtY29tcGFuaWVzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtY29tcGFuaWVzL3NhbXBsZS1wby1zZWxlY3QtY29tcGFuaWVzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIHBvLXNlbGVjdCBleGliZSB1bWEgbGlzdGEgZGUgdmFsb3JlcyBlIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gc2VsZWNpb25lIHVtIGRlc3NlcyB2YWxvcmVzLlxuICogT3MgdmFsb3JlcyBsaXN0YWRvcyBwb2RlbSBzZXIgZml4b3Mgb3UgZGluw6JtaWNvcyBkZSBhY29yZG8gY29tIGEgbmVjZXNzaWRhZGUgZG8gZGVzZW52b2x2ZWRvciwgZGFuZG8gbWFpcyBmbGV4aWJpbGlkYWRlIGFvIGNvbXBvbmVudGUuXG4gKiBPIHBvLXNlbGVjdCBuw6NvIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gaW5mb3JtZSB1bSB2YWxvciBkaWZlcmVudGUgZG9zIHZhbG9yZXMgbGlzdGFkb3MsIGlzc28gZ2FyYW50ZSBhIGNvbnNpc3TDqm5jaWEgZGEgaW5mb3JtYcOnw6NvLlxuICogTyBwby1zZWxlY3QgbsOjbyBwZXJtaXRlIHF1ZSBzZWphbSBwYXNzYWRvcyB2YWxvcmVzIGR1cGxpY2Fkb3MsIHVuZGVmaW5lZCBlIG51bGwgcGFyYSBhcyBvcMOnw7VlcywgZXhjbHVpbmRvLW9zIGRhIGxpc3RhLlxuICpcbiAqID4gQW8gcGFzc2FyIHVtIHZhbG9yIHBhcmEgbyBfbW9kZWxfIHF1ZSBuw6NvIGVzdMOhIG5hIGxpc3RhIGRlIG9ww6fDtWVzLCBvIG1lc21vIHNlcsOhIGRlZmluaWRvIGNvbW8gYHVuZGVmaW5lZGAuXG4gKlxuICogVGFtYsOpbSBleGlzdGUgYSBwb3NzaWJpbGlkYWRlIGRlIHV0aWxpemFyIHVtIF90ZW1wbGF0ZV8gcGFyYSBhIGV4aWJpw6fDo28gZG9zIGl0ZW5zIGRhIGxpc3RhLFxuICogdmVqYSBtYWlzIGVtICoqW3AtY29tYm8tb3B0aW9uLXRlbXBsYXRlXSgvZG9jdW1lbnRhdGlvbi9wby1jb21iby1vcHRpb24tdGVtcGxhdGUpKiouXG4gKlxuICogPiBPYnM6IG8gdGVtcGxhdGUgKipbcC1zZWxlY3Qtb3B0aW9uLXRlbXBsYXRlXSgvZG9jdW1lbnRhdGlvbi9wby1zZWxlY3Qtb3B0aW9uLXRlbXBsYXRlKSoqIHNlcsOhIGRlcHJlY2lhZG8gbmEgdmVyc8OjbyAxNC54LnguXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb1NlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBvU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgUG9GaWVsZFZhbGlkYXRlTW9kZWw8YW55PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcGFyYSBhdHVhbGl6YXIgbyBuZ01vZGVsIGRvIGNvbXBvbmVudGUsIG5lY2Vzc8OhcmlvIHF1YW5kbyBuw6NvIGZvciB1dGlsaXphZG8gZGVudHJvIGRhIHRhZyBmb3JtLlxuICAgKlxuICAgKiBOYSB2ZXJzw6NvIDEyLjIuMCBkbyBBbmd1bGFyIGEgdmVyaWZpY2HDp8OjbyBgc3RyaWN0VGVtcGxhdGVzYCB2ZW0gdHJ1ZSBjb21vIGRlZmF1bHQuIFBvcnRhbnRvLCBwYXJhIHV0aWxpemFyXG4gICAqIHR3by13YXkgYmluZGluZyBubyBjb21wb25lbnRlIGRldmUgc2UgdXRpbGl6YXIgZGEgc2VndWludGUgZm9ybWE6XG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tc2VsZWN0IC4uLiBbbmdNb2RlbF09XCJzZWxlY3RNb2RlbFwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdE1vZGVsID0gJGV2ZW50XCI+IDwvcG8tc2VsZWN0PlxuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoJ25nTW9kZWxDaGFuZ2UnKSBuZ01vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBxdWUgbyBjYW1wbyBzZXLDoSBzb21lbnRlIHBhcmEgbGVpdHVyYS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLXJlYWRvbmx5JywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE1lbnNhZ2VtIHF1ZSBhcGFyZWNlcsOhIGVucXVhbnRvIG5lbmh1bWEgb3DDp8OjbyBlc3RpdmVyIHNlbGVjaW9uYWRhLiAqL1xuICBASW5wdXQoJ3AtcGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICBkaXNwbGF5VmFsdWU7XG4gIGlkID0gYHBvLXNlbGVjdFske3V1aWQoKX1dYDtcbiAgbW9kZWxWYWx1ZTogYW55O1xuICBzZWxlY3RlZFZhbHVlOiBhbnk7XG4gIG9wdGlvbnNEZWZhdWx0ID0gW107XG4gIGxpc3RHcm91cE9wdGlvbnMgPSBbXTtcbiAgb3B0aW9uV2l0aG91dEdyb3VwID0gW107XG5cbiAgcHJvdGVjdGVkIG9uTW9kZWxUb3VjaGVkOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZmllbGRMYWJlbD86IHN0cmluZyA9IFBPX1NFTEVDVF9GSUVMRF9MQUJFTF9ERUZBVUxUO1xuICBwcml2YXRlIF9maWVsZFZhbHVlPzogc3RyaW5nID0gUE9fU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQ7XG4gIHByaXZhdGUgX29wdGlvbnM6IEFycmF5PFBvU2VsZWN0T3B0aW9uPiB8IEFycmF5PFBvU2VsZWN0T3B0aW9uR3JvdXA+IHwgQXJyYXk8YW55PjtcblxuICAvKipcbiAgICogTmVzdGEgcHJvcHJpZWRhZGUgZGV2ZSBzZXIgZGVmaW5pZG8gdW1hIGNvbGXDp8OjbyBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBgUG9TZWxlY3RPcHRpb25gLFxuICAgKiBvdSB1bWEgY29sZcOnw6NvIGRlIG9iamV0b3MgZGVudHJvIGRlIGdydXBvcyBkaWZlcmVudGVzLCBxdWUgc2VyaWFtIGRhIGludGVyZmFjZSBgUG9TZWxlY3RPcHRpb25Hcm91cGAuXG4gICAqXG4gICAqIENhc28gZXN0YSBsaXN0YSBlc3RpdmVyIHZhemlhLCBvIG1vZGVsIHNlcsOhIGB1bmRlZmluZWRgLlxuICAgKlxuICAgKiA+IEVzc2EgcHJvcHJpZWRhZGUgw6kgaW11dMOhdmVsLCBvdSBzZWphLCBzZW1wcmUgcXVlIHF1aXNlciBhdHVhbGl6YXIgYSBsaXN0YSBkZSBvcMOnw7VlcyBkaXNwb27DrXZlaXNcbiAgICogYXR1YWxpemUgYSByZWZlcsOqbmNpYSBkbyBvYmpldG86XG4gICAqXG4gICAqIGBgYFxuICAgKiAvLyBhdHVhbGl6YSBhIHJlZmVyw6puY2lhIGRvIG9iamV0byBnYXJhbnRpbmRvIGEgYXR1YWxpemHDp8OjbyBkbyB0ZW1wbGF0ZVxuICAgKiB0aGlzLm9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zLCB7IHZhbHVlOiAneCcsIGxhYmVsOiAnTm92YSBvcMOnw6NvJyB9XTtcbiAgICpcbiAgICogLy8gZXZpdGUsIHBvaXMgbsOjbyBhdHVhbGl6YSBhIHJlZmVyw6puY2lhIGRvIG9iamV0byBwb2RlbmRvIGdlcmFyIGF0cmFzb3MgbmEgYXR1YWxpemHDp8OjbyBkbyB0ZW1wbGF0ZVxuICAgKiB0aGlzLm9wdGlvbnMucHVzaCh7IHZhbHVlOiAneCcsIGxhYmVsOiAnTm92YSBvcMOnw6NvJyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqID4gUGFyYSBjb2xlw6fDo28gZGUgb2JqZXRvcyBkZW50cm8gZGUgZ3J1cG9zIGRpc3RpbnRvcyBzZXLDoSBleGliaWRvIGEgbGFiZWwgZSBvcMOnw7VlcyBzb21lbnRlIHNlIGEgcHJvcHJpZWRhZGUgYG9wdGlvbnNgIHBvc3N1YSB2YWxvcmVzLlxuICAgKiAgU2VuZG8gYXNzaW0sIGEgZXN0cnV0dXJhIHNlZ3VpcmlhIGRlc3NhIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogdGhpcy5vcHRpb25zID0gW3tcbiAgICogIGxhYmVsOiAnT3DDp8O1ZXMnLFxuICAgKiAgb3B0aW9uczogW1xuICAgKiAgICB7IHZhbHVlOiAxLCBsYWJlbDogJ29ww6fDo28gMScgfSxcbiAgICogICAgeyB2YWx1ZTogMiwgbGFiZWw6ICdvcMOnw6NvIDInIH1cbiAgICogIF0sXG4gICAqIH1dO1xuICAgKiBgYGBcbiAgICpcbiAgICogw4kgcG9zc8OtdmVsIGEgdXRpbGl6YcOnw6NvIGRlIG9ww6fDtWVzIGFncnVwYWRhcyBlIGRlc2FncnVwYWRhcyBlbSBjb25qdW50bywgcG9yw6ltIHNlcsOhIGZlaXRhIGEgb3JkZW5hw6fDo28gZGUgZXhpYmlyIGFzIG9ww6fDtWVzXG4gICAqIGRlc2FncnVwYWRhcyBhY2ltYS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25zJykgc2V0IG9wdGlvbnMob3B0aW9uczogQXJyYXk8UG9TZWxlY3RPcHRpb24gfCBQb1NlbGVjdE9wdGlvbkdyb3VwIHwgYW55Pikge1xuICAgIHRoaXMubGlzdEdyb3VwT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMub3B0aW9uV2l0aG91dEdyb3VwID0gW107XG5cbiAgICBpZiAodGhpcy5maWVsZExhYmVsICYmIHRoaXMuZmllbGRWYWx1ZSAmJiBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0l0ZW1Hcm91cChvcHRpb24pKSB7XG4gICAgICAgICAgb3B0aW9uLm9wdGlvbnMubWFwKG9wdCA9PiB7XG4gICAgICAgICAgICBvcHQubGFiZWwgPSBvcHRbdGhpcy5maWVsZExhYmVsXTtcbiAgICAgICAgICAgIG9wdC52YWx1ZSA9IG9wdFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbi5sYWJlbCA9IG9wdGlvblt0aGlzLmZpZWxkTGFiZWxdO1xuICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zRGVmYXVsdCA9IFsuLi5vcHRpb25zXTtcbiAgICAgIHRoaXMuc2VwYXJhdGVPcHRpb25zKCk7XG5cbiAgICAgIHRoaXMub3B0aW9uc0RlZmF1bHQgPSBbXTtcbiAgICAgIHRoaXMub3B0aW9uc0RlZmF1bHQgPSBbLi4udGhpcy5vcHRpb25XaXRob3V0R3JvdXAsIC4uLnRoaXMudHJhbnNmb3JtSW5BcnJheSh0aGlzLmxpc3RHcm91cE9wdGlvbnMpXTtcbiAgICAgIHRoaXMub25VcGRhdGVPcHRpb25zKCk7XG4gICAgICB0aGlzLl9vcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc0RlZmF1bHRdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIG8gbm9tZSBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIGEgY29udmVyc8OjbyBkb3MgaXRlbnMgYXByZXNlbnRhZG9zIG5hIGxpc3RhIGRvIGNvbXBvbmVudGVcbiAgICogKGBwLW9wdGlvbnNgKSwgZXN0YSBwcm9wcmllZGFkZSBzZXLDoSByZXNwb25zw6F2ZWwgcGVsbyB0ZXh0byBkZSBhcHJlc2VudGHDp8OjbyBkZSBjYWRhIGl0ZW0gZGEgbGlzdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBsYWJlbGBcbiAgICovXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIHNldCBmaWVsZExhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWVsZExhYmVsID0gdmFsdWUgfHwgUE9fU0VMRUNUX0ZJRUxEX0xBQkVMX0RFRkFVTFQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc107XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpZWxkTGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZVxuICAgKiAoYHAtb3B0aW9uc2ApLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHZhbG9yIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHZhbHVlYFxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgc2V0IGZpZWxkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpZWxkVmFsdWUgPSB2YWx1ZSB8fCBQT19TRUxFQ1RfRklFTERfVkFMVUVfREVGQVVMVDtcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmllbGRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRWYWx1ZTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBjaGFuZ2VzLm9wdGlvbnMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9TZWxlY3RDb21wb25lbnQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gICAqXG4gICAqIC4uLlxuICAgKlxuICAgKiBAVmlld0NoaWxkKFBvU2VsZWN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3Q6IFBvU2VsZWN0Q29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c1NlbGVjdCgpIHtcbiAgICogICB0aGlzLnNlbGVjdC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkPy4oKTtcbiAgfVxuXG4gIC8vIEFsdGVyYSBvIHZhbG9yIGFvIHNlbGVjaW9uYXIgdW0gaXRlbS5cbiAgb25TZWxlY3RDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQ/LigpO1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3B0aW9uRm91bmQ6IGFueSA9IHRoaXMuZmluZE9wdGlvblZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKG9wdGlvbkZvdW5kKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVzKG9wdGlvbkZvdW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblVwZGF0ZU9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZSh0aGlzLm1vZGVsVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF0dWFsaXphIHZhbG9yZXNcbiAgdXBkYXRlVmFsdWVzKG9wdGlvbjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAhPT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwob3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZExhYmVsXTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZShvcHRpb25bdGhpcy5maWVsZFZhbHVlXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVjZWJlIGFzIGFsdGVyYcOnw7VlcyBkbyBtb2RlbFxuICBvbldyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbkZvdW5kOiBhbnkgPSB0aGlzLmZpbmRPcHRpb25WYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAob3B0aW9uRm91bmQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb3B0aW9uRm91bmQudmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb25Gb3VuZFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBvcHRpb25Gb3VuZFt0aGlzLmZpZWxkTGFiZWxdO1xuICAgIH0gZWxzZSBpZiAodmFsaWRWYWx1ZSh0aGlzLnNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZXh0cmFWYWxpZGF0aW9uKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaXNJdGVtR3JvdXAoaXRlbTogUG9TZWxlY3RPcHRpb24gfCBQb1NlbGVjdE9wdGlvbkdyb3VwIHwgYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGl0ZW0ub3B0aW9ucykge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbS5vcHRpb25zKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgaXNFcXVhbCh2YWx1ZTogYW55LCBpbnB1dFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoKHZhbHVlIHx8IHZhbHVlID09PSAwKSAmJiBpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKSA9PT0gaW5wdXRWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICgodmFsdWUgPT09IG51bGwgJiYgaW5wdXRWYWx1ZSAhPT0gbnVsbCkgfHwgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgaW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgdmFsdWUgPSBgJHt2YWx1ZX1gOyAvLyBUcmFuc2Zvcm1hbmRvIGVtIHN0cmluZ1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSA9PT0gaW5wdXRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9wdGlvblZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQob3B0aW9uID0+IHRoaXMuaXNFcXVhbChvcHRpb24udmFsdWUsIHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1JbkFycmF5KG9iamVjdFdpdGhBcnJheTogQXJyYXk8YW55Pik6IEFycmF5PFBvU2VsZWN0T3B0aW9uR3JvdXAgfCBhbnk+IHtcbiAgICByZXR1cm4gb2JqZWN0V2l0aEFycmF5LnJlZHVjZSgob3B0aW9ucywgaXRlbXMpID0+IHtcbiAgICAgIGlmIChpdGVtcy5vcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmNvbmNhdChpdGVtcy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIHNlcGFyYXRlT3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnNEZWZhdWx0LmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLmlzSXRlbUdyb3VwKG9wdGlvbikpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZU9wdGlvbnMob3B0aW9uLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLmxpc3RHcm91cE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25XaXRob3V0R3JvdXAucHVzaChvcHRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9uV2l0aG91dEdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKHRoaXMub3B0aW9uV2l0aG91dEdyb3VwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zOiBBcnJheTxhbnk+KSB7XG4gICAgcmVtb3ZlRHVwbGljYXRlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbE9wdGlvbnMob3B0aW9ucyk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1pZF09XCJpZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPHNlbGVjdFxuICAgICAgI3NlbGVjdFxuICAgICAgY2xhc3M9XCJwby1zZWxlY3RcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFtjbGFzcy5wby1zZWxlY3QtcGxhY2Vob2xkZXJdPVwiIXNlbGVjdGVkVmFsdWU/LnRvU3RyaW5nKCkgJiYgISFwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICA+XG4gICAgICA8b3B0aW9uXG4gICAgICAgICpuZ0lmPVwiIXNlbGVjdGVkVmFsdWU/LnRvU3RyaW5nKCkgfHwgISFwbGFjZWhvbGRlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhIXBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2hpZGRlbl09XCIhc2VsZWN0ZWRWYWx1ZT8udG9TdHJpbmcoKSAmJiAhcGxhY2Vob2xkZXJcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiIXNlbGVjdGVkVmFsdWU/LnRvU3RyaW5nKClcIlxuICAgICAgICBbdmFsdWVdPVwicGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9vcHRpb24+XG4gICAgICA8IS0tIG5lY2Vzc8OhcmlvIG1hbnRlciBlc3NhIG9wdGlvbiBwYXJhIHVzbyBkbyBzZWxlY3QgY29tIFJlYWN0aXZlRm9ybXMgLS0+XG4gICAgICA8b3B0aW9uIFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgICAgICB7eyBkaXNwbGF5VmFsdWUgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbldpdGhvdXRHcm91cC5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uV2l0aG91dEdyb3VwXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW3ZhbHVlXT1cIml0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdXCI+XG4gICAgICAgICAge3sgaXRlbT8uW3RoaXMuZmllbGRMYWJlbF0gfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0R3JvdXBPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0R3JvdXBPcHRpb25zXCI+XG4gICAgICAgICAgPG9wdGdyb3VwICpuZ0lmPVwiaXRlbT8ub3B0aW9ucy5sZW5ndGggPiAwXCIgbGFiZWw9XCJ7eyBpdGVtPy5sYWJlbCB9fVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtLm9wdGlvbnNcIiBbdmFsdWVdPVwic3ViSXRlbT8uW3RoaXMuZmllbGRWYWx1ZV1cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAge3sgc3ViSXRlbT8uW3RoaXMuZmllbGRMYWJlbF0gIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L29wdGdyb3VwPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8cG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBbcC1oZWxwXT1cImhlbHBcIiBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvcG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT5cbjwvcG8tZmllbGQtY29udGFpbmVyPlxuIl19
|
|
507
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osVUFBVSxFQUNYLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0lDTDFELGlDQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFTOzs7O0lBTlAsK0NBQTBCLDJHQUFBLHNGQUFBLDBGQUFBO0lBSzFCLGVBQ0Y7SUFERSxtREFDRjs7O0lBVEYsNkJBQWdDO0lBQzlCLHVGQVFTO0lBQ1QsaUNBQXdCO0lBQUEsWUFBa0I7SUFBQSxpQkFBUztJQUNyRCwwQkFBZTs7O0lBVFYsZUFBaUQ7SUFBakQsdUhBQWlEO0lBUTVDLGVBQWU7SUFBZiw2QkFBZTtJQUFDLGVBQWtCO0lBQWxCLHlDQUFrQjs7O0lBRzVDLDZCQUErQjtJQUM3Qiw4QkFBUTtJQUFBLFlBQWlDO0lBQUEsaUJBQVM7SUFDcEQs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QUd3RCxhQUFhO2tCQUFyRSxTQUFTO21CQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQWdCOUIsYUFBYTtrQkFBckMsTUFBTTttQkFBQyxlQUFlO1lBV3NDLFFBQVE7a0JBQXBFLEtBQUs7bUJBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUduQyxXQUFXO2tCQUFsQyxLQUFLO21CQUFDLGVBQWU7WUFtREUsT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBMENVLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQW9CTSxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgY29udmVydFRvQm9vbGVhbixcbiAgaXNTYWZhcmksXG4gIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zLFxuICByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9ucyxcbiAgdXVpZCxcbiAgdmFsaWRWYWx1ZVxufSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9GaWVsZFZhbGlkYXRlTW9kZWwgfSBmcm9tICcuLi9wby1maWVsZC12YWxpZGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBQb1NlbGVjdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9wby1zZWxlY3Qtb3B0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1NlbGVjdE9wdGlvbiB9IGZyb20gJy4vcG8tc2VsZWN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuXG5jb25zdCBQT19TRUxFQ1RfRklFTERfTEFCRUxfREVGQVVMVCA9ICdsYWJlbCc7XG5jb25zdCBQT19TRUxFQ1RfRklFTERfVkFMVUVfREVGQVVMVCA9ICd2YWx1ZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvRmllbGRWYWxpZGF0ZU1vZGVsXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWJhc2ljXCIgdGl0bGU9XCJQTyBTZWxlY3QgQmFzaWNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtYmFzaWMvc2FtcGxlLXBvLXNlbGVjdC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWJhc2ljL3NhbXBsZS1wby1zZWxlY3QtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWxhYnNcIiB0aXRsZT1cIlBPIFNlbGVjdCBMYWJzXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWxhYnMvc2FtcGxlLXBvLXNlbGVjdC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtbGFicy9zYW1wbGUtcG8tc2VsZWN0LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvblwiIHRpdGxlPVwiUE8gU2VsZWN0IC0gQ3VzdG9tZXIgcmVnaXN0cmF0aW9uXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9J3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uL3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5lMmUtc3BlYy50cyc+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT0nc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uY29tcG9uZW50LnBvLnRzJz4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1zZWxlY3QtY29tcGFuaWVzXCIgdGl0bGU9XCJQTyBTZWxlY3QgQ29tcGFuaWVzXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy9zYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy9zYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIE8gY29tcG9uZW50ZSBwby1zZWxlY3QgZXhpYmUgdW1hIGxpc3RhIGRlIHZhbG9yZXMgZSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIHNlbGVjaW9uZSB1bSBkZXNzZXMgdmFsb3Jlcy5cbiAqIE9zIHZhbG9yZXMgbGlzdGFkb3MgcG9kZW0gc2VyIGZpeG9zIG91IGRpbsOibWljb3MgZGUgYWNvcmRvIGNvbSBhIG5lY2Vzc2lkYWRlIGRvIGRlc2Vudm9sdmVkb3IsIGRhbmRvIG1haXMgZmxleGliaWxpZGFkZSBhbyBjb21wb25lbnRlLlxuICogTyBwby1zZWxlY3QgbsOjbyBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGluZm9ybWUgdW0gdmFsb3IgZGlmZXJlbnRlIGRvcyB2YWxvcmVzIGxpc3RhZG9zLCBpc3NvIGdhcmFudGUgYSBjb25zaXN0w6puY2lhIGRhIGluZm9ybWHDp8Ojby5cbiAqIE8gcG8tc2VsZWN0IG7Do28gcGVybWl0ZSBxdWUgc2VqYW0gcGFzc2Fkb3MgdmFsb3JlcyBkdXBsaWNhZG9zLCB1bmRlZmluZWQgZSBudWxsIHBhcmEgYXMgb3DDp8O1ZXMsIGV4Y2x1aW5kby1vcyBkYSBsaXN0YS5cbiAqXG4gKiA+IEFvIHBhc3NhciB1bSB2YWxvciBwYXJhIG8gX21vZGVsXyBxdWUgbsOjbyBlc3TDoSBuYSBsaXN0YSBkZSBvcMOnw7VlcywgbyBtZXNtbyBzZXLDoSBkZWZpbmlkbyBjb21vIGB1bmRlZmluZWRgLlxuICpcbiAqIFRhbWLDqW0gZXhpc3RlIGEgcG9zc2liaWxpZGFkZSBkZSB1dGlsaXphciB1bSBfdGVtcGxhdGVfIHBhcmEgYSBleGliacOnw6NvIGRvcyBpdGVucyBkYSBsaXN0YSxcbiAqIHZlamEgbWFpcyBlbSAqKltwLWNvbWJvLW9wdGlvbi10ZW1wbGF0ZV0oL2RvY3VtZW50YXRpb24vcG8tY29tYm8tb3B0aW9uLXRlbXBsYXRlKSoqLlxuICpcbiAqID4gT2JzOiBvIHRlbXBsYXRlICoqW3Atc2VsZWN0LW9wdGlvbi10ZW1wbGF0ZV0oL2RvY3VtZW50YXRpb24vcG8tc2VsZWN0LW9wdGlvbi10ZW1wbGF0ZSkqKiBzZXLDoSBkZXByZWNpYWRvIG5hIHZlcnPDo28gMTQueC54LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9TZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb1NlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQb1NlbGVjdENvbXBvbmVudCBleHRlbmRzIFBvRmllbGRWYWxpZGF0ZU1vZGVsPGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdzZWxlY3QnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3RFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEZ1bsOnw6NvIHBhcmEgYXR1YWxpemFyIG8gbmdNb2RlbCBkbyBjb21wb25lbnRlLCBuZWNlc3PDoXJpbyBxdWFuZG8gbsOjbyBmb3IgdXRpbGl6YWRvIGRlbnRybyBkYSB0YWcgZm9ybS5cbiAgICpcbiAgICogTmEgdmVyc8OjbyAxMi4yLjAgZG8gQW5ndWxhciBhIHZlcmlmaWNhw6fDo28gYHN0cmljdFRlbXBsYXRlc2AgdmVtIHRydWUgY29tbyBkZWZhdWx0LiBQb3J0YW50bywgcGFyYSB1dGlsaXphclxuICAgKiB0d28td2F5IGJpbmRpbmcgbm8gY29tcG9uZW50ZSBkZXZlIHNlIHV0aWxpemFyIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLXNlbGVjdCAuLi4gW25nTW9kZWxdPVwic2VsZWN0TW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RNb2RlbCA9ICRldmVudFwiPiA8L3BvLXNlbGVjdD5cbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KCduZ01vZGVsQ2hhbmdlJykgbmdNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6Egc29tZW50ZSBwYXJhIGxlaXR1cmEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1yZWFkb25seScsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBNZW5zYWdlbSBxdWUgYXBhcmVjZXLDoSBlbnF1YW50byBuZW5odW1hIG9ww6fDo28gZXN0aXZlciBzZWxlY2lvbmFkYS4gKi9cbiAgQElucHV0KCdwLXBsYWNlaG9sZGVyJykgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgZGlzcGxheVZhbHVlO1xuICBpZCA9IGBwby1zZWxlY3RbJHt1dWlkKCl9XWA7XG4gIG1vZGVsVmFsdWU6IGFueTtcbiAgc2VsZWN0ZWRWYWx1ZTogYW55O1xuICBvcHRpb25zRGVmYXVsdCA9IFtdO1xuICBsaXN0R3JvdXBPcHRpb25zID0gW107XG4gIG9wdGlvbldpdGhvdXRHcm91cCA9IFtdO1xuICBpc1NhZmFyaTogYm9vbGVhbiA9IGlzU2FmYXJpKCk7XG5cbiAgcHJvdGVjdGVkIG9uTW9kZWxUb3VjaGVkOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZmllbGRMYWJlbD86IHN0cmluZyA9IFBPX1NFTEVDVF9GSUVMRF9MQUJFTF9ERUZBVUxUO1xuICBwcml2YXRlIF9maWVsZFZhbHVlPzogc3RyaW5nID0gUE9fU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQ7XG4gIHByaXZhdGUgX29wdGlvbnM6IEFycmF5PFBvU2VsZWN0T3B0aW9uPiB8IEFycmF5PFBvU2VsZWN0T3B0aW9uR3JvdXA+IHwgQXJyYXk8YW55PjtcblxuICAvKipcbiAgICogTmVzdGEgcHJvcHJpZWRhZGUgZGV2ZSBzZXIgZGVmaW5pZG8gdW1hIGNvbGXDp8OjbyBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBgUG9TZWxlY3RPcHRpb25gLFxuICAgKiBvdSB1bWEgY29sZcOnw6NvIGRlIG9iamV0b3MgZGVudHJvIGRlIGdydXBvcyBkaWZlcmVudGVzLCBxdWUgc2VyaWFtIGRhIGludGVyZmFjZSBgUG9TZWxlY3RPcHRpb25Hcm91cGAuXG4gICAqXG4gICAqIENhc28gZXN0YSBsaXN0YSBlc3RpdmVyIHZhemlhLCBvIG1vZGVsIHNlcsOhIGB1bmRlZmluZWRgLlxuICAgKlxuICAgKiA+IEVzc2EgcHJvcHJpZWRhZGUgw6kgaW11dMOhdmVsLCBvdSBzZWphLCBzZW1wcmUgcXVlIHF1aXNlciBhdHVhbGl6YXIgYSBsaXN0YSBkZSBvcMOnw7VlcyBkaXNwb27DrXZlaXNcbiAgICogYXR1YWxpemUgYSByZWZlcsOqbmNpYSBkbyBvYmpldG86XG4gICAqXG4gICAqIGBgYFxuICAgKiAvLyBhdHVhbGl6YSBhIHJlZmVyw6puY2lhIGRvIG9iamV0byBnYXJhbnRpbmRvIGEgYXR1YWxpemHDp8OjbyBkbyB0ZW1wbGF0ZVxuICAgKiB0aGlzLm9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zLCB7IHZhbHVlOiAneCcsIGxhYmVsOiAnTm92YSBvcMOnw6NvJyB9XTtcbiAgICpcbiAgICogLy8gZXZpdGUsIHBvaXMgbsOjbyBhdHVhbGl6YSBhIHJlZmVyw6puY2lhIGRvIG9iamV0byBwb2RlbmRvIGdlcmFyIGF0cmFzb3MgbmEgYXR1YWxpemHDp8OjbyBkbyB0ZW1wbGF0ZVxuICAgKiB0aGlzLm9wdGlvbnMucHVzaCh7IHZhbHVlOiAneCcsIGxhYmVsOiAnTm92YSBvcMOnw6NvJyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqID4gUGFyYSBjb2xlw6fDo28gZGUgb2JqZXRvcyBkZW50cm8gZGUgZ3J1cG9zIGRpc3RpbnRvcyBzZXLDoSBleGliaWRvIGEgbGFiZWwgZSBvcMOnw7VlcyBzb21lbnRlIHNlIGEgcHJvcHJpZWRhZGUgYG9wdGlvbnNgIHBvc3N1YSB2YWxvcmVzLlxuICAgKiAgU2VuZG8gYXNzaW0sIGEgZXN0cnV0dXJhIHNlZ3VpcmlhIGRlc3NhIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogdGhpcy5vcHRpb25zID0gW3tcbiAgICogIGxhYmVsOiAnT3DDp8O1ZXMnLFxuICAgKiAgb3B0aW9uczogW1xuICAgKiAgICB7IHZhbHVlOiAxLCBsYWJlbDogJ29ww6fDo28gMScgfSxcbiAgICogICAgeyB2YWx1ZTogMiwgbGFiZWw6ICdvcMOnw6NvIDInIH1cbiAgICogIF0sXG4gICAqIH1dO1xuICAgKiBgYGBcbiAgICpcbiAgICogw4kgcG9zc8OtdmVsIGEgdXRpbGl6YcOnw6NvIGRlIG9ww6fDtWVzIGFncnVwYWRhcyBlIGRlc2FncnVwYWRhcyBlbSBjb25qdW50bywgcG9yw6ltIHNlcsOhIGZlaXRhIGEgb3JkZW5hw6fDo28gZGUgZXhpYmlyIGFzIG9ww6fDtWVzXG4gICAqIGRlc2FncnVwYWRhcyBhY2ltYS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25zJykgc2V0IG9wdGlvbnMob3B0aW9uczogQXJyYXk8UG9TZWxlY3RPcHRpb24gfCBQb1NlbGVjdE9wdGlvbkdyb3VwIHwgYW55Pikge1xuICAgIHRoaXMubGlzdEdyb3VwT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMub3B0aW9uV2l0aG91dEdyb3VwID0gW107XG5cbiAgICBpZiAodGhpcy5maWVsZExhYmVsICYmIHRoaXMuZmllbGRWYWx1ZSAmJiBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0l0ZW1Hcm91cChvcHRpb24pKSB7XG4gICAgICAgICAgb3B0aW9uLm9wdGlvbnMubWFwKG9wdCA9PiB7XG4gICAgICAgICAgICBvcHQubGFiZWwgPSBvcHRbdGhpcy5maWVsZExhYmVsXTtcbiAgICAgICAgICAgIG9wdC52YWx1ZSA9IG9wdFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbi5sYWJlbCA9IG9wdGlvblt0aGlzLmZpZWxkTGFiZWxdO1xuICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zRGVmYXVsdCA9IFsuLi5vcHRpb25zXTtcbiAgICAgIHRoaXMuc2VwYXJhdGVPcHRpb25zKCk7XG5cbiAgICAgIHRoaXMub3B0aW9uc0RlZmF1bHQgPSBbXTtcbiAgICAgIHRoaXMub3B0aW9uc0RlZmF1bHQgPSBbLi4udGhpcy5vcHRpb25XaXRob3V0R3JvdXAsIC4uLnRoaXMudHJhbnNmb3JtSW5BcnJheSh0aGlzLmxpc3RHcm91cE9wdGlvbnMpXTtcbiAgICAgIHRoaXMub25VcGRhdGVPcHRpb25zKCk7XG4gICAgICB0aGlzLl9vcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc0RlZmF1bHRdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIG8gbm9tZSBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIGEgY29udmVyc8OjbyBkb3MgaXRlbnMgYXByZXNlbnRhZG9zIG5hIGxpc3RhIGRvIGNvbXBvbmVudGVcbiAgICogKGBwLW9wdGlvbnNgKSwgZXN0YSBwcm9wcmllZGFkZSBzZXLDoSByZXNwb25zw6F2ZWwgcGVsbyB0ZXh0byBkZSBhcHJlc2VudGHDp8OjbyBkZSBjYWRhIGl0ZW0gZGEgbGlzdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBsYWJlbGBcbiAgICovXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIHNldCBmaWVsZExhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWVsZExhYmVsID0gdmFsdWUgfHwgUE9fU0VMRUNUX0ZJRUxEX0xBQkVMX0RFRkFVTFQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc107XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpZWxkTGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZVxuICAgKiAoYHAtb3B0aW9uc2ApLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHZhbG9yIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHZhbHVlYFxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgc2V0IGZpZWxkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpZWxkVmFsdWUgPSB2YWx1ZSB8fCBQT19TRUxFQ1RfRklFTERfVkFMVUVfREVGQVVMVDtcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmllbGRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRWYWx1ZTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBjaGFuZ2VzLm9wdGlvbnMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9TZWxlY3RDb21wb25lbnQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gICAqXG4gICAqIC4uLlxuICAgKlxuICAgKiBAVmlld0NoaWxkKFBvU2VsZWN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3Q6IFBvU2VsZWN0Q29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c1NlbGVjdCgpIHtcbiAgICogICB0aGlzLnNlbGVjdC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkPy4oKTtcbiAgfVxuXG4gIC8vIEFsdGVyYSBvIHZhbG9yIGFvIHNlbGVjaW9uYXIgdW0gaXRlbS5cbiAgb25TZWxlY3RDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQ/LigpO1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3B0aW9uRm91bmQ6IGFueSA9IHRoaXMuZmluZE9wdGlvblZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKG9wdGlvbkZvdW5kKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVzKG9wdGlvbkZvdW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblVwZGF0ZU9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZSh0aGlzLm1vZGVsVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF0dWFsaXphIHZhbG9yZXNcbiAgdXBkYXRlVmFsdWVzKG9wdGlvbjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAhPT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwob3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZExhYmVsXTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZShvcHRpb25bdGhpcy5maWVsZFZhbHVlXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVjZWJlIGFzIGFsdGVyYcOnw7VlcyBkbyBtb2RlbFxuICBvbldyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbkZvdW5kOiBhbnkgPSB0aGlzLmZpbmRPcHRpb25WYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAob3B0aW9uRm91bmQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb3B0aW9uRm91bmQudmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb25Gb3VuZFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBvcHRpb25Gb3VuZFt0aGlzLmZpZWxkTGFiZWxdO1xuICAgIH0gZWxzZSBpZiAodmFsaWRWYWx1ZSh0aGlzLnNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZXh0cmFWYWxpZGF0aW9uKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaXNJdGVtR3JvdXAoaXRlbTogUG9TZWxlY3RPcHRpb24gfCBQb1NlbGVjdE9wdGlvbkdyb3VwIHwgYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGl0ZW0ub3B0aW9ucykge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbS5vcHRpb25zKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgaXNFcXVhbCh2YWx1ZTogYW55LCBpbnB1dFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoKHZhbHVlIHx8IHZhbHVlID09PSAwKSAmJiBpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKSA9PT0gaW5wdXRWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICgodmFsdWUgPT09IG51bGwgJiYgaW5wdXRWYWx1ZSAhPT0gbnVsbCkgfHwgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgaW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgdmFsdWUgPSBgJHt2YWx1ZX1gOyAvLyBUcmFuc2Zvcm1hbmRvIGVtIHN0cmluZ1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSA9PT0gaW5wdXRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9wdGlvblZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQob3B0aW9uID0+IHRoaXMuaXNFcXVhbChvcHRpb24udmFsdWUsIHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1JbkFycmF5KG9iamVjdFdpdGhBcnJheTogQXJyYXk8YW55Pik6IEFycmF5PFBvU2VsZWN0T3B0aW9uR3JvdXAgfCBhbnk+IHtcbiAgICByZXR1cm4gb2JqZWN0V2l0aEFycmF5LnJlZHVjZSgob3B0aW9ucywgaXRlbXMpID0+IHtcbiAgICAgIGlmIChpdGVtcy5vcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmNvbmNhdChpdGVtcy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIHNlcGFyYXRlT3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnNEZWZhdWx0LmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLmlzSXRlbUdyb3VwKG9wdGlvbikpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZU9wdGlvbnMob3B0aW9uLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLmxpc3RHcm91cE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25XaXRob3V0R3JvdXAucHVzaChvcHRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9uV2l0aG91dEdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKHRoaXMub3B0aW9uV2l0aG91dEdyb3VwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zOiBBcnJheTxhbnk+KSB7XG4gICAgcmVtb3ZlRHVwbGljYXRlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbE9wdGlvbnMob3B0aW9ucyk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1pZF09XCJpZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPHNlbGVjdFxuICAgICAgI3NlbGVjdFxuICAgICAgY2xhc3M9XCJwby1zZWxlY3RcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFtjbGFzcy5wby1zZWxlY3QtcGxhY2Vob2xkZXJdPVwiIXNlbGVjdGVkVmFsdWU/LnRvU3RyaW5nKCkgJiYgISFwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2FmYXJpXCI+XG4gICAgICAgIDxvcHRpb25cbiAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpIHx8ICEhcGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhIXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbaGlkZGVuXT1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpICYmICFwbGFjZWhvbGRlclwiXG4gICAgICAgICAgW3NlbGVjdGVkXT1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpXCJcbiAgICAgICAgICBbdmFsdWVdPVwicGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gW2hpZGRlbl09XCJ0cnVlXCI+e3sgZGlzcGxheVZhbHVlIH19PC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2FmYXJpXCI+XG4gICAgICAgIDxvcHRpb24+e3sgZGlzcGxheVZhbHVlIHx8IHBsYWNlaG9sZGVyIH19PC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbldpdGhvdXRHcm91cC5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uV2l0aG91dEdyb3VwXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW3ZhbHVlXT1cIml0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdXCI+XG4gICAgICAgICAge3sgaXRlbT8uW3RoaXMuZmllbGRMYWJlbF0gfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0R3JvdXBPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0R3JvdXBPcHRpb25zXCI+XG4gICAgICAgICAgPG9wdGdyb3VwICpuZ0lmPVwiaXRlbT8ub3B0aW9ucy5sZW5ndGggPiAwXCIgbGFiZWw9XCJ7eyBpdGVtPy5sYWJlbCB9fVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtLm9wdGlvbnNcIiBbdmFsdWVdPVwic3ViSXRlbT8uW3RoaXMuZmllbGRWYWx1ZV1cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAge3sgc3ViSXRlbT8uW3RoaXMuZmllbGRMYWJlbF0gIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L29wdGdyb3VwPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8cG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBbcC1oZWxwXT1cImhlbHBcIiBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvcG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT5cbjwvcG8tZmllbGQtY29udGFpbmVyPlxuIl19
|
|
@@ -74,8 +74,6 @@ export class PoSearchBaseComponent {
|
|
|
74
74
|
return this._ariaLabel;
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
|
-
* @optional
|
|
78
|
-
*
|
|
79
77
|
* @description
|
|
80
78
|
*
|
|
81
79
|
* Deve ser informado o nome da propriedade do objeto que será utilizado para a conversão dos itens apresentados na lista do componente (p-items), esta propriedade será responsável pelo texto de apresentação de cada item da lista.
|
|
@@ -89,6 +87,20 @@ export class PoSearchBaseComponent {
|
|
|
89
87
|
* Deve ser informado o nome da propriedade do objeto que será utilizado para a conversão dos itens apresentados na lista do componente (p-items), esta propriedade será responsável pelo texto de apresentação de cada item da lista.
|
|
90
88
|
*/
|
|
91
89
|
icon;
|
|
90
|
+
/**
|
|
91
|
+
* @optional
|
|
92
|
+
*
|
|
93
|
+
* @description
|
|
94
|
+
*
|
|
95
|
+
* Determina a forma de realizar a pesquisa no componente
|
|
96
|
+
*
|
|
97
|
+
* Valores aceitos:
|
|
98
|
+
* - `action`: Realiza a busca a cada caractere digitado.
|
|
99
|
+
* - `trigger`: Realiza a busca ao pressionar `enter` ou clicar no ícone de busca.
|
|
100
|
+
*
|
|
101
|
+
* @default `action`
|
|
102
|
+
*/
|
|
103
|
+
type = 'action';
|
|
92
104
|
/**
|
|
93
105
|
* @optional
|
|
94
106
|
*
|
|
@@ -169,7 +181,7 @@ export class PoSearchBaseComponent {
|
|
|
169
181
|
this.language = languageService.getShortLanguage();
|
|
170
182
|
}
|
|
171
183
|
static ɵfac = function PoSearchBaseComponent_Factory(t) { return new (t || PoSearchBaseComponent)(i0.ɵɵdirectiveInject(i1.PoLanguageService)); };
|
|
172
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoSearchBaseComponent, inputs: { disabled: ["p-disabled", "disabled", convertToBoolean], items: ["p-items", "items"], ariaLabel: ["p-aria-label", "ariaLabel"], filterKeys: ["p-filter-keys", "filterKeys"], icon: ["p-icon", "icon"], literals: ["p-literals", "literals"], filterType: ["p-filter-type", "filterType"] }, outputs: { changeModel: "p-change-model", filteredItemsChange: "p-filtered-items-change", filter: "p-filter" }, features: [i0.ɵɵInputTransformsFeature] });
|
|
184
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoSearchBaseComponent, inputs: { disabled: ["p-disabled", "disabled", convertToBoolean], items: ["p-items", "items"], ariaLabel: ["p-aria-label", "ariaLabel"], filterKeys: ["p-filter-keys", "filterKeys"], icon: ["p-icon", "icon"], type: ["p-search-type", "type"], literals: ["p-literals", "literals"], filterType: ["p-filter-type", "filterType"] }, outputs: { changeModel: "p-change-model", filteredItemsChange: "p-filtered-items-change", filter: "p-filter" }, features: [i0.ɵɵInputTransformsFeature] });
|
|
173
185
|
}
|
|
174
186
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoSearchBaseComponent, [{
|
|
175
187
|
type: Directive
|
|
@@ -188,6 +200,9 @@ export class PoSearchBaseComponent {
|
|
|
188
200
|
}], icon: [{
|
|
189
201
|
type: Input,
|
|
190
202
|
args: ['p-icon']
|
|
203
|
+
}], type: [{
|
|
204
|
+
type: Input,
|
|
205
|
+
args: ['p-search-type']
|
|
191
206
|
}], literals: [{
|
|
192
207
|
type: Input,
|
|
193
208
|
args: ['p-literals']
|
|
@@ -204,4 +219,4 @@ export class PoSearchBaseComponent {
|
|
|
204
219
|
type: Output,
|
|
205
220
|
args: ['p-filter']
|
|
206
221
|
}] }); })();
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2VhcmNoLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXNlYXJjaC9wby1zZWFyY2gtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRWxGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUV2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixTQUFTLENBQW9CO0lBQzdCLFVBQVUsQ0FBVTtJQUNwQixRQUFRLENBQVM7SUFFekI7Ozs7Ozs7O09BUUc7SUFDMEQsUUFBUSxDQUFXO0lBRWhGOzs7Ozs7T0FNRztJQUNlLEtBQUssR0FBZSxFQUFFLENBQUM7SUFFekM7Ozs7Ozs7O09BUUc7SUFDSCxJQUEyQixTQUFTLENBQUMsS0FBYTtRQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ3FCLFVBQVUsR0FBZSxFQUFFLENBQUM7SUFFcEQ7Ozs7OztPQU1HO0lBQ2MsSUFBSSxDQUE2QjtJQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDSCxJQUF5QixRQUFRLENBQUMsS0FBdUI7UUFDdkQsSUFBSSxLQUFLLFlBQVksTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRztnQkFDZixHQUFHLHVCQUF1QixDQUFDLGVBQWUsQ0FBQztnQkFDM0MsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUN6QyxHQUFHLEtBQUs7YUFDVCxDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ3FCLFVBQVUsR0FBdUIsa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBRXZGOzs7Ozs7T0FNRztJQUN1QixXQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFOUU7Ozs7OztPQU1HO0lBQ2dDLG1CQUFtQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFeEY7Ozs7OztPQU1HO0lBQ2lCLE1BQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUV4RSxZQUFZLGVBQWtDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDckQsQ0FBQzsrRUFuSlUscUJBQXFCOzZEQUFyQixxQkFBcUIsaURBY1MsZ0JBQWdCOzt1RkFkOUMscUJBQXFCO2NBRGpDLFNBQVM7b0VBZXFELFFBQVE7a0JBQXBFLEtBQUs7bUJBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQVN6QyxLQUFLO2tCQUF0QixLQUFLO21CQUFDLFNBQVM7WUFXVyxTQUFTO2tCQUFuQyxLQUFLO21CQUFDLGNBQWM7WUFtQkcsVUFBVTtrQkFBakMsS0FBSzttQkFBQyxlQUFlO1lBU0wsSUFBSTtrQkFBcEIsS0FBSzttQkFBQyxRQUFRO1lBNkJVLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWTtZQXlCSyxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLGVBQWU7WUFTSSxXQUFXO2tCQUFwQyxNQUFNO21CQUFDLGdCQUFnQjtZQVNXLG1CQUFtQjtrQkFBckQsTUFBTTttQkFBQyx5QkFBeUI7WUFTYixNQUFNO2tCQUF6QixNQUFNO21CQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4gfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvU2VhcmNoTGl0ZXJhbHMgfSBmcm9tICcuL2xpdGVyYWxzL3BvLXNlYXJjaC1saXRlcmFscyc7XG5pbXBvcnQgeyBwb1NlYXJjaExpdGVyYWxzRGVmYXVsdCB9IGZyb20gJy4vbGl0ZXJhbHMvcG8tc2VhcmNoLWxpdGVyYWxzLWRlZmF1bHQnO1xuaW1wb3J0IHsgUG9TZWFyY2hGaWx0ZXJNb2RlIH0gZnJvbSAnLi9lbnVtL3BvLXNlYXJjaC1maWx0ZXItbW9kZS5lbnVtJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgc2VhcmNoLCB0YW1iw6ltIGNvbmhlY2lkbyBjb21vIGJhcnJhIGRlIHBlc3F1aXNhLCDDqSB1dGlsaXphZG8gcGFyYSBhanVkYXIgb3MgdXN1w6FyaW9zIGEgbG9jYWxpemFyIHVtIGRldGVybWluYWRvIGNvbnRlw7pkb1xuICpcbiAqIE5vcm1hbG1lbnRlIGxvY2FsaXphZG8gbm8gY2FudG8gc3VwZXJpb3IgZGlyZWl0bywganVudG8gY29tIG8gw61jb25lIGRlIGx1cGEsIHVtYSB2ZXogcXVlIGVzdGUgw61jb25lIMOpIGFtcGxhbWVudGUgcmVjb25oZWNpZG8uXG4gKlxuICogUG9ydGFudG8sIMOpIGRlIGV4dHJlbWEgaW1wb3J0w6JuY2lhIHF1ZSwgYW8gdXRpbGl6YXIgZXN0ZSBjb21wb25lbnRlLCBhcyBwZXNzb2FzIHJlc3BvbnPDoXZlaXMgcG9yIHNldSBkZXNlbnZvbHZpbWVudG8gY29uc2lkZXJlbSBvcyBzZWd1aW50ZXMgY3JpdMOpcmlvcy5cbiAqXG4gKiAjIyMjIEJvYXMgcHLDoXRpY2FzXG4gKlxuICogRm9yYW0gZXN0cnV0dXJhZG9zIG9zIHBhZHLDtWVzIGRlIHVzYWJpbGlkYWRlIHBhcmEgYXV4aWxpYXIgbmEgdXRpbGl6YcOnw6NvIGRvIGNvbXBvbmVudGUgZSBnYXJhbnRpciB1bWEgYm9hIGV4cGVyacOqbmNpYSBhb3MgdXN1w6FyaW9zLiBQb3IgaXNzbywgw6kgbXVpdG8gaW1wb3J0YW50ZSBxdWUgYW8gdXRpbGl6YXIgZXN0ZSBjb21wb25lbnRlLCBhcyBwZXNzb2FzIHF1ZSBvIHByb2pldGFyZW0gZGV2ZW0gbGV2YXIgZW0gY29uc2lkZXJhw6fDo28gb3Mgc2VndWludGVzIGNyaXTDqXJpb3M6XG4gKiAtIFV0aWxpemUgbGFiZWxzIHBhcmEgYXByZXNlbnRhciByZXN1bHRhZG9zIHF1ZSBlc3TDo28gc2VuZG8gZXhpYmlkb3MgZSBhcHJlc2VudGUgb3MgcmVzdWx0YWRvcyBtYWlzIHJlbGV2YW50ZXMgcHJpbWVpcm8uXG4gKiAtIEV4aWJhIHVtYSBtZW5zYWdlbSBjbGFyYSBxdWFuZG8gbsOjbyBmb3JlbSBlbmNvbnRyYWRvcyByZXN1bHRhZG9zIHBhcmEgYnVzY2EgZSBzZW1wcmUgcXVlIHBvc3PDrXZlbCBvZmVyZcOnYSBvdXRyYXMgc3VnZXN0w7VlcyBkZSBidXNjYS5cbiAqIC0gTWFudGVuaGEgbyB0ZXh0byBvcmlnaW5hbCBubyBjYW1wbyBkZSBpbnB1dCwgcXVlIGZhY2lsaXRhIGEgYcOnw6NvIGRvIHVzdcOhcmlvIGNhc28gcXVlaXJhIGZhemVyIHVtYSBub3ZhIGJ1c2NhIGNvbSBhbGd1bWEgbW9kaWZpY2HDp8OjbyBuYSBwZXNxdWlzYS5cbiAqIC0gQ2FzbyBzZWphIHBvc3PDrXZlbCBkZXRlY3RhciB1bSBlcnJvIGRlIGRpZ2l0YcOnw6NvLCBtb3N0cmUgb3MgcmVzdWx0YWRvcyBwYXJhIGEgcGFsYXZyYSBcImNvcnJpZ2lkYVwiLCBpc3NvIGV2aXRhIGEgZnJ1c3RyYcOnw6NvIGRlIG7Do28gb2J0ZXIgcmVzdWx0YWRvcyBlIG7Do28gZm9yw6dhIG8gdXN1w6FyaW8gYSByZWFsaXphciB1bWEgbm92YSBidXNjYS5cbiAqIC0gUXVhbmRvIGFwcm9wcmlhZG8sIGRlc3RhcXVlIG9zIHRlcm1vcyBkYSBidXNjYSBub3MgcmVzdWx0YWRvcy5cbiAqIC0gQSBlbnRyYWRhIGRvIGNhbXBvIGRlIHBlc3F1aXNhIGRldmUgY2FiZXIgZW0gdW1hIGxpbmhhLiBOw6NvIHVzZSBlbnRyYWRhcyBkZSBwZXNxdWlzYSBkZSB2w6FyaWFzIGxpbmhhcy5cbiAqIC0gUmVjb21lbmRhLXNlIHRlciBhcGVuYXMgdW1hIHBlc3F1aXNhIHBvciBww6FnaW5hLiBTZSB2b2PDqiBwcmVjaXNhciBkZSB2w6FyaWFzIHBlc3F1aXNhcywgcm90dWxlLWFzIGNsYXJhbWVudGUgcGFyYSBpbmRpY2FyIHN1YSBmaW5hbGlkYWRlLlxuICogLSBTZSBwb3Nzw612ZWwsIGZvcm5lw6dhIHN1Z2VzdMO1ZXMgZGUgcGVzcXVpc2EsIHNlamEgZW0gdW0gaGVscHRleHQgb3Ugc3VnZXN0w6NvIGRlIHBlc3F1aXNhIHF1ZSDDqSB1bSBhdXRvY29tcGxldGUuIElzc28gYWp1ZGEgb3MgdXN1w6FyaW9zIGEgZW5jb250cmFyIG8gcXVlIGVzdMOjbyBwcm9jdXJhbmRvLCBlc3BlY2lhbG1lbnRlIHNlIG9zIGl0ZW5zIHBlc3F1aXPDoXZlaXMgZm9yZW0gY29tcGxleG9zLlxuICpcbiAqICMjIyMgQWNlc3NpYmlsaWRhZGUgdHJhdGFkYSBubyBjb21wb25lbnRlXG4gKlxuICogIEFsZ3VtYXMgZGlyZXRyaXplcyBkZSBhY2Vzc2liaWxpZGFkZSBqw6Egc8OjbyB0cmF0YWRhcyBubyBjb21wb25lbnRlLCBpbnRlcm5hbWVudGUsIGUgbsOjbyBwb2RlbSBzZXIgYWx0ZXJhZGFzIHBlbG8gcHJvcHJpZXTDoXJpbyBkbyBjb250ZcO6ZG8uIFPDo28gZWxhczpcbiAqXG4gKiAtIFBlcm1pdGlyIGEgaW50ZXJhw6fDo28gdmlhIHRlY2xhZG8gKDIuMS4xOiBLZXlib2FyZCAoQSkpO1xuICogLSBBbHRlcmHDp8OjbyBlbnRyZSBvcyBlc3RhZG9zIHByZWNpc2Egc2VyIGluZGljYWRhIHBvciBtYWlzIGRlIHVtIGVsZW1lbnRvIGFsw6ltIGRhIGNvciAoMS40LjE6IFVzZSBvZiBDb2xvcik7XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBvU2VhcmNoQmFzZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgX2xpdGVyYWxzPzogUG9TZWFyY2hMaXRlcmFscztcbiAgcHJpdmF0ZSBfYXJpYUxhYmVsPzogc3RyaW5nO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVzYWJpbGl0YSBvIHBvLXNlYXJjaCBlIG7Do28gcGVybWl0ZSBxdWUgbyB1c3XDoXJpbyBpbnRlcmFqYSBjb20gbyBtZXNtby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWRpc2FibGVkJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkZSBpdGVucyBxdWUgc2Vyw6NvIHV0aWxpemFkb3MgcGFyYSBwZXNxdWlzYVxuICAgKi9cbiAgQElucHV0KCdwLWl0ZW1zJykgaXRlbXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgdW0gYXJpYS1sYWJlbCBwYXJhIG8gcG8tc2VhcmNoLlxuICAgKlxuICAgKiA+IERldmlkbyBvIGNvbXBvbmVudGUgbsOjbyBwb3NzdWlyIHVtYSBsYWJlbCBhc3NpbSBjb21vIG91dHJvcyBjYW1wb3MgZGUgdGV4dG8sIG8gYGFyaWEtbGFiZWxgIMOpIHV0aWxpemFkbyBwYXJhIGFjZXNzaWJpbGlkYWRlLlxuICAgKi9cbiAgQElucHV0KCdwLWFyaWEtbGFiZWwnKSBzZXQgYXJpYUxhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hcmlhTGFiZWwgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5saXRlcmFscy5zZWFyY2gpIHtcbiAgICAgIHRoaXMuX2FyaWFMYWJlbCA9IGAke3RoaXMuX2FyaWFMYWJlbH0gJHt0aGlzLmxpdGVyYWxzLnNlYXJjaH1gO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYXJpYUxhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIG8gbm9tZSBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIGEgY29udmVyc8OjbyBkb3MgaXRlbnMgYXByZXNlbnRhZG9zIG5hIGxpc3RhIGRvIGNvbXBvbmVudGUgKHAtaXRlbXMpLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHRleHRvIGRlIGFwcmVzZW50YcOnw6NvIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICovXG4gIEBJbnB1dCgncC1maWx0ZXIta2V5cycpIGZpbHRlcktleXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZSAocC1pdGVtcyksIGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgcmVzcG9uc8OhdmVsIHBlbG8gdGV4dG8gZGUgYXByZXNlbnRhw6fDo28gZGUgY2FkYSBpdGVtIGRhIGxpc3RhLlxuICAgKi9cbiAgQElucHV0KCdwLWljb24nKSBpY29uOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tc2VhcmNoYC5cbiAgICpcbiAgICogUGFyYSB1dGlsaXphciBiYXN0YSBwYXNzYXIgYSBsaXRlcmFsIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9TZWFyY2hMaXRlcmFscyA9IHtcbiAgICogICAgc2VhcmNoOiAnUGVzcXVpc2FyJyxcbiAgICogICAgY2xlYW46ICdMaW1wYXInLFxuICAgKiAgfTtcbiAgICogYGBgXG4gICAqXG4gICAqIEUgcGFyYSBjYXJyZWdhciBhIGxpdGVyYWwgY3VzdG9taXphZGEsIGJhc3RhIGFwZW5hcyBwYXNzYXIgbyBvYmpldG8gcGFyYSBvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tc2VhcmNoXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby1zZWFyY2g+XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG9cbiAgICogW2BQb0kxOG5TZXJ2aWNlYF0oL2RvY3VtZW50YXRpb24vcG8taTE4bikgb3UgZG8gYnJvd3Nlci5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9TZWFyY2hMaXRlcmFscykge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHtcbiAgICAgICAgLi4ucG9TZWFyY2hMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XSxcbiAgICAgICAgLi4ucG9TZWFyY2hMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvU2VhcmNoTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsaXRlcmFscygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGl0ZXJhbHMgfHwgcG9TZWFyY2hMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyBtb2RvIGRlIHBlc3F1aXNhIHV0aWxpemFkbyBubyBjYW1wbyBkZSBidXNjYSwgcXVhbmRvIGhhYmlsaXRhZG8uIFZhbG9yZXMgZGVmaW5pZG9zIG5vIGVudW06IFBvU2VhcmNoRmlsdGVyTW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBgc3RhcnRzV2l0aGBcbiAgICovXG4gIEBJbnB1dCgncC1maWx0ZXItdHlwZScpIGZpbHRlclR5cGU6IFBvU2VhcmNoRmlsdGVyTW9kZSA9IFBvU2VhcmNoRmlsdGVyTW9kZS5zdGFydHNXaXRoO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gYWx0ZXJhciB2YWxvciBkbyBtb2RlbC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLW1vZGVsJykgY2hhbmdlTW9kZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBvZGUgc2VyIGluZm9ybWFkYSB1bWEgZnVuw6fDo28gcXVlIHNlcsOhIGRpc3BhcmFkYSBxdWFuZG8gaG91dmVyIGFsdGVyYcOnw7VlcyBubyBpbnB1dC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtZmlsdGVyZWQtaXRlbXMtY2hhbmdlJykgZmlsdGVyZWRJdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8YW55Pj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQb2RlIHNlciBpbmZvcm1hZGEgdW1hIGZ1bsOnw6NvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBhbHRlcmHDp8O1ZXMgbm9zIGZpbHRyb3MuXG4gICAqL1xuICBAT3V0cHV0KCdwLWZpbHRlcicpIGZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2VhcmNoLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXNlYXJjaC9wby1zZWFyY2gtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRWxGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixTQUFTLENBQW9CO0lBQzdCLFVBQVUsQ0FBVTtJQUNwQixRQUFRLENBQVM7SUFFekI7Ozs7Ozs7O09BUUc7SUFDMEQsUUFBUSxDQUFXO0lBRWhGOzs7Ozs7T0FNRztJQUNlLEtBQUssR0FBZSxFQUFFLENBQUM7SUFFekM7Ozs7Ozs7O09BUUc7SUFDSCxJQUEyQixTQUFTLENBQUMsS0FBYTtRQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNxQixVQUFVLEdBQWUsRUFBRSxDQUFDO0lBRXBEOzs7Ozs7T0FNRztJQUNjLElBQUksQ0FBNkI7SUFFbEQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ3FCLElBQUksR0FBZSxRQUFRLENBQUM7SUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMEJHO0lBQ0gsSUFBeUIsUUFBUSxDQUFDLEtBQXVCO1FBQ3ZELElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUc7Z0JBQ2YsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7Z0JBQzNDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDekMsR0FBRyxLQUFLO2FBQ1QsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNxQixVQUFVLEdBQXVCLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUV2Rjs7Ozs7O09BTUc7SUFDdUIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTlFOzs7Ozs7T0FNRztJQUNnQyxtQkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBRXhGOzs7Ozs7T0FNRztJQUNpQixNQUFNLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFeEUsWUFBWSxlQUFrQztRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JELENBQUM7K0VBaEtVLHFCQUFxQjs2REFBckIscUJBQXFCLGlEQWNTLGdCQUFnQjs7dUZBZDlDLHFCQUFxQjtjQURqQyxTQUFTO29FQWVxRCxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFTekMsS0FBSztrQkFBdEIsS0FBSzttQkFBQyxTQUFTO1lBV1csU0FBUztrQkFBbkMsS0FBSzttQkFBQyxjQUFjO1lBaUJHLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsZUFBZTtZQVNMLElBQUk7a0JBQXBCLEtBQUs7bUJBQUMsUUFBUTtZQWVTLElBQUk7a0JBQTNCLEtBQUs7bUJBQUMsZUFBZTtZQTZCRyxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUF5QkssVUFBVTtrQkFBakMsS0FBSzttQkFBQyxlQUFlO1lBU0ksV0FBVztrQkFBcEMsTUFBTTttQkFBQyxnQkFBZ0I7WUFTVyxtQkFBbUI7a0JBQXJELE1BQU07bUJBQUMseUJBQXlCO1lBU2IsTUFBTTtrQkFBekIsTUFBTTttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBvTG9jYWxlRGVmYXVsdCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb1NlYXJjaExpdGVyYWxzIH0gZnJvbSAnLi9saXRlcmFscy9wby1zZWFyY2gtbGl0ZXJhbHMnO1xuaW1wb3J0IHsgcG9TZWFyY2hMaXRlcmFsc0RlZmF1bHQgfSBmcm9tICcuL2xpdGVyYWxzL3BvLXNlYXJjaC1saXRlcmFscy1kZWZhdWx0JztcbmltcG9ydCB7IFBvU2VhcmNoRmlsdGVyTW9kZSB9IGZyb20gJy4vZW51bS9wby1zZWFyY2gtZmlsdGVyLW1vZGUuZW51bSc7XG5cbmV4cG9ydCB0eXBlIHNlYXJjaE1vZGUgPSAnYWN0aW9uJyB8ICd0cmlnZ2VyJztcbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIHNlYXJjaCwgdGFtYsOpbSBjb25oZWNpZG8gY29tbyBiYXJyYSBkZSBwZXNxdWlzYSwgw6kgdXRpbGl6YWRvIHBhcmEgYWp1ZGFyIG9zIHVzdcOhcmlvcyBhIGxvY2FsaXphciB1bSBkZXRlcm1pbmFkbyBjb250ZcO6ZG9cbiAqXG4gKiBOb3JtYWxtZW50ZSBsb2NhbGl6YWRvIG5vIGNhbnRvIHN1cGVyaW9yIGRpcmVpdG8sIGp1bnRvIGNvbSBvIMOtY29uZSBkZSBsdXBhLCB1bWEgdmV6IHF1ZSBlc3RlIMOtY29uZSDDqSBhbXBsYW1lbnRlIHJlY29uaGVjaWRvLlxuICpcbiAqIFBvcnRhbnRvLCDDqSBkZSBleHRyZW1hIGltcG9ydMOibmNpYSBxdWUsIGFvIHV0aWxpemFyIGVzdGUgY29tcG9uZW50ZSwgYXMgcGVzc29hcyByZXNwb25zw6F2ZWlzIHBvciBzZXUgZGVzZW52b2x2aW1lbnRvIGNvbnNpZGVyZW0gb3Mgc2VndWludGVzIGNyaXTDqXJpb3MuXG4gKlxuICogIyMjIyBCb2FzIHByw6F0aWNhc1xuICpcbiAqIEZvcmFtIGVzdHJ1dHVyYWRvcyBvcyBwYWRyw7VlcyBkZSB1c2FiaWxpZGFkZSBwYXJhIGF1eGlsaWFyIG5hIHV0aWxpemHDp8OjbyBkbyBjb21wb25lbnRlIGUgZ2FyYW50aXIgdW1hIGJvYSBleHBlcmnDqm5jaWEgYW9zIHVzdcOhcmlvcy4gUG9yIGlzc28sIMOpIG11aXRvIGltcG9ydGFudGUgcXVlIGFvIHV0aWxpemFyIGVzdGUgY29tcG9uZW50ZSwgYXMgcGVzc29hcyBxdWUgbyBwcm9qZXRhcmVtIGRldmVtIGxldmFyIGVtIGNvbnNpZGVyYcOnw6NvIG9zIHNlZ3VpbnRlcyBjcml0w6lyaW9zOlxuICogLSBVdGlsaXplIGxhYmVscyBwYXJhIGFwcmVzZW50YXIgcmVzdWx0YWRvcyBxdWUgZXN0w6NvIHNlbmRvIGV4aWJpZG9zIGUgYXByZXNlbnRlIG9zIHJlc3VsdGFkb3MgbWFpcyByZWxldmFudGVzIHByaW1laXJvLlxuICogLSBFeGliYSB1bWEgbWVuc2FnZW0gY2xhcmEgcXVhbmRvIG7Do28gZm9yZW0gZW5jb250cmFkb3MgcmVzdWx0YWRvcyBwYXJhIGJ1c2NhIGUgc2VtcHJlIHF1ZSBwb3Nzw612ZWwgb2ZlcmXDp2Egb3V0cmFzIHN1Z2VzdMO1ZXMgZGUgYnVzY2EuXG4gKiAtIE1hbnRlbmhhIG8gdGV4dG8gb3JpZ2luYWwgbm8gY2FtcG8gZGUgaW5wdXQsIHF1ZSBmYWNpbGl0YSBhIGHDp8OjbyBkbyB1c3XDoXJpbyBjYXNvIHF1ZWlyYSBmYXplciB1bWEgbm92YSBidXNjYSBjb20gYWxndW1hIG1vZGlmaWNhw6fDo28gbmEgcGVzcXVpc2EuXG4gKiAtIENhc28gc2VqYSBwb3Nzw612ZWwgZGV0ZWN0YXIgdW0gZXJybyBkZSBkaWdpdGHDp8OjbywgbW9zdHJlIG9zIHJlc3VsdGFkb3MgcGFyYSBhIHBhbGF2cmEgXCJjb3JyaWdpZGFcIiwgaXNzbyBldml0YSBhIGZydXN0cmHDp8OjbyBkZSBuw6NvIG9idGVyIHJlc3VsdGFkb3MgZSBuw6NvIGZvcsOnYSBvIHVzdcOhcmlvIGEgcmVhbGl6YXIgdW1hIG5vdmEgYnVzY2EuXG4gKiAtIFF1YW5kbyBhcHJvcHJpYWRvLCBkZXN0YXF1ZSBvcyB0ZXJtb3MgZGEgYnVzY2Egbm9zIHJlc3VsdGFkb3MuXG4gKiAtIEEgZW50cmFkYSBkbyBjYW1wbyBkZSBwZXNxdWlzYSBkZXZlIGNhYmVyIGVtIHVtYSBsaW5oYS4gTsOjbyB1c2UgZW50cmFkYXMgZGUgcGVzcXVpc2EgZGUgdsOhcmlhcyBsaW5oYXMuXG4gKiAtIFJlY29tZW5kYS1zZSB0ZXIgYXBlbmFzIHVtYSBwZXNxdWlzYSBwb3IgcMOhZ2luYS4gU2Ugdm9jw6ogcHJlY2lzYXIgZGUgdsOhcmlhcyBwZXNxdWlzYXMsIHJvdHVsZS1hcyBjbGFyYW1lbnRlIHBhcmEgaW5kaWNhciBzdWEgZmluYWxpZGFkZS5cbiAqIC0gU2UgcG9zc8OtdmVsLCBmb3JuZcOnYSBzdWdlc3TDtWVzIGRlIHBlc3F1aXNhLCBzZWphIGVtIHVtIGhlbHB0ZXh0IG91IHN1Z2VzdMOjbyBkZSBwZXNxdWlzYSBxdWUgw6kgdW0gYXV0b2NvbXBsZXRlLiBJc3NvIGFqdWRhIG9zIHVzdcOhcmlvcyBhIGVuY29udHJhciBvIHF1ZSBlc3TDo28gcHJvY3VyYW5kbywgZXNwZWNpYWxtZW50ZSBzZSBvcyBpdGVucyBwZXNxdWlzw6F2ZWlzIGZvcmVtIGNvbXBsZXhvcy5cbiAqXG4gKiAjIyMjIEFjZXNzaWJpbGlkYWRlIHRyYXRhZGEgbm8gY29tcG9uZW50ZVxuICpcbiAqICBBbGd1bWFzIGRpcmV0cml6ZXMgZGUgYWNlc3NpYmlsaWRhZGUgasOhIHPDo28gdHJhdGFkYXMgbm8gY29tcG9uZW50ZSwgaW50ZXJuYW1lbnRlLCBlIG7Do28gcG9kZW0gc2VyIGFsdGVyYWRhcyBwZWxvIHByb3ByaWV0w6FyaW8gZG8gY29udGXDumRvLiBTw6NvIGVsYXM6XG4gKlxuICogLSBQZXJtaXRpciBhIGludGVyYcOnw6NvIHZpYSB0ZWNsYWRvICgyLjEuMTogS2V5Ym9hcmQgKEEpKTtcbiAqIC0gQWx0ZXJhw6fDo28gZW50cmUgb3MgZXN0YWRvcyBwcmVjaXNhIHNlciBpbmRpY2FkYSBwb3IgbWFpcyBkZSB1bSBlbGVtZW50byBhbMOpbSBkYSBjb3IgKDEuNC4xOiBVc2Ugb2YgQ29sb3IpO1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBQb1NlYXJjaEJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIF9saXRlcmFscz86IFBvU2VhcmNoTGl0ZXJhbHM7XG4gIHByaXZhdGUgX2FyaWFMYWJlbD86IHN0cmluZztcbiAgcHJpdmF0ZSBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2FiaWxpdGEgbyBwby1zZWFyY2ggZSBuw6NvIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gaW50ZXJhamEgY29tIG8gbWVzbW8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1kaXNhYmxlZCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZGUgaXRlbnMgcXVlIHNlcsOjbyB1dGlsaXphZG9zIHBhcmEgcGVzcXVpc2FcbiAgICovXG4gIEBJbnB1dCgncC1pdGVtcycpIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHVtIGFyaWEtbGFiZWwgcGFyYSBvIHBvLXNlYXJjaC5cbiAgICpcbiAgICogPiBEZXZpZG8gbyBjb21wb25lbnRlIG7Do28gcG9zc3VpciB1bWEgbGFiZWwgYXNzaW0gY29tbyBvdXRyb3MgY2FtcG9zIGRlIHRleHRvLCBvIGBhcmlhLWxhYmVsYCDDqSB1dGlsaXphZG8gcGFyYSBhY2Vzc2liaWxpZGFkZS5cbiAgICovXG4gIEBJbnB1dCgncC1hcmlhLWxhYmVsJykgc2V0IGFyaWFMYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYXJpYUxhYmVsID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUgIT09IHRoaXMubGl0ZXJhbHMuc2VhcmNoKSB7XG4gICAgICB0aGlzLl9hcmlhTGFiZWwgPSBgJHt0aGlzLl9hcmlhTGFiZWx9ICR7dGhpcy5saXRlcmFscy5zZWFyY2h9YDtcbiAgICB9XG4gIH1cblxuICBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FyaWFMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIG8gbm9tZSBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIGEgY29udmVyc8OjbyBkb3MgaXRlbnMgYXByZXNlbnRhZG9zIG5hIGxpc3RhIGRvIGNvbXBvbmVudGUgKHAtaXRlbXMpLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHRleHRvIGRlIGFwcmVzZW50YcOnw6NvIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICovXG4gIEBJbnB1dCgncC1maWx0ZXIta2V5cycpIGZpbHRlcktleXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZSAocC1pdGVtcyksIGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgcmVzcG9uc8OhdmVsIHBlbG8gdGV4dG8gZGUgYXByZXNlbnRhw6fDo28gZGUgY2FkYSBpdGVtIGRhIGxpc3RhLlxuICAgKi9cbiAgQElucHV0KCdwLWljb24nKSBpY29uOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZXRlcm1pbmEgYSBmb3JtYSBkZSByZWFsaXphciBhIHBlc3F1aXNhIG5vIGNvbXBvbmVudGVcbiAgICpcbiAgICogVmFsb3JlcyBhY2VpdG9zOlxuICAgKiAtIGBhY3Rpb25gOiBSZWFsaXphIGEgYnVzY2EgYSBjYWRhIGNhcmFjdGVyZSBkaWdpdGFkby5cbiAgICogLSBgdHJpZ2dlcmA6IFJlYWxpemEgYSBidXNjYSBhbyBwcmVzc2lvbmFyIGBlbnRlcmAgb3UgY2xpY2FyIG5vIMOtY29uZSBkZSBidXNjYS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGFjdGlvbmBcbiAgICovXG4gIEBJbnB1dCgncC1zZWFyY2gtdHlwZScpIHR5cGU6IHNlYXJjaE1vZGUgPSAnYWN0aW9uJztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tc2VhcmNoYC5cbiAgICpcbiAgICogUGFyYSB1dGlsaXphciBiYXN0YSBwYXNzYXIgYSBsaXRlcmFsIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9TZWFyY2hMaXRlcmFscyA9IHtcbiAgICogICAgc2VhcmNoOiAnUGVzcXVpc2FyJyxcbiAgICogICAgY2xlYW46ICdMaW1wYXInLFxuICAgKiAgfTtcbiAgICogYGBgXG4gICAqXG4gICAqIEUgcGFyYSBjYXJyZWdhciBhIGxpdGVyYWwgY3VzdG9taXphZGEsIGJhc3RhIGFwZW5hcyBwYXNzYXIgbyBvYmpldG8gcGFyYSBvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tc2VhcmNoXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby1zZWFyY2g+XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG9cbiAgICogW2BQb0kxOG5TZXJ2aWNlYF0oL2RvY3VtZW50YXRpb24vcG8taTE4bikgb3UgZG8gYnJvd3Nlci5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9TZWFyY2hMaXRlcmFscykge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHtcbiAgICAgICAgLi4ucG9TZWFyY2hMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XSxcbiAgICAgICAgLi4ucG9TZWFyY2hMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvU2VhcmNoTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsaXRlcmFscygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGl0ZXJhbHMgfHwgcG9TZWFyY2hMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyBtb2RvIGRlIHBlc3F1aXNhIHV0aWxpemFkbyBubyBjYW1wbyBkZSBidXNjYSwgcXVhbmRvIGhhYmlsaXRhZG8uIFZhbG9yZXMgZGVmaW5pZG9zIG5vIGVudW06IFBvU2VhcmNoRmlsdGVyTW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBgc3RhcnRzV2l0aGBcbiAgICovXG4gIEBJbnB1dCgncC1maWx0ZXItdHlwZScpIGZpbHRlclR5cGU6IFBvU2VhcmNoRmlsdGVyTW9kZSA9IFBvU2VhcmNoRmlsdGVyTW9kZS5zdGFydHNXaXRoO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gYWx0ZXJhciB2YWxvciBkbyBtb2RlbC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLW1vZGVsJykgY2hhbmdlTW9kZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBvZGUgc2VyIGluZm9ybWFkYSB1bWEgZnVuw6fDo28gcXVlIHNlcsOhIGRpc3BhcmFkYSBxdWFuZG8gaG91dmVyIGFsdGVyYcOnw7VlcyBubyBpbnB1dC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtZmlsdGVyZWQtaXRlbXMtY2hhbmdlJykgZmlsdGVyZWRJdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8YW55Pj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQb2RlIHNlciBpbmZvcm1hZGEgdW1hIGZ1bsOnw6NvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBhbHRlcmHDp8O1ZXMgbm9zIGZpbHRyb3MuXG4gICAqL1xuICBAT3V0cHV0KCdwLWZpbHRlcicpIGZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cbn1cbiJdfQ==
|