@c8y/ngx-components 1018.0.37 → 1018.0.39

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.
@@ -52,14 +52,14 @@ export class ConfigureCustomColumnComponent {
52
52
  }
53
53
  }
54
54
  ConfigureCustomColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
55
- ConfigureCustomColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ConfigureCustomColumnComponent, selector: "c8y-configure-custom-column", outputs: { onAddCustomColumn: "onAddCustomColumn" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["columnConfigForm"], descendants: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\" translate>Configure custom column</h3>\n </div>\n\n <form class=\"d-contents\" #columnConfigForm=\"ngForm\" [formGroup]=\"formGroup\">\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label for=\"header\" translate>Header</label>\n <input\n id=\"header\"\n formControlName=\"header\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. Agent name' | translate\"\n [required]=\"true\"\n uniqueByPath\n [collection]=\"columns\"\n path=\"header\"\n [comparator]=\"comparator\"\n />\n <c8y-messages>\n <c8y-message\n name=\"uniqueByPath\"\n [text]=\"uniqueHeaderMsg\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"fragmentPath\" translate>Fragment path</label>\n <input\n id=\"fragmentPath\"\n formControlName=\"path\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_Agent.name' }\"\n />\n </c8y-form-group>\n <label class=\"c8y-switch\" [title]=\"'Add another column after saving this one' | translate\">\n <input type=\"checkbox\" formControlName=\"addAnother\" class=\"form-control\" />\n <span></span>\n <span translate>Add another column after saving this one</span>\n </label>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button title=\"{{ 'Cancel' | translate }}\" class=\"btn btn-default\" (click)=\"modalRef.hide()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n [disabled]=\"columnConfigForm.form.pristine || !columnConfigForm.form.valid\"\n (click)=\"addColumn()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i4.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i5.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i6.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: i7.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i8.UniqueInCollectionByPathValidationDirective, selector: "[uniqueByPath]", inputs: ["collection", "path", "comparator"] }, { kind: "pipe", type: i9.C8yTranslatePipe, name: "translate" }] });
55
+ ConfigureCustomColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ConfigureCustomColumnComponent, selector: "c8y-configure-custom-column", outputs: { onAddCustomColumn: "onAddCustomColumn" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["columnConfigForm"], descendants: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\" translate>Configure custom column</h3>\n </div>\n\n <form class=\"d-contents\" #columnConfigForm=\"ngForm\" [formGroup]=\"formGroup\">\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label for=\"header\" translate>Header</label>\n <input\n id=\"header\"\n data-cy=\"configure-custom-column--header\"\n formControlName=\"header\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. Agent name' | translate\"\n [required]=\"true\"\n uniqueByPath\n [collection]=\"columns\"\n path=\"header\"\n [comparator]=\"comparator\"\n />\n <c8y-messages>\n <c8y-message\n name=\"uniqueByPath\"\n [text]=\"uniqueHeaderMsg\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"fragmentPath\" translate>Fragment path</label>\n <input\n id=\"fragmentPath\"\n data-cy=\"configure-custom-column--fragmentPath\"\n formControlName=\"path\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_Agent.name' }\"\n />\n </c8y-form-group>\n <label class=\"c8y-switch\" [title]=\"'Add another column after saving this one' | translate\">\n <input type=\"checkbox\" formControlName=\"addAnother\" class=\"form-control\" />\n <span></span>\n <span translate>Add another column after saving this one</span>\n </label>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button title=\"{{ 'Cancel' | translate }}\" class=\"btn btn-default\" (click)=\"modalRef.hide()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n [disabled]=\"columnConfigForm.form.pristine || !columnConfigForm.form.valid\"\n (click)=\"addColumn()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i4.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i5.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i6.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: i7.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i8.UniqueInCollectionByPathValidationDirective, selector: "[uniqueByPath]", inputs: ["collection", "path", "comparator"] }, { kind: "pipe", type: i9.C8yTranslatePipe, name: "translate" }] });
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'c8y-configure-custom-column', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\" translate>Configure custom column</h3>\n </div>\n\n <form class=\"d-contents\" #columnConfigForm=\"ngForm\" [formGroup]=\"formGroup\">\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label for=\"header\" translate>Header</label>\n <input\n id=\"header\"\n formControlName=\"header\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. Agent name' | translate\"\n [required]=\"true\"\n uniqueByPath\n [collection]=\"columns\"\n path=\"header\"\n [comparator]=\"comparator\"\n />\n <c8y-messages>\n <c8y-message\n name=\"uniqueByPath\"\n [text]=\"uniqueHeaderMsg\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"fragmentPath\" translate>Fragment path</label>\n <input\n id=\"fragmentPath\"\n formControlName=\"path\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_Agent.name' }\"\n />\n </c8y-form-group>\n <label class=\"c8y-switch\" [title]=\"'Add another column after saving this one' | translate\">\n <input type=\"checkbox\" formControlName=\"addAnother\" class=\"form-control\" />\n <span></span>\n <span translate>Add another column after saving this one</span>\n </label>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button title=\"{{ 'Cancel' | translate }}\" class=\"btn btn-default\" (click)=\"modalRef.hide()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n [disabled]=\"columnConfigForm.form.pristine || !columnConfigForm.form.valid\"\n (click)=\"addColumn()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </form>\n</div>\n" }]
58
+ args: [{ selector: 'c8y-configure-custom-column', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\" translate>Configure custom column</h3>\n </div>\n\n <form class=\"d-contents\" #columnConfigForm=\"ngForm\" [formGroup]=\"formGroup\">\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label for=\"header\" translate>Header</label>\n <input\n id=\"header\"\n data-cy=\"configure-custom-column--header\"\n formControlName=\"header\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. Agent name' | translate\"\n [required]=\"true\"\n uniqueByPath\n [collection]=\"columns\"\n path=\"header\"\n [comparator]=\"comparator\"\n />\n <c8y-messages>\n <c8y-message\n name=\"uniqueByPath\"\n [text]=\"uniqueHeaderMsg\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"fragmentPath\" translate>Fragment path</label>\n <input\n id=\"fragmentPath\"\n data-cy=\"configure-custom-column--fragmentPath\"\n formControlName=\"path\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_Agent.name' }\"\n />\n </c8y-form-group>\n <label class=\"c8y-switch\" [title]=\"'Add another column after saving this one' | translate\">\n <input type=\"checkbox\" formControlName=\"addAnother\" class=\"form-control\" />\n <span></span>\n <span translate>Add another column after saving this one</span>\n </label>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button title=\"{{ 'Cancel' | translate }}\" class=\"btn btn-default\" (click)=\"modalRef.hide()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n [disabled]=\"columnConfigForm.form.pristine || !columnConfigForm.form.valid\"\n (click)=\"addColumn()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </form>\n</div>\n" }]
59
59
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.BsModalRef }]; }, propDecorators: { form: [{
60
60
  type: ViewChild,
61
61
  args: ['columnConfigForm', { static: false }]
62
62
  }], onAddCustomColumn: [{
63
63
  type: Output
64
64
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXRhLWdyaWQvY29uZmlndXJlLWN1c3RvbS1jb2x1bW4vY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXRhLWdyaWQvY29uZmlndXJlLWN1c3RvbS1jb2x1bW4vY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTyw4QkFBOEI7SUFpQnpDLFlBQW1CLEVBQWUsRUFBUyxRQUFvQjtRQUE1QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQWhCdEQsMkJBQXNCLEdBQUcsbUJBQW1CLENBQUM7UUFLdEQsc0JBQWlCLEdBQXFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekUsY0FBUyxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25DLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUMxRCxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUV2QixvQkFBZSxHQUFHLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBRW5CLENBQUM7SUFFbkUsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJO1FBQ25CLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUc7WUFDYixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN2QixNQUFNO1lBQ04sSUFBSTtZQUNKLE1BQU0sRUFBRSxJQUFJO1lBQ1osT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDOzsySEF6Q1UsOEJBQThCOytHQUE5Qiw4QkFBOEIsa09DWjNDLDh0RUE4REE7MkZEbERhLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDRSw2QkFBNkI7MkhBTVcsSUFBSTtzQkFBckQsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2hELGlCQUFpQjtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IHNpbXBsZUpzb25QYXRoVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vZm9ybXMvc2ltcGxlLWpzb24tcGF0aC12YWxpZGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgQ29sdW1uLCBDdXN0b21Db2x1bW5Db25maWcgfSBmcm9tICcuLi9kYXRhLWdyaWQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY29uZmlndXJlLWN1c3RvbS1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyZUN1c3RvbUNvbHVtbkNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IFNJTVBMRV9KU09OX1BBVEhfUkVHRVggPSAvXlteLlxcc10rKFxcLlxcUyspKiQvO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkNvbmZpZ0Zvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogTmdGb3JtO1xuXG4gIEBPdXRwdXQoKVxuICBvbkFkZEN1c3RvbUNvbHVtbjogRXZlbnRFbWl0dGVyPEN1c3RvbUNvbHVtbkNvbmZpZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBoZWFkZXI6IFsnJ10sXG4gICAgcGF0aDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgc2ltcGxlSnNvblBhdGhWYWxpZGF0b3JdXSxcbiAgICBhZGRBbm90aGVyOiBbZmFsc2VdXG4gIH0pO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuXG4gIHVuaXF1ZUhlYWRlck1zZyA9IGdldHRleHQoJ1RoZSBjb2x1bW4gaGVhZGVyIG5hbWUgaXMgdG9vIHNpbWlsYXIgdG8gXCJ7eyB2YWx1ZSB9fVwiLicpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBtb2RhbFJlZjogQnNNb2RhbFJlZikge31cblxuICBjb21wYXJhdG9yKHZhbDEsIHZhbDIpIHtcbiAgICByZXR1cm4gY2FtZWxDYXNlKHZhbDEpID09PSBjYW1lbENhc2UodmFsMik7XG4gIH1cblxuICBhZGRDb2x1bW4oKTogdm9pZCB7XG4gICAgY29uc3QgeyBoZWFkZXIsIHBhdGggfSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xuICAgIGNvbnN0IGNvbHVtbiA9IHtcbiAgICAgIG5hbWU6IGNhbWVsQ2FzZShoZWFkZXIpLFxuICAgICAgaGVhZGVyLFxuICAgICAgcGF0aCxcbiAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICAgIHZpc2libGU6IHRydWVcbiAgICB9O1xuICAgIHRoaXMub25BZGRDdXN0b21Db2x1bW4uZW1pdChjb2x1bW4pO1xuICAgIC8vIGFkZCBuZXcgY29sdW1uIHRvIGNvbHVtbnMgYXJyYXkgc2luY2UgaXQncyB1c2VkIGZvciBoZWFkZXIgdW5pcXVlbmVzcyB2YWxpZGF0aW9uXG4gICAgdGhpcy5jb2x1bW5zLnNwbGljZSh0aGlzLmNvbHVtbnMubGVuZ3RoLCAwLCBjb2x1bW4pO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLnZhbHVlLmFkZEFub3RoZXIpIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldEZvcm0oeyBhZGRBbm90aGVyOiB0cnVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsUmVmLmhpZGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1tb2RhbFwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICA8aDMgaWQ9XCJtb2RhbC10aXRsZVwiIHRyYW5zbGF0ZT5Db25maWd1cmUgY3VzdG9tIGNvbHVtbjwvaDM+XG4gIDwvZGl2PlxuXG4gIDxmb3JtIGNsYXNzPVwiZC1jb250ZW50c1wiICNjb2x1bW5Db25maWdGb3JtPVwibmdGb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaW5uZXItc2Nyb2xsXCIgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImhlYWRlclwiIHRyYW5zbGF0ZT5IZWFkZXI8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJoZWFkZXJcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaGVhZGVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4gQWdlbnQgbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgdW5pcXVlQnlQYXRoXG4gICAgICAgICAgICBbY29sbGVjdGlvbl09XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIHBhdGg9XCJoZWFkZXJcIlxuICAgICAgICAgICAgW2NvbXBhcmF0b3JdPVwiY29tcGFyYXRvclwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgPGM4eS1tZXNzYWdlXG4gICAgICAgICAgICAgIG5hbWU9XCJ1bmlxdWVCeVBhdGhcIlxuICAgICAgICAgICAgICBbdGV4dF09XCJ1bmlxdWVIZWFkZXJNc2dcIlxuICAgICAgICAgICAgPjwvYzh5LW1lc3NhZ2U+XG4gICAgICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZnJhZ21lbnRQYXRoXCIgdHJhbnNsYXRlPkZyYWdtZW50IHBhdGg8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJmcmFnbWVudFBhdGhcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdjOHlfQWdlbnQubmFtZScgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYzh5LXN3aXRjaFwiIFt0aXRsZV09XCInQWRkIGFub3RoZXIgY29sdW1uIGFmdGVyIHNhdmluZyB0aGlzIG9uZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwiYWRkQW5vdGhlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkFkZCBhbm90aGVyIGNvbHVtbiBhZnRlciBzYXZpbmcgdGhpcyBvbmU8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxidXR0b24gdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgKGNsaWNrKT1cIm1vZGFsUmVmLmhpZGUoKVwiPlxuICAgICAgICB7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHRpdGxlPVwie3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29sdW1uQ29uZmlnRm9ybS5mb3JtLnByaXN0aW5lIHx8ICFjb2x1bW5Db25maWdGb3JtLmZvcm0udmFsaWRcIlxuICAgICAgICAoY2xpY2spPVwiYWRkQ29sdW1uKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXRhLWdyaWQvY29uZmlndXJlLWN1c3RvbS1jb2x1bW4vY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXRhLWdyaWQvY29uZmlndXJlLWN1c3RvbS1jb2x1bW4vY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTyw4QkFBOEI7SUFpQnpDLFlBQW1CLEVBQWUsRUFBUyxRQUFvQjtRQUE1QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQWhCdEQsMkJBQXNCLEdBQUcsbUJBQW1CLENBQUM7UUFLdEQsc0JBQWlCLEdBQXFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekUsY0FBUyxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25DLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUMxRCxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUV2QixvQkFBZSxHQUFHLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBRW5CLENBQUM7SUFFbkUsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJO1FBQ25CLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUc7WUFDYixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN2QixNQUFNO1lBQ04sSUFBSTtZQUNKLE1BQU0sRUFBRSxJQUFJO1lBQ1osT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDOzsySEF6Q1UsOEJBQThCOytHQUE5Qiw4QkFBOEIsa09DWjNDLHMxRUFnRUE7MkZEcERhLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDRSw2QkFBNkI7MkhBTVcsSUFBSTtzQkFBckQsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2hELGlCQUFpQjtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IHNpbXBsZUpzb25QYXRoVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vZm9ybXMvc2ltcGxlLWpzb24tcGF0aC12YWxpZGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgQ29sdW1uLCBDdXN0b21Db2x1bW5Db25maWcgfSBmcm9tICcuLi9kYXRhLWdyaWQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY29uZmlndXJlLWN1c3RvbS1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJlLWN1c3RvbS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyZUN1c3RvbUNvbHVtbkNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IFNJTVBMRV9KU09OX1BBVEhfUkVHRVggPSAvXlteLlxcc10rKFxcLlxcUyspKiQvO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkNvbmZpZ0Zvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogTmdGb3JtO1xuXG4gIEBPdXRwdXQoKVxuICBvbkFkZEN1c3RvbUNvbHVtbjogRXZlbnRFbWl0dGVyPEN1c3RvbUNvbHVtbkNvbmZpZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBoZWFkZXI6IFsnJ10sXG4gICAgcGF0aDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgc2ltcGxlSnNvblBhdGhWYWxpZGF0b3JdXSxcbiAgICBhZGRBbm90aGVyOiBbZmFsc2VdXG4gIH0pO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuXG4gIHVuaXF1ZUhlYWRlck1zZyA9IGdldHRleHQoJ1RoZSBjb2x1bW4gaGVhZGVyIG5hbWUgaXMgdG9vIHNpbWlsYXIgdG8gXCJ7eyB2YWx1ZSB9fVwiLicpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBtb2RhbFJlZjogQnNNb2RhbFJlZikge31cblxuICBjb21wYXJhdG9yKHZhbDEsIHZhbDIpIHtcbiAgICByZXR1cm4gY2FtZWxDYXNlKHZhbDEpID09PSBjYW1lbENhc2UodmFsMik7XG4gIH1cblxuICBhZGRDb2x1bW4oKTogdm9pZCB7XG4gICAgY29uc3QgeyBoZWFkZXIsIHBhdGggfSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xuICAgIGNvbnN0IGNvbHVtbiA9IHtcbiAgICAgIG5hbWU6IGNhbWVsQ2FzZShoZWFkZXIpLFxuICAgICAgaGVhZGVyLFxuICAgICAgcGF0aCxcbiAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICAgIHZpc2libGU6IHRydWVcbiAgICB9O1xuICAgIHRoaXMub25BZGRDdXN0b21Db2x1bW4uZW1pdChjb2x1bW4pO1xuICAgIC8vIGFkZCBuZXcgY29sdW1uIHRvIGNvbHVtbnMgYXJyYXkgc2luY2UgaXQncyB1c2VkIGZvciBoZWFkZXIgdW5pcXVlbmVzcyB2YWxpZGF0aW9uXG4gICAgdGhpcy5jb2x1bW5zLnNwbGljZSh0aGlzLmNvbHVtbnMubGVuZ3RoLCAwLCBjb2x1bW4pO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLnZhbHVlLmFkZEFub3RoZXIpIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldEZvcm0oeyBhZGRBbm90aGVyOiB0cnVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsUmVmLmhpZGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1tb2RhbFwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICA8aDMgaWQ9XCJtb2RhbC10aXRsZVwiIHRyYW5zbGF0ZT5Db25maWd1cmUgY3VzdG9tIGNvbHVtbjwvaDM+XG4gIDwvZGl2PlxuXG4gIDxmb3JtIGNsYXNzPVwiZC1jb250ZW50c1wiICNjb2x1bW5Db25maWdGb3JtPVwibmdGb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaW5uZXItc2Nyb2xsXCIgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImhlYWRlclwiIHRyYW5zbGF0ZT5IZWFkZXI8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJoZWFkZXJcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImNvbmZpZ3VyZS1jdXN0b20tY29sdW1uLS1oZWFkZXJcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaGVhZGVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4gQWdlbnQgbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgdW5pcXVlQnlQYXRoXG4gICAgICAgICAgICBbY29sbGVjdGlvbl09XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIHBhdGg9XCJoZWFkZXJcIlxuICAgICAgICAgICAgW2NvbXBhcmF0b3JdPVwiY29tcGFyYXRvclwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgPGM4eS1tZXNzYWdlXG4gICAgICAgICAgICAgIG5hbWU9XCJ1bmlxdWVCeVBhdGhcIlxuICAgICAgICAgICAgICBbdGV4dF09XCJ1bmlxdWVIZWFkZXJNc2dcIlxuICAgICAgICAgICAgPjwvYzh5LW1lc3NhZ2U+XG4gICAgICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZnJhZ21lbnRQYXRoXCIgdHJhbnNsYXRlPkZyYWdtZW50IHBhdGg8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJmcmFnbWVudFBhdGhcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImNvbmZpZ3VyZS1jdXN0b20tY29sdW1uLS1mcmFnbWVudFBhdGhcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdjOHlfQWdlbnQubmFtZScgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYzh5LXN3aXRjaFwiIFt0aXRsZV09XCInQWRkIGFub3RoZXIgY29sdW1uIGFmdGVyIHNhdmluZyB0aGlzIG9uZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwiYWRkQW5vdGhlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkFkZCBhbm90aGVyIGNvbHVtbiBhZnRlciBzYXZpbmcgdGhpcyBvbmU8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxidXR0b24gdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgKGNsaWNrKT1cIm1vZGFsUmVmLmhpZGUoKVwiPlxuICAgICAgICB7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHRpdGxlPVwie3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29sdW1uQ29uZmlnRm9ybS5mb3JtLnByaXN0aW5lIHx8ICFjb2x1bW5Db25maWdGb3JtLmZvcm0udmFsaWRcIlxuICAgICAgICAoY2xpY2spPVwiYWRkQ29sdW1uKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==