@seniorsistemas/angular-components 16.5.2 → 16.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-angular-components.umd.js +32 -4
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/dynamic-form/components/lookup/lookup.component.d.ts +6 -2
- package/components/dynamic-form/components/lookup/models/default-filter.d.ts +4 -0
- package/components/dynamic-form/components/lookup/models/index.d.ts +1 -0
- package/components/dynamic-form/configurations/fields/lookup-field.d.ts +2 -0
- package/components/dynamic-form/index.d.ts +1 -0
- package/esm2015/components/dynamic-form/components/fields/lookup/lookup-field.component.js +2 -2
- package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +31 -4
- package/esm2015/components/dynamic-form/components/lookup/models/default-filter.js +1 -0
- package/esm2015/components/dynamic-form/components/lookup/models/index.js +1 -0
- package/esm2015/components/dynamic-form/configurations/fields/lookup-field.js +1 -1
- package/esm2015/components/dynamic-form/index.js +1 -1
- package/esm5/components/dynamic-form/components/fields/lookup/lookup-field.component.js +2 -2
- package/esm5/components/dynamic-form/components/lookup/lookup.component.js +32 -4
- package/esm5/components/dynamic-form/components/lookup/models/default-filter.js +1 -0
- package/esm5/components/dynamic-form/components/lookup/models/index.js +1 -0
- package/esm5/components/dynamic-form/configurations/fields/lookup-field.js +1 -1
- package/esm5/components/dynamic-form/index.js +1 -1
- package/fesm2015/seniorsistemas-angular-components.js +31 -4
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +32 -4
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -43,8 +43,9 @@ var LookupComponent = /** @class */ (function () {
|
|
|
43
43
|
this.collapsed = false;
|
|
44
44
|
this.selected = [];
|
|
45
45
|
this.transitionOptions = "400ms cubic-bezier(0.86, 0, 0.07, 1)";
|
|
46
|
-
this.ngUnsubscribe = new Subject();
|
|
47
46
|
this.originalFormValues = {};
|
|
47
|
+
this.ngUnsubscribe = new Subject();
|
|
48
|
+
this.defaultFilterLoaded = false;
|
|
48
49
|
}
|
|
49
50
|
LookupComponent_1 = LookupComponent;
|
|
50
51
|
LookupComponent.prototype.ngOnInit = function () {
|
|
@@ -161,16 +162,40 @@ var LookupComponent = /** @class */ (function () {
|
|
|
161
162
|
LookupComponent.prototype.lazyLoadLookup = function (event) {
|
|
162
163
|
this.onLookupRequest.next(event.query);
|
|
163
164
|
};
|
|
165
|
+
LookupComponent.prototype.setDefaultFilters = function () {
|
|
166
|
+
var _this = this;
|
|
167
|
+
if (!this.defaultFilter || this.defaultFilterLoaded) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
var defaultFielterValues = {};
|
|
171
|
+
this.defaultFilter
|
|
172
|
+
.filter(function (p) { return _this.formGroupDialog.contains(p.field); })
|
|
173
|
+
.forEach(function (p) {
|
|
174
|
+
var value;
|
|
175
|
+
if (p.value instanceof Function) {
|
|
176
|
+
value = p.value();
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
value = p.value;
|
|
180
|
+
}
|
|
181
|
+
defaultFielterValues[p.field] = value;
|
|
182
|
+
});
|
|
183
|
+
this.formGroupDialog.patchValue(defaultFielterValues);
|
|
184
|
+
this.defaultFilterLoaded = true;
|
|
185
|
+
};
|
|
164
186
|
LookupComponent.prototype.showDialog = function () {
|
|
187
|
+
this.setDefaultFilters();
|
|
165
188
|
this.searchGridData = undefined;
|
|
166
189
|
this.onTouched();
|
|
167
190
|
this.hotkeysService.pause(__spread(this.hotkeysService.hotkeys));
|
|
168
191
|
this.setHotkeys();
|
|
169
192
|
var selected = [];
|
|
170
|
-
if (this.multiple && this.value)
|
|
193
|
+
if (this.multiple && this.value) {
|
|
171
194
|
selected = selected.concat(this.value);
|
|
172
|
-
|
|
195
|
+
}
|
|
196
|
+
else if (this.value) {
|
|
173
197
|
selected = [this.value];
|
|
198
|
+
}
|
|
174
199
|
this.selected = selected;
|
|
175
200
|
this.loading = true;
|
|
176
201
|
this.dialogVisible = true;
|
|
@@ -449,6 +474,9 @@ var LookupComponent = /** @class */ (function () {
|
|
|
449
474
|
__decorate([
|
|
450
475
|
Input()
|
|
451
476
|
], LookupComponent.prototype, "lookupRowProps", void 0);
|
|
477
|
+
__decorate([
|
|
478
|
+
Input()
|
|
479
|
+
], LookupComponent.prototype, "defaultFilter", void 0);
|
|
452
480
|
__decorate([
|
|
453
481
|
Output()
|
|
454
482
|
], LookupComponent.prototype, "onLookupRequest", void 0);
|
|
@@ -521,4 +549,4 @@ var LookupComponent = /** @class */ (function () {
|
|
|
521
549
|
return LookupComponent;
|
|
522
550
|
}());
|
|
523
551
|
export { LookupComponent };
|
|
524
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdHLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakcsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxD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QUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMvSCxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtvQkFDNUIsS0FBSyxDQUNELFFBQVEsRUFDUixLQUFLLENBQUM7d0JBQ0YsT0FBTyxFQUFFLENBQUM7cUJBQ2IsQ0FBQyxDQUNMO29CQUNELEtBQUssQ0FDRCxRQUFRLEVBQ1IsS0FBSyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3FCQUNiLENBQUMsQ0FDTDtvQkFDRCxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUN6RCxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUNXLGVBQWUsQ0FrZjNCO0lBQUQsc0JBQUM7Q0FBQSxBQWxmRCxJQWtmQztTQWxmWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBncm91cCwgcXVlcnksIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQmlnbnVtYmVyRmllbGRDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZFwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCB7IEhvdGtleSwgSG90a2V5c1NlcnZpY2UgfSBmcm9tIFwiYW5ndWxhcjItaG90a2V5c1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgeyBTb3J0TWV0YSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSBcInByaW1lbmcvYXV0b2NvbXBsZXRlXCI7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tIFwicHJpbWVuZy9kaWFsb2dcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBCb29sZWFuT3B0aW9uc0xhYmVsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uXCI7XG5pbXBvcnQgeyBDYWxlbmRhckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlL29wdGlvbnMvY2FsZW5kYXJcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1sb29rdXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xvb2t1cC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9sb29rdXAuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9va3VwQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJjb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZpc2libGUgPD0+IGhpZGRlblwiLCBbZ3JvdXAoW3F1ZXJ5KFwiQGNoaWxkQ29sbGFwc2VDb250ZW50XCIsIGFuaW1hdGVDaGlsZCgpKSwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpXSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjaGlsZENvbGxhcHNlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjpsZWF2ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiOmVudGVyXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPD0+ICpcIiwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb29rdXAtJHtMb29rdXBDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZUZvcmNlU2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlYXJjaCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cERpc3BsYXlGaWVsZFRvb2x0aXA6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBFbXB0eU1lc3NhZ2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cEFwcGVuZFRvID0gXCJib2R5XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUaXRsZSA9IFwiUGVzcXVpc2EgYXZhbsOnYWRhXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlID0gXCJOZW5odW0gcmVnaXN0cm8gZW5jb250cmFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoR3JpZERhdGE6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpU29ydE1ldGE6IFNvcnRNZXRhW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJUaXRsZSA9IFwiRmlsdHJvc1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyTGFiZWwgPSBcIkZpbHRyYXJcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsZWFyTGFiZWwgPSBcIkxpbXBhclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWwgPSBcIkNhbmNlbGFyXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RMYWJlbCA9IFwiU2VsZWNpb25hclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wdHlGaWVsZExhYmVsID0gXCJOw6NvIGluZm9ybWFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkTGFiZWwgPSBcIiByZWdpc3Ryb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3Jkc0xhYmVsID0gXCIgcmVnaXN0cm9zXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNvcnRhYmxlQ29sdW1uc0Rpc2FibGVkOiBzdHJpbmdbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cFJvd1Byb3BzOiBzdHJpbmdbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkxvb2t1cFJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VhcmNoUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleVVwOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25VbnNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKFRhYmxlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChEaWFsb2csIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZztcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGU7XG5cbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgYW5pbWF0aW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGNvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZDogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwRGlhbG9nOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIHRyYW5zaXRpb25PcHRpb25zID0gXCI0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSlcIjtcblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgb3JpZ2luYWxGb3JtVmFsdWVzID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hHcmlkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEZpZWxkcy5tYXAoaXRlbSA9PiBuZXcgRm9ybUZpZWxkKHsgLi4uaXRlbSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChcbiAgICAgICAgICAgICh2YWx1ZTogRm9ybUZpZWxkKSA9PiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBzaXplOiB7IHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIsIHhsOiAxMiB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEdyaWRGaWVsZHMubWFwKChncmlkRmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgZ3JpZEZpZWxkW1wid2lkdGhcIl0gPSB0aGlzLmdldENvbFdpZHRoKGdyaWRGaWVsZC5sYWJlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IG5ldyBDYWxlbmRhckxvY2FsZU9wdGlvbnMoeyAuLi5ncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsZW5kYXJPcHRpb25zPy5kYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChncmlkRmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5ob3VyRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zID0gY2FsZW5kYXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JpZEZpZWxkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLnNlYXJjaEZpZWxkcy5yZWR1Y2UoKHJlc3VsdDogYW55LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGZpZWxkLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsRm9ybVZhbHVlc1tmaWVsZC5uYW1lXSA9IGZpZWxkLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZyA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwKTtcblxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IHRydWUpKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25VbnNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25DbGVhci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uRm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uQmx1ci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlW3RoaXMubG9va3VwRGlzcGxheUZpZWxkXTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcblxuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgIWN1cnJlbnRWYWx1ZSB8fCBjdXJyZW50VmFsdWUgPT0gdmFsdWUpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBcIlwiO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udmVydFRvTW9tZW50SG91ckZvcm1hdChob3VyRm9ybWF0OiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiZGQvbW0veXlcIikgeyAvLyB2YWxvciBwYWRyw6NvIHBhcmEgbyBmb3JtYXQuXG4gICAgICAgICAgICByZXR1cm4gXCJMVFNcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3VyRm9ybWF0ID09PSBcIjEyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiSFxcYi8sIFwiaFwiKSAgICAgLy8gaG91ciAoMTIgaG91ciB0aW1lKSAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJISFxcYi8sIFwiaGhcIik7ICAvLyBob3VyICgxMiBob3VyIHRpbWUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91ckZvcm1hdCA9PT0gXCIyNFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmhcXGIvLCBcIkhcIikgICAgIC8vIGhvdXIgKDI0IGhvdXIgdGltZSkgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiaGhcXGIvLCBcIkhIXCIpOyAgLy8gaG91ciAoMjQgaG91ciB0aW1lKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gQSBvcmRlbSBkb3MgcmVwbGFjZXMgw6kgaW1wb3J0YW50ZS5cbiAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmRcXGIvLCBcIkRcIikgICAgICAvLyBkYXkgb2YgbW9udGggKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJkZFxcYi8sIFwiRERcIikgICAgLy8gZGF5IG9mIG1vbnRoXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxib1xcYi8sIFwiREREXCIpICAgIC8vIGRheSBvZiB0aGUgeWVhciAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm9vXFxiLywgXCJEREREXCIpICAvLyBkYXkgb2YgdGhlIHllYXJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJNXFxiLywgXCJNTU1cIikgICAgLy8gbW9udGggbmFtZSBzaG9ydFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYk1NXFxiLywgXCJNTU1NXCIpICAvLyBtb250aCBuYW1lIGxvbmdcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJtXFxiLywgXCJNXCIpICAgICAgLy8gbW9udGggb2YgeWVhciAobm8gbGVhZGluZylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJtbVxcYi8sIFwiTU1cIikgICAgLy8gbW9udGggb2YgeWVhclxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYnlcXGIvLCBcIllZXCIpICAgICAvLyB5ZWFyICh0d28gZGlnaXRzKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYnl5XFxiLywgXCJZWVlZXCIpOyAvLyB5ZWFyIChmb3VyIGRpZ2l0cylcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZS5vbk92ZXJsYXlBbmltYXRpb25Eb25lID0gKGV2ZW50KSA9PiB7IH07XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nVmlzaWJsZSAmJiBjaGFuZ2VzLnNlYXJjaEdyaWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldEZvY3VzRmlsdGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEdyaWREYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb29rdXBTdWdnZXN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9va3VwU3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1ha2VTZWFyY2hSZXF1ZXN0UGFyYW1zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZm9ybUdyb3VwRGlhbG9nLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uZXZlbnQsIGZpbHRlckRhdGE6IGZpbHRlcnMgfTtcbiAgICAgICAgY29uc3QgeyBtdWx0aVNvcnRNZXRhIH0gPSBldmVudDtcbiAgICAgICAgdGhpcy5tdWx0aVNvcnRNZXRhID0gbXVsdGlTb3J0TWV0YSB8fCB0aGlzLm11bHRpU29ydE1ldGE7XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRHcmlkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgLy8gQW8gZGVmaW5pciB1bWEgb3JkZW5hw6fDo28gbmEgdGFiZWxhIGRvIGxvb2t1cCBlc3NlIG3DqXRvZG8gw6kgY2hhbWFkbyAyIHZlemVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lbmcvaXNzdWVzLzU0ODBcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5tYWtlU2VhcmNoUmVxdWVzdFBhcmFtcyhldmVudCk7XG4gICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0Lm5leHQocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRMb29rdXAoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLm9uTG9va3VwUmVxdWVzdC5uZXh0KGV2ZW50LnF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd0RpYWxvZygpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hHcmlkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5ob3RrZXlzXSk7XG4gICAgICAgIHRoaXMuc2V0SG90a2V5cygpO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZDogYW55ID0gW107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWUpIHNlbGVjdGVkID0gc2VsZWN0ZWQuY29uY2F0KHRoaXMudmFsdWUpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnZhbHVlKSBzZWxlY3RlZCA9IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhpZGVEaWFsb2coKSB7XG4gICAgICAgIGNvbnN0IHsgaW5wdXRFTCwgbXVsdGlJbnB1dEVMIH0gPSB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UudW5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZWRIb3RrZXlzXSk7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIG11bHRpSW5wdXRFTC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGVsc2UgaW5wdXRFTC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5yZXNldFRhYmxlKCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaWFsb2cubW92ZU9uVG9wKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZy5yZXNldCh0aGlzLm9yaWdpbmFsRm9ybVZhbHVlcyk7XG4gICAgICAgIHRoaXMucmVzZXRUYWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldFRhYmxlKCkge1xuICAgICAgICB0aGlzLnRhYmxlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZCAmJiAodGhpcy5tdWx0aXBsZSA/IHRoaXMuc2VsZWN0ZWQgOiB0aGlzLnNlbGVjdGVkWzBdKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLm9uU2VsZWN0Lm5leHQoc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmhpZGVEaWFsb2coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWQ6IGFueSkge1xuICAgICAgICBpZiAoIXNlbGVjdGVkKSByZXR1cm47XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICBlbHNlIHRoaXMuc2VsZWN0ZWQgPSBbc2VsZWN0ZWRdO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsKTtcbiAgICAgICAgICAgIGZuKHZhbCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdCwgcHJvcCkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExhYmVsRm9yVmFsdWUodmFsdWU6IGFueSwgb3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSkge1xuICAgICAgICBpZiAoIW9wdGlvbnMpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudmFsdWUgPT09IHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbiA/IG9wdGlvbi5sYWJlbCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0Jvb2xlYW5WYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiB0cnVlO1xuICAgICAgICBlbHNlIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Qm9vbGVhbkxhYmVsKG9iajogYW55LCBwYXRoOiBzdHJpbmcsIG9wdGlvbnNMYWJlbDogQm9vbGVhbk9wdGlvbnNMYWJlbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiBvcHRpb25zTGFiZWwudHJ1ZTtcbiAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlKSByZXR1cm4gb3B0aW9uc0xhYmVsLmZhbHNlO1xuICAgICAgICBlbHNlIHJldHVybiB0aGlzLmVtcHR5RmllbGRMYWJlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOdW1iZXIob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gIShuZXcgQmlnTnVtYmVyKHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpKS5pc05hTigpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SG90a2V5cygpIHtcbiAgICAgICAgY29uc3QgY2xlYXJIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtsXCIsIHRoaXMuY2xlYXIuYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IGZpbmRIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtmXCIsIHRoaXMuc2VhcmNoLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBoaWRlSG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrY1wiLCB0aGlzLmhpZGVEaWFsb2cuYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdEhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K3NcIiwgdGhpcy5zZWxlY3QuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgY29uc3QgYmluZGVkSG90a2V5cyA9IFtjbGVhckhvdGtleSwgZmluZEhvdGtleSwgaGlkZUhvdGtleSwgc2VsZWN0SG90a2V5XTtcbiAgICAgICAgYmluZGVkSG90a2V5cy5mb3JFYWNoKChob3RrZXk6IEhvdGtleSkgPT4gdGhpcy5ob3RrZXlzU2VydmljZS5hZGQoaG90a2V5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuZXdIb3RrZXkoY29tYm86IHN0cmluZywgZm46IEZ1bmN0aW9uKTogSG90a2V5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBIb3RrZXkoXG4gICAgICAgICAgICBjb21ibyxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXCJJTlBVVFwiLCBcIlNFTEVDVFwiLCBcIlRFWFRBUkVBXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlclRvZ2dsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGVEb25lKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSB0aGUgdGFibGUgY29sdW1uIHNpemUuIFRoZSBtaW5pbXVtIHZhbHVlIGlzIDE0LjI4NmVtLCB3aGljaCBpcyBlcXVhbHMgdG8gMjAwcHggZHVvIHRvIHRoZSBjdXJyZW50IGZvbnQgc2l6ZS5cbiAgICAgKiBAcGFyYW0gbGFiZWwgQ29sdW1uIG5hbWUuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbFdpZHRoKGxhYmVsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGxhYmVsLmxlbmd0aDtcbiAgICAgICAgaWYgKHNpemUgPCAxNC4yODYpIHJldHVybiBgMTQuMjg2ZW1gO1xuICAgICAgICByZXR1cm4gYCR7c2l6ZX1lbWA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNjYWxlKHNjYWxlOiBhbnkpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Z1bmN0aW9uKHNjYWxlKSA/IHNjYWxlKCkgOiBzY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SW50ZWdlck1hc2tDb25maWcoY29sOiBCaWdudW1iZXJGaWVsZENvbmZpZyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IDAsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldERvdWJsZU1hc2tDb25maWcoY29sOiBCaWdudW1iZXJGaWVsZENvbmZpZyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IHRoaXMuZ2V0U2NhbGUoY29sLnNjYWxlKSxcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBcIlwiLFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vbmV5TWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKSA6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NhbGU6IHRoaXMuZ2V0U2NhbGUoY29sLnNjYWxlKSxcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgcHJlZml4OiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TnVtYmVyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlUm93RG91YmxlQ2xpY2socm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbcm93RGF0YV07XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Rm9jdXNGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgIXRoaXMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGlhbG9nPy5jb250ZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50Py5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcblxuICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgKGlucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
552
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdHLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakcsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxD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Q0YsT0FBTyxFQUFFLENBQUM7cUJBQ2IsQ0FBQyxDQUNMO29CQUNELFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7aUJBQ3pELENBQUM7YUFDTDs7U0FDSixDQUFDO09BQ1csZUFBZSxDQWloQjNCO0lBQUQsc0JBQUM7Q0FBQSxBQWpoQkQsSUFpaEJDO1NBamhCWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBncm91cCwgcXVlcnksIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQmlnbnVtYmVyRmllbGRDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZFwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCB7IEhvdGtleSwgSG90a2V5c1NlcnZpY2UgfSBmcm9tIFwiYW5ndWxhcjItaG90a2V5c1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgeyBTb3J0TWV0YSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSBcInByaW1lbmcvYXV0b2NvbXBsZXRlXCI7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tIFwicHJpbWVuZy9kaWFsb2dcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBCb29sZWFuT3B0aW9uc0xhYmVsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uXCI7XG5pbXBvcnQgeyBDYWxlbmRhckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlL29wdGlvbnMvY2FsZW5kYXJcIjtcbmltcG9ydCB7IERlZmF1bHRGaWx0ZXIgfSBmcm9tIFwiLi9tb2RlbHMvZGVmYXVsdC1maWx0ZXJcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1sb29rdXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xvb2t1cC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9sb29rdXAuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9va3VwQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJjb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZpc2libGUgPD0+IGhpZGRlblwiLCBbZ3JvdXAoW3F1ZXJ5KFwiQGNoaWxkQ29sbGFwc2VDb250ZW50XCIsIGFuaW1hdGVDaGlsZCgpKSwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpXSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjaGlsZENvbGxhcHNlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjpsZWF2ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiOmVudGVyXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPD0+ICpcIiwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb29rdXAtJHtMb29rdXBDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZUZvcmNlU2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlYXJjaCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cERpc3BsYXlGaWVsZFRvb2x0aXA6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBFbXB0eU1lc3NhZ2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cEFwcGVuZFRvID0gXCJib2R5XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUaXRsZSA9IFwiUGVzcXVpc2EgYXZhbsOnYWRhXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlID0gXCJOZW5odW0gcmVnaXN0cm8gZW5jb250cmFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoR3JpZERhdGE6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpU29ydE1ldGE6IFNvcnRNZXRhW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJUaXRsZSA9IFwiRmlsdHJvc1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyTGFiZWwgPSBcIkZpbHRyYXJcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsZWFyTGFiZWwgPSBcIkxpbXBhclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWwgPSBcIkNhbmNlbGFyXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RMYWJlbCA9IFwiU2VsZWNpb25hclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wdHlGaWVsZExhYmVsID0gXCJOw6NvIGluZm9ybWFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkTGFiZWwgPSBcIiByZWdpc3Ryb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3Jkc0xhYmVsID0gXCIgcmVnaXN0cm9zXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNvcnRhYmxlQ29sdW1uc0Rpc2FibGVkOiBzdHJpbmdbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cFJvd1Byb3BzOiBzdHJpbmdbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlZmF1bHRGaWx0ZXI6IERlZmF1bHRGaWx0ZXJbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkxvb2t1cFJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VhcmNoUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleVVwOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25VbnNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKFRhYmxlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChEaWFsb2csIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZztcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGU7XG5cbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgYW5pbWF0aW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGNvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZDogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwRGlhbG9nOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIHRyYW5zaXRpb25PcHRpb25zID0gXCI0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSlcIjtcblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG9yaWdpbmFsRm9ybVZhbHVlcyA9IHt9O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBkZWZhdWx0RmlsdGVyTG9hZGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hHcmlkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEZpZWxkcy5tYXAoaXRlbSA9PiBuZXcgRm9ybUZpZWxkKHsgLi4uaXRlbSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChcbiAgICAgICAgICAgICh2YWx1ZTogRm9ybUZpZWxkKSA9PiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBzaXplOiB7IHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIsIHhsOiAxMiB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEdyaWRGaWVsZHMubWFwKChncmlkRmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgZ3JpZEZpZWxkW1wid2lkdGhcIl0gPSB0aGlzLmdldENvbFdpZHRoKGdyaWRGaWVsZC5sYWJlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IG5ldyBDYWxlbmRhckxvY2FsZU9wdGlvbnMoeyAuLi5ncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsZW5kYXJPcHRpb25zPy5kYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChncmlkRmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5ob3VyRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zID0gY2FsZW5kYXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JpZEZpZWxkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLnNlYXJjaEZpZWxkcy5yZWR1Y2UoKHJlc3VsdDogYW55LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGZpZWxkLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsRm9ybVZhbHVlc1tmaWVsZC5uYW1lXSA9IGZpZWxkLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZyA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwKTtcblxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IHRydWUpKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25VbnNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25DbGVhci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uRm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uQmx1ci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlW3RoaXMubG9va3VwRGlzcGxheUZpZWxkXTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcblxuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgIWN1cnJlbnRWYWx1ZSB8fCBjdXJyZW50VmFsdWUgPT0gdmFsdWUpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBcIlwiO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udmVydFRvTW9tZW50SG91ckZvcm1hdChob3VyRm9ybWF0OiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiZGQvbW0veXlcIikgeyAvLyB2YWxvciBwYWRyw6NvIHBhcmEgbyBmb3JtYXQuXG4gICAgICAgICAgICByZXR1cm4gXCJMVFNcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3VyRm9ybWF0ID09PSBcIjEyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiSFxcYi8sIFwiaFwiKSAgICAgLy8gaG91ciAoMTIgaG91ciB0aW1lKSAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJISFxcYi8sIFwiaGhcIik7ICAvLyBob3VyICgxMiBob3VyIHRpbWUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91ckZvcm1hdCA9PT0gXCIyNFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmhcXGIvLCBcIkhcIikgICAgIC8vIGhvdXIgKDI0IGhvdXIgdGltZSkgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiaGhcXGIvLCBcIkhIXCIpOyAgLy8gaG91ciAoMjQgaG91ciB0aW1lKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gQSBvcmRlbSBkb3MgcmVwbGFjZXMgw6kgaW1wb3J0YW50ZS5cbiAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmRcXGIvLCBcIkRcIikgICAgICAvLyBkYXkgb2YgbW9udGggKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJkZFxcYi8sIFwiRERcIikgICAgLy8gZGF5IG9mIG1vbnRoXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxib1xcYi8sIFwiREREXCIpICAgIC8vIGRheSBvZiB0aGUgeWVhciAobm8gbGVhZGluZyB6ZXJvKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm9vXFxiLywgXCJEREREXCIpICAvLyBkYXkgb2YgdGhlIHllYXJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJNXFxiLywgXCJNTU1cIikgICAgLy8gbW9udGggbmFtZSBzaG9ydFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYk1NXFxiLywgXCJNTU1NXCIpICAvLyBtb250aCBuYW1lIGxvbmdcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJtXFxiLywgXCJNXCIpICAgICAgLy8gbW9udGggb2YgeWVhciAobm8gbGVhZGluZylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJtbVxcYi8sIFwiTU1cIikgICAgLy8gbW9udGggb2YgeWVhclxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYnlcXGIvLCBcIllZXCIpICAgICAvLyB5ZWFyICh0d28gZGlnaXRzKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYnl5XFxiLywgXCJZWVlZXCIpOyAvLyB5ZWFyIChmb3VyIGRpZ2l0cylcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZS5vbk92ZXJsYXlBbmltYXRpb25Eb25lID0gKGV2ZW50KSA9PiB7IH07XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nVmlzaWJsZSAmJiBjaGFuZ2VzLnNlYXJjaEdyaWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldEZvY3VzRmlsdGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEdyaWREYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb29rdXBTdWdnZXN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9va3VwU3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1ha2VTZWFyY2hSZXF1ZXN0UGFyYW1zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZm9ybUdyb3VwRGlhbG9nLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uZXZlbnQsIGZpbHRlckRhdGE6IGZpbHRlcnMgfTtcbiAgICAgICAgY29uc3QgeyBtdWx0aVNvcnRNZXRhIH0gPSBldmVudDtcbiAgICAgICAgdGhpcy5tdWx0aVNvcnRNZXRhID0gbXVsdGlTb3J0TWV0YSB8fCB0aGlzLm11bHRpU29ydE1ldGE7XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRHcmlkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgLy8gQW8gZGVmaW5pciB1bWEgb3JkZW5hw6fDo28gbmEgdGFiZWxhIGRvIGxvb2t1cCBlc3NlIG3DqXRvZG8gw6kgY2hhbWFkbyAyIHZlemVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lbmcvaXNzdWVzLzU0ODBcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5tYWtlU2VhcmNoUmVxdWVzdFBhcmFtcyhldmVudCk7XG4gICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0Lm5leHQocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRMb29rdXAoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLm9uTG9va3VwUmVxdWVzdC5uZXh0KGV2ZW50LnF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEZpbHRlcnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5kZWZhdWx0RmlsdGVyIHx8IHRoaXMuZGVmYXVsdEZpbHRlckxvYWRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdEZpZWx0ZXJWYWx1ZXMgPSB7fTtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyXG4gICAgICAgICAgICAuZmlsdGVyKHAgPT4gdGhpcy5mb3JtR3JvdXBEaWFsb2cuY29udGFpbnMocC5maWVsZCkpXG4gICAgICAgICAgICAuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHAudmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHAudmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHAudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZGVmYXVsdEZpZWx0ZXJWYWx1ZXNbcC5maWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwRGlhbG9nLnBhdGNoVmFsdWUoZGVmYXVsdEZpZWx0ZXJWYWx1ZXMpO1xuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJMb2FkZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGlhbG9nKCkge1xuICAgICAgICB0aGlzLnNldERlZmF1bHRGaWx0ZXJzKCk7XG4gICAgICAgIHRoaXMuc2VhcmNoR3JpZERhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UucGF1c2UoWy4uLnRoaXMuaG90a2V5c1NlcnZpY2UuaG90a2V5c10pO1xuICAgICAgICB0aGlzLnNldEhvdGtleXMoKTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWQ6IGFueSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IHNlbGVjdGVkLmNvbmNhdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGlkZURpYWxvZygpIHtcbiAgICAgICAgY29uc3QgeyBpbnB1dEVMLCBtdWx0aUlucHV0RUwgfSA9IHRoaXMuYXV0b2NvbXBsZXRlO1xuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS51bnBhdXNlKFsuLi50aGlzLmhvdGtleXNTZXJ2aWNlLnBhdXNlZEhvdGtleXNdKTtcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkgbXVsdGlJbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgZWxzZSBpbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoKCkge1xuICAgICAgICB0aGlzLnJlc2V0VGFibGUoKTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpYWxvZy5tb3ZlT25Ub3AoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwRGlhbG9nLnJlc2V0KHRoaXMub3JpZ2luYWxGb3JtVmFsdWVzKTtcbiAgICAgICAgdGhpcy5yZXNldFRhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0VGFibGUoKSB7XG4gICAgICAgIHRoaXMudGFibGUucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0KCkge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWQubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkICYmICh0aGlzLm11bHRpcGxlID8gdGhpcy5zZWxlY3RlZCA6IHRoaXMuc2VsZWN0ZWRbMF0pO1xuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMub25TZWxlY3QubmV4dChzZWxlY3RlZCk7XG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZDogYW55KSB7XG4gICAgICAgIGlmICghc2VsZWN0ZWQpIHJldHVybjtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpKSB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZCA9IFtzZWxlY3RlZF07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAodmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgZm4odmFsKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWVsZFZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0LCBwcm9wKSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGFiZWxGb3JWYWx1ZSh2YWx1ZTogYW55LCBvcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdKSB7XG4gICAgICAgIGlmICghb3B0aW9ucykgcmV0dXJuIHZhbHVlO1xuICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xuICAgICAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQm9vbGVhblZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEZpZWxkVmFsdWUob2JqLCBwYXRoKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCb29sZWFuTGFiZWwob2JqOiBhbnksIHBhdGg6IHN0cmluZywgb3B0aW9uc0xhYmVsOiBCb29sZWFuT3B0aW9uc0xhYmVsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG9wdGlvbnNMYWJlbC50cnVlO1xuICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiBvcHRpb25zTGFiZWwuZmFsc2U7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuZW1wdHlGaWVsZExhYmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc051bWJlcihvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAhKG5ldyBCaWdOdW1iZXIodGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCkpLmlzTmFOKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIb3RrZXlzKCkge1xuICAgICAgICBjb25zdCBjbGVhckhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2xcIiwgdGhpcy5jbGVhci5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3QgZmluZEhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K2ZcIiwgdGhpcy5zZWFyY2guYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IGhpZGVIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtjXCIsIHRoaXMuaGlkZURpYWxvZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0SG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrc1wiLCB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpKTtcblxuICAgICAgICBjb25zdCBiaW5kZWRIb3RrZXlzID0gW2NsZWFySG90a2V5LCBmaW5kSG90a2V5LCBoaWRlSG90a2V5LCBzZWxlY3RIb3RrZXldO1xuICAgICAgICBiaW5kZWRIb3RrZXlzLmZvckVhY2goKGhvdGtleTogSG90a2V5KSA9PiB0aGlzLmhvdGtleXNTZXJ2aWNlLmFkZChob3RrZXkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5ld0hvdGtleShjb21ibzogc3RyaW5nLCBmbjogRnVuY3Rpb24pOiBIb3RrZXkge1xuICAgICAgICByZXR1cm4gbmV3IEhvdGtleShcbiAgICAgICAgICAgIGNvbWJvLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtcIklOUFVUXCIsIFwiU0VMRUNUXCIsIFwiVEVYVEFSRUFcIl1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsdGVyVG9nZ2xlKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpbmcpIHJldHVybjtcblxuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZURvbmUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSB0YWJsZSBjb2x1bW4gc2l6ZS4gVGhlIG1pbmltdW0gdmFsdWUgaXMgMTQuMjg2ZW0sIHdoaWNoIGlzIGVxdWFscyB0byAyMDBweCBkdW8gdG8gdGhlIGN1cnJlbnQgZm9udCBzaXplLlxuICAgICAqIEBwYXJhbSBsYWJlbCBDb2x1bW4gbmFtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sV2lkdGgobGFiZWw6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzaXplID0gbGFiZWwubGVuZ3RoO1xuICAgICAgICBpZiAoc2l6ZSA8IDE0LjI4NikgcmV0dXJuIGAxNC4yODZlbWA7XG4gICAgICAgIHJldHVybiBgJHtzaXplfWVtYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NhbGUoc2NhbGU6IGFueSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRnVuY3Rpb24oc2NhbGUpID8gc2NhbGUoKSA6IHNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbnRlZ2VyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogMCxcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RG91YmxlTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TW9uZXlNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpIDogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXROdW1iZXJNYXNrQ29uZmlnKGNvbDogQmlnbnVtYmVyRmllbGRDb25maWcpOiBNYXNrQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjYWxlOiB0aGlzLmdldFNjYWxlKGNvbC5zY2FsZSksXG4gICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiBjb2wubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIHByZWZpeDogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFibGVSb3dEb3VibGVDbGljayhyb3dEYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFtyb3dEYXRhXTtcbiAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRGb2N1c0ZpbHRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nVmlzaWJsZSAmJiAhdGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5kaWFsb2c/LmNvbnRlbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdO1xuXG4gICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAoaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1maWx0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9sb29rdXAvbW9kZWxzL2RlZmF1bHQtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERlZmF1bHRGaWx0ZXIge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9sb29rdXAvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEZWZhdWx0RmlsdGVyIH0gZnJvbSBcIi4vZGVmYXVsdC1maWx0ZXJcIjtcbiJdfQ==
|
|
@@ -54,4 +54,4 @@ var LookupField = /** @class */ (function (_super) {
|
|
|
54
54
|
return LookupField;
|
|
55
55
|
}(Field));
|
|
56
56
|
export { LookupField };
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9sb29rdXAtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFpQzdDO0lBQWlDLCtCQUFLO0lBK0NsQyxxQkFBWSxNQUF5QjtRQUFyQyxZQUNJLGtCQUFNLHNCQUFLLE1BQU0sS0FBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBdUIsQ0FBQyxTQVNwRTtRQXhETSxjQUFRLEdBQUcsS0FBSyxDQUFDO1FBUWpCLGlCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsc0JBQWdCLEdBQUcsNEJBQTRCLENBQUM7UUFDaEQsaUJBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsaUJBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsZ0JBQVUsR0FBRyxRQUFRLENBQUM7UUFDdEIsaUJBQVcsR0FBRyxVQUFVLENBQUM7UUFDekIsaUJBQVcsR0FBRyxZQUFZLENBQUM7UUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUM7UUFDMUIsa0JBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIscUJBQWUsR0FBRyxlQUFlLENBQUM7UUFHbEMsZ0NBQTBCLEdBQUcsSUFBSSxDQUFDO1FBV2xDLGNBQVEsR0FBRyxVQUFDLEtBQVUsSUFBTSxDQUFDLENBQUM7UUFDOUIsZ0JBQVUsR0FBRyxVQUFDLEtBQVUsSUFBTSxDQUFDLENBQUM7UUFnQm5DLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTVCLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsVUFBQSxXQUFXLElBQUksT0FBQSxDQUFDLEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsRUFBdEMsQ0FBc0MsQ0FBQyxDQUFDO1FBQzVGLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUMsRUFBbUQ7Z0JBQWpELDhCQUFZLEVBQUUsc0JBQVEsRUFBRSxvREFBdUI7WUFDN0YsS0FBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsS0FBSSxDQUFDLG1CQUFtQixHQUFHLFlBQVksQ0FBQztZQUN4QyxLQUFJLENBQUMsd0JBQXdCLEdBQUcsdUJBQXVCLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7O0lBQ1AsQ0FBQztJQXRCRCxzQkFBVyxpQ0FBUTthQUFuQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLDJDQUFrQjthQUE3QjtZQUNJLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BDLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsZ0RBQXVCO2FBQWxDO1lBQ0ksT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFhTCxrQkFBQztBQUFELENBQUMsQUExREQsQ0FBaUMsS0FBSyxHQTBEckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi4vZmllbGQtdHlwZVwiO1xuaW1wb3J0IHsgRmllbGQsIEZpZWxkQ29uZmlnIH0gZnJvbSBcIi4vZmllbGRcIjtcbmltcG9ydCB7IERlZmF1bHRGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9sb29rdXAvbW9kZWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwRmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgbXVsdGlwbGU/OiBib29sZWFuO1xuICAgIHNlYXJjaEZpZWxkczogYW55W107XG4gICAgc2VhcmNoR3JpZEZpZWxkczogYW55W107XG4gICAgbG9va3VwU3VnZ2VzdGlvbnM6IGFueVtdO1xuICAgIHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgc2VhcmNoT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTx7IGdyaWREYXRhOiBhbnlbXTsgdG90YWxSZWNvcmRzOiBudW1iZXI7IHNlYXJjaFRvdGFsUmVjb3Jkc0xhYmVsPzogc3RyaW5nIH0+O1xuICAgIGRhdGFLZXk6IHN0cmluZztcbiAgICBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcbiAgICBzZWFyY2hUaXRsZT86IHN0cmluZztcbiAgICBzZWFyY2hFbXB0eVRpdGxlPzogc3RyaW5nO1xuICAgIGZpbHRlckxhYmVsPzogc3RyaW5nO1xuICAgIGZpbHRlclRpdGxlPzogc3RyaW5nO1xuICAgIGNsZWFyTGFiZWw/OiBzdHJpbmc7XG4gICAgY2FuY2VsTGFiZWw/OiBzdHJpbmc7XG4gICAgc2VsZWN0TGFiZWw/OiBzdHJpbmc7XG4gICAgZW1wdHlNZXNzYWdlPzogc3RyaW5nO1xuICAgIHJlY29yZExhYmVsPzogc3RyaW5nO1xuICAgIHJlY29yZHNMYWJlbD86IHN0cmluZztcbiAgICBlbXB0eUZpZWxkTGFiZWw/OiBzdHJpbmc7XG4gICAgYXBwZW5kVG8/OiBzdHJpbmc7XG4gICAgYXV0b2NvbXBsZXRlRm9yY2VTZWxlY3Rpb24/OiBib29sZWFuO1xuICAgIG9uTG9va3VwUmVxdWVzdDogKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgb25TZWFyY2hSZXF1ZXN0OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblNlbGVjdD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uVW5zZWxlY3Q/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkNsZWFyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25CbHVyPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgTG9va3VwRmllbGQgZXh0ZW5kcyBGaWVsZCB7XG4gICAgcHVibGljIG11bHRpcGxlID0gZmFsc2U7XG4gICAgcHVibGljIHNlYXJjaEZpZWxkczogYW55W107XG4gICAgcHVibGljIHNlYXJjaEdyaWRGaWVsZHM6IGFueVtdO1xuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG4gICAgcHVibGljIHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgcHVibGljIHNlYXJjaE9ic2VydmFibGU6IE9ic2VydmFibGU8eyBncmlkRGF0YTogYW55W107IHRvdGFsUmVjb3JkczogbnVtYmVyOyBzZWFyY2hUb3RhbFJlY29yZHNMYWJlbD86IHN0cmluZyB9PjtcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgc2VhcmNoVGl0bGUgPSBcIlBlc3F1aXNhIGF2YW7Dp2FkYVwiO1xuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlID0gXCJOZW5odW0gcmVnaXN0cm8gZW5jb250cmFkb1wiO1xuICAgIHB1YmxpYyBmaWx0ZXJMYWJlbCA9IFwiRmlsdHJhclwiO1xuICAgIHB1YmxpYyBmaWx0ZXJUaXRsZSA9IFwiRmlsdHJvc1wiO1xuICAgIHB1YmxpYyBjbGVhckxhYmVsID0gXCJMaW1wYXJcIjtcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWwgPSBcIkNhbmNlbGFyXCI7XG4gICAgcHVibGljIHNlbGVjdExhYmVsID0gXCJTZWxlY2lvbmFyXCI7XG4gICAgcHVibGljIHJlY29yZExhYmVsID0gXCIgcmVnaXN0cm9cIjtcbiAgICBwdWJsaWMgcmVjb3Jkc0xhYmVsID0gXCIgcmVnaXN0cm9zXCI7XG4gICAgcHVibGljIGVtcHR5RmllbGRMYWJlbCA9IFwiTsOjbyBpbmZvcm1hZG9cIjtcbiAgICBwdWJsaWMgZW1wdHlNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHVibGljIGFwcGVuZFRvPzogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvY29tcGxldGVGb3JjZVNlbGVjdGlvbiA9IHRydWU7XG4gICAgcHVibGljIGRlZmF1bHRGaWx0ZXI6IERlZmF1bHRGaWx0ZXJbXTtcbiAgICBwdWJsaWMgb25Mb29rdXBSZXF1ZXN0OiAocXVlcnk6IHN0cmluZykgPT4gdm9pZDtcbiAgICBwdWJsaWMgb25TZWFyY2hSZXF1ZXN0OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBwdWJsaWMgb25DbGVhcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIHB1YmxpYyBvbkJsdXI/OiAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG5cbiAgICBwcml2YXRlIF9ncmlkRGF0YTogYW55W107XG4gICAgcHJpdmF0ZSBfc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIHB1YmxpYyBvblNlbGVjdCA9IChldmVudDogYW55KSA9PiB7fTtcbiAgICBwdWJsaWMgb25VbnNlbGVjdCA9IChldmVudDogYW55KSA9PiB7fTtcblxuICAgIHB1YmxpYyBnZXQgZ3JpZERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncmlkRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlYXJjaFRvdGFsUmVjb3JkcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFRvdGFsUmVjb3JkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlYXJjaFRvdGFsUmVjb3Jkc0xhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBMb29rdXBGaWVsZENvbmZpZykge1xuICAgICAgICBzdXBlcih7IC4uLmNvbmZpZywgdHlwZTogRmllbGRUeXBlLkxvb2t1cCB9IGFzIExvb2t1cEZpZWxkQ29uZmlnKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMuc3VnZ2VzdGlvbnNPYnNlcnZhYmxlLnN1YnNjcmliZShzdWdnZXN0aW9ucyA9PiAodGhpcy5sb29rdXBTdWdnZXN0aW9ucyA9IHN1Z2dlc3Rpb25zKSk7XG4gICAgICAgIHRoaXMuc2VhcmNoT2JzZXJ2YWJsZS5waXBlKGRlbGF5KDApKS5zdWJzY3JpYmUoKHsgdG90YWxSZWNvcmRzLCBncmlkRGF0YSwgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWwgfSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZ3JpZERhdGEgPSBncmlkRGF0YTtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRvdGFsUmVjb3JkcyA9IHRvdGFsUmVjb3JkcztcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRvdGFsUmVjb3Jkc0xhYmVsID0gc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -23,4 +23,4 @@ export * from "./configurations/structure/section";
|
|
|
23
23
|
export * from "./configurations/structure/structure";
|
|
24
24
|
export * from "./dynamic-form.component";
|
|
25
25
|
export * from "./dynamic-form.module";
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9keW5hbWljLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvbG9va3VwL2xvb2t1cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2Jhc2UtZmllbGQtY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9hZGRvbi1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2R5bmFtaWMtY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9keW5hbWljLXR5cGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkLXR5cGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9hdXRvY29tcGxldGUtZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9maWVsZHMvY2FsZW5kYXItZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9jaGlwcy1maWVsZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2N1cnJlbmN5LWZpZWxkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9maWVsZHMvZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9sb29rdXAtZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9udW1iZXItZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9iaWdudW1iZXItZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9yYWRpby1idXR0b24tZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9zZWxlY3QtZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy90ZXh0LWFyZWEtZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy90ZXh0LWZpZWxkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9maWVsZHMvcGFzc3dvcmQtZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2Zvcm0tZmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9maWVsZHNldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvc3RydWN0dXJlL3NlY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9zdHJ1Y3R1cmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvbG9va3VwL21vZGVscy9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHluYW1pYy1mb3JtLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHluYW1pYy1mb3JtLm1vZHVsZVwiO1xuIl19
|
|
@@ -1879,8 +1879,9 @@ let LookupComponent = LookupComponent_1 = class LookupComponent {
|
|
|
1879
1879
|
this.collapsed = false;
|
|
1880
1880
|
this.selected = [];
|
|
1881
1881
|
this.transitionOptions = "400ms cubic-bezier(0.86, 0, 0.07, 1)";
|
|
1882
|
-
this.ngUnsubscribe = new Subject();
|
|
1883
1882
|
this.originalFormValues = {};
|
|
1883
|
+
this.ngUnsubscribe = new Subject();
|
|
1884
|
+
this.defaultFilterLoaded = false;
|
|
1884
1885
|
}
|
|
1885
1886
|
ngOnInit() {
|
|
1886
1887
|
if (!this.searchGridFields) {
|
|
@@ -1995,16 +1996,39 @@ let LookupComponent = LookupComponent_1 = class LookupComponent {
|
|
|
1995
1996
|
lazyLoadLookup(event) {
|
|
1996
1997
|
this.onLookupRequest.next(event.query);
|
|
1997
1998
|
}
|
|
1999
|
+
setDefaultFilters() {
|
|
2000
|
+
if (!this.defaultFilter || this.defaultFilterLoaded) {
|
|
2001
|
+
return;
|
|
2002
|
+
}
|
|
2003
|
+
const defaultFielterValues = {};
|
|
2004
|
+
this.defaultFilter
|
|
2005
|
+
.filter(p => this.formGroupDialog.contains(p.field))
|
|
2006
|
+
.forEach(p => {
|
|
2007
|
+
let value;
|
|
2008
|
+
if (p.value instanceof Function) {
|
|
2009
|
+
value = p.value();
|
|
2010
|
+
}
|
|
2011
|
+
else {
|
|
2012
|
+
value = p.value;
|
|
2013
|
+
}
|
|
2014
|
+
defaultFielterValues[p.field] = value;
|
|
2015
|
+
});
|
|
2016
|
+
this.formGroupDialog.patchValue(defaultFielterValues);
|
|
2017
|
+
this.defaultFilterLoaded = true;
|
|
2018
|
+
}
|
|
1998
2019
|
showDialog() {
|
|
2020
|
+
this.setDefaultFilters();
|
|
1999
2021
|
this.searchGridData = undefined;
|
|
2000
2022
|
this.onTouched();
|
|
2001
2023
|
this.hotkeysService.pause([...this.hotkeysService.hotkeys]);
|
|
2002
2024
|
this.setHotkeys();
|
|
2003
2025
|
let selected = [];
|
|
2004
|
-
if (this.multiple && this.value)
|
|
2026
|
+
if (this.multiple && this.value) {
|
|
2005
2027
|
selected = selected.concat(this.value);
|
|
2006
|
-
|
|
2028
|
+
}
|
|
2029
|
+
else if (this.value) {
|
|
2007
2030
|
selected = [this.value];
|
|
2031
|
+
}
|
|
2008
2032
|
this.selected = selected;
|
|
2009
2033
|
this.loading = true;
|
|
2010
2034
|
this.dialogVisible = true;
|
|
@@ -2281,6 +2305,9 @@ __decorate([
|
|
|
2281
2305
|
__decorate([
|
|
2282
2306
|
Input()
|
|
2283
2307
|
], LookupComponent.prototype, "lookupRowProps", void 0);
|
|
2308
|
+
__decorate([
|
|
2309
|
+
Input()
|
|
2310
|
+
], LookupComponent.prototype, "defaultFilter", void 0);
|
|
2284
2311
|
__decorate([
|
|
2285
2312
|
Output()
|
|
2286
2313
|
], LookupComponent.prototype, "onLookupRequest", void 0);
|
|
@@ -4888,7 +4915,7 @@ __decorate([
|
|
|
4888
4915
|
], LookupFieldComponent.prototype, "formControl", void 0);
|
|
4889
4916
|
LookupFieldComponent = __decorate([
|
|
4890
4917
|
Component({
|
|
4891
|
-
template: "<div\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\">\n <s-lookup\n [id]=\"(field.id || field.name)\"\n [multiple]=\"field.multiple\"\n [formControl]=\"formControl\"\n [lookupSuggestions]=\"field.lookupSuggestions\"\n [dataKey]=\"field.dataKey\"\n [placeholder]=\"field.placeholder\"\n [searchFields]=\"field.searchFields\"\n [searchGridFields]=\"field.searchGridFields\"\n [searchGridData]=\"field.gridData\"\n (onLookupRequest)=\"field.onLookupRequest($event)\"\n (onSearchRequest)=\"field.onSearchRequest($event)\"\n [lookupDisplayField]=\"field.lookupDisplayField\"\n [searchTotalRecords]=\"field.searchTotalRecords\"\n [searchTotalRecordsLabel]=\"field.searchTotalRecordsLabel\"\n [searchTitle]=\"field.searchTitle\"\n [selectLabel]=\"field.selectLabel\"\n [searchEmptyTitle]=\"field.searchEmptyTitle\"\n [filterLabel]=\"field.filterLabel\"\n [filterTitle]=\"field.filterTitle\"\n [clearLabel]=\"field.clearLabel\"\n [cancelLabel]=\"field.cancelLabel\"\n [emptyFieldLabel]=\"field.emptyFieldLabel \"\n (onSelect)=\"field.onSelect($event)\"\n (onUnselect)=\"field.onUnselect($event)\"\n (onClear)=\"field.onClear ? field.onClear($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [lookupAppendTo]=\"field.appendTo\"\n [lookupEmptyMessage]=\"field.emptyMessage\"\n [recordLabel]=\"field.recordLabel\"\n [recordsLabel]=\"field.recordsLabel\"\n [autocompleteForceSelection]=\"field.autocompleteForceSelection\">\n </s-lookup>\n</div>\n"
|
|
4918
|
+
template: "<div\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\">\n <s-lookup\n [id]=\"(field.id || field.name)\"\n [multiple]=\"field.multiple\"\n [formControl]=\"formControl\"\n [lookupSuggestions]=\"field.lookupSuggestions\"\n [dataKey]=\"field.dataKey\"\n [placeholder]=\"field.placeholder\"\n [searchFields]=\"field.searchFields\"\n [searchGridFields]=\"field.searchGridFields\"\n [searchGridData]=\"field.gridData\"\n (onLookupRequest)=\"field.onLookupRequest($event)\"\n (onSearchRequest)=\"field.onSearchRequest($event)\"\n [lookupDisplayField]=\"field.lookupDisplayField\"\n [searchTotalRecords]=\"field.searchTotalRecords\"\n [searchTotalRecordsLabel]=\"field.searchTotalRecordsLabel\"\n [searchTitle]=\"field.searchTitle\"\n [selectLabel]=\"field.selectLabel\"\n [searchEmptyTitle]=\"field.searchEmptyTitle\"\n [filterLabel]=\"field.filterLabel\"\n [filterTitle]=\"field.filterTitle\"\n [clearLabel]=\"field.clearLabel\"\n [cancelLabel]=\"field.cancelLabel\"\n [emptyFieldLabel]=\"field.emptyFieldLabel \"\n (onSelect)=\"field.onSelect($event)\"\n (onUnselect)=\"field.onUnselect($event)\"\n (onClear)=\"field.onClear ? field.onClear($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [lookupAppendTo]=\"field.appendTo\"\n [lookupEmptyMessage]=\"field.emptyMessage\"\n [recordLabel]=\"field.recordLabel\"\n [recordsLabel]=\"field.recordsLabel\"\n [defaultFilter]=\"field.defaultFilter\"\n [autocompleteForceSelection]=\"field.autocompleteForceSelection\">\n </s-lookup>\n</div>\n"
|
|
4892
4919
|
})
|
|
4893
4920
|
], LookupFieldComponent);
|
|
4894
4921
|
|