@churchillliving/se-ui-toolkit 6.54.398 → 6.54.400

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.
@@ -51,6 +51,7 @@ export class ReportFilterComponent {
51
51
  this.formFields = this.reportJson?.FormFields;
52
52
  this.formFields = this.setReportFilterViewParameters(this.reportJson?.Parameters, this.formFields);
53
53
  this.setParamFieldValue();
54
+ this.enableSearchForDropdown();
54
55
  this.initializeForm();
55
56
  // set dropdown data based on matched field.
56
57
  this.setDropDownData(this.reportJson);
@@ -59,6 +60,13 @@ export class ReportFilterComponent {
59
60
  this.alertService.error(error);
60
61
  });
61
62
  }
63
+ enableSearchForDropdown() {
64
+ this.formFields.forEach(field => {
65
+ if (field.control === EFormControl.DROPDOWN) {
66
+ field.allowSearch = true;
67
+ }
68
+ });
69
+ }
62
70
  setReportFilterViewParameters(Parameter, formFields) {
63
71
  Parameter.forEach((param) => {
64
72
  if (param?.filters?.length > 0) {
@@ -251,4 +259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
251
259
  }], ctorParameters: function () { return [{ type: i1.DynamicDialogConfig, decorators: [{
252
260
  type: Optional
253
261
  }] }, { type: i2.RequestService }, { type: i3.AuthenticationService }, { type: i4.FormService }, { type: i5.GridService }, { type: i6.AlertService }]; } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnQtRmlsdGVyL3JlcG9ydC1maWx0ZXIvcmVwb3J0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnQtRmlsdGVyL3JlcG9ydC1maWx0ZXIvcmVwb3J0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUFFLFlBQVksRUFBNEIsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFVdkcsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUErQixNQUEyQixFQUFVLGNBQThCLEVBQVMscUJBQTRDLEVBQVUsV0FBd0IsRUFBVSxXQUF3QixFQUFVLFlBQTBCO1FBQWhPLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUgvUCxlQUFVLEdBQWlCLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQVEsRUFBRSxDQUFDO0lBRThPLENBQUM7SUFFcFEsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBRTdCLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixZQUFZLEVBQUU7Z0JBQ1o7b0JBQ0UsTUFBTSxFQUFFO3dCQUNOLEdBQUcsSUFBSSxDQUFDLFVBQVU7d0JBQ2xCOzRCQUNFLEtBQUssRUFBRSxVQUFVOzRCQUNqQixPQUFPLEVBQUUsWUFBWSxDQUFDLFVBQVU7NEJBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxxQkFBcUI7NEJBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0NBQ1osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOzRCQUN4QixDQUFDO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FFRixDQUFBO0lBQ0gsQ0FBQztJQUNELG1CQUFtQjtRQUNqQixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBQ2pELE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDO1FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtRQUNqSCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBZ0IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUNuRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QixDQUFDLFNBQVMsRUFBRSxVQUFVO1FBQ2pELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxQixJQUFJLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDOUIsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDakMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7b0JBQ2pHLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO3dCQUNkLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDNUYsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtxQkFDeEQ7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQzlLLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtvQkFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUMzQztnQkFDRCxTQUFTO2dCQUNULCtHQUErRztnQkFDL0csSUFBSTtZQUNOLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWU7UUFDN0IsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUM3QyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFhLGFBQWEsRUFBRTtvQkFDakQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxXQUFXO29CQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztpQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO29CQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRTt3QkFDcEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFO3FCQUMxQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFBO2FBQ0g7aUJBQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUMvRCxJQUFJLFVBQVUsR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO2dCQUNwQyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTt3QkFDckUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRTtxQkFDakcsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFjO1FBQy9CLElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUN0QixNQUFNLFdBQVcsR0FBRyxTQUFTLEVBQUUsT0FBTyxDQUFDO1FBQ3ZDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sV0FBVyxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO2dCQUNyRyxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLE1BQU0sRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQ25GLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ2xCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUNELElBQUksU0FBUyxFQUFFLFNBQVMsS0FBSyxVQUFVLElBQUksV0FBVyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbEUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFO29CQUMvRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDOUY7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBR0QsZUFBZTtRQUNiLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM3QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDekwsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTthQUN6QjtpQkFBTSxJQUFJLEtBQUssRUFBRSxTQUFTLElBQUksVUFBVSxFQUFFO2dCQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO2FBQ3RIO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksVUFBVSxFQUFFO29CQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDL0Y7cUJBQ0ksSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtvQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7aUJBQy9GO2dCQUFBLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLE9BQU8sR0FBUSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQy9DLElBQUksUUFBUSxLQUFLLFdBQVcsQ0FBQyxLQUFLLElBQUksUUFBUSxLQUFLLFdBQVcsQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDbkcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDNUU7YUFDSTtZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQU87UUFDbEIsSUFBSSxRQUFhLENBQUM7UUFDbEIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ3RELFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQTtTQUNoSzthQUNJO1lBQ0gsUUFBUSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFBO1NBQ3ZLO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO2FBQ3ZELFNBQVMsQ0FDUixDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDZCxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakMsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU87UUFDbEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xELElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQWEsa0JBQWtCLEVBQUU7b0JBQ3RELFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDMUIsT0FBTyxFQUFFLE9BQU87aUJBQ2pCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwQixNQUFNLFFBQVEsR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztvQkFDOUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxVQUFVLEtBQUssV0FBVyxDQUFDLEtBQUssRUFBRTt3QkFDcEMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDO3dCQUM5QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3pGLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFDO3FCQUNyRjt5QkFBTSxJQUFJLFVBQVUsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFO3dCQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztxQkFDbEQ7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7cUJBQ2pEO29CQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLFdBQVcsR0FBUSxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQWEsaUNBQWlDLEVBQUU7WUFDckUsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLEtBQUs7WUFDakIsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVM7WUFDN0MsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQ3ZCLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUN2QixDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFhLEVBQUUsVUFBa0I7UUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXhELENBQUM7SUFFRCxhQUFhLENBQUMsUUFBYSxFQUFFLFVBQWU7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7aUlBdlBVLHFCQUFxQjtxSEFBckIscUJBQXFCLHdEQ2JsQyw4SUFPQTs7MkZETWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBU2YsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgRUZvcm1Db250cm9sLCBJRHluYW1pY0Zvcm0sIElGb3JtRmllbGQsIElSZXBvcnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlLXJlcG9ydC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVwb3J0LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkeW5hbWljRm9ybTogSUR5bmFtaWNGb3JtO1xuICBmb3JtRmllbGRzOiBJRm9ybUZpZWxkW10gPSBbXTtcbiAgcmVwb3J0SnNvbjogYW55ID0ge307XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZywgcHJpdmF0ZSByZXF1ZXN0U2VydmljZTogUmVxdWVzdFNlcnZpY2UscHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgcHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZUR5bmFtaWNGaWVsZHMoKTtcblxuICB9XG4gIGluaXRpYWxpemVGb3JtKCkge1xuICAgIHRoaXMuZHluYW1pY0Zvcm0gPSB7XG4gICAgICBmb3JtU2VjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgLi4udGhpcy5mb3JtRmllbGRzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ0Rvd25sb2FkJyxcbiAgICAgICAgICAgICAgY29udHJvbDogRUZvcm1Db250cm9sLkFERF9CVVRUT04sXG4gICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5jb25maWc/LmRhdGE/LmhpZGVHZW5lcmF0ZVJlcG9ydEJ0bixcbiAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRSZXBvcnQoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cblxuICAgIH1cbiAgfVxuICBjcmVhdGVEeW5hbWljRmllbGRzKCkge1xuICAgIGNvbnN0IGdldFJlcG9ydEJ5UmVwb3J0ID0gJy9SZXBvcnRDb25maWcvUmVwb3J0JztcbiAgICBjb25zdCBnZXRSZXBvcnRCeUlkID0gJy9SZXBvcnRDb25maWcvQnlJZCc7XG4gICAgY29uc3QgZ2V0UmVwb3J0QnlJZE9yTmFtZSA9IHR5cGVvZiAodGhpcy5jb25maWcuZGF0YT8uZ2V0UmVwb3J0KSA9PT0gJ251bWJlcicgPyBnZXRSZXBvcnRCeUlkIDogZ2V0UmVwb3J0QnlSZXBvcnRcbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldE9uZTxSZXNwb25zZSwgYW55PihnZXRSZXBvcnRCeUlkT3JOYW1lLCB0aGlzLmNvbmZpZy5kYXRhPy5nZXRSZXBvcnQpLnN1YnNjcmliZShcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXBvcnRKc29uID0gSlNPTi5wYXJzZShkYXRhPy5yZXBvcnQpO1xuICAgICAgICB0aGlzLmZvcm1GaWVsZHMgPSB0aGlzLnJlcG9ydEpzb24/LkZvcm1GaWVsZHM7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkcyA9IHRoaXMuc2V0UmVwb3J0RmlsdGVyVmlld1BhcmFtZXRlcnModGhpcy5yZXBvcnRKc29uPy5QYXJhbWV0ZXJzLCB0aGlzLmZvcm1GaWVsZHMpO1xuICAgICAgICB0aGlzLnNldFBhcmFtRmllbGRWYWx1ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XG4gICAgICAgIC8vIHNldCBkcm9wZG93biBkYXRhIGJhc2VkIG9uIG1hdGNoZWQgZmllbGQuXG4gICAgICAgIHRoaXMuc2V0RHJvcERvd25EYXRhKHRoaXMucmVwb3J0SnNvbik7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBzZXRSZXBvcnRGaWx0ZXJWaWV3UGFyYW1ldGVycyhQYXJhbWV0ZXIsIGZvcm1GaWVsZHMpIHtcbiAgICBQYXJhbWV0ZXIuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgIGlmIChwYXJhbT8uZmlsdGVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICBwYXJhbT8uZmlsdGVycz8uZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBmb3JtRmllbGRzLmZpbmRJbmRleCgoeCkgPT4geC5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gZmlsdGVyLmZpZWxkPy50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBmb3JtRmllbGRzW2luZGV4XS5sYWJlbCA9IGZpbHRlci5kaXNwbGF5bmFtZSA/IGZpbHRlci5kaXNwbGF5bmFtZSA6IGZvcm1GaWVsZHNbaW5kZXhdLmxhYmVsO1xuICAgICAgICAgICAgZm9ybUZpZWxkc1tpbmRleF0uaGlkZGVuID0gZmlsdGVyLmhpZGRlbiA/IHRydWUgOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmb3JtRmllbGRzO1xuICB9XG5cbiAgc2V0UGFyYW1GaWVsZFZhbHVlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5kYXRhICYmIHRoaXMuY29uZmlnLmRhdGEucGFyYW0/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY29uZmlnLmRhdGEucGFyYW0uZm9yRWFjaCgocGFyYW06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJhbSlbMF07XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb3JtRmllbGRzLmZpbmRJbmRleCgoZm9ybUZpZWxkKSA9PiAoZm9ybUZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSkgfHwgKGZvcm1GaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gJ0AnICsga2V5LnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICBpZiAoaW5kZXggPiAtMSAmJiBrZXkpIHtcbiAgICAgICAgICB0aGlzLmZvcm1GaWVsZHNbaW5kZXhdLnZhbHVlID0gcGFyYW1ba2V5XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbHNlIHtcbiAgICAgICAgLy8gdGhpcy5mb3JtRmllbGRzLnB1c2goeyBmaWVsZDoga2V5LCBsYWJlbDoga2V5LCB2YWx1ZTogcGFyYW1ba2V5XSwgY29sdW1uOiA0LCBjb250cm9sOiBFRm9ybUNvbnRyb2wuSU5QVVQgfSk7XG4gICAgICAgIC8vIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldERyb3BEb3duRGF0YShyZXBvcnRKc29uOiBhbnkpIHtcbiAgICByZXBvcnRKc29uLlBhcmFtZXRlcnM/LmZvckVhY2goKHJlY29yZDogYW55KSA9PiB7XG4gICAgICBpZiAocmVjb3JkLmlzdW5pcXVla2V5KSB7XG4gICAgICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvRGF0YS9GZXRjaCcsIHtcbiAgICAgICAgICB1bmlxdWVLZXk6IHJlY29yZC5pc3VuaXF1ZWtleSxcbiAgICAgICAgICBmaWx0ZXJzOiB0aGlzLmdldERyb3Bkb3duRmlsdGVycyhyZWNvcmQpXG4gICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uuc2V0Rm9ybUZpZWxkUHJvcCh0aGlzLmR5bmFtaWNGb3JtLCByZWNvcmQucGFyYW1uYW1lLCBbXG4gICAgICAgICAgICB7IG5hbWU6ICdkYXRhJywgdmFsdWU6IHJlc3BvbnNlLnJlY29yZHMgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYXBpRXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChyZWNvcmQucGFyYW10eXBlID09PSBcIkRyb3BEb3duXCIgJiYgcmVjb3JkLnBhcmFtdmFsdWUpIHtcbiAgICAgICAgbGV0IHBhcmFtVmFsdWUgPSByZWNvcmQ/LnBhcmFtdmFsdWU7XG4gICAgICAgIGlmIChwYXJhbVZhbHVlICYmIHBhcmFtVmFsdWUuaW5jbHVkZXMoJywnKSkge1xuICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uuc2V0Rm9ybUZpZWxkUHJvcCh0aGlzLmR5bmFtaWNGb3JtLCByZWNvcmQ/LnBhcmFtbmFtZSwgW1xuICAgICAgICAgICAgeyBuYW1lOiAnZGF0YScsIHZhbHVlOiBwYXJhbVZhbHVlLnNwbGl0KCcsJyk/Lm1hcCgodmFsdWUpID0+ICh7IGxhYmVsOiB2YWx1ZSwgdmFsdWU6IHZhbHVlIH0pKSB9XG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldERyb3Bkb3duRmlsdGVycyhQYXJhbWV0ZXI6IGFueSkge1xuICAgIGxldCBmaWx0ZXJzOiBhbnkgPSBbXTtcbiAgICBjb25zdCBwYXJhbUZpbHRlciA9IFBhcmFtZXRlcj8uZmlsdGVycztcbiAgICBsZXQgYXJyID0gW107XG4gICAgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIGlmIChmaWx0ZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaEZpbHRlciA9IHBhcmFtRmlsdGVyPy5maW5kKCh4KSA9PiB4Py5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gZmlsdGVyLmZpZWxkPy50b0xvd2VyQ2FzZSgpKVxuICAgICAgICBpZiAobWF0Y2hGaWx0ZXIgJiYgbWF0Y2hGaWx0ZXIuZmllbGQ/LnRvTG93ZXJDYXNlKCkgPT09IGZpbHRlcj8uZmllbGQudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIGFyci5wdXNoKGZpbHRlcik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChQYXJhbWV0ZXI/LnBhcmFtdHlwZSA9PT0gJ0Ryb3BEb3duJyAmJiBwYXJhbUZpbHRlcj8ubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1GaWx0ZXIuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIGlmICghYXJyPy5zb21lKG9iaiA9PiBvYmouZmllbGQ/LnRvTG93ZXJDYXNlKCkgPT09IGZpbHRlci5maWVsZD8udG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICBhcnIucHVzaCh7IGZpZWxkOiBmaWx0ZXIuZmllbGQsIG1hdGNoTW9kZTogJ2VxdWFsJywgb3BlcmF0b3I6ICdhbmQnLCB2YWx1ZTogZmlsdGVyPy52YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG5cbiAgZ2V0UmVwb3J0RmlsdGVyKCkge1xuICAgIGxldCBhcnIgPSBbXTtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKClcbiAgICB0aGlzLnJlcG9ydEpzb24/LlBhcmFtZXRlcnM/LmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcnMuZmluZEluZGV4KChmaWx0ZXIpID0+IChmaWx0ZXIuZmllbGQ/LnRvTG93ZXJDYXNlKCkgPT09IHBhcmFtPy5wYXJhbW5hbWU/LnRvTG93ZXJDYXNlKCkpIHx8IChmaWx0ZXIuZmllbGQ/LnRvTG93ZXJDYXNlKCkgPT09ICdAJyArIHBhcmFtPy5wYXJhbW5hbWU/LnRvTG93ZXJDYXNlKCkpKVxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgYXJyLnB1c2goZmlsdGVyc1tpbmRleF0pXG4gICAgICB9IGVsc2UgaWYgKHBhcmFtPy5wYXJhbXR5cGUgIT0gJ0Ryb3BEb3duJykge1xuICAgICAgICBhcnIucHVzaCh7IGZpZWxkOiBwYXJhbT8ucGFyYW1uYW1lPy5yZXBsYWNlKCdAJywgJycpLCBtYXRjaE1vZGU6ICdlcXVhbCcsIG9wZXJhdG9yOiAnYW5kJywgdmFsdWU6IHBhcmFtLnBhcmFtdmFsdWUgfSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCkge1xuICAgIGxldCBmaWx0ZXJzOiBhbnkgPSBbXTtcbiAgICB0aGlzLmR5bmFtaWNGb3JtPy5mb3JtU2VjdGlvbnM/LmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQuY29udHJvbCA9PSBcImNoZWNrYm94XCIpIHtcbiAgICAgICAgICBmaWx0ZXJzLnB1c2goeyBmaWVsZDogZmllbGQuZmllbGQsIG1hdGNoTW9kZTogJ2VxdWFsJywgb3BlcmF0b3I6ICdhbmQnLCB2YWx1ZTogZmllbGQudmFsdWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZmllbGQgJiYgZmllbGQudmFsdWUpIHtcbiAgICAgICAgICBmaWx0ZXJzLnB1c2goeyBmaWVsZDogZmllbGQuZmllbGQsIG1hdGNoTW9kZTogJ2VxdWFsJywgb3BlcmF0b3I6ICdhbmQnLCB2YWx1ZTogZmllbGQudmFsdWUgfSk7XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxuXG4gIGRvd25sb2FkUmVwb3J0KCkge1xuICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHRoaXMuZ2V0UmVwb3J0RmlsdGVyKCk7XG4gICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLmNvbmZpZz8uZGF0YT8ucmVwb3J0VHlwZTtcbiAgICBpZiAoZmlsZVR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMIHx8IGZpbGVUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUIHx8IGZpbGVUeXBlID09PSBJUmVwb3J0VHlwZS5DU1YpIHtcbiAgICAgIHRoaXMuZG93bmxvYWRDdXN0b21SZXBvcnQoZmlsZVR5cGUsIHRoaXMuY29uZmlnPy5kYXRhPy5yZXBvcnROYW1lLCBmaWx0ZXJzKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0UGRmUmVwb3J0KGZpbHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldFBkZlJlcG9ydChmaWx0ZXJzKSB7XG4gICAgbGV0IHJlcElkT2JqOiBhbnk7XG4gICAgaWYgKHR5cGVvZiAodGhpcy5jb25maWc/LmRhdGE/LmdldFJlcG9ydCkgPT09ICdudW1iZXInKSB7XG4gICAgICByZXBJZE9iaiA9IHsgSWQ6IHRoaXMuY29uZmlnPy5kYXRhPy5nZXRSZXBvcnQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogdGhpcy5jb25maWc/LmRhdGE/LnJlcG9ydEhlYWRlciwgUmVwb3J0Rm9vdGVyOiB0aGlzLmNvbmZpZz8uZGF0YT8ucmVwb3J0Rm9vdGVyIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXBJZE9iaiA9IHsgdW5pcXVlS2V5OiB0aGlzLmNvbmZpZz8uZGF0YT8uZ2V0UmVwb3J0LCBmaWx0ZXJzOiBmaWx0ZXJzLCBSZXBvcnRIZWFkZXI6IHRoaXMuY29uZmlnPy5kYXRhPy5yZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogdGhpcy5jb25maWc/LmRhdGE/LnJlcG9ydEZvb3RlciB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5kb3dubG9hZCgnL1JlcG9ydC9HZW5lcmF0ZScsIHJlcElkT2JqKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdmFyIG5ld0Jsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2UuYm9keV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ld0Jsb2IpO1xuICAgICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgYS5ocmVmID0gZGF0YTtcbiAgICAgICAgICBjb25zdCBoZWFkZXIgPSByZXNwb25zZT8uaGVhZGVycz8uZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJyk7XG4gICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBoZWFkZXI/LnNwbGl0KCdmaWxlbmFtZT0nKT8uWzFdPy5zcGxpdChcIjtcIilbMF0/LnJlcGxhY2VBbGwoL1xcXCIvZywgJycpO1xuICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgICAgICAgIHRoaXMuY29uZmlnLmRhdGE/LnJlZj8uY2xvc2UoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYXBpRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZG93bmxvYWRDdXN0b21SZXBvcnQocmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgZmlsdGVycykge1xuICAgIHRoaXMuY29uZmlnPy5kYXRhPy5yZXBvcnRKc29uRGF0YT8uZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgaWYgKGRhdGE/LmRhdGFzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9EYXRhL011bHRpRmV0Y2gnLCB7XG4gICAgICAgICAgdW5pcXVlS2V5OiBkYXRhLmRhdGFzb3VyY2UsXG4gICAgICAgICAgZmlsdGVyczogZmlsdGVyc1xuICAgICAgICB9KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJlcG9ydCgpO1xuICAgICAgICAgIGNvbnN0IHJvd3NJbmZvID0gcmVzcG9uc2U/LnRhYmxlc1swXT8ucmVjb3JkcztcbiAgICAgICAgICBjb25zdCB1cGRhdGVkUm93c0luZm8gPSB0aGlzLmdyaWRTZXJ2aWNlLmZvcm1hdERhdGVDb2x1bW4ocm93c0luZm8pO1xuICAgICAgICAgIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5FWENFTCkge1xuICAgICAgICAgICAgY29uc3QgaXNHcmlkRXhjZWxEYXRhID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gcm93c0luZm8ubGVuZ3RoID4gMCA/IE9iamVjdD8ua2V5cyhyZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzWzBdKSA6IFtdO1xuICAgICAgICAgICAgdGhpcy5ncmlkU2VydmljZS5leHBvcnRFeGNlbCh1cGRhdGVkUm93c0luZm8sIGNvbHVtbnMsIHJlcG9ydE5hbWUsIGlzR3JpZEV4Y2VsRGF0YSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVBc1RleHRGaWxlKHVwZGF0ZWRSb3dzSW5mbywgcmVwb3J0TmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZURhdGFBc0Nzdih1cGRhdGVkUm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNvbmZpZy5kYXRhPy5yZWY/LmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVSZXBvcnQoKXtcbiAgICBsZXQgY3VycmVudFVzZXI6IGFueSA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVzZXJJbmZvKCk7XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9SZXBvcnRDb25maWcvUmVwb3J0VXNlclNldHRpbmcnLCB7XG4gICAgICBpc1J1blJlcG9ydDogdHJ1ZSxcbiAgICAgIGlzRmF2b3JpdGU6IGZhbHNlLFxuICAgICAgcmVwb3J0VW5pcXVlS2V5OiB0aGlzLmNvbmZpZz8uZGF0YT8udW5pcXVlS2V5LFxuICAgICAgdXNlcklkOiBjdXJyZW50VXNlcj8uaWQsXG4gICAgICByZXBvcnRJZDogMFxuICAgIH0pLnN1YnNjcmliZSgocmVzKSA9PiB7fSxcbiAgICAgKHsgZXJyb3IgfSkgPT4ge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0byB0ZXh0IChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzVGV4dEZpbGUocm93c0luZm86IGFueSwgcmVwb3J0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQXNUZXh0RmlsZShyb3dzSW5mbywgcmVwb3J0TmFtZSk7XG5cbiAgfVxuXG4gIHNhdmVEYXRhQXNDc3Yocm93c0luZm86IGFueSwgcmVwb3J0TmFtZTogYW55KSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlRGF0YUFzQ3N2KHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgfVxuXG59XG4iLCI8c2UtZm9ybS11dGlsICBcbipuZ0lmPVwiZHluYW1pY0Zvcm1cIlxuW2Zvcm1dPVwiZHluYW1pY0Zvcm1cIlxuW2hpZGVTYXZlQnV0dG9uXT1cInRydWVcIlxuW2hpZGVDYW5jZWxCdXR0b25dPVwidHJ1ZVwiXG4+XG48L3NlLWZvcm0tdXRpbD5cbiJdfQ==
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnQtRmlsdGVyL3JlcG9ydC1maWx0ZXIvcmVwb3J0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnQtRmlsdGVyL3JlcG9ydC1maWx0ZXIvcmVwb3J0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUFFLFlBQVksRUFBNEIsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFVdkcsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUErQixNQUEyQixFQUFVLGNBQThCLEVBQVMscUJBQTRDLEVBQVUsV0FBd0IsRUFBVSxXQUF3QixFQUFVLFlBQTBCO1FBQWhPLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUgvUCxlQUFVLEdBQWlCLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQVEsRUFBRSxDQUFDO0lBRThPLENBQUM7SUFFcFEsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBRTdCLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcs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QUUsS0FBSyxFQUFFLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxXQUFXLEdBQVEsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFhLGlDQUFpQyxFQUFFO1lBQ3JFLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTO1lBQzdDLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN2QixRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFDdkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsUUFBYSxFQUFFLFVBQWtCO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUV4RCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWEsRUFBRSxVQUFlO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO2lJQWhRVSxxQkFBcUI7cUhBQXJCLHFCQUFxQix3RENibEMsOElBT0E7OzJGRE1hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQVNmLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IEVGb3JtQ29udHJvbCwgSUR5bmFtaWNGb3JtLCBJRm9ybUZpZWxkLCBJUmVwb3J0VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1yZXBvcnQtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXBvcnQtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0RmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZHluYW1pY0Zvcm06IElEeW5hbWljRm9ybTtcbiAgZm9ybUZpZWxkczogSUZvcm1GaWVsZFtdID0gW107XG4gIHJlcG9ydEpzb246IGFueSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLCBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVEeW5hbWljRmllbGRzKCk7XG5cbiAgfVxuICBpbml0aWFsaXplRm9ybSgpIHtcbiAgICB0aGlzLmR5bmFtaWNGb3JtID0ge1xuICAgICAgZm9ybVNlY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIC4uLnRoaXMuZm9ybUZpZWxkcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdEb3dubG9hZCcsXG4gICAgICAgICAgICAgIGNvbnRyb2w6IEVGb3JtQ29udHJvbC5BRERfQlVUVE9OLFxuICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuY29uZmlnPy5kYXRhPy5oaWRlR2VuZXJhdGVSZXBvcnRCdG4sXG4gICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkUmVwb3J0KCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG5cbiAgICB9XG4gIH1cbiAgY3JlYXRlRHluYW1pY0ZpZWxkcygpIHtcbiAgICBjb25zdCBnZXRSZXBvcnRCeVJlcG9ydCA9ICcvUmVwb3J0Q29uZmlnL1JlcG9ydCc7XG4gICAgY29uc3QgZ2V0UmVwb3J0QnlJZCA9ICcvUmVwb3J0Q29uZmlnL0J5SWQnO1xuICAgIGNvbnN0IGdldFJlcG9ydEJ5SWRPck5hbWUgPSB0eXBlb2YgKHRoaXMuY29uZmlnLmRhdGE/LmdldFJlcG9ydCkgPT09ICdudW1iZXInID8gZ2V0UmVwb3J0QnlJZCA6IGdldFJlcG9ydEJ5UmVwb3J0XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXRPbmU8UmVzcG9uc2UsIGFueT4oZ2V0UmVwb3J0QnlJZE9yTmFtZSwgdGhpcy5jb25maWcuZGF0YT8uZ2V0UmVwb3J0KS5zdWJzY3JpYmUoXG4gICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVwb3J0SnNvbiA9IEpTT04ucGFyc2UoZGF0YT8ucmVwb3J0KTtcbiAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gdGhpcy5yZXBvcnRKc29uPy5Gb3JtRmllbGRzO1xuICAgICAgICB0aGlzLmZvcm1GaWVsZHMgPSB0aGlzLnNldFJlcG9ydEZpbHRlclZpZXdQYXJhbWV0ZXJzKHRoaXMucmVwb3J0SnNvbj8uUGFyYW1ldGVycywgdGhpcy5mb3JtRmllbGRzKTtcbiAgICAgICAgdGhpcy5zZXRQYXJhbUZpZWxkVmFsdWUoKTtcbiAgICAgICAgdGhpcy5lbmFibGVTZWFyY2hGb3JEcm9wZG93bigpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XG4gICAgICAgIC8vIHNldCBkcm9wZG93biBkYXRhIGJhc2VkIG9uIG1hdGNoZWQgZmllbGQuXG4gICAgICAgIHRoaXMuc2V0RHJvcERvd25EYXRhKHRoaXMucmVwb3J0SnNvbik7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBlbmFibGVTZWFyY2hGb3JEcm9wZG93bigpIHtcbiAgICB0aGlzLmZvcm1GaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBpZiAoZmllbGQuY29udHJvbCA9PT0gRUZvcm1Db250cm9sLkRST1BET1dOKSB7XG4gICAgICAgIGZpZWxkLmFsbG93U2VhcmNoID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldFJlcG9ydEZpbHRlclZpZXdQYXJhbWV0ZXJzKFBhcmFtZXRlciwgZm9ybUZpZWxkcykge1xuICAgIFBhcmFtZXRlci5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgaWYgKHBhcmFtPy5maWx0ZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHBhcmFtPy5maWx0ZXJzPy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGZvcm1GaWVsZHMuZmluZEluZGV4KCh4KSA9PiB4LmZpZWxkPy50b0xvd2VyQ2FzZSgpID09PSBmaWx0ZXIuZmllbGQ/LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGZvcm1GaWVsZHNbaW5kZXhdLmxhYmVsID0gZmlsdGVyLmRpc3BsYXluYW1lID8gZmlsdGVyLmRpc3BsYXluYW1lIDogZm9ybUZpZWxkc1tpbmRleF0ubGFiZWw7XG4gICAgICAgICAgICBmb3JtRmllbGRzW2luZGV4XS5oaWRkZW4gPSBmaWx0ZXIuaGlkZGVuID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGZvcm1GaWVsZHM7XG4gIH1cblxuICBzZXRQYXJhbUZpZWxkVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGEgJiYgdGhpcy5jb25maWcuZGF0YS5wYXJhbT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb25maWcuZGF0YS5wYXJhbS5mb3JFYWNoKChwYXJhbTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcmFtKVswXTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZvcm1GaWVsZHMuZmluZEluZGV4KChmb3JtRmllbGQpID0+IChmb3JtRmllbGQuZmllbGQ/LnRvTG93ZXJDYXNlKCkgPT09IGtleS50b0xvd2VyQ2FzZSgpKSB8fCAoZm9ybUZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpID09PSAnQCcgKyBrZXkudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgIGlmIChpbmRleCA+IC0xICYmIGtleSkge1xuICAgICAgICAgIHRoaXMuZm9ybUZpZWxkc1tpbmRleF0udmFsdWUgPSBwYXJhbVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsc2Uge1xuICAgICAgICAvLyB0aGlzLmZvcm1GaWVsZHMucHVzaCh7IGZpZWxkOiBrZXksIGxhYmVsOiBrZXksIHZhbHVlOiBwYXJhbVtrZXldLCBjb2x1bW46IDQsIGNvbnRyb2w6IEVGb3JtQ29udHJvbC5JTlBVVCB9KTtcbiAgICAgICAgLy8gfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0RHJvcERvd25EYXRhKHJlcG9ydEpzb246IGFueSkge1xuICAgIHJlcG9ydEpzb24uUGFyYW1ldGVycz8uZm9yRWFjaCgocmVjb3JkOiBhbnkpID0+IHtcbiAgICAgIGlmIChyZWNvcmQuaXN1bmlxdWVrZXkpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9EYXRhL0ZldGNoJywge1xuICAgICAgICAgIHVuaXF1ZUtleTogcmVjb3JkLmlzdW5pcXVla2V5LFxuICAgICAgICAgIGZpbHRlcnM6IHRoaXMuZ2V0RHJvcGRvd25GaWx0ZXJzKHJlY29yZClcbiAgICAgICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtU2VydmljZS5zZXRGb3JtRmllbGRQcm9wKHRoaXMuZHluYW1pY0Zvcm0sIHJlY29yZC5wYXJhbW5hbWUsIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2RhdGEnLCB2YWx1ZTogcmVzcG9uc2UucmVjb3JkcyB9LFxuICAgICAgICAgIF0pO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hcGlFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC5wYXJhbXR5cGUgPT09IFwiRHJvcERvd25cIiAmJiByZWNvcmQucGFyYW12YWx1ZSkge1xuICAgICAgICBsZXQgcGFyYW1WYWx1ZSA9IHJlY29yZD8ucGFyYW12YWx1ZTtcbiAgICAgICAgaWYgKHBhcmFtVmFsdWUgJiYgcGFyYW1WYWx1ZS5pbmNsdWRlcygnLCcpKSB7XG4gICAgICAgICAgdGhpcy5mb3JtU2VydmljZS5zZXRGb3JtRmllbGRQcm9wKHRoaXMuZHluYW1pY0Zvcm0sIHJlY29yZD8ucGFyYW1uYW1lLCBbXG4gICAgICAgICAgICB7IG5hbWU6ICdkYXRhJywgdmFsdWU6IHBhcmFtVmFsdWUuc3BsaXQoJywnKT8ubWFwKCh2YWx1ZSkgPT4gKHsgbGFiZWw6IHZhbHVlLCB2YWx1ZTogdmFsdWUgfSkpIH1cbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0RHJvcGRvd25GaWx0ZXJzKFBhcmFtZXRlcjogYW55KSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueSA9IFtdO1xuICAgIGNvbnN0IHBhcmFtRmlsdGVyID0gUGFyYW1ldGVyPy5maWx0ZXJzO1xuICAgIGxldCBhcnIgPSBbXTtcbiAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgaWYgKGZpbHRlcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoRmlsdGVyID0gcGFyYW1GaWx0ZXI/LmZpbmQoKHgpID0+IHg/LmZpZWxkPy50b0xvd2VyQ2FzZSgpID09PSBmaWx0ZXIuZmllbGQ/LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIGlmIChtYXRjaEZpbHRlciAmJiBtYXRjaEZpbHRlci5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gZmlsdGVyPy5maWVsZC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgYXJyLnB1c2goZmlsdGVyKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKFBhcmFtZXRlcj8ucGFyYW10eXBlID09PSAnRHJvcERvd24nICYmIHBhcmFtRmlsdGVyPy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbUZpbHRlci5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgaWYgKCFhcnI/LnNvbWUob2JqID0+IG9iai5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gZmlsdGVyLmZpZWxkPy50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgIGFyci5wdXNoKHsgZmllbGQ6IGZpbHRlci5maWVsZCwgbWF0Y2hNb2RlOiAnZXF1YWwnLCBvcGVyYXRvcjogJ2FuZCcsIHZhbHVlOiBmaWx0ZXI/LnZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gYXJyO1xuICB9XG5cblxuICBnZXRSZXBvcnRGaWx0ZXIoKSB7XG4gICAgbGV0IGFyciA9IFtdO1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKVxuICAgIHRoaXMucmVwb3J0SnNvbj8uUGFyYW1ldGVycz8uZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmlsdGVycy5maW5kSW5kZXgoKGZpbHRlcikgPT4gKGZpbHRlci5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gcGFyYW0/LnBhcmFtbmFtZT8udG9Mb3dlckNhc2UoKSkgfHwgKGZpbHRlci5maWVsZD8udG9Mb3dlckNhc2UoKSA9PT0gJ0AnICsgcGFyYW0/LnBhcmFtbmFtZT8udG9Mb3dlckNhc2UoKSkpXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBhcnIucHVzaChmaWx0ZXJzW2luZGV4XSlcbiAgICAgIH0gZWxzZSBpZiAocGFyYW0/LnBhcmFtdHlwZSAhPSAnRHJvcERvd24nKSB7XG4gICAgICAgIGFyci5wdXNoKHsgZmllbGQ6IHBhcmFtPy5wYXJhbW5hbWU/LnJlcGxhY2UoJ0AnLCAnJyksIG1hdGNoTW9kZTogJ2VxdWFsJywgb3BlcmF0b3I6ICdhbmQnLCB2YWx1ZTogcGFyYW0ucGFyYW12YWx1ZSB9KVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueSA9IFtdO1xuICAgIHRoaXMuZHluYW1pY0Zvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHM/LmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC5jb250cm9sID09IFwiY2hlY2tib3hcIikge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7IGZpZWxkOiBmaWVsZC5maWVsZCwgbWF0Y2hNb2RlOiAnZXF1YWwnLCBvcGVyYXRvcjogJ2FuZCcsIHZhbHVlOiBmaWVsZC52YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmaWVsZCAmJiBmaWVsZC52YWx1ZSkge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7IGZpZWxkOiBmaWVsZC5maWVsZCwgbWF0Y2hNb2RlOiAnZXF1YWwnLCBvcGVyYXRvcjogJ2FuZCcsIHZhbHVlOiBmaWVsZC52YWx1ZSB9KTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG5cbiAgZG93bmxvYWRSZXBvcnQoKSB7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0gdGhpcy5nZXRSZXBvcnRGaWx0ZXIoKTtcbiAgICBjb25zdCBmaWxlVHlwZSA9IHRoaXMuY29uZmlnPy5kYXRhPy5yZXBvcnRUeXBlO1xuICAgIGlmIChmaWxlVHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwgfHwgZmlsZVR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQgfHwgZmlsZVR5cGUgPT09IElSZXBvcnRUeXBlLkNTVikge1xuICAgICAgdGhpcy5kb3dubG9hZEN1c3RvbVJlcG9ydChmaWxlVHlwZSwgdGhpcy5jb25maWc/LmRhdGE/LnJlcG9ydE5hbWUsIGZpbHRlcnMpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5nZXRQZGZSZXBvcnQoZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UGRmUmVwb3J0KGZpbHRlcnMpIHtcbiAgICBsZXQgcmVwSWRPYmo6IGFueTtcbiAgICBpZiAodHlwZW9mICh0aGlzLmNvbmZpZz8uZGF0YT8uZ2V0UmVwb3J0KSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJlcElkT2JqID0geyBJZDogdGhpcy5jb25maWc/LmRhdGE/LmdldFJlcG9ydCwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiB0aGlzLmNvbmZpZz8uZGF0YT8ucmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHRoaXMuY29uZmlnPy5kYXRhPy5yZXBvcnRGb290ZXIgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcElkT2JqID0geyB1bmlxdWVLZXk6IHRoaXMuY29uZmlnPy5kYXRhPy5nZXRSZXBvcnQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogdGhpcy5jb25maWc/LmRhdGE/LnJlcG9ydEhlYWRlciwgUmVwb3J0Rm9vdGVyOiB0aGlzLmNvbmZpZz8uZGF0YT8ucmVwb3J0Rm9vdGVyIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmRvd25sb2FkKCcvUmVwb3J0L0dlbmVyYXRlJywgcmVwSWRPYmopXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB2YXIgbmV3QmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5ib2R5XSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcbiAgICAgICAgICBjb25zdCBkYXRhID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3QmxvYik7XG4gICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBhLmhyZWYgPSBkYXRhO1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKTtcbiAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGhlYWRlcj8uc3BsaXQoJ2ZpbGVuYW1lPScpPy5bMV0/LnNwbGl0KFwiO1wiKVswXT8ucmVwbGFjZUFsbCgvXFxcIi9nLCAnJyk7XG4gICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgICAgYS5jbGljaygpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICAgICAgdGhpcy5jb25maWcuZGF0YT8ucmVmPy5jbG9zZSgpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hcGlFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkb3dubG9hZEN1c3RvbVJlcG9ydChyZXBvcnRUeXBlLCByZXBvcnROYW1lLCBmaWx0ZXJzKSB7XG4gICAgdGhpcy5jb25maWc/LmRhdGE/LnJlcG9ydEpzb25EYXRhPy5mb3JFYWNoKChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YT8uZGF0YXNvdXJjZSkge1xuICAgICAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL0RhdGEvTXVsdGlGZXRjaCcsIHtcbiAgICAgICAgICB1bmlxdWVLZXk6IGRhdGEuZGF0YXNvdXJjZSxcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzXG4gICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlUmVwb3J0KCk7XG4gICAgICAgICAgY29uc3Qgcm93c0luZm8gPSByZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzO1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRSb3dzSW5mbyA9IHRoaXMuZ3JpZFNlcnZpY2UuZm9ybWF0RGF0ZUNvbHVtbihyb3dzSW5mbyk7XG4gICAgICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMKSB7XG4gICAgICAgICAgICBjb25zdCBpc0dyaWRFeGNlbERhdGEgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSByb3dzSW5mby5sZW5ndGggPiAwID8gT2JqZWN0Py5rZXlzKHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHNbMF0pIDogW107XG4gICAgICAgICAgICB0aGlzLmdyaWRTZXJ2aWNlLmV4cG9ydEV4Y2VsKHVwZGF0ZWRSb3dzSW5mbywgY29sdW1ucywgcmVwb3J0TmFtZSwgaXNHcmlkRXhjZWxEYXRhKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUFzVGV4dEZpbGUodXBkYXRlZFJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zYXZlRGF0YUFzQ3N2KHVwZGF0ZWRSb3dzSW5mbywgcmVwb3J0TmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY29uZmlnLmRhdGE/LnJlZj8uY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZVJlcG9ydCgpe1xuICAgIGxldCBjdXJyZW50VXNlcjogYW55ID0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXNlckluZm8oKTtcbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL1JlcG9ydENvbmZpZy9SZXBvcnRVc2VyU2V0dGluZycsIHtcbiAgICAgIGlzUnVuUmVwb3J0OiB0cnVlLFxuICAgICAgaXNGYXZvcml0ZTogZmFsc2UsXG4gICAgICByZXBvcnRVbmlxdWVLZXk6IHRoaXMuY29uZmlnPy5kYXRhPy51bmlxdWVLZXksXG4gICAgICB1c2VySWQ6IGN1cnJlbnRVc2VyPy5pZCxcbiAgICAgIHJlcG9ydElkOiAwXG4gICAgfSkuc3Vic2NyaWJlKChyZXMpID0+IHt9LFxuICAgICAoeyBlcnJvciB9KSA9PiB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IHRvIHRleHQgKHN1Yi1tZXRob2QpXG4gICAqL1xuICBzYXZlQXNUZXh0RmlsZShyb3dzSW5mbzogYW55LCByZXBvcnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVBc1RleHRGaWxlKHJvd3NJbmZvLCByZXBvcnROYW1lKTtcblxuICB9XG5cbiAgc2F2ZURhdGFBc0Nzdihyb3dzSW5mbzogYW55LCByZXBvcnROYW1lOiBhbnkpIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVEYXRhQXNDc3Yocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICB9XG5cbn1cbiIsIjxzZS1mb3JtLXV0aWwgIFxuKm5nSWY9XCJkeW5hbWljRm9ybVwiXG5bZm9ybV09XCJkeW5hbWljRm9ybVwiXG5baGlkZVNhdmVCdXR0b25dPVwidHJ1ZVwiXG5baGlkZUNhbmNlbEJ1dHRvbl09XCJ0cnVlXCJcbj5cbjwvc2UtZm9ybS11dGlsPlxuIl19
@@ -5738,6 +5738,7 @@ class ReportFilterComponent {
5738
5738
  this.formFields = this.reportJson?.FormFields;
5739
5739
  this.formFields = this.setReportFilterViewParameters(this.reportJson?.Parameters, this.formFields);
5740
5740
  this.setParamFieldValue();
5741
+ this.enableSearchForDropdown();
5741
5742
  this.initializeForm();
5742
5743
  // set dropdown data based on matched field.
5743
5744
  this.setDropDownData(this.reportJson);
@@ -5746,6 +5747,13 @@ class ReportFilterComponent {
5746
5747
  this.alertService.error(error);
5747
5748
  });
5748
5749
  }
5750
+ enableSearchForDropdown() {
5751
+ this.formFields.forEach(field => {
5752
+ if (field.control === EFormControl.DROPDOWN) {
5753
+ field.allowSearch = true;
5754
+ }
5755
+ });
5756
+ }
5749
5757
  setReportFilterViewParameters(Parameter, formFields) {
5750
5758
  Parameter.forEach((param) => {
5751
5759
  if (param?.filters?.length > 0) {