@dev-tcloud/tcloud-ui 0.0.71 → 0.0.73
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/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +16 -4
- package/esm2020/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.mjs +2 -1
- package/esm2020/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.mjs +15 -1
- package/esm2020/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.mjs +5 -16
- package/esm2020/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +16 -4
- package/esm2020/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.mjs +8 -4
- package/fesm2015/dev-tcloud-tcloud-ui.mjs +113 -84
- package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/fesm2020/dev-tcloud-tcloud-ui.mjs +111 -82
- package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.d.ts +3 -1
- package/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.d.ts +1 -0
- package/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.d.ts +0 -1
- package/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.d.ts +3 -1
- package/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "./services/data-list.service";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
7
|
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "./tcloud-ui-data-list-option/tcloud-ui-data-list-option.component";
|
|
8
9
|
export const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
|
|
9
10
|
provide: NG_VALUE_ACCESSOR,
|
|
10
11
|
useExisting: forwardRef(() => TCloudUiDataListComponent),
|
|
@@ -25,6 +26,13 @@ export class TCloudUiDataListComponent {
|
|
|
25
26
|
this._disabled = false;
|
|
26
27
|
this._loading = false;
|
|
27
28
|
this.search = true;
|
|
29
|
+
/*
|
|
30
|
+
this.listItens = [
|
|
31
|
+
{description: 'Teste1', value: 'teste1'},
|
|
32
|
+
{description: 'Teste2', value: 'teste2'}
|
|
33
|
+
]
|
|
34
|
+
*/
|
|
35
|
+
this.border = true;
|
|
28
36
|
this.onInputChange = new EventEmitter();
|
|
29
37
|
this.onChange = new EventEmitter();
|
|
30
38
|
this.ngModelChange = new EventEmitter();
|
|
@@ -250,16 +258,16 @@ export class TCloudUiDataListComponent {
|
|
|
250
258
|
}
|
|
251
259
|
}
|
|
252
260
|
TCloudUiDataListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDataListComponent, deps: [{ token: i1.DataListService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
253
|
-
TCloudUiDataListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: { placeholder: "placeholder", disabled: "disabled", loading: "loading", search: "search", ngModel: "ngModel" }, outputs: { onInputChange: "onInputChange", onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [
|
|
261
|
+
TCloudUiDataListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: { placeholder: "placeholder", disabled: "disabled", loading: "loading", search: "search", listItens: "listItens", border: "border", ngModel: "ngModel" }, outputs: { onInputChange: "onInputChange", onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [
|
|
254
262
|
DataListService,
|
|
255
263
|
CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR
|
|
256
|
-
], ngImport: i0, template: "<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tc-dropdown\" [class.disabled]=\"disabled || loading\">\r\n <div *ngIf=\"loading\" class=\"loading-area\">\r\n <i class=\"fas fa-spinner fa-spin\"></i>\r\n </div>\r\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\r\n <button \r\n #_option\r\n [class.loading-box]=\"loading\"\r\n [disabled]=\"disabled || loading\"\r\n class=\"dropdown-toggle button-select no-margin-bottom\" \r\n type=\"button\" \r\n id=\"{{ id }}\" \r\n \r\n [attr.aria-haspopup]=\"'true'\" \r\n [attr.aria-expanded]=\"'false'\" \r\n (click)=\"toOpen();toInput(_option)\" >\r\n\r\n <i *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\r\n {{ selected_description }}\r\n <span><i class=\"fas fa-angle-down\"></i></span>\r\n </button>\r\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\r\n\r\n <div class=\"line-search\" *ngIf=\"search\">\r\n <table class=\"box-search\">\r\n <tr>\r\n\r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n\r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"formulario\">\r\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\r\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\r\n </form>\r\n</div>\r\n", styles: [".dropdown-toggle:after{display:none!important}.tc-dropdown{position:relative}.tc-dropdown .button-select{width:100%;background-color:#fff;border:
|
|
264
|
+
], ngImport: i0, template: "<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tc-dropdown\" [class.disabled]=\"disabled || loading\">\r\n <div *ngIf=\"loading\" class=\"loading-area\">\r\n <i class=\"fas fa-spinner fa-spin\"></i>\r\n </div>\r\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\r\n <button \r\n #_option\r\n [class.in-border]=\"border\"\r\n [class.loading-box]=\"loading\"\r\n [disabled]=\"disabled || loading\"\r\n class=\"dropdown-toggle button-select no-margin-bottom\" \r\n type=\"button\" \r\n id=\"{{ id }}\" \r\n \r\n [attr.aria-haspopup]=\"'true'\" \r\n [attr.aria-expanded]=\"'false'\" \r\n (click)=\"toOpen();toInput(_option)\" >\r\n\r\n <i *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\r\n {{ selected_description }}\r\n <span><i class=\"fas fa-angle-down\"></i></span>\r\n </button>\r\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\r\n\r\n <div class=\"line-search\" *ngIf=\"search\">\r\n <table class=\"box-search\">\r\n <tr>\r\n\r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n\r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\r\n <ng-content></ng-content> \r\n <ng-container *ngIf=\"listItens && (listItens).length > 0\">\r\n <ng-container *ngFor=\"let item of listItens\">\r\n <tcloud-ui-data-list-option [value]=\"item.value\">{{ item?.description }}</tcloud-ui-data-list-option>\r\n </ng-container>\r\n </ng-container> \r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"formulario\">\r\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\r\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\r\n </form>\r\n</div>\r\n", styles: [".dropdown-toggle:after{display:none!important}.in-border{border:1px solid #ccc!important}.tc-dropdown{position:relative}.tc-dropdown .button-select{width:100%;background-color:#fff;border:none;height:35px;text-align:left;padding-left:15px;font-size:14px;color:#666}.tc-dropdown .button-select span{position:absolute;right:6px;top:7px}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid #ccc;background-color:#fff;position:absolute;z-index:1}.tc-dropdown .area-options{max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid #ccc;padding:10px}.loading-area{line-height:0;position:relative;height:0;bottom:-10px;left:10px}button:disabled{background-color:#eee!important;border:1px solid #ececec!important;cursor:not-allowed}.loading-box{cursor:progress!important}.disabled i{color:#999!important}.to-hide{display:none}.no-margin-bottom{margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.TCloudUiDataListOptionComponent, selector: "tcloud-ui-data-list-option", inputs: ["value"], outputs: ["selected"] }] });
|
|
257
265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDataListComponent, decorators: [{
|
|
258
266
|
type: Component,
|
|
259
267
|
args: [{ selector: 'tcloud-ui-data-list', providers: [
|
|
260
268
|
DataListService,
|
|
261
269
|
CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR
|
|
262
|
-
], template: "<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tc-dropdown\" [class.disabled]=\"disabled || loading\">\r\n <div *ngIf=\"loading\" class=\"loading-area\">\r\n <i class=\"fas fa-spinner fa-spin\"></i>\r\n </div>\r\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\r\n <button \r\n #_option\r\n [class.loading-box]=\"loading\"\r\n [disabled]=\"disabled || loading\"\r\n class=\"dropdown-toggle button-select no-margin-bottom\" \r\n type=\"button\" \r\n id=\"{{ id }}\" \r\n \r\n [attr.aria-haspopup]=\"'true'\" \r\n [attr.aria-expanded]=\"'false'\" \r\n (click)=\"toOpen();toInput(_option)\" >\r\n\r\n <i *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\r\n {{ selected_description }}\r\n <span><i class=\"fas fa-angle-down\"></i></span>\r\n </button>\r\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\r\n\r\n <div class=\"line-search\" *ngIf=\"search\">\r\n <table class=\"box-search\">\r\n <tr>\r\n\r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n\r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"formulario\">\r\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\r\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\r\n </form>\r\n</div>\r\n", styles: [".dropdown-toggle:after{display:none!important}.tc-dropdown{position:relative}.tc-dropdown .button-select{width:100%;background-color:#fff;border:
|
|
270
|
+
], template: "<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tc-dropdown\" [class.disabled]=\"disabled || loading\">\r\n <div *ngIf=\"loading\" class=\"loading-area\">\r\n <i class=\"fas fa-spinner fa-spin\"></i>\r\n </div>\r\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\r\n <button \r\n #_option\r\n [class.in-border]=\"border\"\r\n [class.loading-box]=\"loading\"\r\n [disabled]=\"disabled || loading\"\r\n class=\"dropdown-toggle button-select no-margin-bottom\" \r\n type=\"button\" \r\n id=\"{{ id }}\" \r\n \r\n [attr.aria-haspopup]=\"'true'\" \r\n [attr.aria-expanded]=\"'false'\" \r\n (click)=\"toOpen();toInput(_option)\" >\r\n\r\n <i *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\r\n {{ selected_description }}\r\n <span><i class=\"fas fa-angle-down\"></i></span>\r\n </button>\r\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\r\n\r\n <div class=\"line-search\" *ngIf=\"search\">\r\n <table class=\"box-search\">\r\n <tr>\r\n\r\n <td class=\"area-input\">\r\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \r\n </td>\r\n\r\n <td class=\"area-icon\">\r\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\r\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\r\n </td>\r\n \r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\r\n <ng-content></ng-content> \r\n <ng-container *ngIf=\"listItens && (listItens).length > 0\">\r\n <ng-container *ngFor=\"let item of listItens\">\r\n <tcloud-ui-data-list-option [value]=\"item.value\">{{ item?.description }}</tcloud-ui-data-list-option>\r\n </ng-container>\r\n </ng-container> \r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"formulario\">\r\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\r\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\r\n </form>\r\n</div>\r\n", styles: [".dropdown-toggle:after{display:none!important}.in-border{border:1px solid #ccc!important}.tc-dropdown{position:relative}.tc-dropdown .button-select{width:100%;background-color:#fff;border:none;height:35px;text-align:left;padding-left:15px;font-size:14px;color:#666}.tc-dropdown .button-select span{position:absolute;right:6px;top:7px}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid #ccc;background-color:#fff;position:absolute;z-index:1}.tc-dropdown .area-options{max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid #ccc;padding:10px}.loading-area{line-height:0;position:relative;height:0;bottom:-10px;left:10px}button:disabled{background-color:#eee!important;border:1px solid #ececec!important;cursor:not-allowed}.loading-box{cursor:progress!important}.disabled i{color:#999!important}.to-hide{display:none}.no-margin-bottom{margin-bottom:0!important}\n"] }]
|
|
263
271
|
}], ctorParameters: function () { return [{ type: i1.DataListService }, { type: i2.FormBuilder }]; }, propDecorators: { placeholder: [{
|
|
264
272
|
type: Input
|
|
265
273
|
}], disabled: [{
|
|
@@ -268,6 +276,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
268
276
|
type: Input
|
|
269
277
|
}], search: [{
|
|
270
278
|
type: Input
|
|
279
|
+
}], listItens: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], border: [{
|
|
282
|
+
type: Input
|
|
271
283
|
}], onInputChange: [{
|
|
272
284
|
type: Output
|
|
273
285
|
}], onChange: [{
|
|
@@ -277,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
277
289
|
}], ngModelChange: [{
|
|
278
290
|
type: Output
|
|
279
291
|
}] } });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFhLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFrQyxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJaEcsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDdEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFZRixNQUFNLE9BQU8seUJBQXlCO0lBNkRwQyxZQUNVLGVBQWdDLEVBQ2hDLFdBQXdCO1FBRHhCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTdEbEMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQVcs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ZGF0YS1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgSW5wdXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTmdGb3JtLCBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElTZWxlY3RPcHRpb25zIH0gZnJvbSAnLi90Y2xvdWQtdWktZGF0YS1saXN0JztcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpRGF0YUxpc3RDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGEtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIERhdGFMaXN0U2VydmljZSwgXHJcbiAgICBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUlxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cclxuICB2aWV3cG9ydF93aWR0aDogbnVtYmVyID0gMDtcclxuICB2aWV3cG9ydF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgYm94X2hlaWdodDogbnVtYmVyID0gMDtcclxuICBib3hfc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIG1lbnVfb25fdG9wOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2KXtcclxuICAgIGlmKCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nICYmIHYgIT09IHRoaXMuX2Rpc2FibGVkICl7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gdjsgICAgXHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICAvL3RoaXMuc2VsZWN0ZWRfaXRlbSA9Jyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcodjogYm9vbGVhbil7XHJcbiAgICBpZiggdHlwZW9mIHYgPT09ICdib29sZWFuJyAmJiB2ICE9PSB0aGlzLl9sb2FkaW5nICl7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSB2OyAgICBcclxuICAgICAgLy90aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTpib29sZWFuIHsgcmV0dXJuIHRoaXMuX2xvYWRpbmc7IH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaDogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcblxyXG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJU2VsZWN0T3B0aW9ucz4oKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElTZWxlY3RPcHRpb25zPigpO1xyXG5cclxuICBwcml2YXRlIF9uZ01vZGVsOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcclxuICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHY7ICAgIFxyXG4gICAgdGhpcy5zZWxlY3REZXNjcmlwdGlvbigpOyAgIFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBsaXN0X3NlbGVjdGVkX29wdGlvbnMgPSBuZXcgQXJyYXk8SVNlbGVjdE9wdGlvbnM+KCk7XHJcblxyXG4gIHNlbGVjdGVkX2l0ZW06IGFueSB8IHVuZGVmaW5lZDtcclxuICBzZWxlY3RlZF9kZXNjcmlwdGlvbjogYW55IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbl92YWx1ZTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25fb3B0aW9uczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG5cclxuICBtZW51X3Nob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWFyY2hfdGV4dDogc3RyaW5nID0gJyc7XHJcbiAgaWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBmb3JtdWxhcmlvOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRhTGlzdFNlcnZpY2U6IERhdGFMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXHJcbiAgKXtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmlkID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcblxyXG4gICAgdGhpcy5mb3JtdWxhcmlvID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIFwic2VsZWN0ZWRfaXRlbVwiOiBuZXcgRm9ybUNvbnRyb2woJycsW10pLFxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbl92YWx1ZSA9IHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnN0YXRlVmFsdWUkLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjsgICAgICBcclxuICAgICAgdGhpcy5zZWxlY3REZXNjcmlwdGlvbigpO1xyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbiA9IHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnN0YXRlRGVzY3JpcHRpb24kLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IHY7ICAgICAgXHJcbiAgICB9KVxyXG5cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbl9vcHRpb25zID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVPcHRpb25zJC5zdWJzY3JpYmUoKHY6YW55KSA9PiB7XHJcbiAgICAgIGlmKCB2ICYmIHYudmFsdWUgKXtcclxuICAgICAgICAodGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMpLnB1c2godik7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy50b1Jlc2l6ZSgpO1xyXG4gICAgdGhpcy50b0NsaWNrKCk7XHJcbiAgfVxyXG5cclxuICB0X2ZjOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy50X2ZjID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50X2ZjID0gdGhpcy5nZXRfc2VsZWN0ZWRfZGVzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIGdldF9zZWxlY3RlZF9kZXNjcmlwdGlvbigpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zICYmICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnNbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRfaXRlbSApeyAgICAgICAgIFxyXG4gICAgICAgICAgaWYoIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gIT09IGl0ZW0uZGVzY3JpcHRpb24gKXtcclxuICAgICAgICAgICAgaWYoIGl0ZW0uZGVzY3JpcHRpb24gJiYgaXRlbS5kZXNjcmlwdGlvbiAhPT0gdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiApe1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IGl0ZW0uZGVzY3JpcHRpb247IFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ICAgICAgICBcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGBkYXRhLWxpc3QtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlICl7IHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlLnVuc3Vic2NyaWJlKCk7IH0gICAgXHJcbiAgICBpZiggdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24gKXsgdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsgfSBcclxuICAgIGlmKCB0aGlzLnN1YnNjcmlwdGlvbl9vcHRpb25zICl7IHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMudW5zdWJzY3JpYmUoKTsgfSBcclxuICB9XHJcblxyXG4gIHRvU2VhcmNoKGU6IGFueSkge1xyXG4gICAgbGV0IGlucHV0ID0gKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQudmFsdWUpID8gZS50YXJnZXQudmFsdWUgOiAnJztcclxuICAgIFxyXG4gICAgbGV0IGZpbHRlciA9ICggKCAoaW5wdXQpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikgKS50cmltKCkgKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgbGV0IHVsID0gPGFueT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5pZH0tb3B0aW9uc2ApO1xyXG4gICAgaWYoIHVsICl7XHJcbiAgICAgIGxldCBsaSA9IHVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYnV0dG9uXCIpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBhID0gbGlbaV07XHJcbiAgICAgICAgICBjb25zdCB0eHRWYWx1ZSA9ICggKCAoIGEudGV4dENvbnRlbnQgfHwgYS5pbm5lclRleHQgKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpICkudHJpbSgpICkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGlmICh0eHRWYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMSkge1xyXG4gICAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBsaVtpXS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdERlc2NyaXB0aW9uKCl7XHJcbiAgICBpZiggdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMgJiYgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9uc1tpXTtcclxuICAgICAgICBpZiggaXRlbS52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZF9pdGVtICl7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gaXRlbS5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gJycgKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIFxyXG4gIHRvSW5wdXQoZTogYW55KXtcclxuICAgIHRoaXMub25JbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24pO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgdG9DaGFuZ2UoKXtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsICl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b1NlYXJjaCgnJyk7XHJcbiAgICAgIHRoaXMuc2VhcmNoX3RleHQgPSAnJztcclxuICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG5cclxuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICBpZiggdGhpcy5mb3JtdWxhcmlvICl7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhcmlvPy5nZXQoJ3NlbGVjdGVkX2l0ZW0nKT8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZF9pdGVtKTtcclxuICAgICAgICAvLyBjb25zdCBpbnB1dF9oaWRkZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1oaWRkZW5gKTtcclxuICAgICAgICB0aGlzLnRvSW5wdXQodGhpcy5mb3JtdWxhcmlvLmdldCgnc2VsZWN0ZWRfaXRlbScpKTtcclxuICAgICAgfSAgIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJUZXh0U2VhcmNoKCl7XHJcbiAgICB0aGlzLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLnRvU2VhcmNoKCcnKTtcclxuICB9XHJcblxyXG4gIHRvT3Blbigpe1xyXG4gICAgdGhpcy5tZW51X3Nob3cgPSAhdGhpcy5tZW51X3Nob3c7IFxyXG4gICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMubWVudV9zaG93KTtcclxuICB9XHJcblxyXG4gIHJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24ob3BlbjogYm9vbGVhbil7XHJcbiAgICBpZiggb3BlbiApe1xyXG4gICAgICB0aGlzLmJveF9zdHlsZSA9ICcnO1xyXG4gICAgICB0aGlzLm1lbnVfb25fdG9wID0gJyc7ICAgXHJcbiAgICAgIGNvbnN0IGlkID0gYCR7dGhpcy5pZH1gOyBcclxuICAgICAgY29uc3QgYm94ID0gYGJveC0ke3RoaXMuaWR9YDtcclxuICAgICAgaWYoIHRoaXMudmlld3BvcnRfaGVpZ2h0ID09PSAwICl7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZWN0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IGJveF9wb3NpdGlvbiA9IHJlY3Q/LmJvdHRvbSB8fCAwOyAgICAgIFxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmJveF9oZWlnaHQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgaWYoICggdGhpcy52aWV3cG9ydF9oZWlnaHQgLSBib3hfcG9zaXRpb24pIDwgdGhpcy5ib3hfaGVpZ2h0ICl7XHJcbiAgICAgICAgICB0aGlzLm1lbnVfb25fdG9wID0gJ21lbnUtb24tdG9wJztcclxuICAgICAgICAgIHRoaXMuYm94X3N0eWxlID0gYHRvcDogLSR7ICh0aGlzLmJveF9oZWlnaHQpIH1weDsgaGVpZ2h0OiAke3RoaXMuYm94X2hlaWdodH1weDtgO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9DbG9zZSgpe1xyXG4gICAgdGhpcy5tZW51X3Nob3cgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICB0b1Jlc2l6ZSgpe1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcclxuICAgICAgdGhpcy52aWV3cG9ydF93aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMubWVudV9zaG93KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9DbGljaygpe1xyXG4gICAgY29uc3QgYm94ID0gYGFyZWEtJHt0aGlzLmlkfWA7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLChlOiBhbnkpID0+IHsgICBcclxuICAgICAgaWYoIHRoaXMubWVudV9zaG93ICl7XHJcbiAgICAgICAgaWYoICEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY29udGFpbnMoZS50YXJnZXQpKSApeyAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLm1lbnVfc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgXHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gICAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAgIC8vZ2V0IGFjY2Vzc29yXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZF9pdGVtO1xyXG4gICAgfTtcclxuXHJcbiAgICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICAgIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgICAgICBpZiAodiAhPT0gdGhpcy5zZWxlY3RlZF9pdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZF9pdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuIiwiPGRpdiAqbmdJZj1cImZvcm11bGFyaW9cIiBpZD1cImFyZWEte3sgaWQgfX1cIiBjbGFzcz1cInRjLWRyb3Bkb3duXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIj5cclxuICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1hcmVhXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSBbYXR0ci5kYXRhLWJzLXRvZ2dsZV09XCInZHJvcGRvd24nXCIgIC0tPlxyXG4gIDxidXR0b24gXHJcbiAgICAjX29wdGlvblxyXG4gICAgW2NsYXNzLmxvYWRpbmctYm94XT1cImxvYWRpbmdcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYnV0dG9uLXNlbGVjdCBuby1tYXJnaW4tYm90dG9tXCIgXHJcbiAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICBpZD1cInt7IGlkIH19XCIgXHJcbiAgICBcclxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ3RydWUnXCIgXHJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIidmYWxzZSdcIiBcclxuICAgIChjbGljayk9XCJ0b09wZW4oKTt0b0lucHV0KF9vcHRpb24pXCIgPlxyXG5cclxuICAgIDxpICpuZ0lmPVwiKHNlbGVjdGVkX2Rlc2NyaXB0aW9uID09PSB1bmRlZmluZWQgfHwgc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09IG51bGwgfHwgc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09ICcnICkgJiYgIWxvYWRpbmcgXCI+e3sgcGxhY2Vob2xkZXIgfX08L2k+XHJcbiAgICB7eyBzZWxlY3RlZF9kZXNjcmlwdGlvbiB9fVxyXG4gICAgPHNwYW4+PGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG93blwiPjwvaT48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cInRjLWRyb3Bkb3duLW1lbnUge3sgbWVudV9vbl90b3AgfX1cIiBpZD1cImJveC17eyBpZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZFwiIFtjbGFzcy50by1oaWRlXT1cIiFtZW51X3Nob3dcIiBbc3R5bGVdPVwiYm94X3N0eWxlXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImxpbmUtc2VhcmNoXCIgKm5nSWY9XCJzZWFyY2hcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwiYm94LXNlYXJjaFwiPlxyXG4gICAgICAgIDx0cj5cclxuXHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGMtZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hfdGV4dFwiIChpbnB1dCk9XCJ0b1NlYXJjaCgkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJCdXNjYXIuLi5cIiA+ICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cInNlYXJjaF90ZXh0ID09PSAnJ1wiIGNsYXNzPVwiZmFzIGZhLXNlYXJjaCBpY29uLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJzZWFyY2hfdGV4dCAhPT0gJydcIiAoY2xpY2spPVwiY2xlYXJUZXh0U2VhcmNoKClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICBcclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJhcmVhLW9wdGlvbnNcIiBpZD1cInt7IGlkIH19LW9wdGlvbnNcIiAoY2xpY2spPVwidG9DbG9zZSgpXCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gICAgICBcclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJmb3JtdWxhcmlvXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtdWxhcmlvXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiID5cclxuICAgIDxpbnB1dCBpZD1cInt7IGlkIH19LWhpZGRlblwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkX2l0ZW1cIiB0eXBlPVwiaGlkZGVuXCI+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuIl19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFhLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFrQyxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBSWhHLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFRO0lBQ3RELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztJQUN4RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFDO0FBWUYsTUFBTSxPQUFPLHlCQUF5QjtJQXFFcEMsWUFDVSxlQUFnQyxFQUNoQyxXQUF3QjtRQUR4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFyRWxDLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFX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Z0JBSUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFMaXN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZGF0YS1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgSW5wdXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTmdGb3JtLCBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElTZWxlY3RPcHRpb25zIH0gZnJvbSAnLi90Y2xvdWQtdWktZGF0YS1saXN0JztcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpRGF0YUxpc3RDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGEtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIERhdGFMaXN0U2VydmljZSwgXHJcbiAgICBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUlxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cclxuICB2aWV3cG9ydF93aWR0aDogbnVtYmVyID0gMDtcclxuICB2aWV3cG9ydF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgYm94X2hlaWdodDogbnVtYmVyID0gMDtcclxuICBib3hfc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIG1lbnVfb25fdG9wOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2KXtcclxuICAgIGlmKCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nICYmIHYgIT09IHRoaXMuX2Rpc2FibGVkICl7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gdjsgICAgXHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICAvL3RoaXMuc2VsZWN0ZWRfaXRlbSA9Jyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcodjogYm9vbGVhbil7XHJcbiAgICBpZiggdHlwZW9mIHYgPT09ICdib29sZWFuJyAmJiB2ICE9PSB0aGlzLl9sb2FkaW5nICl7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSB2OyAgICBcclxuICAgICAgLy90aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTpib29sZWFuIHsgcmV0dXJuIHRoaXMuX2xvYWRpbmc7IH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbGlzdEl0ZW5zOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgLyogXHJcbiAgICB0aGlzLmxpc3RJdGVucyA9IFtcclxuICAgICAge2Rlc2NyaXB0aW9uOiAnVGVzdGUxJywgdmFsdWU6ICd0ZXN0ZTEnfSxcclxuICAgICAge2Rlc2NyaXB0aW9uOiAnVGVzdGUyJywgdmFsdWU6ICd0ZXN0ZTInfVxyXG4gICAgXVxyXG4gICovXHJcbiAgXHJcbiAgQElucHV0KCkgYm9yZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uSW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElTZWxlY3RPcHRpb25zPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbnM+KCk7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjsgICAgXHJcbiAgICB0aGlzLnNlbGVjdERlc2NyaXB0aW9uKCk7ICAgXHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGxpc3Rfc2VsZWN0ZWRfb3B0aW9ucyA9IG5ldyBBcnJheTxJU2VsZWN0T3B0aW9ucz4oKTtcclxuXHJcbiAgc2VsZWN0ZWRfaXRlbTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIHNlbGVjdGVkX2Rlc2NyaXB0aW9uOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX3ZhbHVlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25fZGVzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbl9vcHRpb25zOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG1lbnVfc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaF90ZXh0OiBzdHJpbmcgPSAnJztcclxuICBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGZvcm11bGFyaW86IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFMaXN0U2VydmljZTogRGF0YUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcclxuICApe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuXHJcbiAgICBcclxuXHJcbiAgICB0aGlzLmlkID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcblxyXG4gICAgdGhpcy5mb3JtdWxhcmlvID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIFwic2VsZWN0ZWRfaXRlbVwiOiBuZXcgRm9ybUNvbnRyb2woJycsW10pLFxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbl92YWx1ZSA9IHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnN0YXRlVmFsdWUkLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjsgICAgICBcclxuICAgICAgdGhpcy5zZWxlY3REZXNjcmlwdGlvbigpO1xyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbiA9IHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnN0YXRlRGVzY3JpcHRpb24kLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IHY7ICAgICAgXHJcbiAgICB9KVxyXG5cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbl9vcHRpb25zID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVPcHRpb25zJC5zdWJzY3JpYmUoKHY6YW55KSA9PiB7XHJcbiAgICAgIGlmKCB2ICYmIHYudmFsdWUgKXtcclxuICAgICAgICAodGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMpLnB1c2godik7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy50b1Jlc2l6ZSgpO1xyXG4gICAgdGhpcy50b0NsaWNrKCk7XHJcbiAgfVxyXG5cclxuICB0X2ZjOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy50X2ZjID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50X2ZjID0gdGhpcy5nZXRfc2VsZWN0ZWRfZGVzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIGdldF9zZWxlY3RlZF9kZXNjcmlwdGlvbigpOiB2b2lke1xyXG4gICAgaWYoIHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zICYmICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnNbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRfaXRlbSApeyAgICAgICAgIFxyXG4gICAgICAgICAgaWYoIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gIT09IGl0ZW0uZGVzY3JpcHRpb24gKXtcclxuICAgICAgICAgICAgaWYoIGl0ZW0uZGVzY3JpcHRpb24gJiYgaXRlbS5kZXNjcmlwdGlvbiAhPT0gdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiApe1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IGl0ZW0uZGVzY3JpcHRpb247IFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ICAgICAgICBcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGBkYXRhLWxpc3QtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlICl7IHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlLnVuc3Vic2NyaWJlKCk7IH0gICAgXHJcbiAgICBpZiggdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24gKXsgdGhpcy5zdWJzY3JpcHRpb25fZGVzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsgfSBcclxuICAgIGlmKCB0aGlzLnN1YnNjcmlwdGlvbl9vcHRpb25zICl7IHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMudW5zdWJzY3JpYmUoKTsgfSBcclxuICB9XHJcblxyXG4gIHRvU2VhcmNoKGU6IGFueSkge1xyXG4gICAgbGV0IGlucHV0ID0gKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQudmFsdWUpID8gZS50YXJnZXQudmFsdWUgOiAnJztcclxuICAgIFxyXG4gICAgbGV0IGZpbHRlciA9ICggKCAoaW5wdXQpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikgKS50cmltKCkgKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgbGV0IHVsID0gPGFueT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5pZH0tb3B0aW9uc2ApO1xyXG4gICAgaWYoIHVsICl7XHJcbiAgICAgIGxldCBsaSA9IHVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYnV0dG9uXCIpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBhID0gbGlbaV07XHJcbiAgICAgICAgICBjb25zdCB0eHRWYWx1ZSA9ICggKCAoIGEudGV4dENvbnRlbnQgfHwgYS5pbm5lclRleHQgKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpICkudHJpbSgpICkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGlmICh0eHRWYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMSkge1xyXG4gICAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBsaVtpXS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdERlc2NyaXB0aW9uKCl7XHJcbiAgICBpZiggdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMgJiYgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9uc1tpXTtcclxuICAgICAgICBpZiggaXRlbS52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZF9pdGVtICl7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gaXRlbS5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gJycgKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIFxyXG4gIHRvSW5wdXQoZTogYW55KXtcclxuICAgIHRoaXMub25JbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24pO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgdG9DaGFuZ2UoKXtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiggdGhpcy5zZWxlY3RlZF9pdGVtID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZF9pdGVtID09PSBudWxsICl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b1NlYXJjaCgnJyk7XHJcbiAgICAgIHRoaXMuc2VhcmNoX3RleHQgPSAnJztcclxuICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG5cclxuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICBpZiggdGhpcy5mb3JtdWxhcmlvICl7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhcmlvPy5nZXQoJ3NlbGVjdGVkX2l0ZW0nKT8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZF9pdGVtKTtcclxuICAgICAgICAvLyBjb25zdCBpbnB1dF9oaWRkZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1oaWRkZW5gKTtcclxuICAgICAgICB0aGlzLnRvSW5wdXQodGhpcy5mb3JtdWxhcmlvLmdldCgnc2VsZWN0ZWRfaXRlbScpKTtcclxuICAgICAgfSAgIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJUZXh0U2VhcmNoKCl7XHJcbiAgICB0aGlzLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLnRvU2VhcmNoKCcnKTtcclxuICB9XHJcblxyXG4gIHRvT3Blbigpe1xyXG4gICAgdGhpcy5tZW51X3Nob3cgPSAhdGhpcy5tZW51X3Nob3c7IFxyXG4gICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMubWVudV9zaG93KTtcclxuICB9XHJcblxyXG4gIHJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24ob3BlbjogYm9vbGVhbil7XHJcbiAgICBpZiggb3BlbiApe1xyXG4gICAgICB0aGlzLmJveF9zdHlsZSA9ICcnO1xyXG4gICAgICB0aGlzLm1lbnVfb25fdG9wID0gJyc7ICAgXHJcbiAgICAgIGNvbnN0IGlkID0gYCR7dGhpcy5pZH1gOyBcclxuICAgICAgY29uc3QgYm94ID0gYGJveC0ke3RoaXMuaWR9YDtcclxuICAgICAgaWYoIHRoaXMudmlld3BvcnRfaGVpZ2h0ID09PSAwICl7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZWN0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IGJveF9wb3NpdGlvbiA9IHJlY3Q/LmJvdHRvbSB8fCAwOyAgICAgIFxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmJveF9oZWlnaHQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgaWYoICggdGhpcy52aWV3cG9ydF9oZWlnaHQgLSBib3hfcG9zaXRpb24pIDwgdGhpcy5ib3hfaGVpZ2h0ICl7XHJcbiAgICAgICAgICB0aGlzLm1lbnVfb25fdG9wID0gJ21lbnUtb24tdG9wJztcclxuICAgICAgICAgIHRoaXMuYm94X3N0eWxlID0gYHRvcDogLSR7ICh0aGlzLmJveF9oZWlnaHQpIH1weDsgaGVpZ2h0OiAke3RoaXMuYm94X2hlaWdodH1weDtgO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9DbG9zZSgpe1xyXG4gICAgdGhpcy5tZW51X3Nob3cgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICB0b1Jlc2l6ZSgpe1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcclxuICAgICAgdGhpcy52aWV3cG9ydF93aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMubWVudV9zaG93KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9DbGljaygpe1xyXG4gICAgY29uc3QgYm94ID0gYGFyZWEtJHt0aGlzLmlkfWA7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLChlOiBhbnkpID0+IHsgICBcclxuICAgICAgaWYoIHRoaXMubWVudV9zaG93ICl7XHJcbiAgICAgICAgaWYoICEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYm94KT8uY29udGFpbnMoZS50YXJnZXQpKSApeyAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLm1lbnVfc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgXHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gICAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAgIC8vZ2V0IGFjY2Vzc29yXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZF9pdGVtO1xyXG4gICAgfTtcclxuXHJcbiAgICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICAgIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgICAgICBpZiAodiAhPT0gdGhpcy5zZWxlY3RlZF9pdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZF9pdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuIiwiPGRpdiAqbmdJZj1cImZvcm11bGFyaW9cIiBpZD1cImFyZWEte3sgaWQgfX1cIiBjbGFzcz1cInRjLWRyb3Bkb3duXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIj5cclxuICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1hcmVhXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSBbYXR0ci5kYXRhLWJzLXRvZ2dsZV09XCInZHJvcGRvd24nXCIgIC0tPlxyXG4gIDxidXR0b24gXHJcbiAgICAjX29wdGlvblxyXG4gICAgW2NsYXNzLmluLWJvcmRlcl09XCJib3JkZXJcIlxyXG4gICAgW2NsYXNzLmxvYWRpbmctYm94XT1cImxvYWRpbmdcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYnV0dG9uLXNlbGVjdCBuby1tYXJnaW4tYm90dG9tXCIgXHJcbiAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICBpZD1cInt7IGlkIH19XCIgXHJcbiAgICBcclxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ3RydWUnXCIgXHJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIidmYWxzZSdcIiBcclxuICAgIChjbGljayk9XCJ0b09wZW4oKTt0b0lucHV0KF9vcHRpb24pXCIgPlxyXG5cclxuICAgIDxpICpuZ0lmPVwiKHNlbGVjdGVkX2Rlc2NyaXB0aW9uID09PSB1bmRlZmluZWQgfHwgc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09IG51bGwgfHwgc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09ICcnICkgJiYgIWxvYWRpbmcgXCI+e3sgcGxhY2Vob2xkZXIgfX08L2k+XHJcbiAgICB7eyBzZWxlY3RlZF9kZXNjcmlwdGlvbiB9fVxyXG4gICAgPHNwYW4+PGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG93blwiPjwvaT48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cInRjLWRyb3Bkb3duLW1lbnUge3sgbWVudV9vbl90b3AgfX1cIiBpZD1cImJveC17eyBpZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZFwiIFtjbGFzcy50by1oaWRlXT1cIiFtZW51X3Nob3dcIiBbc3R5bGVdPVwiYm94X3N0eWxlXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImxpbmUtc2VhcmNoXCIgKm5nSWY9XCJzZWFyY2hcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwiYm94LXNlYXJjaFwiPlxyXG4gICAgICAgIDx0cj5cclxuXHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGMtZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hfdGV4dFwiIChpbnB1dCk9XCJ0b1NlYXJjaCgkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJCdXNjYXIuLi5cIiA+ICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cInNlYXJjaF90ZXh0ID09PSAnJ1wiIGNsYXNzPVwiZmFzIGZhLXNlYXJjaCBpY29uLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJzZWFyY2hfdGV4dCAhPT0gJydcIiAoY2xpY2spPVwiY2xlYXJUZXh0U2VhcmNoKClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICBcclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJhcmVhLW9wdGlvbnNcIiBpZD1cInt7IGlkIH19LW9wdGlvbnNcIiAoY2xpY2spPVwidG9DbG9zZSgpXCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gIFxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdEl0ZW5zICYmIChsaXN0SXRlbnMpLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RJdGVuc1wiPlxyXG4gICAgICAgICAgPHRjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbT8uZGVzY3JpcHRpb24gfX08L3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPiAgICBcclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJmb3JtdWxhcmlvXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtdWxhcmlvXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiID5cclxuICAgIDxpbnB1dCBpZD1cInt7IGlkIH19LWhpZGRlblwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkX2l0ZW1cIiB0eXBlPVwiaGlkZGVuXCI+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -37,6 +37,7 @@ export class TCloudUiModalFooterComponent {
|
|
|
37
37
|
this.subscription = this.tcloudModalService.stateLoading$.subscribe((loading) => { this.loading = loading; });
|
|
38
38
|
}
|
|
39
39
|
ngOnDestroy() {
|
|
40
|
+
this.tcloudModalService.fixed_body('off');
|
|
40
41
|
if (this.subscription) {
|
|
41
42
|
this.subscription.unsubscribe();
|
|
42
43
|
}
|
|
@@ -57,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
57
58
|
type: ViewChild,
|
|
58
59
|
args: ['_formulario']
|
|
59
60
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW1vZGFsLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktbW9kYWwvY29tcG9uZW50cy90Y2xvdWQtdWktbW9kYWwtZm9vdGVyL3RjbG91ZC11aS1tb2RhbC1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW1vZGFsL2NvbXBvbmVudHMvdGNsb3VkLXVpLW1vZGFsLWZvb3Rlci90Y2xvdWQtdWktbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTL0UsTUFBTSxPQUFPLDRCQUE0QjtJQWV2QyxZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBZHZDLGlCQUFZLEdBQVcsUUFBUSxDQUFDO1FBQ2hDLGtCQUFhLEdBQVcsVUFBVSxDQUFDO1FBQ25DLG1CQUFjLEdBQVcsV0FBVyxDQUFDO1FBRzlDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsa0JBQWEsR0FBYSxFQUFjLENBQUM7UUFFekMsWUFBTyxHQUFZLEtBQUssQ0FBQztJQU1yQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRS9ELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QixJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzlGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFTLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQTtJQUN6SCxDQUFDO0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUFFO0lBQzdELENBQUM7OzBIQXBEVSw0QkFBNEI7OEdBQTVCLDRCQUE0QixzUkNYekMsb29EQThCQTs0RkRuQmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHdCQUF3Qjt5R0FNekIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRXFCLFdBQVc7c0JBQXJDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUY2xvdWRNb2RhbFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL3RjbG91ZC1tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQ29uZmlybSB9IGZyb20gJy4uLy4uL3RjbG91ZC11aS1tb2RhbCc7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLW1vZGFsLWZvb3RlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tb2RhbC1mb290ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlNb2RhbEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgYnRuQ2xvc2VUZXh0OiBzdHJpbmcgPSAnRmVjaGFyJztcclxuICBASW5wdXQoKSBidG5DYW5jZWxUZXh0OiBzdHJpbmcgPSAnQ2FuY2VsYXInO1xyXG4gIEBJbnB1dCgpIGJ0bkNvbmZpcm1UZXh0OiBzdHJpbmcgPSAnQ29uZmlybWFyJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnX2Zvcm11bGFyaW8nKSAgX2Zvcm11bGFyaW86IE5nRm9ybSB8IHVuZGVmaW5lZDsgXHJcbiAgdHh0X3ZhbHVlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcGFyYW1fY29uZmlybTogSUNvbmZpcm0gPSB7fSBhcyBJQ29uZmlybTtcclxuXHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8dW5kZWZpbmVkXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0Y2xvdWRNb2RhbFNlcnZpY2U6IFRjbG91ZE1vZGFsU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50eHRfdmFsdWUgPSAnJztcclxuICAgIHRoaXMucGFyYW1fY29uZmlybSA9IHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmdldFBhcmFtQ29uZmlybSgpO1xyXG5cclxuICAgIHRoaXMudG9TdGF0ZUxvYWRpbmcoKTtcclxuICB9XHJcblxyXG4gIHRvQ2xvc2UoKXtcclxuICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLnRvTW9kYWwoJ2Nsb3NlJyk7XHJcbiAgfVxyXG5cclxuICB0b0NvbmZpcm0odmFsaWQ6IGJvb2xlYW4gfCBhbnkpe1xyXG4gICAgaWYoIHR5cGVvZiB2YWxpZCA9PT0gJ2Jvb2xlYW4nICl7XHJcbiAgICAgIGlmKCB2YWxpZCAmJiAodGhpcy50eHRfdmFsdWUpLnRvTG93ZXJDYXNlKCkgPT09ICh0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQpLnRvTG93ZXJDYXNlKCkgKXtcclxuICAgICAgICB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS50b1Jlc3BDb25maXJtKHRydWUpO1xyXG4gICAgICAgIHRoaXMudHh0X3ZhbHVlID0gJyc7IFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b0NhbmNlbCgpe1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UudG9SZXNwQ29uZmlybShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICB0b1N0YXRlTG9hZGluZygpe1xyXG4gICAgdGhpcy5sb2FkaW5nID0gPGFueT4gdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZ2V0TG9hZGluZygpO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZUxvYWRpbmckLnN1YnNjcmliZSgobG9hZGluZzogYm9vbGVhbikgPT4geyB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nOyB9IClcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoJ29mZicpO1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uICl7IHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0Yy1tb2RhbC1mb290ZXJcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbmZpcm1cIiAqbmdJZj1cInBhcmFtX2NvbmZpcm0gJiYgcGFyYW1fY29uZmlybS5jb25maXJtVGV4dFwiPlxyXG4gICAgPHA+RGlnaXRlIGEgcGFsYXZyYSA8c3Ryb25nPiZxdW90O3t7IHBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQgfX0mcXVvdDs8L3N0cm9uZz4gcGFyYSBjb25maXJtYXIuPC9wPlxyXG4gICAgXHJcbiAgICA8Zm9ybSAjX2Zvcm11bGFyaW89XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwidG9Db25maXJtKF9mb3JtdWxhcmlvLnZhbGlkKVwiPlxyXG4gICAgICA8aW5wdXQgXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGFyYW1fY29uZmlybS5jb25maXJtVGV4dCB9fVwiXHJcbiAgICAgICAgbmFtZT1cInR4dF92YWx1ZVwiIFxyXG4gICAgICAgIFsobmdNb2RlbCldPVwidHh0X3ZhbHVlXCIgXHJcbiAgICAgICAgdHlwZT1cInRleHRcIiBcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbmZpcm1cIiBcclxuICAgICAgICByZXF1aXJlZCBcclxuICAgICAgICBbY2xhc3MuZGlmZmVyZW50LXRleHRdPVwiKHR4dF92YWx1ZSkubGVuZ3RoID49IChwYXJhbV9jb25maXJtLmNvbmZpcm1UZXh0KS5sZW5ndGggJiYgKHR4dF92YWx1ZSkudG9Mb3dlckNhc2UoKSAhPT0gKHBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQpLnRvTG93ZXJDYXNlKClcIiA+XHJcbiAgICA8L2Zvcm0+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuICA8aHI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWZvb3RlciB7eyAobG9hZGluZykgPyAnc3RhdGUtbG9hZGluZycgOiAnJyB9fVwiPlxyXG4gICAgPCEtLSB7eyBwYXJhbV9jb25maXJtIHwganNvbiB9fSAtLT5cclxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImxvYWRpbmdcIiAqbmdJZj1cInBhcmFtX2NvbmZpcm0gJiYgIXBhcmFtX2NvbmZpcm0uY29uZmlybVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1uZXctZ3JleSB0Yy1idG4gbWFyZ2luLWwtNVwiIChjbGljayk9XCJ0b0Nsb3NlKClcIj57eyBidG5DbG9zZVRleHQgfX08L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgKm5nSWY9XCJwYXJhbV9jb25maXJtICYmIHBhcmFtX2NvbmZpcm0uY29uZmlybVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1uZXctZ3JleSB0Yy1idG4gbWFyZ2luLWwtNVwiIChjbGljayk9XCJ0b0NhbmNlbCgpXCI+e3sgYnRuQ2FuY2VsVGV4dCB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiKHR4dF92YWx1ZSkudG9Mb3dlckNhc2UoKSAhPT0gKHBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQpLnRvTG93ZXJDYXNlKCkgfHwgbG9hZGluZ1wiICpuZ0lmPVwicGFyYW1fY29uZmlybSAmJiBwYXJhbV9jb25maXJtLmNvbmZpcm1cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tbmV3LWdyZWVuIHRjLWJ0biB0Yy1idG4tcHJpbWFyeSBtYXJnaW4tbC01XCIgKGNsaWNrKT1cInRvQ29uZmlybShfZm9ybXVsYXJpbz8udmFsaWQpXCI+e3sgYnRuQ29uZmlybVRleHQgfX08L2J1dHRvbj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -14,6 +14,9 @@ export class TcloudModalService {
|
|
|
14
14
|
this.stateLoading$ = this._stateLoading.asObservable();
|
|
15
15
|
}
|
|
16
16
|
toModal(action) {
|
|
17
|
+
if (action === 'close') {
|
|
18
|
+
this.fixed_body('off');
|
|
19
|
+
}
|
|
17
20
|
this._stateClose.next((action === 'open'));
|
|
18
21
|
}
|
|
19
22
|
toRespConfirm(resp) {
|
|
@@ -33,10 +36,21 @@ export class TcloudModalService {
|
|
|
33
36
|
this.loading = loading;
|
|
34
37
|
this._stateLoading.next(loading);
|
|
35
38
|
}
|
|
39
|
+
fixed_body(fixed) {
|
|
40
|
+
let body = document.getElementsByTagName("BODY")[0];
|
|
41
|
+
if (body && body.style) {
|
|
42
|
+
if (fixed === 'on') {
|
|
43
|
+
body.style.overflowY = "hidden";
|
|
44
|
+
}
|
|
45
|
+
if (fixed === 'off') {
|
|
46
|
+
body.style.removeProperty('overflow-y');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
36
50
|
}
|
|
37
51
|
TcloudModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TcloudModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
52
|
TcloudModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TcloudModalService });
|
|
39
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TcloudModalService, decorators: [{
|
|
40
54
|
type: Injectable
|
|
41
55
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktbW9kYWwvc2VydmljZXMvdGNsb3VkLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUczQyxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBS1Usa0JBQWEsR0FBYSxFQUFjLENBQUM7UUFFekMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU3QyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFZLENBQUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWpELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDNUMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7S0E0QzFEO0lBekNDLE9BQU8sQ0FBQyxNQUFzQjtRQUM1QixJQUFHLE1BQU0sS0FBSyxPQUFPLEVBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFhO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFpQjtRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxJQUFJLEdBQVMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdEIsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7YUFDakM7WUFDRCxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7SUFDSCxDQUFDOztnSEExRFUsa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDb25maXJtIH0gZnJvbSAnLi8uLi90Y2xvdWQtdWktbW9kYWwnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRjbG91ZE1vZGFsU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgbG9hZGluZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBwYXJhbV9jb25maXJtOiBJQ29uZmlybSA9IHt9IGFzIElDb25maXJtO1xyXG5cclxuICBwcml2YXRlIF9zdGF0ZUNsb3NlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgc3RhdGVDbG9zZSQgPSB0aGlzLl9zdGF0ZUNsb3NlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIF9zdGF0ZUNvbmZpcm0gPSBuZXcgU3ViamVjdDxJQ29uZmlybT4oKTtcclxuICBwdWJsaWMgc3RhdGVDb25maXJtJCA9IHRoaXMuX3N0YXRlQ29uZmlybS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVSZXNwQ29uZmlybSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHVibGljIHN0YXRlUmVzcENvbmZpcm0kID0gdGhpcy5fc3RhdGVSZXNwQ29uZmlybS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVMb2FkaW5nID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgc3RhdGVMb2FkaW5nJCA9IHRoaXMuX3N0YXRlTG9hZGluZy5hc09ic2VydmFibGUoKTtcclxuXHJcblxyXG4gIHRvTW9kYWwoYWN0aW9uOiAnb3Blbid8J2Nsb3NlJyk6IHZvaWR7XHJcbiAgICBpZihhY3Rpb24gPT09ICdjbG9zZScpe1xyXG4gICAgICB0aGlzLmZpeGVkX2JvZHkoJ29mZicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc3RhdGVDbG9zZS5uZXh0KCAoYWN0aW9uID09PSAnb3BlbicpICk7XHJcbiAgfVxyXG5cclxuICB0b1Jlc3BDb25maXJtKHJlc3A6IGJvb2xlYW4peyAgICBcclxuICAgIHRoaXMuX3N0YXRlUmVzcENvbmZpcm0ubmV4dChyZXNwKTtcclxuICB9XHJcblxyXG4gIGdldFBhcmFtQ29uZmlybSgpOiBJQ29uZmlybXtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtX2NvbmZpcm07XHJcbiAgfVxyXG5cclxuICB0b0NvbmZpcm0oY29uZmlybTogSUNvbmZpcm0pe1xyXG4gICAgdGhpcy5wYXJhbV9jb25maXJtID0gY29uZmlybTtcclxuICAgIHRoaXMuX3N0YXRlQ29uZmlybS5uZXh0KGNvbmZpcm0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGluZygpe1xyXG4gICAgcmV0dXJuIHRoaXMubG9hZGluZztcclxuICB9XHJcblxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbil7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgdGhpcy5fc3RhdGVMb2FkaW5nLm5leHQobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICBmaXhlZF9ib2R5KGZpeGVkOiAnb24nfCdvZmYnKXsgICAgXHJcbiAgICBsZXQgYm9keSA9IDxhbnk+IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiQk9EWVwiKVswXTtcclxuICAgIGlmKCBib2R5ICYmIGJvZHkuc3R5bGUgKXtcclxuICAgICAgaWYoIGZpeGVkID09PSAnb24nICl7XHJcbiAgICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1kgPSBcImhpZGRlblwiO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCBmaXhlZCA9PT0gJ29mZicgKXtcclxuICAgICAgICBib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdvdmVyZmxvdy15Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59Il19
|
|
@@ -79,7 +79,7 @@ export class TCloudUiModalComponent {
|
|
|
79
79
|
this.control_open = open;
|
|
80
80
|
this.checkIsOpen();
|
|
81
81
|
this._open = open;
|
|
82
|
-
this.fixed_body((open) ? 'on' : 'off');
|
|
82
|
+
this.tcloudModalService.fixed_body((open) ? 'on' : 'off');
|
|
83
83
|
}
|
|
84
84
|
get open() { return this._open; }
|
|
85
85
|
/**
|
|
@@ -122,25 +122,14 @@ export class TCloudUiModalComponent {
|
|
|
122
122
|
}
|
|
123
123
|
action = (action) ? action : 'close';
|
|
124
124
|
this.toAction.emit(action);
|
|
125
|
-
this.fixed_body('off');
|
|
125
|
+
this.tcloudModalService.fixed_body('off');
|
|
126
126
|
}
|
|
127
127
|
checkIsOpen() {
|
|
128
128
|
if (this.control_open) {
|
|
129
|
-
this.fixed_body('on');
|
|
129
|
+
this.tcloudModalService.fixed_body('on');
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
|
-
this.fixed_body('off');
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
fixed_body(fixed) {
|
|
136
|
-
let body = document.getElementsByTagName("BODY")[0];
|
|
137
|
-
if (body && body.style) {
|
|
138
|
-
if (fixed === 'on') {
|
|
139
|
-
body.style.overflowY = "hidden";
|
|
140
|
-
}
|
|
141
|
-
if (fixed === 'off') {
|
|
142
|
-
body.style.removeProperty('overflow-y');
|
|
143
|
-
}
|
|
132
|
+
this.tcloudModalService.fixed_body('off');
|
|
144
133
|
}
|
|
145
134
|
}
|
|
146
135
|
ngOnDestroy() {
|
|
@@ -204,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
204
193
|
}], toAction: [{
|
|
205
194
|
type: Output
|
|
206
195
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1tb2RhbC90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW1vZGFsL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFzQmpGLE1BQU0sT0FBTyxzQkFBc0I7SUFrR2pDLFlBQ1Usa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFqRy9DOzs7Ozs7VUFNRTtRQUVILGtCQUFhLEdBQWEsRUFBYyxDQUFDO1FBQ3pDLDhDQUE4QztRQUN0QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsVUFBVSxDQUFDO1FBeUIxQzs7V0FFRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFPbkM7O1dBRUc7UUFDTSxhQUFRLEdBQVcsR0FBRyxDQUFDO1FBaUJoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBYXZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFVeEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFekMsY0FBUyxHQUFHLElB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LEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3ZDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzs0QkFDakQsVUFBVSxDQUFDLGlCQUFpQixFQUFFO2dDQUMxQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQ0FDbEMsT0FBTyxDQUFDLGVBQWUsQ0FBQzs2QkFDM0IsQ0FBQzs0QkFDRixVQUFVLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3lCQUMxRCxDQUFDO3FCQUNIO3lHQW9CWSxPQUFPO3NCQUFuQixLQUFLO2dCQVNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBY0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQWdCTyxJQUFJO3NCQUFoQixLQUFLO2dCQWFPLE9BQU87c0JBQW5CLEtBQUs7Z0JBTUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGNsb3VkTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90Y2xvdWQtbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBJQ29uZmlybSB9IGZyb20gJy4vdGNsb3VkLXVpLW1vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFRjbG91ZE1vZGFsU2VydmljZVxyXG4gIF0sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZmFkZScsIFtcclxuICAgICAgICBzdGF0ZSgndmlzaWJsZScsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXHJcbiAgICAgICAgc3RhdGUoJ2hpZGUnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRvcDogJy0zOCUnIH0pKSxcclxuICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHZpc2libGUnLCBbXHJcbiAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdG9wOiAnLTM4JScgfSksXHJcbiAgICAgICAgICAgIGFuaW1hdGUoJzAuM3MgZWFzZS1vdXQnKVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gaGlkZScsIGFuaW1hdGUoJzAuM3MgZWFzZS1vdXQnKSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgIC8qKlxyXG4gICAqIHRjbG91ZC11aS1tb2RhbCAtIENyaWEgZSBleGliZSB1bSBtb2RhbFxyXG4gICAqIFxyXG4gICAqIHRvQWN0aW9uIC0gKHRvQWN0aW9uKSAtIFJlc3VsdGFkbyBkbyBldmVudG8gLSAnY29uZmlybWVkJ3wnY2FuY2VsJ3wnY2xvc2UnXHJcbiAgICogdG9Db25maXJtIC0gKHRvQ29uZmlybSkgLSBJbmRpY2EgcXVlIGEgYcOnw6NvIGZvaSBjb25maXJtYWRhIC0gcmVzdWx0YWRvIHRydWVcclxuICAgKiB0b0NhbmNlbCAtICh0b0NhbmNlbCgpIC0gSW5kaWNhIHF1ZSBhIGHDp8OjbyBmb2kgY2FuY2VsYWRhIC0gcmVzdWx0YWRvIGZhbHNlXHJcbiAgICovXHJcblxyXG4gIHBhcmFtX2NvbmZpcm06IElDb25maXJtID0ge30gYXMgSUNvbmZpcm07XHJcbiAgLyogQkVHSU4gLSBQYXJhbWV0cm9zIHBhcmEgbW9kbyBjb25maXJtYWNhbyAqL1xyXG4gIHByaXZhdGUgX2NvbmZpcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9jb25maXJtVGV4dDogc3RyaW5nID0gJ0NvbmZpcm1vJztcclxuXHJcbiAgLyoqXHJcbiAgICogY29uZmlybSBib29sZWFuIC0gSW5kaWNhIHNlIHNlcsOhIHVtIG1vZGFsIGRvIHRpcG8gY29uZmlybWHDp8OjbyAtIGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgY29uZmlybSh2OiBib29sZWFuKXtcclxuICAgIHRoaXMuX2NvbmZpcm0gPSB2O1xyXG4gICAgdGhpcy5wYXJhbV9jb25maXJtLmNvbmZpcm0gPSB0aGlzLl9jb25maXJtO1xyXG4gICAgdGhpcy5wYXJhbV9jb25maXJtLmNvbmZpcm1UZXh0ID0gdGhpcy5fY29uZmlybVRleHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjb25maXJtVGV4dCBzdHJpbmcgLSBUZXh0byBxdWUgZGV2ZXLDoSBzZXIgZGlnaXRhZG8gLSBkZWZ1YWx0IENvbmZpcm1vXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IGNvbmZpcm1UZXh0KHY6IHN0cmluZyl7XHJcbiAgICB0aGlzLl9jb25maXJtVGV4dCA9IHY7XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQgPSB0aGlzLl9jb25maXJtVGV4dDtcclxuICAgIHRoaXMucGFyYW1fY29uZmlybS5jb25maXJtID0gdGhpcy5fY29uZmlybTsgICAgXHJcbiAgfVxyXG5cclxuICAvKiBFTkQgLS0tIFBhcmFtZXRyb3MgcGFyYSBtb2RvIGNvbmZpcm1hY2FvICovXHJcblxyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gIHN1YnNjcmlwdGlvbkk6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogYXV0b0Nsb3NlIGJvb2xlYW4gLSBJbmRpY2Egc2UgZGV2ZXLDoSBzZXIgZmVjaGFkbyBxdWFuZG8gY29uZmlybWFyIHVtYSBhw6fDo28gLSBkZWZhdWx0IHRydWVcclxuICAgKi9cclxuICBASW5wdXQoKSBhdXRvQ2xvc2U6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiB0aXRsZSAtIHN0cmluZyAtIFTDrXR1bG8gYSBzZXIgZXhpYmlkbyBubyB0b3BvIGRvIG1vZGFsXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGU6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogbWF4V2lkdGggLSBudW1iZXIgLSBMYXJndXJhIG3DoXhpbWEgZG8gbW9kYWwgLSBkZWZhdWx0IDUwMHB4XHJcbiAgICovXHJcbiAgQElucHV0KCkgbWF4V2lkdGg6IG51bWJlciA9IDUwMDtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIHdpbmRvdyAtIHN0cmluZyAtIG5vbWUgcmVmZXJlbnRlIGFvIHRhbWFuaG8gZG8gbW9kYWwgLSBuw6NvIHV0aWxpemFyIG1heFdpZHRoIHNlIGZvciB1dGlsaXphciB3aW5kb3cgLSBkZWZhdWx0IDUwMCAobWVkaXVtKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCB3aW5kb3coIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnYmlnJyB8ICdmdWxsJyApe1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgIGNhc2UgJ3NtYWxsJzogdGhpcy5tYXhXaWR0aCAgID0gMzAwOyBicmVhaztcclxuICAgICAgY2FzZSAnbWVkaXVtJzogdGhpcy5tYXhXaWR0aCAgPSA1MDA7IGJyZWFrO1xyXG4gICAgICBjYXNlICdsYXJnZSc6IHRoaXMubWF4V2lkdGggICA9IDkwMDsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JpZyc6IHRoaXMubWF4V2lkdGggICAgID0gMTEwMDsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Z1bGwnOiB0aGlzLm1heFdpZHRoICAgICA9IDE0MDA7IGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiBcclxuICBjb250cm9sX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9vcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogb3BlbiAtIGJvb2xlYW4gLSBWYXJpw6F2ZWwgZGUgY29udHJvbGUgcGFyYSBleGliacOnw6NvIGRvIG1vZGFsIC0gb2JyaWdhdMOzcmlvXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IG9wZW4ob3BlbjogYm9vbGVhbil7XHJcbiAgICB0aGlzLmNvbnRyb2xfb3BlbiA9IG9wZW47XHJcbiAgICB0aGlzLmNoZWNrSXNPcGVuKCk7XHJcblxyXG4gICAgdGhpcy5fb3BlbiA9IG9wZW47XHJcbiAgICB0aGlzLmZpeGVkX2JvZHkoKG9wZW4pID8gJ29uJyA6ICdvZmYnKTtcclxuICB9XHJcbiAgZ2V0IG9wZW4oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vcGVuOyB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBsb2FkaW5nIC0gYm9vbGVhbiAtIENvbG9jYSBvIG1vZGFsIGVtIG1vZG8gZGUgY2FycmVnYW1lbnRvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBsb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4peyBcclxuICAgIHRoaXMuX2xvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2Uuc2V0TG9hZGluZyhsb2FkaW5nKTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9sb2FkaW5nOyB9XHJcbiAgXHJcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSB0b0NvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIHRvQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSB0b0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8J2NvbmZpcm1lZCd8J2NhbmNlbCd8J2Nsb3NlJz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRjbG91ZE1vZGFsU2VydmljZTogVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZUNsb3NlJC5zdWJzY3JpYmUoKG9wZW46IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCBvcGVuICl7XHJcbiAgICAgICAgLyogT1BFTiAqL1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggIW9wZW4gKXtcclxuICAgICAgICAvKiBDTE9TRSAqL1xyXG4gICAgICAgIHRoaXMudG9DbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbkkgPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZVJlc3BDb25maXJtJC5zdWJzY3JpYmUoKHJlc3A6IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCByZXNwICl7XHJcbiAgICAgICAgLyogQ09ORklSTUFETyAqL1xyXG4gICAgICAgIHRoaXMudG9Db25maXJtLmVtaXQocmVzcCk7XHJcbiAgICAgICAgdGhpcy50b0Nsb3NlKCdjb25maXJtZWQnKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCAhcmVzcCApe1xyXG4gICAgICAgIC8qIENBTkNFTEFETyAqL1xyXG4gICAgICAgIHRoaXMudG9DYW5jZWwuZW1pdChyZXNwKTtcclxuICAgICAgICB0aGlzLnRvQ2xvc2UoJ2NhbmNlbCcpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS50b0NvbmZpcm0oIHRoaXMucGFyYW1fY29uZmlybSApO1xyXG4gIH1cclxuXHJcbiAgdG9DbG9zZShhY3Rpb24/OiBhbnkgfCB1bmRlZmluZWQpe1xyXG4gICAgaWYoIHRoaXMuYXV0b0Nsb3NlICl7XHJcbiAgICAgIHRoaXMuY29udHJvbF9vcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGFjdGlvbiA9IChhY3Rpb24pID8gYWN0aW9uIDogJ2Nsb3NlJztcclxuICAgIHRoaXMudG9BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy5maXhlZF9ib2R5KCdvZmYnKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSXNPcGVuKCl7XHJcbiAgICBpZiggdGhpcy5jb250cm9sX29wZW4gKXtcclxuICAgICAgdGhpcy5maXhlZF9ib2R5KCdvbicpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaXhlZF9ib2R5KGZpeGVkOiAnb24nfCdvZmYnKXsgICAgXHJcbiAgICBsZXQgYm9keSA9IDxhbnk+IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiQk9EWVwiKVswXTtcclxuICAgIGlmKCBib2R5ICYmIGJvZHkuc3R5bGUgKXtcclxuICAgICAgaWYoIGZpeGVkID09PSAnb24nICl7XHJcbiAgICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1kgPSBcImhpZGRlblwiO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCBmaXhlZCA9PT0gJ29mZicgKXtcclxuICAgICAgICBib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdvdmVyZmxvdy15Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCl7XHJcbiAgICB0aGlzLmNoZWNrSXNPcGVuKCk7XHJcbiAgICBpZiggdGhpcy5zdWJzY3JpcHRpb24gKXsgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0Yy1iYWNrZ3JvdW5kLW1vZGFsXCIgKm5nSWY9XCJjb250cm9sX29wZW5cIiA+e3sgY2hlY2tJc09wZW4oKSB9fTwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImJhc2UtbW9kYWxcIiAqbmdJZj1cIm9wZW5cIj5cclxuICA8ZGl2IGNsYXNzPVwic3ViLW1vZGFsXCIgW0BmYWRlXT1cIid2aXNpYmxlJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRjLW1vZGFsIHRjLW1vZGFsLXNoYWRvd1wiIFthdHRyLnN0eWxlXT1cIidtYXgtd2lkdGg6ICcgKyBtYXhXaWR0aCArICdweDsnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmVhLXRvcC1hY3Rpb25zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzLm5vLXVzZS1oZWFkZXJdPVwidGl0bGVcIiAoY2xpY2spPVwidG9DbG9zZSgpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDxpICpuZ0lmPVwiIWxvYWRpbmdcIiBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgIDxpICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8aDQgKm5nSWY9XCJ0aXRsZVwiIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L2g0PlxyXG5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gRXg6IE1vZGFsIC0tPlxyXG48IS0tIFxyXG4gIDx0Y2xvdWQtdWktbW9kYWwgWyhvcGVuKV09XCJvcGVuXCI+XHJcblxyXG4gICAgPHRjbG91ZC11aS1tb2RhbC1oZWFkZXIgdGl0bGU9XCJUw610dWxvIGRvIE1vZGFsXCIgPjwvdGNsb3VkLXVpLW1vZGFsLWhlYWRlcj5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWJvZHk+XHJcbiAgICAgIENvbnRlw7pkbyBkbyBtb2RhbCBhcXVpXHJcbiAgICA8L3RjbG91ZC11aS1tb2RhbC1ib2R5PlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtZm9vdGVyPjwvdGNsb3VkLXVpLW1vZGFsLWZvb3Rlcj5cclxuXHJcbiAgPC90Y2xvdWQtdWktbW9kYWw+XHJcblxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuID0gIW9wZW5cIj5vcGVuIG1vZGFsIHt7IG9wZW4gfX08L2J1dHRvbj5cclxuLS0+XHJcblxyXG48IS0tICoqKioqKiAtLT5cclxuPCEtLSAqKioqKiogLS0+XHJcbjwhLS0gKioqKioqIC0tPlxyXG48IS0tICoqKioqKiAtLT5cclxuXHJcbjwhLS0gRXg6IENvbmZpcm0gTW9kYWwgLS0+XHJcbjwhLS0gXHJcbiAgPHRjbG91ZC11aS1tb2RhbCBbKG9wZW4pXT1cIm9wZW5fY29uZmlybVwiIFt0aXRsZV09XCInQXRlbsOnw6NvJ1wiIFtjb25maXJtVGV4dF09XCInQWNlaXRvJ1wiIFtjb25maXJtXT1cInRydWVcIiAodG9BY3Rpb24pPVwiJGV2ZW50XCIgPlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtYm9keT5EZXNlamEgcmVhbG1lbnRlIGV4ZWN1dGFyIGVzdGEgYcOnw6NvPzwvdGNsb3VkLXVpLW1vZGFsLWJvZHk+XHJcblxyXG4gICAgPHRjbG91ZC11aS1tb2RhbC1mb290ZXI+PC90Y2xvdWQtdWktbW9kYWwtZm9vdGVyPlxyXG5cclxuICA8L3RjbG91ZC11aS1tb2RhbD5cclxuXHJcbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5fY29uZmlybSA9ICFvcGVuX2NvbmZpcm1cIj5vcGVuX2NvbmZpcm0gbW9kYWwge3sgb3Blbl9jb25maXJtIH19PC9idXR0b24+XHJcbi0tPiJdfQ==
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RjbG91ZC11aS9zcmMvbGliL19tb2R1bGVzL3RjbG91ZC11aS1tb2RhbC90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW1vZGFsL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFzQmpGLE1BQU0sT0FBTyxzQkFBc0I7SUFrR2pDLFlBQ1Usa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFqRy9DOzs7Ozs7VUFNRTtRQUVILGtCQUFhLEdBQWEsRUFBYyxDQUFDO1FBQ3pDLDhDQUE4QztRQUN0QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsVUFBVSxDQUFDO1FBeUIxQzs7V0FFRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFPbkM7O1dBRUc7UUFDTSxhQUFRLEdBQVcsR0FBRyxDQUFDO1FBaUJoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUN0QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBYXZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFVeEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFekMsY0FBUyxHQUFHLElB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Q0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQzFELENBQUM7cUJBQ0g7eUdBb0JZLE9BQU87c0JBQW5CLEtBQUs7Z0JBU08sV0FBVztzQkFBdkIsS0FBSztnQkFjRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1PLE1BQU07c0JBQWxCLEtBQUs7Z0JBZ0JPLElBQUk7c0JBQWhCLEtBQUs7Z0JBYU8sT0FBTztzQkFBbkIsS0FBSztnQkFNSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUY2xvdWRNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RjbG91ZC1tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IElDb25maXJtIH0gZnJvbSAnLi90Y2xvdWQtdWktbW9kYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdmYWRlJywgW1xyXG4gICAgICAgIHN0YXRlKCd2aXNpYmxlJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcclxuICAgICAgICBzdGF0ZSgnaGlkZScsIHN0eWxlKHsgb3BhY2l0eTogMCwgdG9wOiAnLTM4JScgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFtcclxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0b3A6ICctMzglJyB9KSxcclxuICAgICAgICAgICAgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA9PiBoaWRlJywgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgLyoqXHJcbiAgICogdGNsb3VkLXVpLW1vZGFsIC0gQ3JpYSBlIGV4aWJlIHVtIG1vZGFsXHJcbiAgICogXHJcbiAgICogdG9BY3Rpb24gLSAodG9BY3Rpb24pIC0gUmVzdWx0YWRvIGRvIGV2ZW50byAtICdjb25maXJtZWQnfCdjYW5jZWwnfCdjbG9zZSdcclxuICAgKiB0b0NvbmZpcm0gLSAodG9Db25maXJtKSAtIEluZGljYSBxdWUgYSBhw6fDo28gZm9pIGNvbmZpcm1hZGEgLSByZXN1bHRhZG8gdHJ1ZVxyXG4gICAqIHRvQ2FuY2VsIC0gKHRvQ2FuY2VsKCkgLSBJbmRpY2EgcXVlIGEgYcOnw6NvIGZvaSBjYW5jZWxhZGEgLSByZXN1bHRhZG8gZmFsc2VcclxuICAgKi9cclxuXHJcbiAgcGFyYW1fY29uZmlybTogSUNvbmZpcm0gPSB7fSBhcyBJQ29uZmlybTtcclxuICAvKiBCRUdJTiAtIFBhcmFtZXRyb3MgcGFyYSBtb2RvIGNvbmZpcm1hY2FvICovXHJcbiAgcHJpdmF0ZSBfY29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2NvbmZpcm1UZXh0OiBzdHJpbmcgPSAnQ29uZmlybW8nO1xyXG5cclxuICAvKipcclxuICAgKiBjb25maXJtIGJvb2xlYW4gLSBJbmRpY2Egc2Ugc2Vyw6EgdW0gbW9kYWwgZG8gdGlwbyBjb25maXJtYcOnw6NvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBjb25maXJtKHY6IGJvb2xlYW4pe1xyXG4gICAgdGhpcy5fY29uZmlybSA9IHY7XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybSA9IHRoaXMuX2NvbmZpcm07XHJcbiAgICB0aGlzLnBhcmFtX2NvbmZpcm0uY29uZmlybVRleHQgPSB0aGlzLl9jb25maXJtVGV4dDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbmZpcm1UZXh0IHN0cmluZyAtIFRleHRvIHF1ZSBkZXZlcsOhIHNlciBkaWdpdGFkbyAtIGRlZnVhbHQgQ29uZmlybW9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgY29uZmlybVRleHQodjogc3RyaW5nKXtcclxuICAgIHRoaXMuX2NvbmZpcm1UZXh0ID0gdjtcclxuICAgIHRoaXMucGFyYW1fY29uZmlybS5jb25maXJtVGV4dCA9IHRoaXMuX2NvbmZpcm1UZXh0O1xyXG4gICAgdGhpcy5wYXJhbV9jb25maXJtLmNvbmZpcm0gPSB0aGlzLl9jb25maXJtOyAgICBcclxuICB9XHJcblxyXG4gIC8qIEVORCAtLS0gUGFyYW1ldHJvcyBwYXJhIG1vZG8gY29uZmlybWFjYW8gKi9cclxuXHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgc3Vic2NyaXB0aW9uSTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBhdXRvQ2xvc2UgYm9vbGVhbiAtIEluZGljYSBzZSBkZXZlcsOhIHNlciBmZWNoYWRvIHF1YW5kbyBjb25maXJtYXIgdW1hIGHDp8OjbyAtIGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGF1dG9DbG9zZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIHRpdGxlIC0gc3RyaW5nIC0gVMOtdHVsbyBhIHNlciBleGliaWRvIG5vIHRvcG8gZG8gbW9kYWxcclxuICAgKi9cclxuICBASW5wdXQoKSB0aXRsZTogYW55IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBtYXhXaWR0aCAtIG51bWJlciAtIExhcmd1cmEgbcOheGltYSBkbyBtb2RhbCAtIGRlZmF1bHQgNTAwcHhcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhXaWR0aDogbnVtYmVyID0gNTAwO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogd2luZG93IC0gc3RyaW5nIC0gbm9tZSByZWZlcmVudGUgYW8gdGFtYW5obyBkbyBtb2RhbCAtIG7Do28gdXRpbGl6YXIgbWF4V2lkdGggc2UgZm9yIHV0aWxpemFyIHdpbmRvdyAtIGRlZmF1bHQgNTAwIChtZWRpdW0pXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHdpbmRvdyggc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICdiaWcnIHwgJ2Z1bGwnICl7XHJcbiAgICBzd2l0Y2ggKHNpemUpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOiB0aGlzLm1heFdpZHRoICAgPSAzMDA7IGJyZWFrO1xyXG4gICAgICBjYXNlICdtZWRpdW0nOiB0aGlzLm1heFdpZHRoICA9IDUwMDsgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xhcmdlJzogdGhpcy5tYXhXaWR0aCAgID0gOTAwOyBicmVhaztcclxuICAgICAgY2FzZSAnYmlnJzogdGhpcy5tYXhXaWR0aCAgICAgPSAxMTAwOyBicmVhaztcclxuICAgICAgY2FzZSAnZnVsbCc6IHRoaXMubWF4V2lkdGggICAgID0gMTQwMDsgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuIFxyXG4gIGNvbnRyb2xfb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX29wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBvcGVuIC0gYm9vbGVhbiAtIFZhcmnDoXZlbCBkZSBjb250cm9sZSBwYXJhIGV4aWJpw6fDo28gZG8gbW9kYWwgLSBvYnJpZ2F0w7NyaW9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgb3BlbihvcGVuOiBib29sZWFuKXtcclxuICAgIHRoaXMuY29udHJvbF9vcGVuID0gb3BlbjtcclxuICAgIHRoaXMuY2hlY2tJc09wZW4oKTtcclxuXHJcbiAgICB0aGlzLl9vcGVuID0gb3BlbjtcclxuICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoKG9wZW4pID8gJ29uJyA6ICdvZmYnKTtcclxuICB9XHJcbiAgZ2V0IG9wZW4oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vcGVuOyB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBsb2FkaW5nIC0gYm9vbGVhbiAtIENvbG9jYSBvIG1vZGFsIGVtIG1vZG8gZGUgY2FycmVnYW1lbnRvIC0gZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBsb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4peyBcclxuICAgIHRoaXMuX2xvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2Uuc2V0TG9hZGluZyhsb2FkaW5nKTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9sb2FkaW5nOyB9XHJcbiAgXHJcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSB0b0NvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIHRvQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSB0b0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8J2NvbmZpcm1lZCd8J2NhbmNlbCd8J2Nsb3NlJz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRjbG91ZE1vZGFsU2VydmljZTogVGNsb3VkTW9kYWxTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZUNsb3NlJC5zdWJzY3JpYmUoKG9wZW46IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCBvcGVuICl7XHJcbiAgICAgICAgLyogT1BFTiAqL1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggIW9wZW4gKXtcclxuICAgICAgICAvKiBDTE9TRSAqL1xyXG4gICAgICAgIHRoaXMudG9DbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbkkgPSB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS5zdGF0ZVJlc3BDb25maXJtJC5zdWJzY3JpYmUoKHJlc3A6IGJvb2xlYW4pPT57XHJcbiAgICAgIGlmKCByZXNwICl7XHJcbiAgICAgICAgLyogQ09ORklSTUFETyAqL1xyXG4gICAgICAgIHRoaXMudG9Db25maXJtLmVtaXQocmVzcCk7XHJcbiAgICAgICAgdGhpcy50b0Nsb3NlKCdjb25maXJtZWQnKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCAhcmVzcCApe1xyXG4gICAgICAgIC8qIENBTkNFTEFETyAqL1xyXG4gICAgICAgIHRoaXMudG9DYW5jZWwuZW1pdChyZXNwKTtcclxuICAgICAgICB0aGlzLnRvQ2xvc2UoJ2NhbmNlbCcpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICB0aGlzLnRjbG91ZE1vZGFsU2VydmljZS50b0NvbmZpcm0oIHRoaXMucGFyYW1fY29uZmlybSApO1xyXG4gIH1cclxuXHJcbiAgdG9DbG9zZShhY3Rpb24/OiBhbnkgfCB1bmRlZmluZWQpe1xyXG4gICAgaWYoIHRoaXMuYXV0b0Nsb3NlICl7XHJcbiAgICAgIHRoaXMuY29udHJvbF9vcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGFjdGlvbiA9IChhY3Rpb24pID8gYWN0aW9uIDogJ2Nsb3NlJztcclxuICAgIHRoaXMudG9BY3Rpb24uZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzT3Blbigpe1xyXG4gICAgaWYoIHRoaXMuY29udHJvbF9vcGVuICl7XHJcbiAgICAgIHRoaXMudGNsb3VkTW9kYWxTZXJ2aWNlLmZpeGVkX2JvZHkoJ29uJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50Y2xvdWRNb2RhbFNlcnZpY2UuZml4ZWRfYm9keSgnb2ZmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpe1xyXG4gICAgdGhpcy5jaGVja0lzT3BlbigpO1xyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uICl7IHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH1cclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGMtYmFja2dyb3VuZC1tb2RhbFwiICpuZ0lmPVwiY29udHJvbF9vcGVuXCIgPnt7IGNoZWNrSXNPcGVuKCkgfX08L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJiYXNlLW1vZGFsXCIgKm5nSWY9XCJvcGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1Yi1tb2RhbFwiIFtAZmFkZV09XCIndmlzaWJsZSdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy1tb2RhbCB0Yy1tb2RhbC1zaGFkb3dcIiBbYXR0ci5zdHlsZV09XCInbWF4LXdpZHRoOiAnICsgbWF4V2lkdGggKyAncHg7J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJlYS10b3AtYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjbGFzcy5uby11c2UtaGVhZGVyXT1cInRpdGxlXCIgKGNsaWNrKT1cInRvQ2xvc2UoKVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICA8aSAqbmdJZj1cIiFsb2FkaW5nXCIgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICA8aSAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGg0ICpuZ0lmPVwidGl0bGVcIiBbaW5uZXJIVE1MXT1cInRpdGxlXCI+PC9oND5cclxuXHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIEV4OiBNb2RhbCAtLT5cclxuPCEtLSBcclxuICA8dGNsb3VkLXVpLW1vZGFsIFsob3BlbildPVwib3BlblwiPlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtaGVhZGVyIHRpdGxlPVwiVMOtdHVsbyBkbyBNb2RhbFwiID48L3RjbG91ZC11aS1tb2RhbC1oZWFkZXI+XHJcblxyXG4gICAgPHRjbG91ZC11aS1tb2RhbC1ib2R5PlxyXG4gICAgICBDb250ZcO6ZG8gZG8gbW9kYWwgYXF1aVxyXG4gICAgPC90Y2xvdWQtdWktbW9kYWwtYm9keT5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWZvb3Rlcj48L3RjbG91ZC11aS1tb2RhbC1mb290ZXI+XHJcblxyXG4gIDwvdGNsb3VkLXVpLW1vZGFsPlxyXG5cclxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbiA9ICFvcGVuXCI+b3BlbiBtb2RhbCB7eyBvcGVuIH19PC9idXR0b24+XHJcbi0tPlxyXG5cclxuPCEtLSAqKioqKiogLS0+XHJcbjwhLS0gKioqKioqIC0tPlxyXG48IS0tICoqKioqKiAtLT5cclxuPCEtLSAqKioqKiogLS0+XHJcblxyXG48IS0tIEV4OiBDb25maXJtIE1vZGFsIC0tPlxyXG48IS0tIFxyXG4gIDx0Y2xvdWQtdWktbW9kYWwgWyhvcGVuKV09XCJvcGVuX2NvbmZpcm1cIiBbdGl0bGVdPVwiJ0F0ZW7Dp8OjbydcIiBbY29uZmlybVRleHRdPVwiJ0FjZWl0bydcIiBbY29uZmlybV09XCJ0cnVlXCIgKHRvQWN0aW9uKT1cIiRldmVudFwiID5cclxuXHJcbiAgICA8dGNsb3VkLXVpLW1vZGFsLWJvZHk+RGVzZWphIHJlYWxtZW50ZSBleGVjdXRhciBlc3RhIGHDp8Ojbz88L3RjbG91ZC11aS1tb2RhbC1ib2R5PlxyXG5cclxuICAgIDx0Y2xvdWQtdWktbW9kYWwtZm9vdGVyPjwvdGNsb3VkLXVpLW1vZGFsLWZvb3Rlcj5cclxuXHJcbiAgPC90Y2xvdWQtdWktbW9kYWw+XHJcblxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuX2NvbmZpcm0gPSAhb3Blbl9jb25maXJtXCI+b3Blbl9jb25maXJtIG1vZGFsIHt7IG9wZW5fY29uZmlybSB9fTwvYnV0dG9uPlxyXG4tLT4iXX0=
|