fx-form-builder-wrapper 2.0.106 → 2.0.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/customize-dropdown/customize-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/components/summary/summary.component.mjs +3 -3
- package/esm2022/lib/components/uploader/uploader.component.mjs +7 -4
- package/fesm2022/fx-form-builder-wrapper.mjs +12 -9
- package/fesm2022/fx-form-builder-wrapper.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -386,13 +386,13 @@ export class CustomizeDropdownComponent extends FxBaseComponent {
|
|
|
386
386
|
this.updateFindings();
|
|
387
387
|
}
|
|
388
388
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomizeDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }, { token: i3.ApiServiceRegistry }, { token: i4.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
389
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomizeDropdownComponent, isStandalone: true, selector: "lib-customize-dropdown", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300
|
|
389
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomizeDropdownComponent, isStandalone: true, selector: "lib-customize-dropdown", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300 pl-3 pr-2 py-2 flex justify-between items-center bg-white text-gray-700 hover:border-blue-400\"\r\n (click)=\"toggleDropdown()\"\r\n >\r\n <span *ngIf=\"hasSelectedFindings; else placeholder\">\r\n {{ selectedFindingsLabel }}\r\n </span>\r\n <ng-template #placeholder>\r\n {{ setting('placeholderLabel') }}\r\n </ng-template>\r\n <svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"#FF7900\" fill-opacity=\"0.1\" />\r\n <path\r\n d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\"\r\n fill=\"#FAA762\" />\r\n </svg>\r\n </button>\r\n\r\n <!-- Panel -->\r\n <div\r\n *ngIf=\"dropdownOpen\"\r\n class=\"absolute mt-1 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-64 overflow-y-auto z-10\"\r\n >\r\n <div\r\n *ngFor=\"let option of findingsOptions\"\r\n class=\"border-b border-gray-100 last:border-none p-2 hover:bg-gray-50 cursor-pointer\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Checkbox + Label -->\r\n <div class=\"flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"w-4 h-4 text-blue-500 border-gray-300 rounded cursor-pointer\"\r\n [(ngModel)]=\"option.selected\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (click)=\"toggleOption(option, $event)\"\r\n />\r\n <label\r\n class=\"text-gray-800 font-medium cursor-pointer select-none\"\r\n (click)=\"toggleOption(option, $event)\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n\r\n <span\r\n *ngIf=\"option.info\"\r\n class=\"ml-auto text-blue-500 text-sm cursor-pointer\"\r\n title=\"{{ option.info }}\"\r\n >\r\n \u24D8\r\n </span>\r\n </div>\r\n\r\n <!-- Radios -->\r\n <div\r\n class=\"flex items-center flex-wrap gap-4 ml-6 mt-2 text-sm\"\r\n *ngIf=\"option.selected && option.subOptions\"\r\n >\r\n <ng-container *ngFor=\"let s of option.subOptions\">\r\n <label\r\n class=\"flex items-center space-x-1 cursor-pointer\"\r\n (click)=\"selectSubOption(option, s)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"option.value\"\r\n [value]=\"s.value\"\r\n [(ngModel)]=\"option.subSelection\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n class=\"text-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ s.label }}</span>\r\n </label>\r\n</ng-container>\r\n\r\n <!-- Validation Message -->\r\n <div\r\n *ngIf=\"option.selected && option.subOptions && !option.subSelection\"\r\n class=\"text-red-500 text-xs mt-1 w-full ml-1\"\r\n >\r\n Please select one option\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <small *ngIf=\"form.get('findings')?.touched && form.get('findings')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorFindingMessage') }}\r\n </small>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n</fx-component>\r\n", styles: [".dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-header{border:1px solid #ccc;border-radius:4px;padding:6px 8px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dropdown-panel{position:absolute;width:100%;background:#fff;border:1px solid #ddd;margin-top:4px;border-radius:4px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.dropdown-item{padding:4px 8px;border-bottom:1px solid #f1f1f1}.dropdown-item:last-child{border-bottom:none}.item-header{display:flex;align-items:center;gap:6px}.label{cursor:pointer;flex-grow:1}.info{margin-left:auto;cursor:help;font-size:12px;color:#666}.sub-options{display:flex;align-items:center;flex-wrap:wrap;padding-left:22px;font-size:13px;margin-top:4px}.error{color:#e63946;font-size:11px;margin-left:22px;margin-top:2px}.arrow{font-size:10px;color:#555}.submit-btn{margin-top:1rem;padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.field-required{color:red;font-size:1.1em}button{height:33.6px;font-size:12px;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }] });
|
|
390
390
|
}
|
|
391
391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomizeDropdownComponent, decorators: [{
|
|
392
392
|
type: Component,
|
|
393
|
-
args: [{ selector: 'lib-customize-dropdown', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300
|
|
393
|
+
args: [{ selector: 'lib-customize-dropdown', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300 pl-3 pr-2 py-2 flex justify-between items-center bg-white text-gray-700 hover:border-blue-400\"\r\n (click)=\"toggleDropdown()\"\r\n >\r\n <span *ngIf=\"hasSelectedFindings; else placeholder\">\r\n {{ selectedFindingsLabel }}\r\n </span>\r\n <ng-template #placeholder>\r\n {{ setting('placeholderLabel') }}\r\n </ng-template>\r\n <svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"#FF7900\" fill-opacity=\"0.1\" />\r\n <path\r\n d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\"\r\n fill=\"#FAA762\" />\r\n </svg>\r\n </button>\r\n\r\n <!-- Panel -->\r\n <div\r\n *ngIf=\"dropdownOpen\"\r\n class=\"absolute mt-1 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-64 overflow-y-auto z-10\"\r\n >\r\n <div\r\n *ngFor=\"let option of findingsOptions\"\r\n class=\"border-b border-gray-100 last:border-none p-2 hover:bg-gray-50 cursor-pointer\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Checkbox + Label -->\r\n <div class=\"flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"w-4 h-4 text-blue-500 border-gray-300 rounded cursor-pointer\"\r\n [(ngModel)]=\"option.selected\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (click)=\"toggleOption(option, $event)\"\r\n />\r\n <label\r\n class=\"text-gray-800 font-medium cursor-pointer select-none\"\r\n (click)=\"toggleOption(option, $event)\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n\r\n <span\r\n *ngIf=\"option.info\"\r\n class=\"ml-auto text-blue-500 text-sm cursor-pointer\"\r\n title=\"{{ option.info }}\"\r\n >\r\n \u24D8\r\n </span>\r\n </div>\r\n\r\n <!-- Radios -->\r\n <div\r\n class=\"flex items-center flex-wrap gap-4 ml-6 mt-2 text-sm\"\r\n *ngIf=\"option.selected && option.subOptions\"\r\n >\r\n <ng-container *ngFor=\"let s of option.subOptions\">\r\n <label\r\n class=\"flex items-center space-x-1 cursor-pointer\"\r\n (click)=\"selectSubOption(option, s)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"option.value\"\r\n [value]=\"s.value\"\r\n [(ngModel)]=\"option.subSelection\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n class=\"text-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ s.label }}</span>\r\n </label>\r\n</ng-container>\r\n\r\n <!-- Validation Message -->\r\n <div\r\n *ngIf=\"option.selected && option.subOptions && !option.subSelection\"\r\n class=\"text-red-500 text-xs mt-1 w-full ml-1\"\r\n >\r\n Please select one option\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <small *ngIf=\"form.get('findings')?.touched && form.get('findings')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorFindingMessage') }}\r\n </small>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n</fx-component>\r\n", styles: [".dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-header{border:1px solid #ccc;border-radius:4px;padding:6px 8px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dropdown-panel{position:absolute;width:100%;background:#fff;border:1px solid #ddd;margin-top:4px;border-radius:4px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.dropdown-item{padding:4px 8px;border-bottom:1px solid #f1f1f1}.dropdown-item:last-child{border-bottom:none}.item-header{display:flex;align-items:center;gap:6px}.label{cursor:pointer;flex-grow:1}.info{margin-left:auto;cursor:help;font-size:12px;color:#666}.sub-options{display:flex;align-items:center;flex-wrap:wrap;padding-left:22px;font-size:13px;margin-top:4px}.error{color:#e63946;font-size:11px;margin-left:22px;margin-top:2px}.arrow{font-size:10px;color:#555}.submit-btn{margin-top:1rem;padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.field-required{color:red;font-size:1.1em}button{height:33.6px;font-size:12px;border-radius:4px}\n"] }]
|
|
394
394
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }, { type: i3.ApiServiceRegistry }, { type: i4.FormBuilder }, { type: i0.ElementRef }], propDecorators: { fxComponent: [{
|
|
395
395
|
type: ViewChild,
|
|
396
396
|
args: ['fxComponent']
|
|
397
397
|
}] } });
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9taXplLWRyb3Bkb3duL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbWl6ZS1kcm9wZG93bi9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBb0MsU0FBUyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUEwQixXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsZUFBZSxFQUVmLGVBQWUsRUFFZixrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQThCMUMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUFvSG5EO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhIRixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUMxQyxJQUFJLENBQWE7SUFDakIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDSSxXQUFXLENBQWU7SUFFcEQsZUFBZSxHQUEyQixFQUFFLENBQUM7SUFFN0MsWUFBWSxHQUFV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Q0FBdUM7Z0JBQ3ZDLDZEQUE2RDtZQUMvRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxTQUFjO1FBQ3pDLDRDQUE0QztRQUM1QyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzt3R0F0YVksMEJBQTBCOzRGQUExQiwwQkFBMEIscU5DN0N2QyxxcUpBMEdBLHVwQ0RqRVksWUFBWSwrUEFBRSxtQkFBbUIsZ3JDQUFFLFdBQVcsdVBBQUUsV0FBVzs7NEZBSTFELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7eU9BVTVDLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRnhCYXNlQ29tcG9uZW50LFxyXG4gIEZ4Q29tcG9uZW50LFxyXG4gIEZ4U2VsZWN0U2V0dGluZyxcclxuICBGeFNldHRpbmcsXHJcbiAgRnhTdHJpbmdTZXR0aW5nLFxyXG4gIEZ4VmFsaWRhdGlvbixcclxuICBGeFZhbGlkYXRvclNlcnZpY2VcclxufSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFN1Yk9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ3VzdG9tRHJvcGRvd25PcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBpbmZvPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHN1Yk9wdGlvbnM/OiBTdWJPcHRpb25bXTtcclxuICBzdWJTZWxlY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB0b3VjaGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEN1c3RvbURyb3Bkb3duQ29uZmlnIHtcclxuICBkaXNwbGF5TW9kZT86ICdjb21wYWN0JyB8ICdlbGxpcHNpcyc7XHJcbiAgcGxhY2Vob2xkZXJMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9taXplLWRyb3Bkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLCBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbiAgZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgZm9ybVN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuXHJcbiAgZmluZGluZ3NPcHRpb25zOiBDdXN0b21Ecm9wZG93bk9wdGlvbltdID0gW107XHJcblxyXG4gIHR5cGUxT3B0aW9uczogYW55W10gPSBbICAgIHtcclxuICAgICAgbGFiZWw6ICdQcm9jbGluYXRpb24nLFxyXG4gICAgICB2YWx1ZTogJ1Byb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdGb3J3YXJkIGluY2xpbmF0aW9uIG9mIHRlZXRoJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdDcm93ZGluZycsXHJcbiAgICAgIHZhbHVlOiAnQ3Jvd2RpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1NwYWNpbmcnLFxyXG4gICAgICB2YWx1ZTogJ1NwYWNpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1JldHJvY2xpbmF0aW9uJyxcclxuICAgICAgdmFsdWU6ICdSZXRyb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdCYWNrd2FyZCBpbmNsaW5hdGlvbiBvZiB0ZWV0aCcsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdSb3RhdGlvbicsXHJcbiAgICAgIHZhbHVlOiAnUm90YXRpb24nLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfV07XHJcblxyXG4gIHR5cGUyT3B0aW9uczogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICBsYWJlbDogJ05vcm1hbCcsXHJcbiAgICAgIHZhbHVlOiAnTm9ybWFsJyxcclxuICAgICAgaW5mbzogJycsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgc3ViT3B0aW9uczogW1xyXG4gICAgICAgIHsgbGFiZWw6ICdNaWxkJywgdmFsdWU6ICdtaWxkJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdNb2RlcmF0ZScsIHZhbHVlOiAnbW9kZXJhdGUnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ1NldmVyZScsIHZhbHVlOiAnc2V2ZXJlJyB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnRGVlcCBCaXRlJyxcclxuICAgICAgdmFsdWU6ICdEZWVwIEJpdGUnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ09wZW4gQml0ZScsXHJcbiAgICAgIHZhbHVlOiAnT3BlbiBCaXRlJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICAvLyBvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZHJvcGRvd25PcGVuICYmICF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgLy8gICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgLy8gICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGNvbmZpZzogQ3VzdG9tRHJvcGRvd25Db25maWcgPSB7XHJcbiAgICBkaXNwbGF5TW9kZTogJ2VsbGlwc2lzJyxcclxuICAgIHBsYWNlaG9sZGVyTGFiZWw6ICdTZWxlY3QgRmluZGluZydcclxuICB9O1xyXG5cclxuICBjdXN0b21pemVkRHJvcERvd25NYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmeEFwaVNlcnZpY2U6IEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjZHIpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGZpbmRpbmdzOiBbW11dXHJcbiAgICB9KTtcclxuICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZWdpc3Rlcih0aGlzLmZvcm0pKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4vLyAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4vLyAgICAgICBjb25zdCBkYXRhID0gW1xyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIlByb2NsaW5hdGlvblwiLFxyXG4vLyAgICAgdmFsdWU6IFwicHJvY2xpbmF0aW9uXCIsXHJcbi8vICAgICBzdWJTZWxlY3Rpb246IHtcclxuLy8gICAgICAgbGFiZWw6IFwiTWlsZFwiLFxyXG4vLyAgICAgICB2YWx1ZTogXCJtaWxkXCJcclxuLy8gICAgIH1cclxuLy8gICB9LFxyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIk92ZXJiaXRlXCIsXHJcbi8vICAgICB2YWx1ZTogXCJvdmVyYml0ZVwiLFxyXG4vLyAgICAgc3ViU2VsZWN0aW9uOiB7XHJcbi8vICAgICAgIGxhYmVsOiBcIk1vZGVyYXRlXCIsXHJcbi8vICAgICAgIHZhbHVlOiBcIm1vZGVyYXRlXCJcclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIF07XHJcblxyXG4vLyB0aGlzLnBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YSk7XHJcbi8vICAgICB9LDIwMDApO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG5cclxuICAgICAgaWYgKGtleSAmJiB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5oYXMoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5nZXQoa2V5KT8uZmluZGluZ3M7XHJcbiAgICAgICAgdGhpcy5wYXRjaEV4aXN0aW5nVmFsdWVzKGRhdGEpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSwgMTAwMCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtYWluQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nKCdpc0ZpbmRpbmdzUmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgNTAwKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMScpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUxT3B0aW9ucztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMicpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUyT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHZhbHVlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgJ2ZpbmRpbmdzJyBpbiB2YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9taXplZERyb3BEb3duTWFwLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgLy8gY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZnhBcGlTZXJ2aWNlLmdldFNlcnZpY2VVcmwodGhpcy5zZXR0aW5nKCdzZXJ2aWNlTmFtZScpKTtcclxuICAgIC8vIHRoaXMuZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsLCB0aGlzLnNldHRpbmcoJ2NsaW5pY2FsTm90ZXNVUkwnKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueVtdPihmaW5hbFVybCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBGdXR1cmUgQVBJIGxvZ2ljIGhlcmVcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9wdGlvbnMnLCBlcnIpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnZGlzcGxheU1vZGUnLCAkdGl0bGU6ICdEaXNwbGF5IE1vZGUnLCB2YWx1ZTogJ2VsbGlwc2lzJyB9LCBbeyBvcHRpb246ICdFbGxpcHNpcycsIHZhbHVlOiAnZWxsaXBzaXMnIH0sIHsgb3B0aW9uOiAnQ29tcGFjdCcsIHZhbHVlOiAnY29tcGFjdCcgfV0pLFxyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnb3B0aW9uVHlwZScsICR0aXRsZTogJ09wdGlvbiBUeXBlJywgdmFsdWU6ICd0eXBlMScgfSwgW3sgb3B0aW9uOiAnRmluZGluZyBUeXBlIE9wdGlvbnMnLCB2YWx1ZTogJ3R5cGUxJyB9LCB7IG9wdGlvbjogJ1ZldGljYWwgVHlwZSBPcHRpb25zJywgdmFsdWU6ICd0eXBlMicgfV0pLFxyXG4gICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2Vob2xkZXJMYWJlbCcsICR0aXRsZTogJ1BsYWNlaG9sZGVyJywgdmFsdWU6ICdTZWxlY3QgT3B0aW9ucycgfSksXHJcbiAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZmluZGluZ0xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJ0xhYmVsJyB9KSxcclxuICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoeyBrZXk6ICdpc0ZpbmRpbmdzUmVxdWlyZWQnLCAkdGl0bGU6ICdSZXF1aXJlZCcsIHZhbHVlOiAndHJ1ZScgfSwgW3sgb3B0aW9uOiAnWWVzJywgdmFsdWU6ICd0cnVlJyB9LCB7IG9wdGlvbjogJ05vJywgdmFsdWU6ICdmYWxzZScgfV0pLFxyXG4gICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdlcnJvckZpbmRpbmdNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICB9XHJcblxyXG4gIC8qKiBEcm9wZG93biBCZWhhdmlvciAqKi9cclxuICB0b2dnbGVEcm9wZG93bigpIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gIXRoaXMuZHJvcGRvd25PcGVuO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3B0aW9uKG9wdGlvbjogQ3VzdG9tRHJvcGRvd25PcHRpb24sIGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgLy8gVG9nZ2xlIGNoZWNrYm94IHZhbHVlXHJcbiAgICBvcHRpb24uc2VsZWN0ZWQgPSAhb3B0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgIC8vIFJlc2V0IHJhZGlvcyB3aGVuIHVuY2hlY2tlZFxyXG4gICAgaWYgKCFvcHRpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgb3B0aW9uLnN1YlNlbGVjdGlvbiA9IG51bGw7XHJcbiAgICAgIG9wdGlvbi50b3VjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgb3B0aW9uLnRvdWNoZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOKchSBGb3JjZSBVSSByZWZyZXNoIHNvIHJhZGlvcyBhcHBlYXIgaW5zdGFudGx5XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm1cclxuICAgIHRoaXMudXBkYXRlRmluZGluZ3MoKTtcclxuICB9XHJcblxyXG4gIC8qKiBGb3JtICYgTGFiZWwgSGVscGVycyAqKi9cclxuICBnZXQgaGFzU2VsZWN0ZWRGaW5kaW5ncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRpbmdzT3B0aW9ucy5zb21lKGYgPT4gZi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRGaW5kaW5nc0xhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZmluZGluZ3NPcHRpb25zXHJcbiAgICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgaWYgKGYuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgIC8vIElmIGZpbmRpbmcgaGFzIHN1Yi1vcHRpb25zIOKGkiBvbmx5IHNob3cgaWYgYSBzdWItb3B0aW9uIGlzIHNlbGVjdGVkXHJcbiAgICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBJZiBubyBzdWItb3B0aW9ucyDihpIgYWx3YXlzIHNob3dcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoZiA9PiBmLmxhYmVsKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5zZXR0aW5nKCdwbGFjZWhvbGRlckxhYmVsJyk7XHJcblxyXG4gICAgLy8gRGlzcGxheSBtb2RlIGxvZ2ljIChDb21wYWN0IG9yIEVsbGlwc2lzKVxyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLnNldHRpbmcoJ2Rpc3BsYXlNb2RlJykgPT09ICdjb21wYWN0JyA/IDIgOiAzO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2NvbXBhY3QnKSB7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZC5sZW5ndGggPD0gbWF4Q291bnRcclxuICAgICAgICA/IHNlbGVjdGVkLmpvaW4oJywgJylcclxuICAgICAgICA6IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSArJHtzZWxlY3RlZC5sZW5ndGggLSBtYXhDb3VudH0gbW9yZWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2VsbGlwc2lzJykge1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID4gbWF4Q291bnRcclxuICAgICAgICA/IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSwgLi4uYFxyXG4gICAgICAgIDogc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIC8qKiBVcGRhdGUgRmluZGluZ3MgKyBWYWxpZGF0aW9uICoqL1xyXG4gIC8vIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmZpbmRpbmdzT3B0aW9uc1xyXG4gIC8vICAgICAuZmlsdGVyKGYgPT4ge1xyXG4gIC8vICAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgLy8gICAgICAgICAvLyBPbmx5IGluY2x1ZGUgaW4gZmluYWwgZm9ybSBpZjpcclxuICAvLyAgICAgICAgIC8vICAtIG5vIHN1Yk9wdGlvbnMsIG9yXHJcbiAgLy8gICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgLy8gICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgICAubWFwKGYgPT4ge1xyXG4gIC8vICAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gIC8vICAgICAgIHJldHVybiB7XHJcbiAgLy8gICAgICAgICBsYWJlbDogZi5sYWJlbCxcclxuICAvLyAgICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gIC8vICAgICAgICAgc3ViU2VsZWN0aW9uOiBzdWIgPyB7IGxhYmVsOiBzdWIubGFiZWwsIHZhbHVlOiBzdWIudmFsdWUgfSA6IG51bGxcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9KTtcclxuXHJcbiAgLy8gICAvLyBVcGRhdGUgcmVhY3RpdmUgZm9ybSB2YWx1ZVxyXG4gIC8vICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmaW5kaW5nczogc2VsZWN0ZWQgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cclxuICAvLyAgIC8vIFZhbGlkYXRpb24gbG9naWMgcmVtYWlucyBzYW1lXHJcbiAgLy8gICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgLy8gICAgIGYgPT4gZi5zZWxlY3RlZCAmJiBmLnN1Yk9wdGlvbnMgJiYgIWYuc3ViU2VsZWN0aW9uXHJcbiAgLy8gICApO1xyXG4gIC8vICAgdGhpcy5mb3JtLmdldCgnZmluZGluZ3MnKT8uc2V0RXJyb3JzKFxyXG4gIC8vICAgICBpbnZhbGlkSXRlbXMubGVuZ3RoID4gMCA/IHsgbWlzc2luZ1N1YlNlbGVjdGlvbjogdHJ1ZSB9IDogbnVsbFxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcblxyXG4gIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vIEZpbHRlciBzZWxlY3RlZCBvcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uIChpZiBzdWJPcHRpb25zIGV4aXN0KVxyXG4gIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5maW5kaW5nc09wdGlvbnNcclxuICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgLy8gT25seSBpbmNsdWRlIGluIGZpbmFsIGZvcm0gaWY6XHJcbiAgICAgICAgLy8gIC0gbm8gc3ViT3B0aW9ucywgb3JcclxuICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgICAgICAgaWYgKGYuc3ViT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gISFmLnN1YlNlbGVjdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSlcclxuICAgIC5tYXAoZiA9PiB7XHJcbiAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBmLmxhYmVsLFxyXG4gICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gICAgICAgIHN1YlNlbGVjdGlvbjogc3ViID8geyBsYWJlbDogc3ViLmxhYmVsLCB2YWx1ZTogc3ViLnZhbHVlIH0gOiBudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm0gdmFsdWVcclxuICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGZpbmRpbmdzOiBzZWxlY3RlZCB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG4gIC8vIFZhbGlkYXRpb24gbG9naWM6XHJcbiAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzZWxlY3RlZCBvcHRpb25zIHdpdGggc3ViT3B0aW9ucyBidXQgd2l0aG91dCBzdWJTZWxlY3Rpb25cclxuICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgICBmID0+IGYuc2VsZWN0ZWQgJiYgZi5zdWJPcHRpb25zICYmICFmLnN1YlNlbGVjdGlvblxyXG4gICk7XHJcblxyXG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgaW52YWxpZCBpdGVtcywgbWFyayB0aGUgZm9ybSBhcyBpbnZhbGlkIHdpdGggYSBjdXN0b20gZXJyb3JcclxuICBpZiAoaW52YWxpZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk/LnNldEVycm9ycyh7IG1pc3NpbmdTdWJTZWxlY3Rpb246IHRydWUgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBpZiBldmVyeXRoaW5nIGlzIHZhbGlkXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdmaW5kaW5ncycpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gUGxlYXNlIHNlbGVjdCBhIHN1Yi1vcHRpb24gZm9yIGFsbCBzZWxlY3RlZCBmaW5kaW5ncyB3aXRoIHN1Yi1vcHRpb25zLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygn4pyFIEZvcm0gVmFsdWU6JywgdGhpcy5mb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIHBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YTogYW55W10pIHtcclxuICAvLyAgIHRoaXMuZmluZGluZ3NPcHRpb25zLmZvckVhY2gob3B0ID0+IHtcclxuICAvLyAgICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gIC8vICAgICBvcHQuc2VsZWN0ZWQgPSAhIW1hdGNoO1xyXG4gIC8vICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbWF0Y2g/LnNldmVyaXR5Py52YWx1ZSB8fCBudWxsO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbiAgLy8gfVxyXG5cclxucGF0Y2hFeGlzdGluZ1ZhbHVlcyhkYXRhOiBhbnlbXSkge1xyXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZmluZGluZ3NPcHRpb25zIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbiBmb3IgZWFjaCBlbnRyeSBpbiBkYXRhXHJcbiAgdGhpcy5maW5kaW5nc09wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xyXG4gICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gICAgXHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgb3B0LnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgb3B0LnN1YlNlbGVjdGlvbiA9IG1hdGNoLnN1YlNlbGVjdGlvbiA/IG1hdGNoLnN1YlNlbGVjdGlvbi52YWx1ZSA6IG51bGw7XHJcblxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIk1hdGNoZWQgT3B0aW9uOlwiLCBvcHQpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlN1YlNlbGVjdGlvbiBTZXQgVG86XCIsIHRoaXMuZmluZGluZ3NPcHRpb25zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gTWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxyXG4gIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICBcclxuICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbn1cclxuXHJcbnNlbGVjdFN1Yk9wdGlvbihvcHRpb246IGFueSwgc3ViT3B0aW9uOiBhbnkpIHtcclxuICAvLyBTZXQgdGhlIHN1YlNlbGVjdGlvbiB0byB0aGUgY2xpY2tlZCB2YWx1ZVxyXG4gIG9wdGlvbi5zdWJTZWxlY3Rpb24gPSBzdWJPcHRpb24udmFsdWU7XHJcbiAgLy8gTWFyayB0aGUgb3B0aW9uIGFzIHRvdWNoZWQsIHdoaWNoIHdpbGwgaGVscCBpbiBmb3JtIHZhbGlkYXRpb25cclxuICBvcHRpb24udG91Y2hlZCA9IHRydWU7XHJcbiAgLy8gVXBkYXRlIHRoZSBmb3JtIHN0YXRlXHJcbiAgdGhpcy51cGRhdGVGaW5kaW5ncygpO1xyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICA8bGFiZWwgZm9yPVwiZmluZGluZ3NcIiBjbGFzcz1cImlucHV0LWxhYmVsXCI+XHJcbiAgICAgICAge3sgc2V0dGluZygnZmluZGluZ0xhYmVsJykgfX1cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVxdWlyZWRcIiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGRpdiAjZHJvcGRvd25XcmFwcGVyIGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcHgtMyBweS0yIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJvcmRlci1ibHVlLTQwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJoYXNTZWxlY3RlZEZpbmRpbmdzOyBlbHNlIHBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgIHt7IHNlbGVjdGVkRmluZGluZ3NMYWJlbCB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlcj5cclxuICAgICAgICAgICAge3sgc2V0dGluZygncGxhY2Vob2xkZXJMYWJlbCcpIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI2IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB3aWR0aD1cIjI0Ljc2NlwiIGhlaWdodD1cIjI0XCIgcng9XCIzXCIgZmlsbD1cIiNGRjc5MDBcIiBmaWxsLW9wYWNpdHk9XCIwLjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTIuODkxOCAxNi41MDE5QzEyLjcyNTUgMTYuNTAxOSAxMi41Njk1IDE2LjQ3MzYgMTIuNDIzOSAxNi40MTY5QzEyLjI3ODMgMTYuMzYwMiAxMi4xNDMxIDE2LjI2MjggMTIuMDE4MyAxNi4xMjQ4TDYuMjc4MDMgOS44MTYyQzYuMDQ5MjUgOS41NjQ3NyA1LjkyOTQ2IDkuMjUwMjUgNS45MTg2NCA4Ljg3MjY1QzUuOTA3ODMgOC40OTUwNSA2LjAyNzYyIDguMTY5NTYgNi4yNzgwMyA3Ljg5NjE5QzYuNTA2ODEgNy42NDQ3NiA2Ljc5Nzk5IDcuNTE5MDUgNy4xNTE1NSA3LjUxOTA1QzcuNTA1MTIgNy41MTkwNSA3Ljc5NjMgNy42NDQ3NiA4LjAyNTA4IDcuODk2MTlMMTIuODkxOCAxMy4yMTA1TDE3Ljc1ODYgNy44OTYxOUMxNy45ODc0IDcuNjQ0NzYgMTguMjczNiA3LjUxMzU2IDE4LjYxNzIgNy41MDI1OUMxOC45NjA3IDcuNDkxNjIgMTkuMjU2OSA3LjYyMjgyIDE5LjUwNTYgNy44OTYxOUMxOS43MzQ0IDguMTQ3NjIgMTkuODQ4OCA4LjQ2NzYyIDE5Ljg0ODggOC44NTYxOUMxOS44NDg4IDkuMjQ0NzcgMTkuNzM0NCA5LjU2NDc3IDE5LjUwNTYgOS44MTYyTDEzLjc2NTQgMTYuMTI0OEMxMy42NDA2IDE2LjI2MTkgMTMuNTA1NCAxNi4zNTkzIDEzLjM1OTggMTYuNDE2OUMxMy4yMTQyIDE2LjQ3NDUgMTMuMDU4MiAxNi41MDI4IDEyLjg5MTggMTYuNTAxOVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRkFBNzYyXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8IS0tIFBhbmVsIC0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiZHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbXQtMSB3LWZ1bGwgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kIHNoYWRvdy1sZyBtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8gei0xMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbmRpbmdzT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGxhc3Q6Ym9yZGVyLW5vbmUgcC0yIGhvdmVyOmJnLWdyYXktNTAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBDaGVja2JveCArIExhYmVsIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctNCBoLTQgdGV4dC1ibHVlLTUwMCBib3JkZXItZ3JheS0zMDAgcm91bmRlZCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9wdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS04MDAgZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5pbmZvXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byB0ZXh0LWJsdWUtNTAwIHRleHQtc20gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBvcHRpb24uaW5mbyB9fVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg4pOYXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUmFkaW9zIC0tPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTQgbWwtNiBtdC0yIHRleHQtc21cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnNlbGVjdGVkICYmIG9wdGlvbi5zdWJPcHRpb25zXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2Ygb3B0aW9uLnN1Yk9wdGlvbnNcIj5cclxuICA8bGFiZWxcclxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xIGN1cnNvci1wb2ludGVyXCJcclxuICAgIChjbGljayk9XCJzZWxlY3RTdWJPcHRpb24ob3B0aW9uLCBzKVwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgIFtuYW1lXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJzLnZhbHVlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb24uc3ViU2VsZWN0aW9uXCJcclxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LWJsdWUtNjAwIGN1cnNvci1wb2ludGVyXCJcclxuICAgIC8+XHJcbiAgICA8c3Bhbj57eyBzLmxhYmVsIH19PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIFZhbGlkYXRpb24gTWVzc2FnZSAtLT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5zZWxlY3RlZCAmJiBvcHRpb24uc3ViT3B0aW9ucyAmJiAhb3B0aW9uLnN1YlNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LXhzIG10LTEgdy1mdWxsIG1sLTFcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFBsZWFzZSBzZWxlY3Qgb25lIG9wdGlvblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgIDxkaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImZvcm0uZ2V0KCdmaW5kaW5ncycpPy50b3VjaGVkICYmIGZvcm0uZ2V0KCdmaW5kaW5ncycpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAge3sgc2V0dGluZygnZXJyb3JGaW5kaW5nTWVzc2FnZScpIH19XHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZngtY29tcG9uZW50PlxyXG4iXX0=
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9taXplLWRyb3Bkb3duL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbWl6ZS1kcm9wZG93bi9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBb0MsU0FBUyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUEwQixXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsZUFBZSxFQUVmLGVBQWUsRUFFZixrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQThCMUMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUFvSG5EO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhIRixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUMxQyxJQUFJLENBQWE7SUFDakIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDSSxXQUFXLENBQWU7SUFFcEQsZUFBZSxHQUEyQixFQUFFLENBQUM7SUFFN0MsWUFBWSxHQUFV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Q0FBdUM7Z0JBQ3ZDLDZEQUE2RDtZQUMvRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxTQUFjO1FBQ3pDLDRDQUE0QztRQUM1QyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzt3R0F0YVksMEJBQTBCOzRGQUExQiwwQkFBMEIscU5DN0N2QywwcUpBMEdBLHVwQ0RqRVksWUFBWSwrUEFBRSxtQkFBbUIsZ3JDQUFFLFdBQVcsdVBBQUUsV0FBVzs7NEZBSTFELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7eU9BVTVDLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRnhCYXNlQ29tcG9uZW50LFxyXG4gIEZ4Q29tcG9uZW50LFxyXG4gIEZ4U2VsZWN0U2V0dGluZyxcclxuICBGeFNldHRpbmcsXHJcbiAgRnhTdHJpbmdTZXR0aW5nLFxyXG4gIEZ4VmFsaWRhdGlvbixcclxuICBGeFZhbGlkYXRvclNlcnZpY2VcclxufSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFN1Yk9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ3VzdG9tRHJvcGRvd25PcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBpbmZvPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHN1Yk9wdGlvbnM/OiBTdWJPcHRpb25bXTtcclxuICBzdWJTZWxlY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB0b3VjaGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEN1c3RvbURyb3Bkb3duQ29uZmlnIHtcclxuICBkaXNwbGF5TW9kZT86ICdjb21wYWN0JyB8ICdlbGxpcHNpcyc7XHJcbiAgcGxhY2Vob2xkZXJMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9taXplLWRyb3Bkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLCBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbiAgZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgZm9ybVN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuXHJcbiAgZmluZGluZ3NPcHRpb25zOiBDdXN0b21Ecm9wZG93bk9wdGlvbltdID0gW107XHJcblxyXG4gIHR5cGUxT3B0aW9uczogYW55W10gPSBbICAgIHtcclxuICAgICAgbGFiZWw6ICdQcm9jbGluYXRpb24nLFxyXG4gICAgICB2YWx1ZTogJ1Byb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdGb3J3YXJkIGluY2xpbmF0aW9uIG9mIHRlZXRoJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdDcm93ZGluZycsXHJcbiAgICAgIHZhbHVlOiAnQ3Jvd2RpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1NwYWNpbmcnLFxyXG4gICAgICB2YWx1ZTogJ1NwYWNpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1JldHJvY2xpbmF0aW9uJyxcclxuICAgICAgdmFsdWU6ICdSZXRyb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdCYWNrd2FyZCBpbmNsaW5hdGlvbiBvZiB0ZWV0aCcsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdSb3RhdGlvbicsXHJcbiAgICAgIHZhbHVlOiAnUm90YXRpb24nLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfV07XHJcblxyXG4gIHR5cGUyT3B0aW9uczogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICBsYWJlbDogJ05vcm1hbCcsXHJcbiAgICAgIHZhbHVlOiAnTm9ybWFsJyxcclxuICAgICAgaW5mbzogJycsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgc3ViT3B0aW9uczogW1xyXG4gICAgICAgIHsgbGFiZWw6ICdNaWxkJywgdmFsdWU6ICdtaWxkJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdNb2RlcmF0ZScsIHZhbHVlOiAnbW9kZXJhdGUnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ1NldmVyZScsIHZhbHVlOiAnc2V2ZXJlJyB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnRGVlcCBCaXRlJyxcclxuICAgICAgdmFsdWU6ICdEZWVwIEJpdGUnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ09wZW4gQml0ZScsXHJcbiAgICAgIHZhbHVlOiAnT3BlbiBCaXRlJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICAvLyBvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZHJvcGRvd25PcGVuICYmICF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgLy8gICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgLy8gICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGNvbmZpZzogQ3VzdG9tRHJvcGRvd25Db25maWcgPSB7XHJcbiAgICBkaXNwbGF5TW9kZTogJ2VsbGlwc2lzJyxcclxuICAgIHBsYWNlaG9sZGVyTGFiZWw6ICdTZWxlY3QgRmluZGluZydcclxuICB9O1xyXG5cclxuICBjdXN0b21pemVkRHJvcERvd25NYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmeEFwaVNlcnZpY2U6IEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjZHIpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGZpbmRpbmdzOiBbW11dXHJcbiAgICB9KTtcclxuICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZWdpc3Rlcih0aGlzLmZvcm0pKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4vLyAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4vLyAgICAgICBjb25zdCBkYXRhID0gW1xyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIlByb2NsaW5hdGlvblwiLFxyXG4vLyAgICAgdmFsdWU6IFwicHJvY2xpbmF0aW9uXCIsXHJcbi8vICAgICBzdWJTZWxlY3Rpb246IHtcclxuLy8gICAgICAgbGFiZWw6IFwiTWlsZFwiLFxyXG4vLyAgICAgICB2YWx1ZTogXCJtaWxkXCJcclxuLy8gICAgIH1cclxuLy8gICB9LFxyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIk92ZXJiaXRlXCIsXHJcbi8vICAgICB2YWx1ZTogXCJvdmVyYml0ZVwiLFxyXG4vLyAgICAgc3ViU2VsZWN0aW9uOiB7XHJcbi8vICAgICAgIGxhYmVsOiBcIk1vZGVyYXRlXCIsXHJcbi8vICAgICAgIHZhbHVlOiBcIm1vZGVyYXRlXCJcclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIF07XHJcblxyXG4vLyB0aGlzLnBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YSk7XHJcbi8vICAgICB9LDIwMDApO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG5cclxuICAgICAgaWYgKGtleSAmJiB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5oYXMoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5nZXQoa2V5KT8uZmluZGluZ3M7XHJcbiAgICAgICAgdGhpcy5wYXRjaEV4aXN0aW5nVmFsdWVzKGRhdGEpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSwgMTAwMCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtYWluQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nKCdpc0ZpbmRpbmdzUmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgNTAwKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMScpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUxT3B0aW9ucztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMicpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUyT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHZhbHVlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgJ2ZpbmRpbmdzJyBpbiB2YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9taXplZERyb3BEb3duTWFwLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgLy8gY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZnhBcGlTZXJ2aWNlLmdldFNlcnZpY2VVcmwodGhpcy5zZXR0aW5nKCdzZXJ2aWNlTmFtZScpKTtcclxuICAgIC8vIHRoaXMuZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsLCB0aGlzLnNldHRpbmcoJ2NsaW5pY2FsTm90ZXNVUkwnKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueVtdPihmaW5hbFVybCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBGdXR1cmUgQVBJIGxvZ2ljIGhlcmVcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9wdGlvbnMnLCBlcnIpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnZGlzcGxheU1vZGUnLCAkdGl0bGU6ICdEaXNwbGF5IE1vZGUnLCB2YWx1ZTogJ2VsbGlwc2lzJyB9LCBbeyBvcHRpb246ICdFbGxpcHNpcycsIHZhbHVlOiAnZWxsaXBzaXMnIH0sIHsgb3B0aW9uOiAnQ29tcGFjdCcsIHZhbHVlOiAnY29tcGFjdCcgfV0pLFxyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnb3B0aW9uVHlwZScsICR0aXRsZTogJ09wdGlvbiBUeXBlJywgdmFsdWU6ICd0eXBlMScgfSwgW3sgb3B0aW9uOiAnRmluZGluZyBUeXBlIE9wdGlvbnMnLCB2YWx1ZTogJ3R5cGUxJyB9LCB7IG9wdGlvbjogJ1ZldGljYWwgVHlwZSBPcHRpb25zJywgdmFsdWU6ICd0eXBlMicgfV0pLFxyXG4gICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2Vob2xkZXJMYWJlbCcsICR0aXRsZTogJ1BsYWNlaG9sZGVyJywgdmFsdWU6ICdTZWxlY3QgT3B0aW9ucycgfSksXHJcbiAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZmluZGluZ0xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJ0xhYmVsJyB9KSxcclxuICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoeyBrZXk6ICdpc0ZpbmRpbmdzUmVxdWlyZWQnLCAkdGl0bGU6ICdSZXF1aXJlZCcsIHZhbHVlOiAndHJ1ZScgfSwgW3sgb3B0aW9uOiAnWWVzJywgdmFsdWU6ICd0cnVlJyB9LCB7IG9wdGlvbjogJ05vJywgdmFsdWU6ICdmYWxzZScgfV0pLFxyXG4gICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdlcnJvckZpbmRpbmdNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICB9XHJcblxyXG4gIC8qKiBEcm9wZG93biBCZWhhdmlvciAqKi9cclxuICB0b2dnbGVEcm9wZG93bigpIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gIXRoaXMuZHJvcGRvd25PcGVuO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3B0aW9uKG9wdGlvbjogQ3VzdG9tRHJvcGRvd25PcHRpb24sIGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgLy8gVG9nZ2xlIGNoZWNrYm94IHZhbHVlXHJcbiAgICBvcHRpb24uc2VsZWN0ZWQgPSAhb3B0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgIC8vIFJlc2V0IHJhZGlvcyB3aGVuIHVuY2hlY2tlZFxyXG4gICAgaWYgKCFvcHRpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgb3B0aW9uLnN1YlNlbGVjdGlvbiA9IG51bGw7XHJcbiAgICAgIG9wdGlvbi50b3VjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgb3B0aW9uLnRvdWNoZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOKchSBGb3JjZSBVSSByZWZyZXNoIHNvIHJhZGlvcyBhcHBlYXIgaW5zdGFudGx5XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm1cclxuICAgIHRoaXMudXBkYXRlRmluZGluZ3MoKTtcclxuICB9XHJcblxyXG4gIC8qKiBGb3JtICYgTGFiZWwgSGVscGVycyAqKi9cclxuICBnZXQgaGFzU2VsZWN0ZWRGaW5kaW5ncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRpbmdzT3B0aW9ucy5zb21lKGYgPT4gZi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRGaW5kaW5nc0xhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZmluZGluZ3NPcHRpb25zXHJcbiAgICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgaWYgKGYuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgIC8vIElmIGZpbmRpbmcgaGFzIHN1Yi1vcHRpb25zIOKGkiBvbmx5IHNob3cgaWYgYSBzdWItb3B0aW9uIGlzIHNlbGVjdGVkXHJcbiAgICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBJZiBubyBzdWItb3B0aW9ucyDihpIgYWx3YXlzIHNob3dcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoZiA9PiBmLmxhYmVsKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5zZXR0aW5nKCdwbGFjZWhvbGRlckxhYmVsJyk7XHJcblxyXG4gICAgLy8gRGlzcGxheSBtb2RlIGxvZ2ljIChDb21wYWN0IG9yIEVsbGlwc2lzKVxyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLnNldHRpbmcoJ2Rpc3BsYXlNb2RlJykgPT09ICdjb21wYWN0JyA/IDIgOiAzO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2NvbXBhY3QnKSB7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZC5sZW5ndGggPD0gbWF4Q291bnRcclxuICAgICAgICA/IHNlbGVjdGVkLmpvaW4oJywgJylcclxuICAgICAgICA6IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSArJHtzZWxlY3RlZC5sZW5ndGggLSBtYXhDb3VudH0gbW9yZWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2VsbGlwc2lzJykge1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID4gbWF4Q291bnRcclxuICAgICAgICA/IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSwgLi4uYFxyXG4gICAgICAgIDogc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIC8qKiBVcGRhdGUgRmluZGluZ3MgKyBWYWxpZGF0aW9uICoqL1xyXG4gIC8vIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmZpbmRpbmdzT3B0aW9uc1xyXG4gIC8vICAgICAuZmlsdGVyKGYgPT4ge1xyXG4gIC8vICAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgLy8gICAgICAgICAvLyBPbmx5IGluY2x1ZGUgaW4gZmluYWwgZm9ybSBpZjpcclxuICAvLyAgICAgICAgIC8vICAtIG5vIHN1Yk9wdGlvbnMsIG9yXHJcbiAgLy8gICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgLy8gICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgICAubWFwKGYgPT4ge1xyXG4gIC8vICAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gIC8vICAgICAgIHJldHVybiB7XHJcbiAgLy8gICAgICAgICBsYWJlbDogZi5sYWJlbCxcclxuICAvLyAgICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gIC8vICAgICAgICAgc3ViU2VsZWN0aW9uOiBzdWIgPyB7IGxhYmVsOiBzdWIubGFiZWwsIHZhbHVlOiBzdWIudmFsdWUgfSA6IG51bGxcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9KTtcclxuXHJcbiAgLy8gICAvLyBVcGRhdGUgcmVhY3RpdmUgZm9ybSB2YWx1ZVxyXG4gIC8vICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmaW5kaW5nczogc2VsZWN0ZWQgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cclxuICAvLyAgIC8vIFZhbGlkYXRpb24gbG9naWMgcmVtYWlucyBzYW1lXHJcbiAgLy8gICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgLy8gICAgIGYgPT4gZi5zZWxlY3RlZCAmJiBmLnN1Yk9wdGlvbnMgJiYgIWYuc3ViU2VsZWN0aW9uXHJcbiAgLy8gICApO1xyXG4gIC8vICAgdGhpcy5mb3JtLmdldCgnZmluZGluZ3MnKT8uc2V0RXJyb3JzKFxyXG4gIC8vICAgICBpbnZhbGlkSXRlbXMubGVuZ3RoID4gMCA/IHsgbWlzc2luZ1N1YlNlbGVjdGlvbjogdHJ1ZSB9IDogbnVsbFxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcblxyXG4gIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vIEZpbHRlciBzZWxlY3RlZCBvcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uIChpZiBzdWJPcHRpb25zIGV4aXN0KVxyXG4gIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5maW5kaW5nc09wdGlvbnNcclxuICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgLy8gT25seSBpbmNsdWRlIGluIGZpbmFsIGZvcm0gaWY6XHJcbiAgICAgICAgLy8gIC0gbm8gc3ViT3B0aW9ucywgb3JcclxuICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgICAgICAgaWYgKGYuc3ViT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gISFmLnN1YlNlbGVjdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSlcclxuICAgIC5tYXAoZiA9PiB7XHJcbiAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBmLmxhYmVsLFxyXG4gICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gICAgICAgIHN1YlNlbGVjdGlvbjogc3ViID8geyBsYWJlbDogc3ViLmxhYmVsLCB2YWx1ZTogc3ViLnZhbHVlIH0gOiBudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm0gdmFsdWVcclxuICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGZpbmRpbmdzOiBzZWxlY3RlZCB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG4gIC8vIFZhbGlkYXRpb24gbG9naWM6XHJcbiAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzZWxlY3RlZCBvcHRpb25zIHdpdGggc3ViT3B0aW9ucyBidXQgd2l0aG91dCBzdWJTZWxlY3Rpb25cclxuICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgICBmID0+IGYuc2VsZWN0ZWQgJiYgZi5zdWJPcHRpb25zICYmICFmLnN1YlNlbGVjdGlvblxyXG4gICk7XHJcblxyXG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgaW52YWxpZCBpdGVtcywgbWFyayB0aGUgZm9ybSBhcyBpbnZhbGlkIHdpdGggYSBjdXN0b20gZXJyb3JcclxuICBpZiAoaW52YWxpZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk/LnNldEVycm9ycyh7IG1pc3NpbmdTdWJTZWxlY3Rpb246IHRydWUgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBpZiBldmVyeXRoaW5nIGlzIHZhbGlkXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdmaW5kaW5ncycpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gUGxlYXNlIHNlbGVjdCBhIHN1Yi1vcHRpb24gZm9yIGFsbCBzZWxlY3RlZCBmaW5kaW5ncyB3aXRoIHN1Yi1vcHRpb25zLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygn4pyFIEZvcm0gVmFsdWU6JywgdGhpcy5mb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIHBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YTogYW55W10pIHtcclxuICAvLyAgIHRoaXMuZmluZGluZ3NPcHRpb25zLmZvckVhY2gob3B0ID0+IHtcclxuICAvLyAgICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gIC8vICAgICBvcHQuc2VsZWN0ZWQgPSAhIW1hdGNoO1xyXG4gIC8vICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbWF0Y2g/LnNldmVyaXR5Py52YWx1ZSB8fCBudWxsO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbiAgLy8gfVxyXG5cclxucGF0Y2hFeGlzdGluZ1ZhbHVlcyhkYXRhOiBhbnlbXSkge1xyXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZmluZGluZ3NPcHRpb25zIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbiBmb3IgZWFjaCBlbnRyeSBpbiBkYXRhXHJcbiAgdGhpcy5maW5kaW5nc09wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xyXG4gICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gICAgXHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgb3B0LnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgb3B0LnN1YlNlbGVjdGlvbiA9IG1hdGNoLnN1YlNlbGVjdGlvbiA/IG1hdGNoLnN1YlNlbGVjdGlvbi52YWx1ZSA6IG51bGw7XHJcblxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIk1hdGNoZWQgT3B0aW9uOlwiLCBvcHQpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlN1YlNlbGVjdGlvbiBTZXQgVG86XCIsIHRoaXMuZmluZGluZ3NPcHRpb25zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gTWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxyXG4gIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICBcclxuICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbn1cclxuXHJcbnNlbGVjdFN1Yk9wdGlvbihvcHRpb246IGFueSwgc3ViT3B0aW9uOiBhbnkpIHtcclxuICAvLyBTZXQgdGhlIHN1YlNlbGVjdGlvbiB0byB0aGUgY2xpY2tlZCB2YWx1ZVxyXG4gIG9wdGlvbi5zdWJTZWxlY3Rpb24gPSBzdWJPcHRpb24udmFsdWU7XHJcbiAgLy8gTWFyayB0aGUgb3B0aW9uIGFzIHRvdWNoZWQsIHdoaWNoIHdpbGwgaGVscCBpbiBmb3JtIHZhbGlkYXRpb25cclxuICBvcHRpb24udG91Y2hlZCA9IHRydWU7XHJcbiAgLy8gVXBkYXRlIHRoZSBmb3JtIHN0YXRlXHJcbiAgdGhpcy51cGRhdGVGaW5kaW5ncygpO1xyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICA8bGFiZWwgZm9yPVwiZmluZGluZ3NcIiBjbGFzcz1cImlucHV0LWxhYmVsXCI+XHJcbiAgICAgICAge3sgc2V0dGluZygnZmluZGluZ0xhYmVsJykgfX1cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVxdWlyZWRcIiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGRpdiAjZHJvcGRvd25XcmFwcGVyIGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcGwtMyBwci0yIHB5LTIgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGJnLXdoaXRlIHRleHQtZ3JheS03MDAgaG92ZXI6Ym9yZGVyLWJsdWUtNDAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImhhc1NlbGVjdGVkRmluZGluZ3M7IGVsc2UgcGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAge3sgc2VsZWN0ZWRGaW5kaW5nc0xhYmVsIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICB7eyBzZXR0aW5nKCdwbGFjZWhvbGRlckxhYmVsJykgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjYgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHdpZHRoPVwiMjQuNzY2XCIgaGVpZ2h0PVwiMjRcIiByeD1cIjNcIiBmaWxsPVwiI0ZGNzkwMFwiIGZpbGwtb3BhY2l0eT1cIjAuMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xMi44OTE4IDE2LjUwMTlDMTIuNzI1NSAxNi41MDE5IDEyLjU2OTUgMTYuNDczNiAxMi40MjM5IDE2LjQxNjlDMTIuMjc4MyAxNi4zNjAyIDEyLjE0MzEgMTYuMjYyOCAxMi4wMTgzIDE2LjEyNDhMNi4yNzgwMyA5LjgxNjJDNi4wNDkyNSA5LjU2NDc3IDUuOTI5NDYgOS4yNTAyNSA1LjkxODY0IDguODcyNjVDNS45MDc4MyA4LjQ5NTA1IDYuMDI3NjIgOC4xNjk1NiA2LjI3ODAzIDcuODk2MTlDNi41MDY4MSA3LjY0NDc2IDYuNzk3OTkgNy41MTkwNSA3LjE1MTU1IDcuNTE5MDVDNy41MDUxMiA3LjUxOTA1IDcuNzk2MyA3LjY0NDc2IDguMDI1MDggNy44OTYxOUwxMi44OTE4IDEzLjIxMDVMMTcuNzU4NiA3Ljg5NjE5QzE3Ljk4NzQgNy42NDQ3NiAxOC4yNzM2IDcuNTEzNTYgMTguNjE3MiA3LjUwMjU5QzE4Ljk2MDcgNy40OTE2MiAxOS4yNTY5IDcuNjIyODIgMTkuNTA1NiA3Ljg5NjE5QzE5LjczNDQgOC4xNDc2MiAxOS44NDg4IDguNDY3NjIgMTkuODQ4OCA4Ljg1NjE5QzE5Ljg0ODggOS4yNDQ3NyAxOS43MzQ0IDkuNTY0NzcgMTkuNTA1NiA5LjgxNjJMMTMuNzY1NCAxNi4xMjQ4QzEzLjY0MDYgMTYuMjYxOSAxMy41MDU0IDE2LjM1OTMgMTMuMzU5OCAxNi40MTY5QzEzLjIxNDIgMTYuNDc0NSAxMy4wNTgyIDE2LjUwMjggMTIuODkxOCAxNi41MDE5WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGQUE3NjJcIiAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDwhLS0gUGFuZWwgLS0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJkcm9wZG93bk9wZW5cIlxyXG4gICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtdC0xIHctZnVsbCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgc2hhZG93LWxnIG1heC1oLTY0IG92ZXJmbG93LXktYXV0byB6LTEwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmluZGluZ3NPcHRpb25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJib3JkZXItYiBib3JkZXItZ3JheS0xMDAgbGFzdDpib3JkZXItbm9uZSBwLTIgaG92ZXI6YmctZ3JheS01MCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIENoZWNrYm94ICsgTGFiZWwgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy00IGgtNCB0ZXh0LWJsdWUtNTAwIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwib3B0aW9uLnNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlT3B0aW9uKG9wdGlvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTgwMCBmb250LW1lZGl1bSBjdXJzb3ItcG9pbnRlciBzZWxlY3Qtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlT3B0aW9uKG9wdGlvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLmluZm9cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvIHRleHQtYmx1ZS01MDAgdGV4dC1zbSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IG9wdGlvbi5pbmZvIH19XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDik5hcclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBSYWRpb3MgLS0+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtNCBtbC02IG10LTIgdGV4dC1zbVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24uc2VsZWN0ZWQgJiYgb3B0aW9uLnN1Yk9wdGlvbnNcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBvcHRpb24uc3ViT3B0aW9uc1wiPlxyXG4gIDxsYWJlbFxyXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTEgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgKGNsaWNrKT1cInNlbGVjdFN1Yk9wdGlvbihvcHRpb24sIHMpXCJcclxuICA+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgW25hbWVdPVwib3B0aW9uLnZhbHVlXCJcclxuICAgICAgW3ZhbHVlXT1cInMudmFsdWVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cIm9wdGlvbi5zdWJTZWxlY3Rpb25cIlxyXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICBjbGFzcz1cInRleHQtYmx1ZS02MDAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuPnt7IHMubGFiZWwgfX08L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gVmFsaWRhdGlvbiBNZXNzYWdlIC0tPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnNlbGVjdGVkICYmIG9wdGlvbi5zdWJPcHRpb25zICYmICFvcHRpb24uc3ViU2VsZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwIHRleHQteHMgbXQtMSB3LWZ1bGwgbWwtMVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgUGxlYXNlIHNlbGVjdCBvbmUgb3B0aW9uXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZm9ybS5nZXQoJ2ZpbmRpbmdzJyk/LnRvdWNoZWQgJiYgZm9ybS5nZXQoJ2ZpbmRpbmdzJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICB7eyBzZXR0aW5nKCdlcnJvckZpbmRpbmdNZXNzYWdlJykgfX1cclxuICAgICAgPC9zbWFsbD5cclxuICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuPC9meC1jb21wb25lbnQ+XHJcbiJdfQ==
|
|
@@ -66,8 +66,8 @@ export class DatePickerComponent extends FxBaseComponent {
|
|
|
66
66
|
min.setDate(today.getDate() - 30);
|
|
67
67
|
const max = new Date();
|
|
68
68
|
max.setDate(today.getDate());
|
|
69
|
-
this.minDate = this.formatDate(min);
|
|
70
|
-
this.maxDate = this.formatDate(max);
|
|
69
|
+
// this.minDate = this.formatDate(min);
|
|
70
|
+
// this.maxDate = this.formatDate(max);
|
|
71
71
|
// this.getRangeValues();
|
|
72
72
|
}
|
|
73
73
|
get dateControl() {
|
|
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
129
129
|
type: ViewChild,
|
|
130
130
|
args: ['fxComponent']
|
|
131
131
|
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDekMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7SUFJaEMsY0FBYyxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzlDLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDekMsQ0FBQyxDQUFBO0lBRUosWUFBb0IsR0FBc0IsRUFBUyxJQUFnQixFQUFTLHVCQUFnRDtRQUN6SCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBRXpILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFHSCxRQUFRO1FBRVAsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVU7YUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsT0FBTztZQUV2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7WUFFNUMsNkVBQTZFO1lBQzdFLDJDQUEyQztZQUMzQywwQ0FBMEM7WUFDMUMsTUFBTTtZQUNOLElBQUk7WUFFSixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQW9CLEVBQUUsQ0FBQztnQkFDNUUsSUFDRSxLQUFLO29CQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7b0JBQ3pCLE1BQU0sSUFBSSxLQUFLLEVBQ2YsQ0FBQztvQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1FBQ0MsQ0FBQyxDQUFDLENBQUM7UUFHRCw0QkFBNEI7UUFDNUIsa0NBQWtDO1FBQ2xDLDhDQUE4QztRQUU5QyxrQ0FBa0M7UUFDbEMsOENBQThDO1FBRWhELDJGQUEyRjtRQUMzRiwyRkFBMkY7UUFFM0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUUzQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLHlCQUF5QjtJQUczQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUEsZUFBZTtRQUNkLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztRQUMzQyxJQUFHLEdBQUcsRUFBQyxDQUFDO1lBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDN0MsTUFBTSxTQUFTLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzFELElBQUcsU0FBUyxFQUFDLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUE7WUFDNUIsQ0FBQztpQkFDRyxDQUFDO2dCQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RixDQUFDO1lBR0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFFekIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUV4RixrQ0FBa0M7WUFDbEMscURBQXFEO1lBRXJELGtDQUFrQztZQUNsQyxxREFBcUQ7WUFFdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBVTtRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUlhLFFBQVE7UUFDZCxPQUFPO1lBQ0wsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbEYsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbEYsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3BFLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2xGLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2xGLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN4RixJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDakUsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQztTQUVwSCxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7d0dBN0lNLG1CQUFtQjs0RkFBbkIsbUJBQW1CLDhNQ2ZoQyxtNUxBeURlLDQ3QkQ5Q0osWUFBWSxrSUFBRSxtQkFBbUIsNDhCQUFFLFdBQVcsK0JBQUUsV0FBVyw0RUFBRSxjQUFjOzs0RkFJekUsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUixDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztxSkFXMUQsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnhCYXNlQ29tcG9uZW50LCBGeENvbXBvbmVudCwgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgLy8gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8vICBtYXhEYXRlICA9IG5ldyBEYXRlKCk7XHJcbm1pbkRhdGUhOiBzdHJpbmc7XHJcbm1heERhdGUhOiBzdHJpbmc7XHJcbiAgIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgQFZpZXdDaGlsZCgnZnhDb21wb25lbnQnKSBmeENvbXBvbmVudCE6IEZ4Q29tcG9uZW50O1xyXG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICAgIGRhdGVQaWNrZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICBcclxuXHJcblxyXG4gICAgcHVibGljIGRhdGVQaWNrZXJGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgIGRhdGU6IFtuZXcgRGF0ZSgpLFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgfSlcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGF0ZVBpY2tlckZvcm0pO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgLy8gZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgIC8vICAgaWYgKGtleS5pbmNsdWRlcygnbGliLWRhdGUtcGlja2VyJykpIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICBpZiAoXHJcbiAgICB2YWx1ZSAmJlxyXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxyXG4gICAgJ2RhdGUnIGluIHZhbHVlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgICAvLyBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAvLyB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG4gICAgLy8gdGhpcy5tYXhEYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgLy8gdGhpcy5tYXhEYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgMzApO1xyXG5cclxuICAvLyB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC0gMzApKSk7XHJcbiAgLy8gdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIDMxKSkpO1xyXG5cclxuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcblxyXG5jb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xyXG5taW4uc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG5jb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xyXG5tYXguc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkpO1xyXG5cclxudGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG1pbik7XHJcbnRoaXMubWF4RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShtYXgpO1xyXG5cclxuICAgIC8vIHRoaXMuZ2V0UmFuZ2VWYWx1ZXMoKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGVDb250cm9sKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG4gICAgaWYoa2V5KXtcclxuICAgICAgICBjb25zdCBkYXRlUGF0Y2ggPSB0aGlzLmRhdGVQaWNrZXJNYXAuZ2V0KGtleSlcclxuICAgICAgICBjb25zdCBmaW5hbERhdGUgPSBkYXRlUGF0Y2ggfHwgdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpXHJcbiAgICAgICAgaWYoZGF0ZVBhdGNoKXtcclxuICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gZGF0ZVBhdGNoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgLSAzMCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICB0aGlzLmRhdGVQaWNrZXJGb3JtLnBhdGNoVmFsdWUoe2RhdGU6ZmluYWxEYXRlfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldENvbnRleHRCYXNlSWQoKTtcclxuICB9XHJcblxyXG4gIGdldFJhbmdlVmFsdWVzKCkge1xyXG4gICAgdGhpcy5odHRwLmdldDxhbnk+KHRoaXMuc2V0dGluZygnYXBpVVJMJykpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICBcclxuICAgICAgY29uc3QgbWluT2Zmc2V0ID0gcmVzcG9uc2VbdGhpcy5zZXR0aW5nKCdtaW5EYXRlS2V5JyldIHx8IHRoaXMuc2V0dGluZygnbWluVmFsaWRhdGlvbicpO1xyXG4gICAgICBjb25zdCBtYXhPZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21heERhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtYXhWYWxpZGF0aW9uJyk7XHJcbiAgXHJcbiAgICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgICAgLy8gdGhpcy5taW5EYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgbWluT2Zmc2V0KTtcclxuICBcclxuICAgICAgLy8gdGhpcy5tYXhEYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtYXhPZmZzZXQpO1xyXG5cclxuICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1heE9mZnNldCkpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsgXHJcbn1cclxuICBcclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pblZhbGlkYXRpb24nLCAkdGl0bGU6ICdNaW4gVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhWYWxpZGF0aW9uJywgJHRpdGxlOiAnTWF4IFZhbGlkYXRpb24nLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnYXBpVVJMJywgJHRpdGxlOiAnQVBJIFVybCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtaW5EYXRlS2V5JywgJHRpdGxlOiAnTWluIFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWF4RGF0ZUtleScsICR0aXRsZTogJ01heCBSYW5nZSBBUEkgS2V5JywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3BsYWNlSG9sZGVyJywgJHRpdGxlOiAnUGxhY2Vob2xkZXInLCB2YWx1ZTogJ1NlbGVjdCBEYXRlJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdsYWJlbCcsICR0aXRsZTogJ0xhYmVsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2RhdGVQaWNrZXJFcnJvck1lc3NhZ2UnLCAkdGl0bGU6ICdFcnJvciBNZXNzYWdlJywgdmFsdWU6ICdQbGVhc2UgZmlsbCBvdXQgdGhlIGZpZWxkJyB9KSxcclxuICAgICAgICAgXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgcmV0dXJuIFtGeFZhbGlkYXRvclNlcnZpY2UucmVxdWlyZWRdO1xyXG4gICAgICB9XHJcbn1cclxuIiwiPGZ4LWNvbXBvbmVudCBbZnhEYXRhXT1cImZ4RGF0YVwiICNmeENvbXBvbmVudD5cclxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRhdGUtcGlja2VyIHJlbGF0aXZlXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRhdGVQaWNrZXJGb3JtXCI+XHJcbiAgICAgIDwhLS0gPHAtY2FsZW5kYXIgIGZvcm1Db250cm9sTmFtZT1cImRhdGVcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcclxuICAgICAgICBbaWNvbkRpc3BsYXldPVwiJ2lucHV0J1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiIFtzaG93QnV0dG9uQmFyXT1cInRydWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpbnB1dGljb25cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtMCBwdC0yIHByLTJcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE5LjU2MjQgMi4yNTk5MUgxOC4xOTU2VjMuMTM1ODJDMTguMTk1NiAzLjYxOTQ4IDE3Ljc5ODIgNC4wMTE3MyAxNy4zMDc4IDQuMDExNzNDMTYuODE3NyA0LjAxMTczIDE2LjQyMDIgMy42MTk0OCAxNi40MjAyIDMuMTM1ODJWMi4yNTk5MUg3LjU4MDAxVjMuMTM1ODJDNy41ODAwMSAzLjYxOTQ4IDcuMTgyNTMgNC4wMTE3MyA2LjY5MjQ0IDQuMDExNzNDNi4yMDIwOSA0LjAxMTczIDUuODA0ODYgMy42MTk0OCA1LjgwNDg2IDMuMTM1ODJWMi4yNTk5MUg0LjQzNzg3QzMuMjYxMDcgMi4yNjA0IDIuMTMyNTIgMi43MjE4MiAxLjMwMDQyIDMuNTQyOTlDMC40NjgzMjMgNC4zNjQ0MSAwLjAwMDUwNzE4NSA1LjQ3ODEzIDAgNi42Mzk0NlYxOS42MjA0QzAuMDAwNDk1MjY2IDIwLjc4MTggMC40NjgzMDQgMjEuODk1NSAxLjMwMDQyIDIyLjcxNjdDMi4xMzI1MiAyMy41MzgxIDMuMjYxMDcgMjMuOTk5NSA0LjQzNzg3IDI0SDE5LjU2MjFDMjAuNzM4OSAyMy45OTk1IDIxLjg2NzUgMjMuNTM4MSAyMi42OTk2IDIyLjcxNjdDMjMuNTMxNyAyMS44OTU1IDIzLjk5OTUgMjAuNzgxOCAyNCAxOS42MjA0VjYuNjM5NDZDMjMuOTk5NSA1LjQ3ODEzIDIzLjUzMTcgNC4zNjQ0MSAyMi42OTk2IDMuNTQyOTlDMjEuODY3NSAyLjcyMTgzIDIwLjczODkgMi4yNjA0MSAxOS41NjIxIDIuMjU5OTFIMTkuNTYyNFpNMTkuNTYyNCAyMi4yNDgySDQuNDM4MThDMy43MzI2MiAyMi4yNDYgMy4wNTY1NSAyMS45Njg2IDIuNTU3NzkgMjEuNDc2MUMyLjA1ODc4IDIwLjk4MzkgMS43Nzc2OCAyMC4zMTY3IDEuNzc1NDYgMTkuNjIwNFY5LjA1Njk4SDIyLjIyNTJWMTkuNjIwNEMyMi4yMjI5IDIwLjMxNjcgMjEuOTQxOSAyMC45ODM5IDIxLjQ0MjggMjEuNDc2MUMyMC45NDQxIDIxLjk2ODYgMjAuMjY4IDIyLjI0NiAxOS41NjI0IDIyLjI0ODJaTTcuNTgwMDEgMi4yNTk5MUg1LjgwNDg2TDUuODA1MDUgMC44NzU5MUM1LjgwNTA1IDAuMzkyMjUxIDYuMjAyMjcgMCA2LjY5MjYyIDBDNy4xODI3MiAwIDcuNTgwMTkgMC4zOTIyNTEgNy41ODAxOSAwLjg3NTkxTDcuNTgwMDEgMi4yNTk5MVpNMTguMTk1NiAyLjI1OTkxSDE2LjQyMDJMMTYuNDIwMiAwLjg3NTkxQzE2LjQyMDIgMC4zOTIyNTEgMTYuODE3NyAwIDE3LjMwNzggMEMxNy43OTgxIDAgMTguMTk1MyAwLjM5MjI1MSAxOC4xOTUzIDAuODc1OTFMMTguMTk1NiAyLjI1OTkxWlwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjUuMzMyMDNcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuMzcxMVwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxNS40MDYyXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC1jYWxlbmRhcj4gLS0+XHJcbiAgICAgICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCJcclxuICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBzZXR0aW5nKCdwbGFjZUhvbGRlcicpIH19XCI+IC0tPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08c3BhbiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICB7eyBzZXR0aW5nKCdkYXRlUGlja2VyRXJyb3JNZXNzYWdlJykgfX1cclxuICAgICAgPC9zbWFsbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9meC1jb21wb25lbnQ+Il19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7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QUFHLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQztTQUVwSCxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7d0dBN0lNLG1CQUFtQjs0RkFBbkIsbUJBQW1CLDhNQ2ZoQyxtNUxBeURlLDQ3QkQ5Q0osWUFBWSxrSUFBRSxtQkFBbUIsNDhCQUFFLFdBQVcsK0JBQUUsV0FBVyw0RUFBRSxjQUFjOzs0RkFJekUsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUixDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztxSkFXMUQsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnhCYXNlQ29tcG9uZW50LCBGeENvbXBvbmVudCwgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgLy8gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8vICBtYXhEYXRlICA9IG5ldyBEYXRlKCk7XHJcbm1pbkRhdGUhOiBzdHJpbmc7XHJcbm1heERhdGUhOiBzdHJpbmc7XHJcbiAgIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgQFZpZXdDaGlsZCgnZnhDb21wb25lbnQnKSBmeENvbXBvbmVudCE6IEZ4Q29tcG9uZW50O1xyXG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICAgIGRhdGVQaWNrZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICBcclxuXHJcblxyXG4gICAgcHVibGljIGRhdGVQaWNrZXJGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgIGRhdGU6IFtuZXcgRGF0ZSgpLFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgfSlcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGF0ZVBpY2tlckZvcm0pO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgLy8gZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgIC8vICAgaWYgKGtleS5pbmNsdWRlcygnbGliLWRhdGUtcGlja2VyJykpIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICBpZiAoXHJcbiAgICB2YWx1ZSAmJlxyXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxyXG4gICAgJ2RhdGUnIGluIHZhbHVlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgICAvLyBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAvLyB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG4gICAgLy8gdGhpcy5tYXhEYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgLy8gdGhpcy5tYXhEYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgMzApO1xyXG5cclxuICAvLyB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC0gMzApKSk7XHJcbiAgLy8gdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIDMxKSkpO1xyXG5cclxuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcblxyXG5jb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xyXG5taW4uc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG5jb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xyXG5tYXguc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkpO1xyXG5cclxuLy8gdGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG1pbik7XHJcbi8vIHRoaXMubWF4RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShtYXgpO1xyXG5cclxuICAgIC8vIHRoaXMuZ2V0UmFuZ2VWYWx1ZXMoKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGVDb250cm9sKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG4gICAgaWYoa2V5KXtcclxuICAgICAgICBjb25zdCBkYXRlUGF0Y2ggPSB0aGlzLmRhdGVQaWNrZXJNYXAuZ2V0KGtleSlcclxuICAgICAgICBjb25zdCBmaW5hbERhdGUgPSBkYXRlUGF0Y2ggfHwgdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpXHJcbiAgICAgICAgaWYoZGF0ZVBhdGNoKXtcclxuICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gZGF0ZVBhdGNoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgLSAzMCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICB0aGlzLmRhdGVQaWNrZXJGb3JtLnBhdGNoVmFsdWUoe2RhdGU6ZmluYWxEYXRlfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldENvbnRleHRCYXNlSWQoKTtcclxuICB9XHJcblxyXG4gIGdldFJhbmdlVmFsdWVzKCkge1xyXG4gICAgdGhpcy5odHRwLmdldDxhbnk+KHRoaXMuc2V0dGluZygnYXBpVVJMJykpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICBcclxuICAgICAgY29uc3QgbWluT2Zmc2V0ID0gcmVzcG9uc2VbdGhpcy5zZXR0aW5nKCdtaW5EYXRlS2V5JyldIHx8IHRoaXMuc2V0dGluZygnbWluVmFsaWRhdGlvbicpO1xyXG4gICAgICBjb25zdCBtYXhPZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21heERhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtYXhWYWxpZGF0aW9uJyk7XHJcbiAgXHJcbiAgICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgICAgLy8gdGhpcy5taW5EYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgbWluT2Zmc2V0KTtcclxuICBcclxuICAgICAgLy8gdGhpcy5tYXhEYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtYXhPZmZzZXQpO1xyXG5cclxuICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1heE9mZnNldCkpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsgXHJcbn1cclxuICBcclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pblZhbGlkYXRpb24nLCAkdGl0bGU6ICdNaW4gVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhWYWxpZGF0aW9uJywgJHRpdGxlOiAnTWF4IFZhbGlkYXRpb24nLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnYXBpVVJMJywgJHRpdGxlOiAnQVBJIFVybCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtaW5EYXRlS2V5JywgJHRpdGxlOiAnTWluIFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWF4RGF0ZUtleScsICR0aXRsZTogJ01heCBSYW5nZSBBUEkgS2V5JywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3BsYWNlSG9sZGVyJywgJHRpdGxlOiAnUGxhY2Vob2xkZXInLCB2YWx1ZTogJ1NlbGVjdCBEYXRlJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdsYWJlbCcsICR0aXRsZTogJ0xhYmVsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2RhdGVQaWNrZXJFcnJvck1lc3NhZ2UnLCAkdGl0bGU6ICdFcnJvciBNZXNzYWdlJywgdmFsdWU6ICdQbGVhc2UgZmlsbCBvdXQgdGhlIGZpZWxkJyB9KSxcclxuICAgICAgICAgXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgcmV0dXJuIFtGeFZhbGlkYXRvclNlcnZpY2UucmVxdWlyZWRdO1xyXG4gICAgICB9XHJcbn1cclxuIiwiPGZ4LWNvbXBvbmVudCBbZnhEYXRhXT1cImZ4RGF0YVwiICNmeENvbXBvbmVudD5cclxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRhdGUtcGlja2VyIHJlbGF0aXZlXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRhdGVQaWNrZXJGb3JtXCI+XHJcbiAgICAgIDwhLS0gPHAtY2FsZW5kYXIgIGZvcm1Db250cm9sTmFtZT1cImRhdGVcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcclxuICAgICAgICBbaWNvbkRpc3BsYXldPVwiJ2lucHV0J1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiIFtzaG93QnV0dG9uQmFyXT1cInRydWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpbnB1dGljb25cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtMCBwdC0yIHByLTJcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE5LjU2MjQgMi4yNTk5MUgxOC4xOTU2VjMuMTM1ODJDMTguMTk1NiAzLjYxOTQ4IDE3Ljc5ODIgNC4wMTE3MyAxNy4zMDc4IDQuMDExNzNDMTYuODE3NyA0LjAxMTczIDE2LjQyMDIgMy42MTk0OCAxNi40MjAyIDMuMTM1ODJWMi4yNTk5MUg3LjU4MDAxVjMuMTM1ODJDNy41ODAwMSAzLjYxOTQ4IDcuMTgyNTMgNC4wMTE3MyA2LjY5MjQ0IDQuMDExNzNDNi4yMDIwOSA0LjAxMTczIDUuODA0ODYgMy42MTk0OCA1LjgwNDg2IDMuMTM1ODJWMi4yNTk5MUg0LjQzNzg3QzMuMjYxMDcgMi4yNjA0IDIuMTMyNTIgMi43MjE4MiAxLjMwMDQyIDMuNTQyOTlDMC40NjgzMjMgNC4zNjQ0MSAwLjAwMDUwNzE4NSA1LjQ3ODEzIDAgNi42Mzk0NlYxOS42MjA0QzAuMDAwNDk1MjY2IDIwLjc4MTggMC40NjgzMDQgMjEuODk1NSAxLjMwMDQyIDIyLjcxNjdDMi4xMzI1MiAyMy41MzgxIDMuMjYxMDcgMjMuOTk5NSA0LjQzNzg3IDI0SDE5LjU2MjFDMjAuNzM4OSAyMy45OTk1IDIxLjg2NzUgMjMuNTM4MSAyMi42OTk2IDIyLjcxNjdDMjMuNTMxNyAyMS44OTU1IDIzLjk5OTUgMjAuNzgxOCAyNCAxOS42MjA0VjYuNjM5NDZDMjMuOTk5NSA1LjQ3ODEzIDIzLjUzMTcgNC4zNjQ0MSAyMi42OTk2IDMuNTQyOTlDMjEuODY3NSAyLjcyMTgzIDIwLjczODkgMi4yNjA0MSAxOS41NjIxIDIuMjU5OTFIMTkuNTYyNFpNMTkuNTYyNCAyMi4yNDgySDQuNDM4MThDMy43MzI2MiAyMi4yNDYgMy4wNTY1NSAyMS45Njg2IDIuNTU3NzkgMjEuNDc2MUMyLjA1ODc4IDIwLjk4MzkgMS43Nzc2OCAyMC4zMTY3IDEuNzc1NDYgMTkuNjIwNFY5LjA1Njk4SDIyLjIyNTJWMTkuNjIwNEMyMi4yMjI5IDIwLjMxNjcgMjEuOTQxOSAyMC45ODM5IDIxLjQ0MjggMjEuNDc2MUMyMC45NDQxIDIxLjk2ODYgMjAuMjY4IDIyLjI0NiAxOS41NjI0IDIyLjI0ODJaTTcuNTgwMDEgMi4yNTk5MUg1LjgwNDg2TDUuODA1MDUgMC44NzU5MUM1LjgwNTA1IDAuMzkyMjUxIDYuMjAyMjcgMCA2LjY5MjYyIDBDNy4xODI3MiAwIDcuNTgwMTkgMC4zOTIyNTEgNy41ODAxOSAwLjg3NTkxTDcuNTgwMDEgMi4yNTk5MVpNMTguMTk1NiAyLjI1OTkxSDE2LjQyMDJMMTYuNDIwMiAwLjg3NTkxQzE2LjQyMDIgMC4zOTIyNTEgMTYuODE3NyAwIDE3LjMwNzggMEMxNy43OTgxIDAgMTguMTk1MyAwLjM5MjI1MSAxOC4xOTUzIDAuODc1OTFMMTguMTk1NiAyLjI1OTkxWlwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjUuMzMyMDNcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuMzcxMVwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxNS40MDYyXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC1jYWxlbmRhcj4gLS0+XHJcbiAgICAgICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCJcclxuICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBzZXR0aW5nKCdwbGFjZUhvbGRlcicpIH19XCI+IC0tPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJpbnB1dC1sYWJlbFwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08c3BhbiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICB7eyBzZXR0aW5nKCdkYXRlUGlja2VyRXJyb3JNZXNzYWdlJykgfX1cclxuICAgICAgPC9zbWFsbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9meC1jb21wb25lbnQ+Il19
|
|
@@ -79,13 +79,13 @@ export class SummaryComponent extends FxBaseComponent {
|
|
|
79
79
|
this.cdr.detectChanges();
|
|
80
80
|
}
|
|
81
81
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SummaryComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SummaryComponent, isStandalone: true, selector: "lib-summary", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"custom-
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SummaryComponent, isStandalone: true, selector: "lib-summary", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"custom-summary relative\">\r\n <form [formGroup]=\"summaryForm\">\r\n\r\n <label class=\"summary-label\">{{ setting('summaryLabel') }}</label>\r\n <div class=\"relative\">\r\n <textarea formControlName=\"summary\" readonly class=\"w-full\" rows=\"2\"></textarea>\r\n </div>\r\n <!-- <div>\r\n <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('datePickerErrorMessage') }}\r\n </small>\r\n </div> -->\r\n </form>\r\n </div>\r\n\r\n</fx-component>", styles: [".form_builder_component fx-component .fx-element .p-3 label.summary-label{color:#4682b4!important;font-weight:600!important;margin-bottom:10px!important;font-size:14px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }] });
|
|
83
83
|
}
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SummaryComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
|
-
args: [{ selector: 'lib-summary', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"custom-
|
|
86
|
+
args: [{ selector: 'lib-summary', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"custom-summary relative\">\r\n <form [formGroup]=\"summaryForm\">\r\n\r\n <label class=\"summary-label\">{{ setting('summaryLabel') }}</label>\r\n <div class=\"relative\">\r\n <textarea formControlName=\"summary\" readonly class=\"w-full\" rows=\"2\"></textarea>\r\n </div>\r\n <!-- <div>\r\n <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('datePickerErrorMessage') }}\r\n </small>\r\n </div> -->\r\n </form>\r\n </div>\r\n\r\n</fx-component>", styles: [".form_builder_component fx-component .fx-element .p-3 label.summary-label{color:#4682b4!important;font-weight:600!important;margin-bottom:10px!important;font-size:14px!important}\n"] }]
|
|
87
87
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }], propDecorators: { fxComponent: [{
|
|
88
88
|
type: ViewChild,
|
|
89
89
|
args: ['fxComponent']
|
|
90
90
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3N1bW1hcnkvc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3N1bW1hcnkvc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBYSxlQUFlLEVBQW9DLE1BQU0scUJBQXFCLENBQUM7QUFHakksT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUzFDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBa0I5QjtJQUErQjtJQUF5QjtJQWpCckUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVuQyxPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDMUMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7SUFLL0IsV0FBVyxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzNDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUNkLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDNUIsWUFBb0IsR0FBc0IsRUFBUyxJQUFnQixFQUFTLHVCQUFnRDtRQUN6SCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBRXpILElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFHSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVTthQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVBLGVBQWU7UUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFDM0MsSUFBRyxHQUFHLEVBQUMsQ0FBQztRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBSU8sVUFBVSxDQUFDLElBQVU7UUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFJYSxRQUFRO1FBQ2QsT0FBTztZQUNMLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM5RSxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDekUsQ0FBQztJQUNKLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVILGNBQWM7UUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBZ0IsRUFBRSxNQUFXO1FBQ2pELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDekQsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0FuRlUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsME1DaEI3QixrcUJBaUJlLDZPRExILFlBQVksOEJBQUUsbUJBQW1CLDQ4QkFBRSxXQUFXLCtCQUFFLFdBQVc7OzRGQUkxRCxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDO3FKQVUzQyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNldHRpbmcsIEZ4U3RyaW5nU2V0dGluZywgRnhWYWxpZGF0aW9uLCBGeFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3VtbWFyeScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3VtbWFyeS5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZHtcclxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuXHJcbm1pbkRhdGUhOiBzdHJpbmc7XHJcbm1heERhdGUhOiBzdHJpbmc7XHJcbiAgIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgQFZpZXdDaGlsZCgnZnhDb21wb25lbnQnKSBmeENvbXBvbmVudCE6IEZ4Q29tcG9uZW50O1xyXG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICAgZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgXHJcbiAgIFxyXG5cclxuXHJcbiAgICBwdWJsaWMgc3VtbWFyeUZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgc3VtbWFyeTogWycnXSxcclxuICAgICB9KVxyXG5cclxuICAgICAgZHluYW1pY1RleHQ6IHN0cmluZyA9ICcnO1xyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7XHJcbiAgICAgIHN1cGVyKGNkcilcclxuICAgICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLnN1bW1hcnlGb3JtKTtcclxuICAgICAgfSk7XHJcbiAgICAgXHJcbiAgICB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHluYW1pY1RleHQgPSB0aGlzLnNldHRpbmcoJ3N1bW1hcnlUZXh0JykgfHwgJyc7XHJcbiAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuICB9KTtcclxuICB9XHJcblxyXG4gICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmZ4Q29tcG9uZW50Py5meERhdGE/Lm5hbWU7XHJcbiAgICBpZihrZXkpe1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDb250ZXh0QmFzZUlkKCk7XHJcbiAgfVxyXG5cclxuICBcclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsgXHJcbn1cclxuICBcclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3N1bW1hcnlUZXh0JywgJHRpdGxlOiAnU3VtbWFyeSBUZXh0JywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3N1bW1hcnlMYWJlbCcsICR0aXRsZTogJ0xhYmVsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG5cclxuICAgIHVwZGF0ZVRleHRBcmVhKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8uJGZvcm1Hcm91cD8udmFsdWU7XHJcbiAgICBjb25zdCBkeW5hbWljVGV4dCA9IHRoaXMucmVwbGFjZVBsYWNlaG9sZGVycyh0aGlzLmR5bmFtaWNUZXh0LCBmb3JtVmFsdWVzKTtcclxuICAgIHRoaXMuc3VtbWFyeUZvcm0ucGF0Y2hWYWx1ZSh7IHN1bW1hcnk6IGR5bmFtaWNUZXh0IH0pO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcmVwbGFjZVBsYWNlaG9sZGVycyh0ZW1wbGF0ZTogc3RyaW5nLCB2YWx1ZXM6IGFueSk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoL3soLio/KX0vZywgKG1hdGNoLCBwbGFjZWhvbGRlcikgPT4ge1xyXG4gICAgaWYgKHZhbHVlc1twbGFjZWhvbGRlcl0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdmFsdWVzW3BsYWNlaG9sZGVyXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBtYXRjaDtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVUZXh0QXJlYSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZngtY29tcG9uZW50IFtmeERhdGFdPVwiZnhEYXRhXCIgI2Z4Q29tcG9uZW50PlxyXG4gIDxkaXYgY2xhc3M9XCJjdXN0b20tc3VtbWFyeSByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzdW1tYXJ5Rm9ybVwiPlxyXG5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsXCI+e3sgc2V0dGluZygnc3VtbWFyeUxhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBmb3JtQ29udHJvbE5hbWU9XCJzdW1tYXJ5XCIgcmVhZG9ubHkgY2xhc3M9XCJ3LWZ1bGxcIiByb3dzPVwiMlwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8IS0tIDxkaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy50b3VjaGVkICYmIGRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAge3sgc2V0dGluZygnZGF0ZVBpY2tlckVycm9yTWVzc2FnZScpIH19XHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Z4LWNvbXBvbmVudD4iXX0=
|