@natec/mef-dev-ui-kit 16.2.5 → 16.3.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/markup-kit/card/card/card.component.mjs +6 -6
- package/esm2022/lib/markup-kit/card/card-long/card-long.component.mjs +6 -6
- package/esm2022/lib/markup-kit/card/card-simple/card-simple.component.mjs +6 -6
- package/esm2022/lib/markup-kit/card/card.module.mjs +9 -9
- package/esm2022/lib/markup-kit/collapse/collapse/collapse.component.mjs +6 -6
- package/esm2022/lib/markup-kit/collapse/collapse-set/collapse-set.component.mjs +4 -4
- package/esm2022/lib/markup-kit/collapse/collapse.module.mjs +5 -5
- package/esm2022/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.mjs +4 -4
- package/esm2022/lib/markup-kit/executors/stage/stage.component.mjs +4 -4
- package/esm2022/lib/markup-kit/executors/step-executor/step-executor.component.mjs +74 -10
- package/esm2022/lib/markup-kit/executors/step-executor.module.mjs +10 -6
- package/esm2022/lib/markup-kit/modals/fill/fill.component.mjs +6 -6
- package/esm2022/lib/markup-kit/modals/markup-kit.module.mjs +5 -5
- package/esm2022/lib/markup-kit/modals/right-filter/right-filter.component.mjs +4 -4
- package/esm2022/lib/markup-kit/modals/slide-right/slide-right.component.mjs +5 -5
- package/esm2022/lib/markup-kit/modals/slide-up/slide-up.component.mjs +5 -5
- package/esm2022/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +5 -5
- package/esm2022/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.mjs +4 -4
- package/esm2022/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +6 -6
- package/esm2022/lib/markup-kit/page-layouts/page-layouts.module.mjs +5 -5
- package/esm2022/lib/markup-kit/page-layouts/profile/profile.component.mjs +6 -6
- package/esm2022/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +5 -5
- package/esm2022/lib/markup-kit/slider/slider/slider.component.mjs +6 -6
- package/esm2022/lib/markup-kit/slider/slider.module.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.mjs +140 -135
- package/esm2022/lib/markup-kit/utils/datepicker/datepicker.module.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.module.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.service.mjs +4 -4
- package/esm2022/lib/markup-kit/utils/help-block/help-block.component.mjs +6 -6
- package/esm2022/lib/markup-kit/utils/help-block/hepl-block.module.mjs +5 -5
- package/esm2022/lib/pg-components/card/card.components.mjs +11 -8
- package/esm2022/lib/pg-components/card/card.module.mjs +10 -10
- package/esm2022/lib/pg-components/progress/progress.component.mjs +4 -4
- package/esm2022/lib/pg-components/progress/progress.config.mjs +4 -4
- package/esm2022/lib/pg-components/progress/progress.module.mjs +5 -5
- package/esm2022/lib/pg-components/select/option.component.mjs +4 -4
- package/esm2022/lib/pg-components/select/option.pipe.mjs +4 -4
- package/esm2022/lib/pg-components/select/select.component.mjs +5 -5
- package/esm2022/lib/pg-components/select/select.module.mjs +5 -5
- package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.mjs +4 -4
- package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test.module.mjs +5 -5
- package/esm2022/lib/pg-components/switch/switch.component.mjs +5 -5
- package/esm2022/lib/pg-components/switch/switch.module.mjs +5 -5
- package/esm2022/lib/pg-components/tabs/tab-body.component.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tab-label.directive.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tab.component.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tabs-ink-bar.directive.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tabs-nav.component.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tabs.module.mjs +5 -5
- package/esm2022/lib/pg-components/tabs/tabset.component.mjs +5 -5
- package/fesm2022/natec-mef-dev-ui-kit.mjs +418 -345
- package/fesm2022/natec-mef-dev-ui-kit.mjs.map +1 -1
- package/lib/markup-kit/card/card/card.component.d.ts +1 -1
- package/lib/markup-kit/card/card-long/card-long.component.d.ts +1 -1
- package/lib/markup-kit/card/card-simple/card-simple.component.d.ts +1 -1
- package/lib/markup-kit/card/card.module.d.ts +1 -1
- package/lib/markup-kit/collapse/collapse/collapse.component.d.ts +1 -1
- package/lib/markup-kit/executors/step-executor/step-executor.component.d.ts +45 -3
- package/lib/markup-kit/executors/step-executor.module.d.ts +4 -3
- package/lib/markup-kit/modals/fill/fill.component.d.ts +1 -1
- package/lib/markup-kit/modals/slide-right/slide-right.component.d.ts +1 -1
- package/lib/markup-kit/modals/slide-up/slide-up.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/central-page/central-page.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/manage-page/manage-page.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/profile/profile.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/table-page/table-page.component.d.ts +1 -1
- package/lib/markup-kit/slider/slider/slider.component.d.ts +1 -1
- package/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.d.ts +104 -104
- package/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.d.ts +1 -1
- package/lib/markup-kit/utils/help-block/help-block.component.d.ts +1 -1
- package/lib/pg-components/card/card.components.d.ts +5 -5
- package/lib/pg-components/card/card.module.d.ts +5 -5
- package/lib/pg-components/select/select.component.d.ts +1 -1
- package/lib/pg-components/switch/switch.component.d.ts +1 -1
- package/lib/pg-components/tabs/tabset.component.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/styles/designe-colors.scss +16 -1
|
@@ -60,10 +60,10 @@ export class MefDevProgressComponent {
|
|
|
60
60
|
return this._value2;
|
|
61
61
|
}
|
|
62
62
|
constructor() { }
|
|
63
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
64
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
63
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MefDevProgressComponent, selector: "mefdev-progress", inputs: { type: "type", color: "color", thick: "thick", indeterminate: "indeterminate", value: "value" }, ngImport: i0, template: "<div *ngIf=\"type === 'bar'; else circleBlock\">\r\n <div *ngIf=\"indeterminate; else determineBarBlock\">\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar-{{ color }}\" [class.progress-bar-indeterminate]=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n <ng-template #determineBarBlock>\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar progress-bar-{{ color }}\" [ngStyle]=\"{ width: value + '%' }\"></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<ng-template #circleBlock>\r\n <div class=\"progress-circle-{{ color }}\" [class.progress-circle-indeterminate]=\"indeterminate\"\r\n [class.progress-circle]=\"!indeterminate\" [class.progress-circle-thick]=\"thick\">\r\n <div *ngIf=\"indeterminate; else determineBlock\"></div>\r\n <ng-template #determineBlock>\r\n <div class=\"pie\" [ngStyle]=\"_value2 && { clip: 'rect(auto, auto, auto, auto)' }\">\r\n <div class=\"left-side half-circle\" [ngStyle]=\"_value2 && { transform: 'rotate(' + value + 'deg)' }\"></div>\r\n <div class=\"right-side half-circle\" [ngStyle]=\"{\r\n transform:\r\n _value2 === true ? 'rotate(180deg)' : 'rotate(' + value + 'deg)'\r\n }\"></div>\r\n </div>\r\n <div class=\"shadow\"></div>\r\n </ng-template>\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
68
|
args: [{ selector: "mefdev-progress", template: "<div *ngIf=\"type === 'bar'; else circleBlock\">\r\n <div *ngIf=\"indeterminate; else determineBarBlock\">\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar-{{ color }}\" [class.progress-bar-indeterminate]=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n <ng-template #determineBarBlock>\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar progress-bar-{{ color }}\" [ngStyle]=\"{ width: value + '%' }\"></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<ng-template #circleBlock>\r\n <div class=\"progress-circle-{{ color }}\" [class.progress-circle-indeterminate]=\"indeterminate\"\r\n [class.progress-circle]=\"!indeterminate\" [class.progress-circle-thick]=\"thick\">\r\n <div *ngIf=\"indeterminate; else determineBlock\"></div>\r\n <ng-template #determineBlock>\r\n <div class=\"pie\" [ngStyle]=\"_value2 && { clip: 'rect(auto, auto, auto, auto)' }\">\r\n <div class=\"left-side half-circle\" [ngStyle]=\"_value2 && { transform: 'rotate(' + value + 'deg)' }\"></div>\r\n <div class=\"right-side half-circle\" [ngStyle]=\"{\r\n transform:\r\n _value2 === true ? 'rotate(180deg)' : 'rotate(' + value + 'deg)'\r\n }\"></div>\r\n </div>\r\n <div class=\"shadow\"></div>\r\n </ng-template>\r\n </div>\r\n</ng-template>" }]
|
|
69
69
|
}], ctorParameters: function () { return []; }, propDecorators: { type: [{
|
|
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
77
77
|
}], value: [{
|
|
78
78
|
type: Input
|
|
79
79
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVqRDs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLE1BQU0sQ0FBUztJQUNmLE9BQU8sQ0FBTTtJQUViOzs7O09BSUc7SUFDTSxJQUFJLENBQVM7SUFFdEI7Ozs7T0FJRztJQUVNLEtBQUssQ0FBUztJQUV2Qjs7O09BR0c7SUFDTSxLQUFLLENBQVU7SUFFeEI7OztPQUdHO0lBQ00sYUFBYSxDQUFVO0lBR2hDOzs7T0FHRztJQUNILElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNyQjtTQUNGOztZQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxnQkFBZSxDQUFDO3dHQXRETCx1QkFBdUI7NEZBQXZCLHVCQUF1QixpS0NoQnBDLGc0Q0EyQmM7OzRGRFhELHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxpQkFBaUI7MEVBWWxCLElBQUk7c0JBQVosS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT08sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCByZXByZXNlbnRpbmcgYSBwcm9ncmVzcyBiYXIuXHJcbiAqIFxyXG4gKiBFeGFtcGxlIG9mIHVzYWdlOlxyXG4gKiBcclxuICogYGBgXHJcbiAqIDxtZWZkZXYtcHJvZ3Jlc3MgdHlwZT1cImxpbmVhclwiIGNvbG9yPVwiYmx1ZVwiIFt0aGlja109XCJ0cnVlXCI+PC9tZWZkZXYtcHJvZ3Jlc3M+XHJcbiAqIDxtZWZkZXYtcHJvZ3Jlc3MgdHlwZT1cImNpcmNsZVwiIGNvbG9yPVwicmVkXCIgW2luZGV0ZXJtaW5hdGVdPVwidHJ1ZVwiPjwvbWVmZGV2LXByb2dyZXNzPlxyXG4gKiBgYGBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIm1lZmRldi1wcm9ncmVzc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmRGV2UHJvZ3Jlc3NDb21wb25lbnQge1xyXG4gIF92YWx1ZTogbnVtYmVyO1xyXG4gIF92YWx1ZTI6IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHR5cGUgb2YgcHJvZ3Jlc3MgYmFyLlxyXG4gICAqIFBvc3NpYmxlIHZhbHVlczogXCJsaW5lYXJcIiB8IFwiY2lyY2xlXCIuXHJcbiAgICogRGVmYXVsdCB2YWx1ZTogXCJsaW5lYXJcIi5cclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgcHJvZ3Jlc3MgYmFyLlxyXG4gICAqIFBvc3NpYmxlIHZhbHVlczogYW55IHZhbGlkIENTUyBjb2xvciB2YWx1ZS5cclxuICAgKiBEZWZhdWx0IHZhbHVlOiBub25lLlxyXG4gICAqL1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb2dyZXNzIGJhciBpcyB0aGljay5cclxuICAgKiBEZWZhdWx0IHZhbHVlOiBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKSB0aGljazogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9ncmVzcyBiYXIgaXMgaW5kZXRlcm1pbmF0ZS5cclxuICAgKiBEZWZhdWx0IHZhbHVlOiBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBpbmRldGVybWluYXRlOiBib29sZWFuO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIuXHJcbiAgICogRm9yIHRoZSBcImNpcmNsZVwiIHR5cGUsIGl0IHNob3VsZCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwMC5cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PSBcImNpcmNsZVwiKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gKHZhbHVlIC8gMTAwKSAqIDM2MDtcclxuICAgICAgaWYgKHRoaXMudmFsdWUgPj0gNTApIHtcclxuICAgICAgICB0aGlzLl92YWx1ZTIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkaXRpb25hbCB2YWx1ZSBwcm9wZXJ0eS5cclxuICAgKi9cclxuICBnZXQgdmFsdWUyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlMjtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJ0eXBlID09PSAnYmFyJzsgZWxzZSBjaXJjbGVCbG9ja1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJpbmRldGVybWluYXRlOyBlbHNlIGRldGVybWluZUJhckJsb2NrXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIiBbY2xhc3MucHJvZ3Jlc3Mtc21hbGxdPVwiIXRoaWNrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXIte3sgY29sb3IgfX1cIiBbY2xhc3MucHJvZ3Jlc3MtYmFyLWluZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNkZXRlcm1pbmVCYXJCbG9jaz5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiIFtjbGFzcy5wcm9ncmVzcy1zbWFsbF09XCIhdGhpY2tcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhciBwcm9ncmVzcy1iYXIte3sgY29sb3IgfX1cIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB2YWx1ZSArICclJyB9XCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNjaXJjbGVCbG9jaz5cclxuICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY2lyY2xlLXt7IGNvbG9yIH19XCIgW2NsYXNzLnByb2dyZXNzLWNpcmNsZS1pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgW2NsYXNzLnByb2dyZXNzLWNpcmNsZV09XCIhaW5kZXRlcm1pbmF0ZVwiIFtjbGFzcy5wcm9ncmVzcy1jaXJjbGUtdGhpY2tdPVwidGhpY2tcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJpbmRldGVybWluYXRlOyBlbHNlIGRldGVybWluZUJsb2NrXCI+PC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI2RldGVybWluZUJsb2NrPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGllXCIgW25nU3R5bGVdPVwiX3ZhbHVlMiAmJiB7IGNsaXA6ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8sIGF1dG8pJyB9XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZSBoYWxmLWNpcmNsZVwiIFtuZ1N0eWxlXT1cIl92YWx1ZTIgJiYgeyB0cmFuc2Zvcm06ICdyb3RhdGUoJyArIHZhbHVlICsgJ2RlZyknIH1cIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtc2lkZSBoYWxmLWNpcmNsZVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgdHJhbnNmb3JtOlxyXG4gICAgICAgICAgICAgIF92YWx1ZTIgPT09IHRydWUgPyAncm90YXRlKDE4MGRlZyknIDogJ3JvdGF0ZSgnICsgdmFsdWUgKyAnZGVnKSdcclxuICAgICAgICAgIH1cIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaGFkb3dcIj48L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -3,10 +3,10 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export class ProgressConfig {
|
|
4
4
|
color = "primary";
|
|
5
5
|
thickness = 1;
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
7
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressConfig });
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressConfig, decorators: [{
|
|
10
10
|
type: Injectable
|
|
11
11
|
}] });
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDbEIsU0FBUyxHQUFHLENBQUMsQ0FBQzt3R0FGSCxjQUFjOzRHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQ29uZmlnIHtcclxuICBjb2xvciA9IFwicHJpbWFyeVwiO1xyXG4gIHRoaWNrbmVzcyA9IDE7XHJcbn1cclxuIl19
|
|
@@ -7,11 +7,11 @@ export class MefDevProgressModule {
|
|
|
7
7
|
static forRoot() {
|
|
8
8
|
return { ngModule: MefDevProgressModule, providers: [ProgressConfig] };
|
|
9
9
|
}
|
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
11
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
12
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressModule, declarations: [MefDevProgressComponent], imports: [CommonModule], exports: [MefDevProgressComponent] });
|
|
12
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressModule, imports: [CommonModule] });
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressModule, decorators: [{
|
|
15
15
|
type: NgModule,
|
|
16
16
|
args: [{
|
|
17
17
|
imports: [CommonModule],
|
|
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
19
19
|
exports: [MefDevProgressComponent]
|
|
20
20
|
}]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBT25ELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7SUFDekUsQ0FBQzt3R0FIVSxvQkFBb0I7eUdBQXBCLG9CQUFvQixpQkFIaEIsdUJBQXVCLGFBRDVCLFlBQVksYUFFWix1QkFBdUI7eUdBRXRCLG9CQUFvQixZQUpyQixZQUFZOzs0RkFJWCxvQkFBb0I7a0JBTGhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBNZWZEZXZQcm9ncmVzc0NvbXBvbmVudCB9IGZyb20gXCIuL3Byb2dyZXNzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0NvbmZpZyB9IGZyb20gXCIuL3Byb2dyZXNzLmNvbmZpZ1wiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtNZWZEZXZQcm9ncmVzc0NvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW01lZkRldlByb2dyZXNzQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmRGV2UHJvZ3Jlc3NNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWVmRGV2UHJvZ3Jlc3NNb2R1bGU+IHtcclxuICAgIHJldHVybiB7IG5nTW9kdWxlOiBNZWZEZXZQcm9ncmVzc01vZHVsZSwgcHJvdmlkZXJzOiBbUHJvZ3Jlc3NDb25maWddIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -74,10 +74,10 @@ export class MefDevOptionComponent {
|
|
|
74
74
|
ngOnDestroy() {
|
|
75
75
|
this._Select.removeOption(this);
|
|
76
76
|
}
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
78
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevOptionComponent, deps: [{ token: i1.MefDevSelectComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MefDevOptionComponent, selector: "mefdev-option", inputs: { Value: "Value", Label: "Label", Disabled: "Disabled" }, queries: [{ propertyName: "OptionTemplate", first: true, predicate: ["OptionTemplate"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>", encapsulation: i0.ViewEncapsulation.None });
|
|
79
79
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevOptionComponent, decorators: [{
|
|
81
81
|
type: Component,
|
|
82
82
|
args: [{ selector: "mefdev-option", encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>" }]
|
|
83
83
|
}], ctorParameters: function () { return [{ type: i1.MefDevSelectComponent }]; }, propDecorators: { OptionTemplate: [{
|
|
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
90
90
|
}], Disabled: [{
|
|
91
91
|
type: Input
|
|
92
92
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc2VsZWN0L29wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRzlDOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxxQkFBcUI7SUFxRGI7SUFwRFosU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUxQixNQUFNLENBQVM7SUFDZixNQUFNLENBQVM7SUFFZjs7TUFFSztJQUMyQixjQUFjLENBQU07SUFFbEQ7O0dBRUU7SUFDSixJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDMUIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQ7O0tBRUk7SUFDSixJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDMUIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQ7O0tBRUk7SUFDSixJQUNJLFFBQVEsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQW9CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO0lBQUcsQ0FBQztJQUV0RDs7O0tBR0k7SUFDSixRQUFRO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7S0FHSTtJQUNKLFdBQVc7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQXJFVyxxQkFBcUI7NEZBQXJCLHFCQUFxQixxT0NqQ2xDLDJCQUF5Qjs7NEZEaUNaLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDQyxlQUFlLGlCQUNWLGlCQUFpQixDQUFDLElBQUk7NEdBYUwsY0FBYztzQkFBN0MsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBTTFCLEtBQUs7c0JBRFIsS0FBSztnQkFnQkYsS0FBSztzQkFEUixLQUFLO2dCQWdCRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRDb250ZW50Q2hpbGQsXHJcblx0SW5wdXQsXHJcblx0T25EZXN0cm95LFxyXG5cdE9uSW5pdCxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vL2ltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gXCJAc2hhcmVkL3V0aWxzL2NvbnZlcnRcIjtcclxuaW1wb3J0IHsgTWVmRGV2U2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc2VsZWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyB0b0Jvb2xlYW4gfSBmcm9tIFwiLi8uLi91dGlsL2NvbnZlcnRcIjtcclxuXHJcblxyXG4vKipcclxuICogQHNraXBUZW1wbGF0ZURvYyB0cnVlXHJcbiAqIENvbXBvbmVudCBmb3IgcmVwcmVzZW50aW5nIGFuIG9wdGlvbiBpbiBhIGRyb3Bkb3duIGxpc3QuXHJcbiAqXHJcbiAqYGBgXHJcbiAqIDxtZWZkZXYtc2VsZWN0PlxyXG4gKiA8bWVmZGV2LW9wdGlvbiBWYWx1ZT1cIjFcIiBMYWJlbD1cIk9wdGlvbiAxXCI+PC9tZWZkZXYtb3B0aW9uPlxyXG4gKiA8bWVmZGV2LW9wdGlvbiBWYWx1ZT1cIjJcIiBMYWJlbD1cIk9wdGlvbiAyXCI+PC9tZWZkZXYtb3B0aW9uPlxyXG4gKiA8bWVmZGV2LW9wdGlvbiBWYWx1ZT1cIjNcIiBMYWJlbD1cIk9wdGlvbiAzXCI+PC9tZWZkZXYtb3B0aW9uPlxyXG4gKiA8L21lZmRldi1zZWxlY3Q+XHJcbiAqYGBgXHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogXCJtZWZkZXYtb3B0aW9uXCIsXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuXHR0ZW1wbGF0ZVVybDogXCIuL29wdGlvbi5jb21wb25lbnQuaHRtbFwiLFxyXG5cdHN0eWxlVXJsczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lZkRldk9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHRwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuXHRfdmFsdWU6IHN0cmluZztcclxuXHRfbGFiZWw6IHN0cmluZztcclxuXHJcblx0LyoqXHJcbiAgIFx0KiBUZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIG9wdGlvbi5cclxuICAgXHQqL1xyXG5cdEBDb250ZW50Q2hpbGQoXCJPcHRpb25UZW1wbGF0ZVwiKSBPcHRpb25UZW1wbGF0ZTogYW55O1xyXG5cclxuXHQgIC8qKlxyXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLlxyXG4gICAqL1xyXG5cdEBJbnB1dCgpXHJcblx0c2V0IFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdGdldCBWYWx1ZSgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBvcHRpb24uXHJcbiAgICovXHJcblx0QElucHV0KClcclxuXHRzZXQgTGFiZWwodmFsdWU6IHN0cmluZykge1xyXG5cdFx0aWYgKHRoaXMuX2xhYmVsID09PSB2YWx1ZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLl9sYWJlbCA9IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IExhYmVsKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5fbGFiZWw7XHJcblx0fVxyXG5cclxuXHQvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgb3B0aW9uIGlzIGRpc2FibGVkLlxyXG4gICAqL1xyXG5cdEBJbnB1dCgpXHJcblx0c2V0IERpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLl9kaXNhYmxlZCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRnZXQgRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9TZWxlY3Q6IE1lZkRldlNlbGVjdENvbXBvbmVudCkge31cclxuXHJcblx0LyoqXHJcbiAgICogSW5pdGlhbGl6YXRpb24gbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQWRkcyB0aGUgb3B0aW9uIHRvIHRoZSBkcm9wZG93biBsaXN0LlxyXG4gICAqL1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5fU2VsZWN0LmFkZE9wdGlvbih0aGlzKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG4gICAqIERlc3RydWN0aW9uIGxpZmVjeWNsZSBob29rLlxyXG4gICAqIFJlbW92ZXMgdGhlIG9wdGlvbiBmcm9tIHRoZSBkcm9wZG93biBsaXN0LlxyXG4gICAqL1xyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5fU2VsZWN0LnJlbW92ZU9wdGlvbih0aGlzKTtcclxuXHR9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
|
|
@@ -32,11 +32,11 @@ export class OptionPipe {
|
|
|
32
32
|
return options;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
36
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
36
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: OptionPipe, name: "OptionPipe" });
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionPipe, decorators: [{
|
|
39
39
|
type: Pipe,
|
|
40
40
|
args: [{ name: "OptionPipe" }]
|
|
41
41
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9zZWxlY3Qvb3B0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkJBQTJCO0FBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUlwRCxNQUFNLE9BQU8sVUFBVTtJQUNyQiw2Q0FBNkM7SUFDN0MsU0FBUyxDQUFDLE9BQWdDLEVBQUUsS0FBVTtRQUNwRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDM0IsTUFBTSxDQUFDLEVBQUUsQ0FDUCxNQUFNLENBQUMsS0FBSztnQkFDWixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNoRSxDQUFDLENBQUMsQ0FDUCxDQUFDO1lBQ0YsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNkLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUN2QixNQUFNLENBQUMsRUFBRSxDQUNQLE1BQU0sQ0FBQyxLQUFLO29CQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FDaEUsQ0FBQzthQUNIO1lBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNuQixPQUFPLFFBQVEsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxPQUFPO29CQUNKO3dCQUNDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzt3QkFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLO3dCQUNuQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7d0JBQ3hCLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUTt3QkFDekIsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlO3dCQUM1QixNQUFNLEVBQUUsS0FBSyxDQUFDLGVBQWU7cUJBQ0c7aUJBQ25DLENBQUM7YUFDSDtTQUNGO2FBQU07WUFDTCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtJQUNILENBQUM7d0dBbENVLFVBQVU7c0dBQVYsVUFBVTs7NEZBQVYsVUFBVTtrQkFEdEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1lZkRldk9wdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL29wdGlvbi5jb21wb25lbnRcIjtcclxuXHJcbkBQaXBlKHsgbmFtZTogXCJPcHRpb25QaXBlXCIgfSlcclxuZXhwb3J0IGNsYXNzIE9wdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAvLyBUT0RPOiBlbmFibGUgdHlwZSBjaGVja2luZyBmb3IgdGhpcyBtZXRob2RcclxuICB0cmFuc2Zvcm0ob3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W10sIHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHZhbHVlLnNlYXJjaFRleHQpIHtcclxuICAgICAgbGV0IF9vcHRpb25zID0gb3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgb3B0aW9uID0+XHJcbiAgICAgICAgICBvcHRpb24uTGFiZWwgJiZcclxuICAgICAgICAgIG9wdGlvbi5MYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSAhPT1cclxuICAgICAgICAgICAgLTFcclxuICAgICAgKTtcclxuICAgICAgaWYgKHZhbHVlLnRhZ3MpIHtcclxuICAgICAgICBfb3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgb3B0aW9uID0+XHJcbiAgICAgICAgICAgIG9wdGlvbi5MYWJlbCAmJlxyXG4gICAgICAgICAgICBvcHRpb24uTGFiZWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWUuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoX29wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIF9vcHRpb25zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAoe1xyXG4gICAgICAgICAgICBWYWx1ZTogdmFsdWUudmFsdWUsXHJcbiAgICAgICAgICAgIF92YWx1ZTogdmFsdWUudmFsdWUsXHJcbiAgICAgICAgICAgIERpc2FibGVkOiB2YWx1ZS5kaXNhYmxlZCxcclxuICAgICAgICAgICAgX2Rpc2FibGVkOiB2YWx1ZS5kaXNhYmxlZCxcclxuICAgICAgICAgICAgTGFiZWw6IHZhbHVlLm5vdEZvdW5kQ29udGVudCxcclxuICAgICAgICAgICAgX2xhYmVsOiB2YWx1ZS5ub3RGb3VuZENvbnRlbnRcclxuICAgICAgICAgIH0gYXMgYW55KSBhcyBNZWZEZXZPcHRpb25Db21wb25lbnRcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb3B0aW9ucztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -15,7 +15,7 @@ import * as i2 from "@angular/forms";
|
|
|
15
15
|
import * as i3 from "@angular/cdk/overlay";
|
|
16
16
|
/**
|
|
17
17
|
* Example of usage:
|
|
18
|
-
* <example-url>https://mef.dev/ui_kit_demo/view/select</example-url>
|
|
18
|
+
* <example-url>https://mef.dev/ui_kit_demo/view/controls/select</example-url>
|
|
19
19
|
*/
|
|
20
20
|
export class MefDevSelectComponent {
|
|
21
21
|
_elementRef;
|
|
@@ -622,8 +622,8 @@ export class MefDevSelectComponent {
|
|
|
622
622
|
}
|
|
623
623
|
}
|
|
624
624
|
}
|
|
625
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
626
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
625
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
626
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MefDevSelectComponent, selector: "mefdev-select", inputs: { Filter: "Filter", MaxMultiple: "MaxMultiple", FirstDefault: "FirstDefault", AllowClear: "AllowClear", KeepUnListOptions: "KeepUnListOptions", Mode: "Mode", Multiple: "Multiple", PlaceHolder: "PlaceHolder", NotFoundContent: "NotFoundContent", Size: "Size", ShowSearch: "ShowSearch", Tags: "Tags", Disabled: "Disabled", Open: "Open" }, outputs: { SearchChange: "SearchChange", change: "change", OpenChange: "OpenChange", ScrollToBottom: "ScrollToBottom" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, providers: [
|
|
627
627
|
{
|
|
628
628
|
provide: NG_VALUE_ACCESSOR,
|
|
629
629
|
useExisting: forwardRef(() => MefDevSelectComponent),
|
|
@@ -673,7 +673,7 @@ export class MefDevSelectComponent {
|
|
|
673
673
|
])
|
|
674
674
|
])], encapsulation: i0.ViewEncapsulation.None });
|
|
675
675
|
}
|
|
676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
676
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevSelectComponent, decorators: [{
|
|
677
677
|
type: Component,
|
|
678
678
|
args: [{ selector: "mefdev-select", encapsulation: ViewEncapsulation.None, providers: [
|
|
679
679
|
{
|
|
@@ -779,4 +779,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
779
779
|
type: HostListener,
|
|
780
780
|
args: ["keydown", ["$event"]]
|
|
781
781
|
}] } });
|
|
782
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsbUJBQW1CLEVBRXBCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLFVBQVUsRUFHVixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBR2pGOzs7SUFHSTtBQXlESixNQUFNLE9BQU8scUJBQXFCO0lBMm9CdEI7SUFDQTtJQUNBO0lBdm9CRixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLGtCQUFrQixHQUFH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RFAsS0FBSztnQkFZRixVQUFVO3NCQURiLEtBQUs7Z0JBVUYsSUFBSTtzQkFEUCxLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFZRixJQUFJO3NCQURQLEtBQUs7Z0JBMlVOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZWpDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogY29tcGxleCBidXQgd29yayB3ZWxsXHJcbiAqIFRPRE86IHJlYnVpbGQgbGF0dGVyXHJcbiAqL1xyXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFTlRFUiwgVEFCIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5pbXBvcnQge1xyXG4gIENka0Nvbm5lY3RlZE92ZXJsYXksXHJcbiAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7XHJcbiAgZm9yd2FyZFJlZixcclxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWVmRGV2T3B0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vb3B0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPcHRpb25QaXBlIH0gZnJvbSBcIi4vb3B0aW9uLnBpcGVcIjtcclxuaW1wb3J0IHsgdG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbC9jb252ZXJ0JztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuXHJcblxyXG4vKipcclxuICAqIEV4YW1wbGUgb2YgdXNhZ2U6XHJcbiAgKiA8ZXhhbXBsZS11cmw+aHR0cHM6Ly9tZWYuZGV2L3VpX2tpdF9kZW1vL3ZpZXcvc2VsZWN0PC9leGFtcGxlLXVybD5cclxuICAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJtZWZkZXYtc2VsZWN0XCIsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxyXG5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1lZkRldlNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbdHJpZ2dlcignZHJvcERvd25BbmltYXRpb24nLCBbXHJcbiAgICBzdGF0ZSgnYm90dG9tJywgc3R5bGUoe1xyXG4gICAgICBvcGFjaXR5ICAgICAgICA6IDEsXHJcbiAgICAgIHRyYW5zZm9ybSAgICAgIDogJ3NjYWxlWSgxKScsXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbjogJzAlIDAlJ1xyXG4gICAgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiBib3R0b20nLCBbXHJcbiAgICAgIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5ICAgICAgICA6IDAsXHJcbiAgICAgICAgdHJhbnNmb3JtICAgICAgOiAnc2NhbGVZKDApJyxcclxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAwJSdcclxuICAgICAgfSksXHJcbiAgICAgIGFuaW1hdGUoJzE1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJylcclxuICAgIF0pLFxyXG4gICAgc3RhdGUoJ3RvcCcsIHN0eWxlKHtcclxuICAgICAgb3BhY2l0eSAgICAgICAgOiAxLFxyXG4gICAgICB0cmFuc2Zvcm0gICAgICA6ICdzY2FsZVkoMSknLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAxMDAlJ1xyXG4gICAgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiB0b3AnLCBbXHJcbiAgICAgIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5ICAgICAgICA6IDAsXHJcbiAgICAgICAgdHJhbnNmb3JtICAgICAgOiAnc2NhbGVZKDApJyxcclxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAxMDAlJ1xyXG4gICAgICB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknKVxyXG4gICAgXSksXHJcbiAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgIGFuaW1hdGUoJzI1MG1zIDEwMG1zIGxpbmVhcicsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgIF0pXHJcbiAgXSksXHJcblxyXG4gIHRyaWdnZXIoJ3RhZ0FuaW1hdGlvbicsIFtcclxuICAgIHN0YXRlKCcqJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxKScgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xyXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDApJyB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgbGluZWFyJylcclxuICAgIF0pLFxyXG4gICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDApJyB9KSksXHJcbiAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0pLFxyXG4gICAgICBhbmltYXRlKCcxNTBtcyBsaW5lYXInKVxyXG4gICAgXSldKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lZkRldlNlbGVjdENvbXBvbmVudFxyXG4gIGltcGxlbWVudHNcclxuICAgIE9uSW5pdCxcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHByaXZhdGUgX2FsbG93Q2xlYXIgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzVGFncyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzTXVsdGlwbGUgPSBmYWxzZTtcclxuICBwcml2YXRlIF9rZWVwVW5MaXN0T3B0aW9ucyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3Nob3dTZWFyY2ggPSBmYWxzZTtcclxuICBfZWw6IEhUTUxFbGVtZW50O1xyXG4gIF9pc09wZW4gPSBmYWxzZTtcclxuICBfcHJlZml4Q2xzID0gXCJwZy1zZWxlY3RcIjtcclxuICBfY2xhc3NMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIF9kcm9wRG93bkNsYXNzTWFwOiBhbnk7XHJcbiAgX2Ryb3BEb3duUHJlZml4Q2xzID0gYCR7dGhpcy5fcHJlZml4Q2xzfS1kcm9wZG93bmA7XHJcbiAgX3NlbGVjdGlvbkNsYXNzTWFwOiBhbnk7XHJcbiAgX3NlbGVjdGlvblByZWZpeENscyA9IGAke3RoaXMuX3ByZWZpeENsc30tc2VsZWN0aW9uYDtcclxuICBfc2l6ZTogc3RyaW5nO1xyXG4gIF92YWx1ZTogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgX3BsYWNlaG9sZGVyID0gXCJwbGFjZWhvbGRlclwiO1xyXG4gIF9ub3RGb3VuZENvbnRlbnQgPSBcIk5vIENvbnRlbnRcIjtcclxuICBfc2VhcmNoVGV4dCA9IFwiXCI7XHJcbiAgX3RyaWdnZXJXaWR0aCA9IDA7XHJcbiAgX3NlbGVjdGVkT3B0aW9uOiBNZWZEZXZPcHRpb25Db21wb25lbnQ7XHJcbiAgX29wZXJhdGluZ011bHRpcGxlT3B0aW9uOiBNZWZEZXZPcHRpb25Db21wb25lbnQ7XHJcbiAgX3NlbGVjdGVkT3B0aW9uczogU2V0PE1lZkRldk9wdGlvbkNvbXBvbmVudD4gPSBuZXcgU2V0KCk7XHJcbiAgX29wdGlvbnM6IE1lZkRldk9wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX2NhY2hlT3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W10gPSBbXTtcclxuICBfZmlsdGVyT3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W10gPSBbXTtcclxuICBfdGFnc09wdGlvbnM6IE1lZkRldk9wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX2FjdGl2ZUZpbHRlck9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50O1xyXG4gIF9pc011bHRpSW5pdCA9IGZhbHNlO1xyXG4gIF9kcm9wRG93blBvc2l0aW9uOiBcInRvcFwiIHwgXCJjZW50ZXJcIiB8IFwiYm90dG9tXCIgPSBcImJvdHRvbVwiO1xyXG4gIF9jb21wb3NpbmcgPSBmYWxzZTtcclxuICBfbW9kZTogYW55O1xyXG4gIC8vIG5nTW9kZWwgQWNjZXNzXHJcbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHZvaWQgPSAoKSA9PiBudWxsO1xyXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcbiAgQFZpZXdDaGlsZChcInNlYXJjaElucHV0XCIpIHNlYXJjaElucHV0RWxlbWVudFJlZjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyXCIpIHRyaWdnZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImRyb3Bkb3duVWxcIikgZHJvcGRvd25VbDogRWxlbWVudFJlZjtcclxuICBAT3V0cHV0KCkgU2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBTY3JvbGxUb0JvdHRvbTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIEZpbHRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgTWF4TXVsdGlwbGUgPSBJbmZpbml0eTtcclxuICBASW5wdXQoKSBGaXJzdERlZmF1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIF9jZGtPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBBbGxvd0NsZWFyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9hbGxvd0NsZWFyID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBBbGxvd0NsZWFyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q2xlYXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBLZWVwVW5MaXN0T3B0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fa2VlcFVuTGlzdE9wdGlvbnMgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEtlZXBVbkxpc3RPcHRpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2tlZXBVbkxpc3RPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgTW9kZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9tb2RlID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5fbW9kZSA9PT0gXCJtdWx0aXBsZVwiKSB7XHJcbiAgICAgIHRoaXMuTXVsdGlwbGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb2RlID09PSBcInRhZ3NcIikge1xyXG4gICAgICB0aGlzLlRhZ3MgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb2RlID09PSBcImNvbWJvYm94XCIpIHtcclxuICAgICAgdGhpcy5TaG93U2VhcmNoID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc011bHRpcGxlID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLl9pc011bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuU2hvd1NlYXJjaCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgTXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNNdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFBsYWNlSG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgUGxhY2VIb2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE5vdEZvdW5kQ29udGVudCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9ub3RGb3VuZENvbnRlbnQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBOb3RGb3VuZENvbnRlbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RGb3VuZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBTaXplKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLl9zaXplID0geyBsYXJnZTogXCJsZ1wiLCBzbWFsbDogXCJzbVwiIH1bdmFsdWVdO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IFNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgU2hvd1NlYXJjaCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2hvd1NlYXJjaCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgU2hvd1NlYXJjaCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93U2VhcmNoO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgVGFncyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgaXNUYWdzID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIHRoaXMuX2lzVGFncyA9IGlzVGFncztcclxuICAgIHRoaXMuTXVsdGlwbGUgPSBpc1RhZ3M7XHJcbiAgfVxyXG5cclxuICBnZXQgVGFncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1RhZ3M7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBPcGVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBpc09wZW4gPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX2lzT3BlbiA9PT0gaXNPcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgICB0aGlzLl9zZXRUcmlnZ2VyV2lkdGgoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2lzT3BlbiA9IGlzT3BlbjtcclxuICAgIHRoaXMuT3BlbkNoYW5nZS5lbWl0KHRoaXMuX2lzT3Blbik7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tEcm9wRG93blNjcm9sbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcclxuICB9XHJcblxyXG4gIC8qKiBuZXcgLW9wdGlvbiBpbnNlcnQgb3IgbmV3IHRhZ3MgaW5zZXJ0ICovXHJcbiAgIC8vIEB0cy1pZ25vcmVcclxuICBhZGRPcHRpb24gPSBvcHRpb24gPT4ge1xyXG4gICAgdGhpcy5fb3B0aW9ucy5wdXNoKG9wdGlvbik7XHJcbiAgICBpZiAoIXRoaXMuX2lzVGFncykge1xyXG4gICAgICBpZiAob3B0aW9uLlZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKiAtb3B0aW9uIHJlbW92ZSBvciB0YWdzIHJlbW92ZSAqL1xyXG4gIHJlbW92ZU9wdGlvbihvcHRpb246IE1lZkRldk9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3B0aW9ucy5zcGxpY2UodGhpcy5fb3B0aW9ucy5pbmRleE9mKG9wdGlvbiksIDEpO1xyXG4gICAgaWYgKCF0aGlzLl9pc1RhZ3MpIHtcclxuICAgICAgdGhpcy5mb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBkcm9wZG93biBwb3NpdGlvbiBjaGFuZ2VkICovXHJcbiAgb25Qb3NpdGlvbkNoYW5nZShwb3NpdGlvbjogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kcm9wRG93blBvc2l0aW9uID0gcG9zaXRpb24uY29ubmVjdGlvblBhaXIub3JpZ2luWTtcclxuICB9XHJcblxyXG4gIGNvbXBvc2l0aW9uU3RhcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb21wb3NpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29tcG9zaXRpb25FbmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb21wb3NpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBjbGVhciBzaW5nbGUgc2VsZWN0ZWQgb3B0aW9uICovXHJcbiAgY2xlYXJTZWxlY3QoJGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfSAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbiA9IG51bGw7IC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuVmFsdWUgPSBudWxsOyAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqIGNsaWNrIGRyb3Bkb3duIG9wdGlvbiBieSB1c2VyICovXHJcbiAgY2xpY2tPcHRpb24ob3B0aW9uOiBNZWZEZXZPcHRpb25Db21wb25lbnQsICRldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghb3B0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY2hvb3NlT3B0aW9uKG9wdGlvbiwgdHJ1ZSwgJGV2ZW50KTtcclxuICAgIHRoaXMuY2xlYXJTZWFyY2hUZXh0KCk7XHJcbiAgICBpZiAoIXRoaXMuX2lzTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5PcGVuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogY2hvb3NlIG9wdGlvbiAqL1xyXG4gIGNob29zZU9wdGlvbihcclxuICAgIG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50LFxyXG4gICAgaXNVc2VyQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICRldmVudD86IE1vdXNlRXZlbnRcclxuICApOiB2b2lkIHtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5EaXNhYmxlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IG9wdGlvbi5WYWx1ZTtcclxuICAgICAgICBpZiAoaXNVc2VyQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLm5leHQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShvcHRpb24uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXNVc2VyQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuaXNJblNldCh0aGlzLl9zZWxlY3RlZE9wdGlvbnMsIG9wdGlvbilcclxuICAgICAgICAgICAgPyB0aGlzLnVuU2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uKVxyXG4gICAgICAgICAgICA6IHRoaXMuc2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVdpZHRoKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRleHQpIHtcclxuICAgICAgLyoqIHdhaXQgZm9yIHNjcm9sbCB3aWR0aCBjaGFuZ2UgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsIFwid2lkdGhcIiwgYCR7ZWxlbWVudC5zY3JvbGxXaWR0aH1weGApO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKGVsZW1lbnQsIFwid2lkdGhcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogZGV0ZXJtaW5lIGlmIG9wdGlvbiBpbiBzZXQgKi9cclxuICBpc0luU2V0KFxyXG4gICAgc2V0OiBTZXQ8TWVmRGV2T3B0aW9uQ29tcG9uZW50PixcclxuICAgIG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50XHJcbiAgKTogTWVmRGV2T3B0aW9uQ29tcG9uZW50IHsgLy8gQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIChBcnJheS5mcm9tKHNldCkgYXMgTWVmRGV2T3B0aW9uQ29tcG9uZW50W10pLmZpbmQoXHJcbiAgICAgIChkYXRhOiBNZWZEZXZPcHRpb25Db21wb25lbnQpID0+IGRhdGEuVmFsdWUgPT09IG9wdGlvbi5WYWx1ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBjYW5jZWwgc2VsZWN0IG11bHRpcGxlIG9wdGlvbiAqLyAvLyBAdHMtaWdub3JlXHJcbiAgdW5TZWxlY3RNdWx0aXBsZU9wdGlvbiA9IChvcHRpb24sICRldmVudD8sIGVtaXRDaGFuZ2UgPSB0cnVlKSA9PiB7XHJcbiAgICB0aGlzLl9vcGVyYXRpbmdNdWx0aXBsZU9wdGlvbiA9IG9wdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5kZWxldGUob3B0aW9uKTtcclxuICAgIGlmIChlbWl0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuZW1pdE11bHRpcGxlT3B0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWvuVRhZ+i/m+ihjOeJueauiuWkhOeQhlxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLl9pc1RhZ3MgJiZcclxuICAgICAgdGhpcy5fb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgIT09IC0xICYmXHJcbiAgICAgIHRoaXMuX3RhZ3NPcHRpb25zLmluZGV4T2Yob3B0aW9uKSAhPT0gLTFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZU9wdGlvbihvcHRpb24pO1xyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5zcGxpY2UodGhpcy5fdGFnc09wdGlvbnMuaW5kZXhPZihvcHRpb24pLCAxKTtcclxuICAgIH1cclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKiogc2VsZWN0IG11bHRpcGxlIG9wdGlvbiAqL1xyXG4gIHNlbGVjdE11bHRpcGxlT3B0aW9uKG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50LCAkZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAvKiogaWYgdGFncyBkbyBwdXNoIHRvIHRhZyBvcHRpb24gKi9cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5faXNUYWdzICYmXHJcbiAgICAgIHRoaXMuX29wdGlvbnMuaW5kZXhPZihvcHRpb24pID09PSAtMSAmJlxyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5pbmRleE9mKG9wdGlvbikgPT09IC0xXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hZGRPcHRpb24ob3B0aW9uKTtcclxuICAgICAgdGhpcy5fdGFnc09wdGlvbnMucHVzaChvcHRpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3BlcmF0aW5nTXVsdGlwbGVPcHRpb24gPSBvcHRpb247XHJcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRPcHRpb25zLnNpemUgPCB0aGlzLk1heE11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdE11bHRpcGxlT3B0aW9ucygpO1xyXG5cclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBlbWl0IG11bHRpcGxlIG9wdGlvbnMgKi9cclxuICBlbWl0TXVsdGlwbGVPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlJbml0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGFycmF5T3B0aW9ucyA9IEFycmF5LmZyb20odGhpcy5fc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIHRoaXMuX3ZhbHVlID0gYXJyYXlPcHRpb25zLm1hcChpdGVtID0+IGl0ZW0uVmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogdXBkYXRlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIGFkZCByZW1vdmUgb3B0aW9uIGV0YyAqL1xyXG4gIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKFxyXG4gICAgY3VycmVudE1vZGVsVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxyXG4gICAgdHJpZ2dlckJ5TmdNb2RlbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoY3VycmVudE1vZGVsVmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIGN1cnJlbnRNb2RlbFZhbHVlLmluZGV4T2YoaXRlbS5WYWx1ZSkgIT09IC0xO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCh0aGlzLktlZXBVbkxpc3RPcHRpb25zIHx8IHRoaXMuVGFncykgJiYgIXRyaWdnZXJCeU5nTW9kZWwpIHtcclxuICAgICAgICBjb25zdCBfc2VsZWN0ZWRPcHRpb25zID0gQXJyYXkuZnJvbSh0aGlzLl9zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBfZXhpc3QgPSBfc2VsZWN0ZWRPcHRpb25zLnNvbWUoXHJcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5fdmFsdWUgPT0gb3B0aW9uLl92YWx1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmICghX2V4aXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLl9vcHRpb25zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIGl0ZW0uVmFsdWUgPT0gY3VycmVudE1vZGVsVmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNob29zZU9wdGlvbihzZWxlY3RlZE9wdGlvblswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgLyoqIHRyaWdnZXIgZGlydHkgY2hlY2sgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih2YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBWYWx1ZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgVmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbFNlbGVjdGVkT3B0aW9uKGVtaXRDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgdGhpcy51blNlbGVjdE11bHRpcGxlT3B0aW9uKGl0ZW0sIG51bGwsIGVtaXRDaGFuZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlFbnRlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvKiogd2hlbiBjb21wb3NpbmcgZW5kICovXHJcbiAgICBpZiAoIXRoaXMuX2NvbXBvc2luZyAmJiB0aGlzLl9pc09wZW4pIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKGZhbHNlKTtcclxuICAgICAgdGhpcy5jbGlja09wdGlvbih0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5QmFja3NwYWNlRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fc2VhcmNoVGV4dCAmJiAhdGhpcy5fY29tcG9zaW5nICYmIHRoaXMuX2lzTXVsdGlwbGUpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgY29uc3QgbGFzdE9wdGlvbiA9IEFycmF5LmZyb20odGhpcy5fc2VsZWN0ZWRPcHRpb25zKS5wb3AoKTtcclxuICAgICAgdGhpcy51blNlbGVjdE11bHRpcGxlT3B0aW9uKGxhc3RPcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bkV2ZW50KCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzT3Blbikge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24gPSB0aGlzLm5leHRPcHRpb24oXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uLFxyXG4gICAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMuZmlsdGVyKHcgPT4gIXcuRGlzYWJsZWQpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleVVwRXZlbnQoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuKSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IHRoaXMucHJlT3B0aW9uKFxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbixcclxuICAgICAgICB0aGlzLl9maWx0ZXJPcHRpb25zLmZpbHRlcih3ID0+ICF3LkRpc2FibGVkKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcmVPcHRpb24oXHJcbiAgICBvcHRpb246IE1lZkRldk9wdGlvbkNvbXBvbmVudCxcclxuICAgIG9wdGlvbnM6IE1lZkRldk9wdGlvbkNvbXBvbmVudFtdXHJcbiAgKTogTWVmRGV2T3B0aW9uQ29tcG9uZW50IHtcclxuICAgIHJldHVybiBvcHRpb25zW29wdGlvbnMuaW5kZXhPZihvcHRpb24pIC0gMV0gfHwgb3B0aW9uc1tvcHRpb25zLmxlbmd0aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgbmV4dE9wdGlvbihcclxuICAgIG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50LFxyXG4gICAgb3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W11cclxuICApOiBNZWZEZXZPcHRpb25Db21wb25lbnQge1xyXG4gICAgcmV0dXJuIG9wdGlvbnNbb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgKyAxXSB8fCBvcHRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2hUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VhcmNoVGV4dCA9IFwiXCI7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRmlsdGVyT3B0aW9uKHVwZGF0ZUFjdGl2ZUZpbHRlcjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZpbHRlcikge1xyXG4gICAgICB0aGlzLl9maWx0ZXJPcHRpb25zID0gbmV3IE9wdGlvblBpcGUoKS50cmFuc2Zvcm0odGhpcy5fb3B0aW9ucywge1xyXG4gICAgICAgIHNlYXJjaFRleHQ6IHRoaXMuX3NlYXJjaFRleHQsXHJcbiAgICAgICAgdGFnczogdGhpcy5faXNUYWdzLFxyXG4gICAgICAgIG5vdEZvdW5kQ29udGVudDogdGhpcy5faXNUYWdzXHJcbiAgICAgICAgICA/IHRoaXMuX3NlYXJjaFRleHRcclxuICAgICAgICAgIDogdGhpcy5fbm90Rm91bmRDb250ZW50LFxyXG4gICAgICAgIGRpc2FibGVkOiAhdGhpcy5faXNUYWdzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl9pc1RhZ3MgPyB0aGlzLl9zZWFyY2hUZXh0IDogXCJkaXNhYmxlZFwiXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZmlsdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRPRE86IGNhdXNlIHByZSAmIG5leHQga2V5IHNlbGVjdGlvbiBub3Qgd29yayAqL1xyXG4gICAgaWYgKHVwZGF0ZUFjdGl2ZUZpbHRlciAmJiAhdGhpcy5fc2VsZWN0ZWRPcHRpb24pIHtcclxuICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uID0gdGhpcy5fZmlsdGVyT3B0aW9uc1swXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuU2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBvbkNsaWNrKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5PcGVuID0gIXRoaXMuT3BlbjtcclxuICAgICAgaWYgKHRoaXMuU2hvd1NlYXJjaCkge1xyXG4gICAgICAgIC8qKiB3YWl0IGZvciBzZWFyY2ggZGlzcGxheSAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXlDb2RlID0gZS5rZXlDb2RlO1xyXG4gICAgaWYgKGtleUNvZGUgPT09IFRBQiAmJiB0aGlzLk9wZW4pIHtcclxuICAgICAgdGhpcy5PcGVuID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICgoa2V5Q29kZSAhPT0gRE9XTl9BUlJPVyAmJiBrZXlDb2RlICE9PSBFTlRFUikgfHwgdGhpcy5PcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5PcGVuID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMuU2hvd1NlYXJjaCkge1xyXG4gICAgICAgIC8qKiB3YWl0IGZvciBzZWFyY2ggZGlzcGxheSAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wRG93bigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5PcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICBpZiAodGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZShcclxuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIFwid2lkdGhcIlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGVhclNlYXJjaFRleHQoKTtcclxuICAgIHRoaXMuT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jbGFzc0xpc3QuZm9yRWFjaChfY2xhc3NOYW1lID0+IHtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWwsIF9jbGFzc05hbWUpO1xyXG4gICAgfSk7IC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuX2NsYXNzTGlzdCA9IFtcclxuICAgICAgdGhpcy5fcHJlZml4Q2xzLFxyXG4gICAgICB0aGlzLl9tb2RlID09PSBcImNvbWJvYm94XCIgJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1jb21ib2JveGAsXHJcbiAgICAgICF0aGlzLl9kaXNhYmxlZCAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LWVuYWJsZWRgLFxyXG4gICAgICB0aGlzLl9kaXNhYmxlZCAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LWRpc2FibGVkYCxcclxuICAgICAgdGhpcy5faXNPcGVuICYmIGAke3RoaXMuX3ByZWZpeENsc30tb3BlbmAsXHJcbiAgICAgIHRoaXMuX3Nob3dTZWFyY2ggJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1zaG93LXNlYXJjaGAsXHJcbiAgICAgIHRoaXMuX3NpemUgJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS0ke3RoaXMuX3NpemV9YFxyXG4gICAgXS5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIHJldHVybiAhIWl0ZW07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2NsYXNzTGlzdC5mb3JFYWNoKF9jbGFzc05hbWUgPT4ge1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbCwgX2NsYXNzTmFtZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3NlbGVjdGlvbkNsYXNzTWFwID0ge1xyXG4gICAgICBbdGhpcy5fc2VsZWN0aW9uUHJlZml4Q2xzXTogdHJ1ZSxcclxuICAgICAgW2Ake3RoaXMuX3NlbGVjdGlvblByZWZpeENsc30tLXNpbmdsZWBdOiAhdGhpcy5NdWx0aXBsZSxcclxuICAgICAgW2Ake3RoaXMuX3NlbGVjdGlvblByZWZpeENsc30tLW11bHRpcGxlYF06IHRoaXMuTXVsdGlwbGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXREcm9wRG93bkNsYXNzTWFwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZHJvcERvd25DbGFzc01hcCA9IHtcclxuICAgICAgW3RoaXMuX2Ryb3BEb3duUHJlZml4Q2xzXTogdHJ1ZSxcclxuICAgICAgW1wiY29tcG9uZW50LXNlbGVjdFwiXTogdGhpcy5fbW9kZSA9PT0gXCJjb21ib2JveFwiLFxyXG4gICAgICBbYCR7dGhpcy5fZHJvcERvd25QcmVmaXhDbHN9LS1zaW5nbGVgXTogIXRoaXMuTXVsdGlwbGUsXHJcbiAgICAgIFtgJHt0aGlzLl9kcm9wRG93blByZWZpeENsc30tLW11bHRpcGxlYF06IHRoaXMuTXVsdGlwbGUsXHJcbiAgICAgIFtgJHt0aGlzLl9kcm9wRG93blByZWZpeENsc30tcGxhY2VtZW50LWJvdHRvbUxlZnRgXTpcclxuICAgICAgICB0aGlzLl9kcm9wRG93blBvc2l0aW9uID09PSBcImJvdHRvbVwiLFxyXG4gICAgICBbYCR7dGhpcy5fZHJvcERvd25QcmVmaXhDbHN9LXBsYWNlbWVudC10b3BMZWZ0YF06XHJcbiAgICAgICAgdGhpcy5fZHJvcERvd25Qb3NpdGlvbiA9PT0gXCJ0b3BcIlxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNjcm9sbFRvQWN0aXZlKCk6IHZvaWQge1xyXG4gICAgLyoqIHdhaXQgZm9yIGRyb3Bkb3duIGRpc3BsYXkgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgaWYgKHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiAmJiB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24uVmFsdWUpIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2ZpbHRlck9wdGlvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgb3B0aW9uID0+IG9wdGlvbi5WYWx1ZSA9PT0gdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uLlZhbHVlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3Qgc2Nyb2xsUGFuZSA9IHRoaXMuZHJvcGRvd25VbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW1xyXG4gICAgICAgICAgICBpbmRleFxyXG4gICAgICAgICAgXSBhcyBIVE1MTElFbGVtZW50O1xyXG4gICAgICAgICAgLy8gVE9ETzogc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCBpcyBub3QgYSBzdGFuZGFyZCBBUEksIHdoeSBkb2luZyBzbz9cclxuICAgICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICAgICAgICAgIChzY3JvbGxQYW5lIGFzIGFueSkuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChmYWxzZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge31cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmbHVzaENvbXBvbmVudFN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oKTtcclxuICAgIGlmICghdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl92YWx1ZSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfc2V0VHJpZ2dlcldpZHRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJpZ2dlcldpZHRoID0gdGhpcy5fZ2V0VHJpZ2dlclJlY3QoKS53aWR0aDtcclxuICAgIC8qKiBzaG91bGQgcmVtb3ZlIGFmdGVyIGFmdGVyIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMi9wdWxsLzg3NjUgbWVyZ2VkICoqL1xyXG4gICAgaWYgKHRoaXMuX2Nka092ZXJsYXkgJiYgdGhpcy5fY2RrT3ZlcmxheS5vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX2Nka092ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVTaXplKHtcclxuICAgICAgICB3aWR0aDogdGhpcy5fdHJpZ2dlcldpZHRoXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2dldFRyaWdnZXJSZWN0KCk6IENsaWVudFJlY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5EaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBkcm9wRG93blNjcm9sbCh1bDogSFRNTFVMaXN0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKHVsICYmIHVsLnNjcm9sbEhlaWdodCAtIHVsLnNjcm9sbFRvcCA9PT0gdWwuY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuU2Nyb2xsVG9Cb3R0b20uZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrRHJvcERvd25TY3JvbGwoKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZHJvcGRvd25VbCAmJlxyXG4gICAgICB0aGlzLmRyb3Bkb3duVWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgPT09XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5TY3JvbGxUb0JvdHRvbS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgY0RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9lbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl92YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZmx1c2hDb21wb25lbnRTdGF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbigpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXREcm9wRG93bkNsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fY2FjaGVPcHRpb25zICE9PSB0aGlzLl9vcHRpb25zKSB7XHJcbiAgICAgIC8qKiB1cGRhdGUgZmlsdGVyIG9wdGlvbiBhZnRlciBldmVyeSBjb250ZW50IGNoZWNrIGN5Y2xlICovXHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKCk7XHJcbiAgICAgIHRoaXMuX2NhY2hlT3B0aW9ucyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbihmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuRmlyc3REZWZhdWx0KSB7XHJcbiAgICAgIGlmICghdGhpcy5fdmFsdWUgJiYgdGhpcy5fb3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zWzBdICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fb3B0aW9uc1swXS5WYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5jaG9vc2VPcHRpb24odGhpcy5fb3B0aW9uc1swXSwgZmFsc2UpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fb3B0aW9uc1swXS5WYWx1ZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKFxyXG4gICAgdmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nLFxyXG4gICAgZW1pdENoYW5nZTogYm9vbGVhbiA9IHRydWVcclxuICApOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkgeyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsU2VsZWN0ZWRPcHRpb24oZW1pdENoYW5nZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWUsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhckFsbFNlbGVjdGVkT3B0aW9uKGVtaXRDaGFuZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgdGFiaW5kZXg9XCIwXCIgI3RyaWdnZXIgY2RrT3ZlcmxheU9yaWdpbiAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiIFtuZ0NsYXNzXT1cIl9zZWxlY3Rpb25DbGFzc01hcFwiXHJcbiAgKGtleWRvd24uRW50ZXIpPVwiaGFuZGxlS2V5RW50ZXJFdmVudCgkZXZlbnQpXCIgKGtleWRvd24uQmFja3NwYWNlKT1cImhhbmRsZUtleUJhY2tzcGFjZUV2ZW50KCRldmVudClcIlxyXG4gIChrZXlkb3duLkFycm93VXApPVwiaGFuZGxlS2V5VXBFdmVudCgkZXZlbnQpXCIgKGtleWRvd24uQXJyb3dEb3duKT1cImhhbmRsZUtleURvd25FdmVudCgkZXZlbnQpXCI+XHJcblxyXG4gICAgPCEtLSDQo9Cy0LXRgdGMINGB0LXQu9C10LrRgi0tPlxyXG4gIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19yZW5kZXJlZFwiICpuZ0lmPVwiIVNob3dTZWFyY2hcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19wbGFjZWhvbGRlclwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIV9zZWxlY3RlZE9wdGlvblwiPlxyXG4gICAgICAgIHt7IFBsYWNlSG9sZGVyIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uLXNlbGVjdGVkLXZhbHVlXCI+XHJcbiAgICAgIHt7IF9zZWxlY3RlZE9wdGlvbj8uTGFiZWwgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS1D0L/QuNGB0L7QuiBvcHRpb25zLS0+XHJcbiAgPGRpdiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX3JlbmRlcmVkXCIgKm5nSWY9XCJTaG93U2VhcmNoXCI+XHJcbiAgICA8ZGl2IFtoaWRkZW5dPVwiX3NlYXJjaFRleHR8fCghT3BlbiYmX3NlbGVjdGVkT3B0aW9uKXx8X3NlbGVjdGVkT3B0aW9ucy5zaXplXCJcclxuICAgICAgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19wbGFjZWhvbGRlclwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiKCFfY29tcG9zaW5nKSYmX3NlbGVjdGVkT3B0aW9uXCI+XHJcbiAgICAgICAge3sgX3NlbGVjdGVkT3B0aW9uLkxhYmVsIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIoIV9jb21wb3NpbmcpJiYoIV9zZWxlY3RlZE9wdGlvbilcIj5cclxuICAgICAgICB7eyBQbGFjZUhvbGRlciB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS3QnNGD0LvRjNGC0LjRgdC10LvQtdC60YItLT5cclxuICAgIDx1bCAqbmdJZj1cIk11bHRpcGxlXCI+IFxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBfc2VsZWN0ZWRPcHRpb25zXCIgW0B0YWdBbmltYXRpb25dIFthdHRyLnRpdGxlXT1cIm9wdGlvbj8uTGFiZWwgfHwgb3B0aW9uPy5WYWx1ZVwiXHJcbiAgICAgICAgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jaG9pY2VcIiBzdHlsZT1cIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jaG9pY2VfX3JlbW92ZVwiIChjbGljayk9XCJ1blNlbGVjdE11bHRpcGxlT3B0aW9uKG9wdGlvbiwkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jaG9pY2VfX2NvbnRlbnRcIj57eyBvcHRpb24/LkxhYmVsIH19PC9kaXY+XHJcbiAgICAgIDwvbGk+XHJcbiAgICAgIDxsaSBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2ggcGctc2VsZWN0LXNlYXJjaC0taW5saW5lXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX193cmFwXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZFwiIChjb21wb3NpdGlvbnN0YXJ0KT1cImNvbXBvc2l0aW9uU3RhcnQoKVwiXHJcbiAgICAgICAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJjb21wb3NpdGlvbkVuZCgpO3VwZGF0ZVdpZHRoKHNlYXJjaElucHV0LF9zZWFyY2hUZXh0KTtcIiBbKG5nTW9kZWwpXT1cIl9zZWFyY2hUZXh0XCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyT3B0aW9uKCk7b25TZWFyY2hDaGFuZ2UoJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJ1cGRhdGVXaWR0aChzZWFyY2hJbnB1dCxfc2VhcmNoVGV4dClcIiAoaW5wdXQpPVwidXBkYXRlV2lkdGgoc2VhcmNoSW5wdXQsX3NlYXJjaFRleHQpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIiAjc2VhcmNoSW5wdXQ+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX19taXJyb3JcIj48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFNdWx0aXBsZVwiIGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbi1zZWxlY3RlZC12YWx1ZVwiIFtoaWRkZW5dPVwiIShfc2VsZWN0ZWRPcHRpb24/LkxhYmVsKXx8T3BlblwiPlxyXG4gICAgICB7eyBfc2VsZWN0ZWRPcHRpb24/LkxhYmVsIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhTXVsdGlwbGVcIiBbaGlkZGVuXT1cIiFPcGVuXCIgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoIHBnLXNlbGVjdC1zZWFyY2gtLWlubGluZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRfX3dyYXBcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZFwiIChibHVyKT1cIm9uVG91Y2hlZCgpXCIgKGNvbXBvc2l0aW9uc3RhcnQpPVwiY29tcG9zaXRpb25TdGFydCgpXCJcclxuICAgICAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJjb21wb3NpdGlvbkVuZCgpXCIgWyhuZ01vZGVsKV09XCJfc2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJPcHRpb24oKTtvblNlYXJjaENoYW5nZSgkZXZlbnQpO1wiICNzZWFyY2hJbnB1dD5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX19taXJyb3JcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gKGNsaWNrKT1cIm9uVG91Y2hlZCgpO2NsZWFyU2VsZWN0KCRldmVudClcIiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX2NsZWFyXCIgc3R5bGU9XCItd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1wiXHJcbiAgICAqbmdJZj1cIl9zZWxlY3RlZE9wdGlvbj8uTGFiZWwmJkFsbG93Q2xlYXImJiFNdWx0aXBsZVwiPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1hcnJvd1wiPjxiPjwvYj48L3NwYW4+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgY2RrQ29ubmVjdGVkT3ZlcmxheSBjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3AgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3JpZ2luXCJcclxuICAoYmFja2Ryb3BDbGljayk9XCJjbG9zZURyb3BEb3duKClcIiAoZGV0YWNoKT1cImNsb3NlRHJvcERvd24oKTtcIiAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIl90cmlnZ2VyV2lkdGhcIiBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiX2lzT3BlblwiPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwiX2Ryb3BEb3duQ2xhc3NNYXBcIiBbQGRyb3BEb3duQW5pbWF0aW9uXT1cIl9kcm9wRG93blBvc2l0aW9uXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwib3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cInBnLXNlbGVjdC1kcm9wZG93bi1tZW51IHBnLXNlbGVjdC1kcm9wZG93bi1tZW51LXZlcnRpY2FsIHBnLXNlbGVjdC1kcm9wZG93bi1tZW51LXJvb3RcIiAjZHJvcGRvd25VbFxyXG4gICAgICAgIChzY3JvbGwpPVwiZHJvcERvd25TY3JvbGwoZHJvcGRvd25VbClcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBfZmlsdGVyT3B0aW9uc1wiIFtjbGFzcy5wZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtLWRpc2FibGVkXT1cIm9wdGlvbi5EaXNhYmxlZFwiXHJcbiAgICAgICAgICBbY2xhc3MucGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtaXRlbS1hY3RpdmVdPVwib3B0aW9uLlZhbHVlID09IF9hY3RpdmVGaWx0ZXJPcHRpb24/LlZhbHVlXCJcclxuICAgICAgICAgIFtjbGFzcy5wZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtLXNlbGVjdGVkXT1cIihvcHRpb24uVmFsdWU9PShfc2VsZWN0ZWRPcHRpb24/LlZhbHVlKSl8fChpc0luU2V0KF9zZWxlY3RlZE9wdGlvbnMsb3B0aW9uKSlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJwZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtXCIgKGNsaWNrKT1cImNsaWNrT3B0aW9uKG9wdGlvbiwkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb24uT3B0aW9uVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb24uT3B0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIW9wdGlvbi5PcHRpb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24uTGFiZWwgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
782
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsbUJBQW1CLEVBRXBCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLFVBQVUsRUFHVixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBR2pGOzs7SUFHSTtBQXlESixNQUFNLE9BQU8scUJBQXFCO0lBMm9CdEI7SUFDQTtJQUNBO0lBdm9CRixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLGtCQUFrQixHQUFH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RFAsS0FBSztnQkFZRixVQUFVO3NCQURiLEtBQUs7Z0JBVUYsSUFBSTtzQkFEUCxLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFZRixJQUFJO3NCQURQLEtBQUs7Z0JBMlVOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZWpDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogY29tcGxleCBidXQgd29yayB3ZWxsXHJcbiAqIFRPRE86IHJlYnVpbGQgbGF0dGVyXHJcbiAqL1xyXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFTlRFUiwgVEFCIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5pbXBvcnQge1xyXG4gIENka0Nvbm5lY3RlZE92ZXJsYXksXHJcbiAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7XHJcbiAgZm9yd2FyZFJlZixcclxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWVmRGV2T3B0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vb3B0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPcHRpb25QaXBlIH0gZnJvbSBcIi4vb3B0aW9uLnBpcGVcIjtcclxuaW1wb3J0IHsgdG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbC9jb252ZXJ0JztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuXHJcblxyXG4vKipcclxuICAqIEV4YW1wbGUgb2YgdXNhZ2U6XHJcbiAgKiA8ZXhhbXBsZS11cmw+aHR0cHM6Ly9tZWYuZGV2L3VpX2tpdF9kZW1vL3ZpZXcvY29udHJvbHMvc2VsZWN0PC9leGFtcGxlLXVybD5cclxuICAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJtZWZkZXYtc2VsZWN0XCIsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxyXG5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1lZkRldlNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbdHJpZ2dlcignZHJvcERvd25BbmltYXRpb24nLCBbXHJcbiAgICBzdGF0ZSgnYm90dG9tJywgc3R5bGUoe1xyXG4gICAgICBvcGFjaXR5ICAgICAgICA6IDEsXHJcbiAgICAgIHRyYW5zZm9ybSAgICAgIDogJ3NjYWxlWSgxKScsXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbjogJzAlIDAlJ1xyXG4gICAgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiBib3R0b20nLCBbXHJcbiAgICAgIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5ICAgICAgICA6IDAsXHJcbiAgICAgICAgdHJhbnNmb3JtICAgICAgOiAnc2NhbGVZKDApJyxcclxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAwJSdcclxuICAgICAgfSksXHJcbiAgICAgIGFuaW1hdGUoJzE1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJylcclxuICAgIF0pLFxyXG4gICAgc3RhdGUoJ3RvcCcsIHN0eWxlKHtcclxuICAgICAgb3BhY2l0eSAgICAgICAgOiAxLFxyXG4gICAgICB0cmFuc2Zvcm0gICAgICA6ICdzY2FsZVkoMSknLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAxMDAlJ1xyXG4gICAgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiB0b3AnLCBbXHJcbiAgICAgIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5ICAgICAgICA6IDAsXHJcbiAgICAgICAgdHJhbnNmb3JtICAgICAgOiAnc2NhbGVZKDApJyxcclxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAxMDAlJ1xyXG4gICAgICB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknKVxyXG4gICAgXSksXHJcbiAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgIGFuaW1hdGUoJzI1MG1zIDEwMG1zIGxpbmVhcicsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgIF0pXHJcbiAgXSksXHJcblxyXG4gIHRyaWdnZXIoJ3RhZ0FuaW1hdGlvbicsIFtcclxuICAgIHN0YXRlKCcqJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxKScgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xyXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDApJyB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgbGluZWFyJylcclxuICAgIF0pLFxyXG4gICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDApJyB9KSksXHJcbiAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0pLFxyXG4gICAgICBhbmltYXRlKCcxNTBtcyBsaW5lYXInKVxyXG4gICAgXSldKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lZkRldlNlbGVjdENvbXBvbmVudFxyXG4gIGltcGxlbWVudHNcclxuICAgIE9uSW5pdCxcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHByaXZhdGUgX2FsbG93Q2xlYXIgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzVGFncyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzTXVsdGlwbGUgPSBmYWxzZTtcclxuICBwcml2YXRlIF9rZWVwVW5MaXN0T3B0aW9ucyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3Nob3dTZWFyY2ggPSBmYWxzZTtcclxuICBfZWw6IEhUTUxFbGVtZW50O1xyXG4gIF9pc09wZW4gPSBmYWxzZTtcclxuICBfcHJlZml4Q2xzID0gXCJwZy1zZWxlY3RcIjtcclxuICBfY2xhc3NMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIF9kcm9wRG93bkNsYXNzTWFwOiBhbnk7XHJcbiAgX2Ryb3BEb3duUHJlZml4Q2xzID0gYCR7dGhpcy5fcHJlZml4Q2xzfS1kcm9wZG93bmA7XHJcbiAgX3NlbGVjdGlvbkNsYXNzTWFwOiBhbnk7XHJcbiAgX3NlbGVjdGlvblByZWZpeENscyA9IGAke3RoaXMuX3ByZWZpeENsc30tc2VsZWN0aW9uYDtcclxuICBfc2l6ZTogc3RyaW5nO1xyXG4gIF92YWx1ZTogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgX3BsYWNlaG9sZGVyID0gXCJwbGFjZWhvbGRlclwiO1xyXG4gIF9ub3RGb3VuZENvbnRlbnQgPSBcIk5vIENvbnRlbnRcIjtcclxuICBfc2VhcmNoVGV4dCA9IFwiXCI7XHJcbiAgX3RyaWdnZXJXaWR0aCA9IDA7XHJcbiAgX3NlbGVjdGVkT3B0aW9uOiBNZWZEZXZPcHRpb25Db21wb25lbnQ7XHJcbiAgX29wZXJhdGluZ011bHRpcGxlT3B0aW9uOiBNZWZEZXZPcHRpb25Db21wb25lbnQ7XHJcbiAgX3NlbGVjdGVkT3B0aW9uczogU2V0PE1lZkRldk9wdGlvbkNvbXBvbmVudD4gPSBuZXcgU2V0KCk7XHJcbiAgX29wdGlvbnM6IE1lZkRldk9wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX2NhY2hlT3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W10gPSBbXTtcclxuICBfZmlsdGVyT3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W10gPSBbXTtcclxuICBfdGFnc09wdGlvbnM6IE1lZkRldk9wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX2FjdGl2ZUZpbHRlck9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50O1xyXG4gIF9pc011bHRpSW5pdCA9IGZhbHNlO1xyXG4gIF9kcm9wRG93blBvc2l0aW9uOiBcInRvcFwiIHwgXCJjZW50ZXJcIiB8IFwiYm90dG9tXCIgPSBcImJvdHRvbVwiO1xyXG4gIF9jb21wb3NpbmcgPSBmYWxzZTtcclxuICBfbW9kZTogYW55O1xyXG4gIC8vIG5nTW9kZWwgQWNjZXNzXHJcbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHZvaWQgPSAoKSA9PiBudWxsO1xyXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcbiAgQFZpZXdDaGlsZChcInNlYXJjaElucHV0XCIpIHNlYXJjaElucHV0RWxlbWVudFJlZjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyXCIpIHRyaWdnZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImRyb3Bkb3duVWxcIikgZHJvcGRvd25VbDogRWxlbWVudFJlZjtcclxuICBAT3V0cHV0KCkgU2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBTY3JvbGxUb0JvdHRvbTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIEZpbHRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgTWF4TXVsdGlwbGUgPSBJbmZpbml0eTtcclxuICBASW5wdXQoKSBGaXJzdERlZmF1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIF9jZGtPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBBbGxvd0NsZWFyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9hbGxvd0NsZWFyID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBBbGxvd0NsZWFyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q2xlYXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBLZWVwVW5MaXN0T3B0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fa2VlcFVuTGlzdE9wdGlvbnMgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEtlZXBVbkxpc3RPcHRpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2tlZXBVbkxpc3RPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgTW9kZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9tb2RlID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5fbW9kZSA9PT0gXCJtdWx0aXBsZVwiKSB7XHJcbiAgICAgIHRoaXMuTXVsdGlwbGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb2RlID09PSBcInRhZ3NcIikge1xyXG4gICAgICB0aGlzLlRhZ3MgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb2RlID09PSBcImNvbWJvYm94XCIpIHtcclxuICAgICAgdGhpcy5TaG93U2VhcmNoID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc011bHRpcGxlID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLl9pc011bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuU2hvd1NlYXJjaCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgTXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNNdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFBsYWNlSG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgUGxhY2VIb2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE5vdEZvdW5kQ29udGVudCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9ub3RGb3VuZENvbnRlbnQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBOb3RGb3VuZENvbnRlbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RGb3VuZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBTaXplKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLl9zaXplID0geyBsYXJnZTogXCJsZ1wiLCBzbWFsbDogXCJzbVwiIH1bdmFsdWVdO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IFNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgU2hvd1NlYXJjaCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2hvd1NlYXJjaCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgU2hvd1NlYXJjaCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93U2VhcmNoO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgVGFncyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgaXNUYWdzID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIHRoaXMuX2lzVGFncyA9IGlzVGFncztcclxuICAgIHRoaXMuTXVsdGlwbGUgPSBpc1RhZ3M7XHJcbiAgfVxyXG5cclxuICBnZXQgVGFncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1RhZ3M7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBPcGVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBpc09wZW4gPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX2lzT3BlbiA9PT0gaXNPcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgICB0aGlzLl9zZXRUcmlnZ2VyV2lkdGgoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2lzT3BlbiA9IGlzT3BlbjtcclxuICAgIHRoaXMuT3BlbkNoYW5nZS5lbWl0KHRoaXMuX2lzT3Blbik7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tEcm9wRG93blNjcm9sbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcclxuICB9XHJcblxyXG4gIC8qKiBuZXcgLW9wdGlvbiBpbnNlcnQgb3IgbmV3IHRhZ3MgaW5zZXJ0ICovXHJcbiAgIC8vIEB0cy1pZ25vcmVcclxuICBhZGRPcHRpb24gPSBvcHRpb24gPT4ge1xyXG4gICAgdGhpcy5fb3B0aW9ucy5wdXNoKG9wdGlvbik7XHJcbiAgICBpZiAoIXRoaXMuX2lzVGFncykge1xyXG4gICAgICBpZiAob3B0aW9uLlZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKiAtb3B0aW9uIHJlbW92ZSBvciB0YWdzIHJlbW92ZSAqL1xyXG4gIHJlbW92ZU9wdGlvbihvcHRpb246IE1lZkRldk9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3B0aW9ucy5zcGxpY2UodGhpcy5fb3B0aW9ucy5pbmRleE9mKG9wdGlvbiksIDEpO1xyXG4gICAgaWYgKCF0aGlzLl9pc1RhZ3MpIHtcclxuICAgICAgdGhpcy5mb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBkcm9wZG93biBwb3NpdGlvbiBjaGFuZ2VkICovXHJcbiAgb25Qb3NpdGlvbkNoYW5nZShwb3NpdGlvbjogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kcm9wRG93blBvc2l0aW9uID0gcG9zaXRpb24uY29ubmVjdGlvblBhaXIub3JpZ2luWTtcclxuICB9XHJcblxyXG4gIGNvbXBvc2l0aW9uU3RhcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb21wb3NpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29tcG9zaXRpb25FbmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb21wb3NpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBjbGVhciBzaW5nbGUgc2VsZWN0ZWQgb3B0aW9uICovXHJcbiAgY2xlYXJTZWxlY3QoJGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfSAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbiA9IG51bGw7IC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuVmFsdWUgPSBudWxsOyAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqIGNsaWNrIGRyb3Bkb3duIG9wdGlvbiBieSB1c2VyICovXHJcbiAgY2xpY2tPcHRpb24ob3B0aW9uOiBNZWZEZXZPcHRpb25Db21wb25lbnQsICRldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghb3B0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY2hvb3NlT3B0aW9uKG9wdGlvbiwgdHJ1ZSwgJGV2ZW50KTtcclxuICAgIHRoaXMuY2xlYXJTZWFyY2hUZXh0KCk7XHJcbiAgICBpZiAoIXRoaXMuX2lzTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5PcGVuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogY2hvb3NlIG9wdGlvbiAqL1xyXG4gIGNob29zZU9wdGlvbihcclxuICAgIG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50LFxyXG4gICAgaXNVc2VyQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICRldmVudD86IE1vdXNlRXZlbnRcclxuICApOiB2b2lkIHtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5EaXNhYmxlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IG9wdGlvbi5WYWx1ZTtcclxuICAgICAgICBpZiAoaXNVc2VyQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLm5leHQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShvcHRpb24uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXNVc2VyQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuaXNJblNldCh0aGlzLl9zZWxlY3RlZE9wdGlvbnMsIG9wdGlvbilcclxuICAgICAgICAgICAgPyB0aGlzLnVuU2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uKVxyXG4gICAgICAgICAgICA6IHRoaXMuc2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVdpZHRoKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRleHQpIHtcclxuICAgICAgLyoqIHdhaXQgZm9yIHNjcm9sbCB3aWR0aCBjaGFuZ2UgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsIFwid2lkdGhcIiwgYCR7ZWxlbWVudC5zY3JvbGxXaWR0aH1weGApO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKGVsZW1lbnQsIFwid2lkdGhcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogZGV0ZXJtaW5lIGlmIG9wdGlvbiBpbiBzZXQgKi9cclxuICBpc0luU2V0KFxyXG4gICAgc2V0OiBTZXQ8TWVmRGV2T3B0aW9uQ29tcG9uZW50PixcclxuICAgIG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50XHJcbiAgKTogTWVmRGV2T3B0aW9uQ29tcG9uZW50IHsgLy8gQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIChBcnJheS5mcm9tKHNldCkgYXMgTWVmRGV2T3B0aW9uQ29tcG9uZW50W10pLmZpbmQoXHJcbiAgICAgIChkYXRhOiBNZWZEZXZPcHRpb25Db21wb25lbnQpID0+IGRhdGEuVmFsdWUgPT09IG9wdGlvbi5WYWx1ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBjYW5jZWwgc2VsZWN0IG11bHRpcGxlIG9wdGlvbiAqLyAvLyBAdHMtaWdub3JlXHJcbiAgdW5TZWxlY3RNdWx0aXBsZU9wdGlvbiA9IChvcHRpb24sICRldmVudD8sIGVtaXRDaGFuZ2UgPSB0cnVlKSA9PiB7XHJcbiAgICB0aGlzLl9vcGVyYXRpbmdNdWx0aXBsZU9wdGlvbiA9IG9wdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5kZWxldGUob3B0aW9uKTtcclxuICAgIGlmIChlbWl0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuZW1pdE11bHRpcGxlT3B0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWvuVRhZ+i/m+ihjOeJueauiuWkhOeQhlxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLl9pc1RhZ3MgJiZcclxuICAgICAgdGhpcy5fb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgIT09IC0xICYmXHJcbiAgICAgIHRoaXMuX3RhZ3NPcHRpb25zLmluZGV4T2Yob3B0aW9uKSAhPT0gLTFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZU9wdGlvbihvcHRpb24pO1xyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5zcGxpY2UodGhpcy5fdGFnc09wdGlvbnMuaW5kZXhPZihvcHRpb24pLCAxKTtcclxuICAgIH1cclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKiogc2VsZWN0IG11bHRpcGxlIG9wdGlvbiAqL1xyXG4gIHNlbGVjdE11bHRpcGxlT3B0aW9uKG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50LCAkZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAvKiogaWYgdGFncyBkbyBwdXNoIHRvIHRhZyBvcHRpb24gKi9cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5faXNUYWdzICYmXHJcbiAgICAgIHRoaXMuX29wdGlvbnMuaW5kZXhPZihvcHRpb24pID09PSAtMSAmJlxyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5pbmRleE9mKG9wdGlvbikgPT09IC0xXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hZGRPcHRpb24ob3B0aW9uKTtcclxuICAgICAgdGhpcy5fdGFnc09wdGlvbnMucHVzaChvcHRpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3BlcmF0aW5nTXVsdGlwbGVPcHRpb24gPSBvcHRpb247XHJcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRPcHRpb25zLnNpemUgPCB0aGlzLk1heE11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdE11bHRpcGxlT3B0aW9ucygpO1xyXG5cclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBlbWl0IG11bHRpcGxlIG9wdGlvbnMgKi9cclxuICBlbWl0TXVsdGlwbGVPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlJbml0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGFycmF5T3B0aW9ucyA9IEFycmF5LmZyb20odGhpcy5fc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIHRoaXMuX3ZhbHVlID0gYXJyYXlPcHRpb25zLm1hcChpdGVtID0+IGl0ZW0uVmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogdXBkYXRlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIGFkZCByZW1vdmUgb3B0aW9uIGV0YyAqL1xyXG4gIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKFxyXG4gICAgY3VycmVudE1vZGVsVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxyXG4gICAgdHJpZ2dlckJ5TmdNb2RlbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoY3VycmVudE1vZGVsVmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIGN1cnJlbnRNb2RlbFZhbHVlLmluZGV4T2YoaXRlbS5WYWx1ZSkgIT09IC0xO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCh0aGlzLktlZXBVbkxpc3RPcHRpb25zIHx8IHRoaXMuVGFncykgJiYgIXRyaWdnZXJCeU5nTW9kZWwpIHtcclxuICAgICAgICBjb25zdCBfc2VsZWN0ZWRPcHRpb25zID0gQXJyYXkuZnJvbSh0aGlzLl9zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBfZXhpc3QgPSBfc2VsZWN0ZWRPcHRpb25zLnNvbWUoXHJcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5fdmFsdWUgPT0gb3B0aW9uLl92YWx1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmICghX2V4aXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLl9vcHRpb25zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIGl0ZW0uVmFsdWUgPT0gY3VycmVudE1vZGVsVmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNob29zZU9wdGlvbihzZWxlY3RlZE9wdGlvblswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgLyoqIHRyaWdnZXIgZGlydHkgY2hlY2sgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih2YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBWYWx1ZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgVmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbFNlbGVjdGVkT3B0aW9uKGVtaXRDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgdGhpcy51blNlbGVjdE11bHRpcGxlT3B0aW9uKGl0ZW0sIG51bGwsIGVtaXRDaGFuZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlFbnRlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvKiogd2hlbiBjb21wb3NpbmcgZW5kICovXHJcbiAgICBpZiAoIXRoaXMuX2NvbXBvc2luZyAmJiB0aGlzLl9pc09wZW4pIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKGZhbHNlKTtcclxuICAgICAgdGhpcy5jbGlja09wdGlvbih0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5QmFja3NwYWNlRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fc2VhcmNoVGV4dCAmJiAhdGhpcy5fY29tcG9zaW5nICYmIHRoaXMuX2lzTXVsdGlwbGUpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgY29uc3QgbGFzdE9wdGlvbiA9IEFycmF5LmZyb20odGhpcy5fc2VsZWN0ZWRPcHRpb25zKS5wb3AoKTtcclxuICAgICAgdGhpcy51blNlbGVjdE11bHRpcGxlT3B0aW9uKGxhc3RPcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bkV2ZW50KCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzT3Blbikge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24gPSB0aGlzLm5leHRPcHRpb24oXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uLFxyXG4gICAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMuZmlsdGVyKHcgPT4gIXcuRGlzYWJsZWQpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleVVwRXZlbnQoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuKSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IHRoaXMucHJlT3B0aW9uKFxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbixcclxuICAgICAgICB0aGlzLl9maWx0ZXJPcHRpb25zLmZpbHRlcih3ID0+ICF3LkRpc2FibGVkKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcmVPcHRpb24oXHJcbiAgICBvcHRpb246IE1lZkRldk9wdGlvbkNvbXBvbmVudCxcclxuICAgIG9wdGlvbnM6IE1lZkRldk9wdGlvbkNvbXBvbmVudFtdXHJcbiAgKTogTWVmRGV2T3B0aW9uQ29tcG9uZW50IHtcclxuICAgIHJldHVybiBvcHRpb25zW29wdGlvbnMuaW5kZXhPZihvcHRpb24pIC0gMV0gfHwgb3B0aW9uc1tvcHRpb25zLmxlbmd0aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgbmV4dE9wdGlvbihcclxuICAgIG9wdGlvbjogTWVmRGV2T3B0aW9uQ29tcG9uZW50LFxyXG4gICAgb3B0aW9uczogTWVmRGV2T3B0aW9uQ29tcG9uZW50W11cclxuICApOiBNZWZEZXZPcHRpb25Db21wb25lbnQge1xyXG4gICAgcmV0dXJuIG9wdGlvbnNbb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgKyAxXSB8fCBvcHRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2hUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VhcmNoVGV4dCA9IFwiXCI7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRmlsdGVyT3B0aW9uKHVwZGF0ZUFjdGl2ZUZpbHRlcjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZpbHRlcikge1xyXG4gICAgICB0aGlzLl9maWx0ZXJPcHRpb25zID0gbmV3IE9wdGlvblBpcGUoKS50cmFuc2Zvcm0odGhpcy5fb3B0aW9ucywge1xyXG4gICAgICAgIHNlYXJjaFRleHQ6IHRoaXMuX3NlYXJjaFRleHQsXHJcbiAgICAgICAgdGFnczogdGhpcy5faXNUYWdzLFxyXG4gICAgICAgIG5vdEZvdW5kQ29udGVudDogdGhpcy5faXNUYWdzXHJcbiAgICAgICAgICA/IHRoaXMuX3NlYXJjaFRleHRcclxuICAgICAgICAgIDogdGhpcy5fbm90Rm91bmRDb250ZW50LFxyXG4gICAgICAgIGRpc2FibGVkOiAhdGhpcy5faXNUYWdzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl9pc1RhZ3MgPyB0aGlzLl9zZWFyY2hUZXh0IDogXCJkaXNhYmxlZFwiXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZmlsdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRPRE86IGNhdXNlIHByZSAmIG5leHQga2V5IHNlbGVjdGlvbiBub3Qgd29yayAqL1xyXG4gICAgaWYgKHVwZGF0ZUFjdGl2ZUZpbHRlciAmJiAhdGhpcy5fc2VsZWN0ZWRPcHRpb24pIHtcclxuICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uID0gdGhpcy5fZmlsdGVyT3B0aW9uc1swXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuU2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBvbkNsaWNrKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5PcGVuID0gIXRoaXMuT3BlbjtcclxuICAgICAgaWYgKHRoaXMuU2hvd1NlYXJjaCkge1xyXG4gICAgICAgIC8qKiB3YWl0IGZvciBzZWFyY2ggZGlzcGxheSAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXlDb2RlID0gZS5rZXlDb2RlO1xyXG4gICAgaWYgKGtleUNvZGUgPT09IFRBQiAmJiB0aGlzLk9wZW4pIHtcclxuICAgICAgdGhpcy5PcGVuID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICgoa2V5Q29kZSAhPT0gRE9XTl9BUlJPVyAmJiBrZXlDb2RlICE9PSBFTlRFUikgfHwgdGhpcy5PcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5PcGVuID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMuU2hvd1NlYXJjaCkge1xyXG4gICAgICAgIC8qKiB3YWl0IGZvciBzZWFyY2ggZGlzcGxheSAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wRG93bigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5PcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICBpZiAodGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZShcclxuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIFwid2lkdGhcIlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGVhclNlYXJjaFRleHQoKTtcclxuICAgIHRoaXMuT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jbGFzc0xpc3QuZm9yRWFjaChfY2xhc3NOYW1lID0+IHtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWwsIF9jbGFzc05hbWUpO1xyXG4gICAgfSk7IC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuX2NsYXNzTGlzdCA9IFtcclxuICAgICAgdGhpcy5fcHJlZml4Q2xzLFxyXG4gICAgICB0aGlzLl9tb2RlID09PSBcImNvbWJvYm94XCIgJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1jb21ib2JveGAsXHJcbiAgICAgICF0aGlzLl9kaXNhYmxlZCAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LWVuYWJsZWRgLFxyXG4gICAgICB0aGlzLl9kaXNhYmxlZCAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LWRpc2FibGVkYCxcclxuICAgICAgdGhpcy5faXNPcGVuICYmIGAke3RoaXMuX3ByZWZpeENsc30tb3BlbmAsXHJcbiAgICAgIHRoaXMuX3Nob3dTZWFyY2ggJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1zaG93LXNlYXJjaGAsXHJcbiAgICAgIHRoaXMuX3NpemUgJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS0ke3RoaXMuX3NpemV9YFxyXG4gICAgXS5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIHJldHVybiAhIWl0ZW07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2NsYXNzTGlzdC5mb3JFYWNoKF9jbGFzc05hbWUgPT4ge1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbCwgX2NsYXNzTmFtZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3NlbGVjdGlvbkNsYXNzTWFwID0ge1xyXG4gICAgICBbdGhpcy5fc2VsZWN0aW9uUHJlZml4Q2xzXTogdHJ1ZSxcclxuICAgICAgW2Ake3RoaXMuX3NlbGVjdGlvblByZWZpeENsc30tLXNpbmdsZWBdOiAhdGhpcy5NdWx0aXBsZSxcclxuICAgICAgW2Ake3RoaXMuX3NlbGVjdGlvblByZWZpeENsc30tLW11bHRpcGxlYF06IHRoaXMuTXVsdGlwbGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXREcm9wRG93bkNsYXNzTWFwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZHJvcERvd25DbGFzc01hcCA9IHtcclxuICAgICAgW3RoaXMuX2Ryb3BEb3duUHJlZml4Q2xzXTogdHJ1ZSxcclxuICAgICAgW1wiY29tcG9uZW50LXNlbGVjdFwiXTogdGhpcy5fbW9kZSA9PT0gXCJjb21ib2JveFwiLFxyXG4gICAgICBbYCR7dGhpcy5fZHJvcERvd25QcmVmaXhDbHN9LS1zaW5nbGVgXTogIXRoaXMuTXVsdGlwbGUsXHJcbiAgICAgIFtgJHt0aGlzLl9kcm9wRG93blByZWZpeENsc30tLW11bHRpcGxlYF06IHRoaXMuTXVsdGlwbGUsXHJcbiAgICAgIFtgJHt0aGlzLl9kcm9wRG93blByZWZpeENsc30tcGxhY2VtZW50LWJvdHRvbUxlZnRgXTpcclxuICAgICAgICB0aGlzLl9kcm9wRG93blBvc2l0aW9uID09PSBcImJvdHRvbVwiLFxyXG4gICAgICBbYCR7dGhpcy5fZHJvcERvd25QcmVmaXhDbHN9LXBsYWNlbWVudC10b3BMZWZ0YF06XHJcbiAgICAgICAgdGhpcy5fZHJvcERvd25Qb3NpdGlvbiA9PT0gXCJ0b3BcIlxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNjcm9sbFRvQWN0aXZlKCk6IHZvaWQge1xyXG4gICAgLyoqIHdhaXQgZm9yIGRyb3Bkb3duIGRpc3BsYXkgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgaWYgKHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiAmJiB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24uVmFsdWUpIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2ZpbHRlck9wdGlvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgb3B0aW9uID0+IG9wdGlvbi5WYWx1ZSA9PT0gdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uLlZhbHVlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3Qgc2Nyb2xsUGFuZSA9IHRoaXMuZHJvcGRvd25VbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW1xyXG4gICAgICAgICAgICBpbmRleFxyXG4gICAgICAgICAgXSBhcyBIVE1MTElFbGVtZW50O1xyXG4gICAgICAgICAgLy8gVE9ETzogc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCBpcyBub3QgYSBzdGFuZGFyZCBBUEksIHdoeSBkb2luZyBzbz9cclxuICAgICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICAgICAgICAgIChzY3JvbGxQYW5lIGFzIGFueSkuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChmYWxzZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge31cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmbHVzaENvbXBvbmVudFN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oKTtcclxuICAgIGlmICghdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl92YWx1ZSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfc2V0VHJpZ2dlcldpZHRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJpZ2dlcldpZHRoID0gdGhpcy5fZ2V0VHJpZ2dlclJlY3QoKS53aWR0aDtcclxuICAgIC8qKiBzaG91bGQgcmVtb3ZlIGFmdGVyIGFmdGVyIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMi9wdWxsLzg3NjUgbWVyZ2VkICoqL1xyXG4gICAgaWYgKHRoaXMuX2Nka092ZXJsYXkgJiYgdGhpcy5fY2RrT3ZlcmxheS5vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX2Nka092ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVTaXplKHtcclxuICAgICAgICB3aWR0aDogdGhpcy5fdHJpZ2dlcldpZHRoXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2dldFRyaWdnZXJSZWN0KCk6IENsaWVudFJlY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5EaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBkcm9wRG93blNjcm9sbCh1bDogSFRNTFVMaXN0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKHVsICYmIHVsLnNjcm9sbEhlaWdodCAtIHVsLnNjcm9sbFRvcCA9PT0gdWwuY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuU2Nyb2xsVG9Cb3R0b20uZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrRHJvcERvd25TY3JvbGwoKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZHJvcGRvd25VbCAmJlxyXG4gICAgICB0aGlzLmRyb3Bkb3duVWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgPT09XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5TY3JvbGxUb0JvdHRvbS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgY0RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9lbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl92YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZmx1c2hDb21wb25lbnRTdGF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbigpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXREcm9wRG93bkNsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fY2FjaGVPcHRpb25zICE9PSB0aGlzLl9vcHRpb25zKSB7XHJcbiAgICAgIC8qKiB1cGRhdGUgZmlsdGVyIG9wdGlvbiBhZnRlciBldmVyeSBjb250ZW50IGNoZWNrIGN5Y2xlICovXHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKCk7XHJcbiAgICAgIHRoaXMuX2NhY2hlT3B0aW9ucyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbihmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuRmlyc3REZWZhdWx0KSB7XHJcbiAgICAgIGlmICghdGhpcy5fdmFsdWUgJiYgdGhpcy5fb3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zWzBdICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fb3B0aW9uc1swXS5WYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5jaG9vc2VPcHRpb24odGhpcy5fb3B0aW9uc1swXSwgZmFsc2UpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fb3B0aW9uc1swXS5WYWx1ZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKFxyXG4gICAgdmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nLFxyXG4gICAgZW1pdENoYW5nZTogYm9vbGVhbiA9IHRydWVcclxuICApOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkgeyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsU2VsZWN0ZWRPcHRpb24oZW1pdENoYW5nZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWUsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhckFsbFNlbGVjdGVkT3B0aW9uKGVtaXRDaGFuZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgdGFiaW5kZXg9XCIwXCIgI3RyaWdnZXIgY2RrT3ZlcmxheU9yaWdpbiAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiIFtuZ0NsYXNzXT1cIl9zZWxlY3Rpb25DbGFzc01hcFwiXHJcbiAgKGtleWRvd24uRW50ZXIpPVwiaGFuZGxlS2V5RW50ZXJFdmVudCgkZXZlbnQpXCIgKGtleWRvd24uQmFja3NwYWNlKT1cImhhbmRsZUtleUJhY2tzcGFjZUV2ZW50KCRldmVudClcIlxyXG4gIChrZXlkb3duLkFycm93VXApPVwiaGFuZGxlS2V5VXBFdmVudCgkZXZlbnQpXCIgKGtleWRvd24uQXJyb3dEb3duKT1cImhhbmRsZUtleURvd25FdmVudCgkZXZlbnQpXCI+XHJcblxyXG4gICAgPCEtLSDQo9Cy0LXRgdGMINGB0LXQu9C10LrRgi0tPlxyXG4gIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19yZW5kZXJlZFwiICpuZ0lmPVwiIVNob3dTZWFyY2hcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19wbGFjZWhvbGRlclwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIV9zZWxlY3RlZE9wdGlvblwiPlxyXG4gICAgICAgIHt7IFBsYWNlSG9sZGVyIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uLXNlbGVjdGVkLXZhbHVlXCI+XHJcbiAgICAgIHt7IF9zZWxlY3RlZE9wdGlvbj8uTGFiZWwgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS1D0L/QuNGB0L7QuiBvcHRpb25zLS0+XHJcbiAgPGRpdiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX3JlbmRlcmVkXCIgKm5nSWY9XCJTaG93U2VhcmNoXCI+XHJcbiAgICA8ZGl2IFtoaWRkZW5dPVwiX3NlYXJjaFRleHR8fCghT3BlbiYmX3NlbGVjdGVkT3B0aW9uKXx8X3NlbGVjdGVkT3B0aW9ucy5zaXplXCJcclxuICAgICAgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19wbGFjZWhvbGRlclwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiKCFfY29tcG9zaW5nKSYmX3NlbGVjdGVkT3B0aW9uXCI+XHJcbiAgICAgICAge3sgX3NlbGVjdGVkT3B0aW9uLkxhYmVsIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIoIV9jb21wb3NpbmcpJiYoIV9zZWxlY3RlZE9wdGlvbilcIj5cclxuICAgICAgICB7eyBQbGFjZUhvbGRlciB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS3QnNGD0LvRjNGC0LjRgdC10LvQtdC60YItLT5cclxuICAgIDx1bCAqbmdJZj1cIk11bHRpcGxlXCI+IFxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBfc2VsZWN0ZWRPcHRpb25zXCIgW0B0YWdBbmltYXRpb25dIFthdHRyLnRpdGxlXT1cIm9wdGlvbj8uTGFiZWwgfHwgb3B0aW9uPy5WYWx1ZVwiXHJcbiAgICAgICAgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jaG9pY2VcIiBzdHlsZT1cIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jaG9pY2VfX3JlbW92ZVwiIChjbGljayk9XCJ1blNlbGVjdE11bHRpcGxlT3B0aW9uKG9wdGlvbiwkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jaG9pY2VfX2NvbnRlbnRcIj57eyBvcHRpb24/LkxhYmVsIH19PC9kaXY+XHJcbiAgICAgIDwvbGk+XHJcbiAgICAgIDxsaSBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2ggcGctc2VsZWN0LXNlYXJjaC0taW5saW5lXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX193cmFwXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZFwiIChjb21wb3NpdGlvbnN0YXJ0KT1cImNvbXBvc2l0aW9uU3RhcnQoKVwiXHJcbiAgICAgICAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJjb21wb3NpdGlvbkVuZCgpO3VwZGF0ZVdpZHRoKHNlYXJjaElucHV0LF9zZWFyY2hUZXh0KTtcIiBbKG5nTW9kZWwpXT1cIl9zZWFyY2hUZXh0XCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyT3B0aW9uKCk7b25TZWFyY2hDaGFuZ2UoJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJ1cGRhdGVXaWR0aChzZWFyY2hJbnB1dCxfc2VhcmNoVGV4dClcIiAoaW5wdXQpPVwidXBkYXRlV2lkdGgoc2VhcmNoSW5wdXQsX3NlYXJjaFRleHQpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIiAjc2VhcmNoSW5wdXQ+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX19taXJyb3JcIj48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFNdWx0aXBsZVwiIGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbi1zZWxlY3RlZC12YWx1ZVwiIFtoaWRkZW5dPVwiIShfc2VsZWN0ZWRPcHRpb24/LkxhYmVsKXx8T3BlblwiPlxyXG4gICAgICB7eyBfc2VsZWN0ZWRPcHRpb24/LkxhYmVsIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhTXVsdGlwbGVcIiBbaGlkZGVuXT1cIiFPcGVuXCIgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoIHBnLXNlbGVjdC1zZWFyY2gtLWlubGluZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRfX3dyYXBcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZFwiIChibHVyKT1cIm9uVG91Y2hlZCgpXCIgKGNvbXBvc2l0aW9uc3RhcnQpPVwiY29tcG9zaXRpb25TdGFydCgpXCJcclxuICAgICAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJjb21wb3NpdGlvbkVuZCgpXCIgWyhuZ01vZGVsKV09XCJfc2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJPcHRpb24oKTtvblNlYXJjaENoYW5nZSgkZXZlbnQpO1wiICNzZWFyY2hJbnB1dD5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX19taXJyb3JcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gKGNsaWNrKT1cIm9uVG91Y2hlZCgpO2NsZWFyU2VsZWN0KCRldmVudClcIiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX2NsZWFyXCIgc3R5bGU9XCItd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1wiXHJcbiAgICAqbmdJZj1cIl9zZWxlY3RlZE9wdGlvbj8uTGFiZWwmJkFsbG93Q2xlYXImJiFNdWx0aXBsZVwiPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1hcnJvd1wiPjxiPjwvYj48L3NwYW4+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgY2RrQ29ubmVjdGVkT3ZlcmxheSBjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3AgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3JpZ2luXCJcclxuICAoYmFja2Ryb3BDbGljayk9XCJjbG9zZURyb3BEb3duKClcIiAoZGV0YWNoKT1cImNsb3NlRHJvcERvd24oKTtcIiAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIl90cmlnZ2VyV2lkdGhcIiBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiX2lzT3BlblwiPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwiX2Ryb3BEb3duQ2xhc3NNYXBcIiBbQGRyb3BEb3duQW5pbWF0aW9uXT1cIl9kcm9wRG93blBvc2l0aW9uXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwib3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cInBnLXNlbGVjdC1kcm9wZG93bi1tZW51IHBnLXNlbGVjdC1kcm9wZG93bi1tZW51LXZlcnRpY2FsIHBnLXNlbGVjdC1kcm9wZG93bi1tZW51LXJvb3RcIiAjZHJvcGRvd25VbFxyXG4gICAgICAgIChzY3JvbGwpPVwiZHJvcERvd25TY3JvbGwoZHJvcGRvd25VbClcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBfZmlsdGVyT3B0aW9uc1wiIFtjbGFzcy5wZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtLWRpc2FibGVkXT1cIm9wdGlvbi5EaXNhYmxlZFwiXHJcbiAgICAgICAgICBbY2xhc3MucGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtaXRlbS1hY3RpdmVdPVwib3B0aW9uLlZhbHVlID09IF9hY3RpdmVGaWx0ZXJPcHRpb24/LlZhbHVlXCJcclxuICAgICAgICAgIFtjbGFzcy5wZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtLXNlbGVjdGVkXT1cIihvcHRpb24uVmFsdWU9PShfc2VsZWN0ZWRPcHRpb24/LlZhbHVlKSl8fChpc0luU2V0KF9zZWxlY3RlZE9wdGlvbnMsb3B0aW9uKSlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJwZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtXCIgKGNsaWNrKT1cImNsaWNrT3B0aW9uKG9wdGlvbiwkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb24uT3B0aW9uVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb24uT3B0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIW9wdGlvbi5PcHRpb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24uTGFiZWwgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -7,11 +7,11 @@ import { OptionPipe } from "./option.pipe";
|
|
|
7
7
|
import { MefDevSelectComponent } from "./select.component";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class MefDevSelectModule {
|
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
11
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
12
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MefDevSelectModule, declarations: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent], imports: [CommonModule, FormsModule, OverlayModule], exports: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent] });
|
|
12
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevSelectModule, imports: [CommonModule, FormsModule, OverlayModule] });
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevSelectModule, decorators: [{
|
|
15
15
|
type: NgModule,
|
|
16
16
|
args: [{
|
|
17
17
|
imports: [CommonModule, FormsModule, OverlayModule],
|
|
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
19
19
|
exports: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent]
|
|
20
20
|
}]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPM0QsTUFBTSxPQUFPLGtCQUFrQjt3R0FBbEIsa0JBQWtCO3lHQUFsQixrQkFBa0IsaUJBSGQsVUFBVSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixhQUQ3RCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsYUFFeEMsVUFBVSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjt5R0FFdkQsa0JBQWtCLFlBSm5CLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYTs7NEZBSXZDLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQztvQkFDbkQsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO29CQUN4RSxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7aUJBQ3BFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWVmRGV2T3B0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vb3B0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPcHRpb25QaXBlIH0gZnJvbSBcIi4vb3B0aW9uLnBpcGVcIjtcclxuaW1wb3J0IHsgTWVmRGV2U2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc2VsZWN0LmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgT3ZlcmxheU1vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbT3B0aW9uUGlwZSwgTWVmRGV2T3B0aW9uQ29tcG9uZW50LCBNZWZEZXZTZWxlY3RDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtPcHRpb25QaXBlLCBNZWZEZXZPcHRpb25Db21wb25lbnQsIE1lZkRldlNlbGVjdENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lZkRldlNlbGVjdE1vZHVsZSB7fVxyXG4iXX0=
|