@morozeckiy/dd-lib 0.2.22 → 0.2.25
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/assets/images/png/404-d.png +0 -0
- package/assets/images/png/404.png +0 -0
- package/assets/images/png/error-page-d.png +0 -0
- package/assets/images/png/error-page.png +0 -0
- package/assets/images/png/iphone.png +0 -0
- package/assets/images/png/not-found-d.png +0 -0
- package/assets/images/png/not-found.png +0 -0
- package/assets/images/png/tech-works-d.png +0 -0
- package/assets/images/png/tech-works.png +0 -0
- package/assets/scss/theme.scss +40 -0
- package/assets/scss/titles.scss +9 -0
- package/esm2022/lib/components/data-empty/data-empty.component.mjs +3 -3
- package/esm2022/lib/components/error-page/error-page.component.mjs +3 -3
- package/esm2022/lib/components/main-shared/main-shared.component.mjs +3 -3
- package/esm2022/lib/components/not-found/not-found.component.mjs +3 -3
- package/esm2022/lib/components/tech-works/tech-works.component.mjs +3 -3
- package/esm2022/lib/lib-filter/lib-filter.component.mjs +3 -3
- package/esm2022/lib/lib-search-input/lib-search-input.component.mjs +78 -3
- package/esm2022/lib/lib-select/lib-select.component.mjs +2 -2
- package/fesm2022/morozeckiy-dd-lib.mjs +90 -15
- package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
- package/lib/lib-search-input/lib-search-input.component.d.ts +74 -5
- package/morozeckiy-dd-lib-0.2.25.tgz +0 -0
- package/package.json +1 -1
- package/assets/images/png/error-bage.png +0 -0
- package/morozeckiy-dd-lib-0.2.22.tgz +0 -0
|
@@ -15,15 +15,15 @@ export class LibFilterComponent {
|
|
|
15
15
|
this.renderer.setStyle(this.document.body, 'overflow', this.hideFilter ? '' : 'hidden');
|
|
16
16
|
}
|
|
17
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFilterComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibFilterComponent, isStandalone: true, selector: "dd-lib-filter", outputs: { resetEvent: "resetEvent" }, ngImport: i0, template: "<div class=\"filter\">\r\n <div class=\"filter__block\" [ngClass]=\"{ 'hide-tablet': hideFilter }\">\r\n <div class=\"filter__head\">\r\n <div class=\"filter__back g-h5-title d-flex align-center cup\" (click)=\"toggleFilter()\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <span class=\"ml-16\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</span>\r\n </div>\r\n <div class=\"g-text green cup\" (click)=\"resetEvent.emit()\">\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"filter__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"show-tablet\" (click)=\"toggleFilter()\">\r\n <div class=\"
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibFilterComponent, isStandalone: true, selector: "dd-lib-filter", outputs: { resetEvent: "resetEvent" }, ngImport: i0, template: "<div class=\"filter\">\r\n <div class=\"filter__block\" [ngClass]=\"{ 'hide-tablet': hideFilter }\">\r\n <div class=\"filter__head\">\r\n <div class=\"filter__back g-h5-title d-flex align-center cup\" (click)=\"toggleFilter()\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <span class=\"ml-16\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</span>\r\n </div>\r\n <div class=\"g-text green cup\" (click)=\"resetEvent.emit()\">\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"filter__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"show-tablet\" (click)=\"toggleFilter()\">\r\n <div class=\"d-flex align-center cup\">\r\n <dd-lib-svg-icon icon=\"filter\"></dd-lib-svg-icon>\r\n <div class=\"filter__txt g-text green ml-12 m-ml-8\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@media screen and (max-width: 840px){.filter__block{position:fixed;top:0;left:0;width:100%;height:100%;z-index:300;display:block;background-color:var(--white-color)}}.filter__head{display:none}@media screen and (max-width: 840px){.filter__head{display:flex;align-items:center;justify-content:space-between;padding:24px 16px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.filter__head{padding:16px}}.filter__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.filter__body{display:flex}@media screen and (max-width: 840px){.filter__body{display:block;padding-left:16px;padding-right:16px;overflow:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
19
|
}
|
|
20
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFilterComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
|
-
args: [{ selector: 'dd-lib-filter', standalone: true, imports: [CommonModule, LibSvgIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter\">\r\n <div class=\"filter__block\" [ngClass]=\"{ 'hide-tablet': hideFilter }\">\r\n <div class=\"filter__head\">\r\n <div class=\"filter__back g-h5-title d-flex align-center cup\" (click)=\"toggleFilter()\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <span class=\"ml-16\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</span>\r\n </div>\r\n <div class=\"g-text green cup\" (click)=\"resetEvent.emit()\">\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"filter__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"show-tablet\" (click)=\"toggleFilter()\">\r\n <div class=\"
|
|
22
|
+
args: [{ selector: 'dd-lib-filter', standalone: true, imports: [CommonModule, LibSvgIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter\">\r\n <div class=\"filter__block\" [ngClass]=\"{ 'hide-tablet': hideFilter }\">\r\n <div class=\"filter__head\">\r\n <div class=\"filter__back g-h5-title d-flex align-center cup\" (click)=\"toggleFilter()\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <span class=\"ml-16\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</span>\r\n </div>\r\n <div class=\"g-text green cup\" (click)=\"resetEvent.emit()\">\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"filter__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"show-tablet\" (click)=\"toggleFilter()\">\r\n <div class=\"d-flex align-center cup\">\r\n <dd-lib-svg-icon icon=\"filter\"></dd-lib-svg-icon>\r\n <div class=\"filter__txt g-text green ml-12 m-ml-8\">\u0424\u0438\u043B\u044C\u0442\u0440\u044B</div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@media screen and (max-width: 840px){.filter__block{position:fixed;top:0;left:0;width:100%;height:100%;z-index:300;display:block;background-color:var(--white-color)}}.filter__head{display:none}@media screen and (max-width: 840px){.filter__head{display:flex;align-items:center;justify-content:space-between;padding:24px 16px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.filter__head{padding:16px}}.filter__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.filter__body{display:flex}@media screen and (max-width: 840px){.filter__body{display:block;padding-left:16px;padding-right:16px;overflow:auto}}\n"] }]
|
|
23
23
|
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
24
24
|
type: Inject,
|
|
25
25
|
args: [DOCUMENT]
|
|
26
26
|
}] }, { type: i0.Renderer2 }], propDecorators: { resetEvent: [{
|
|
27
27
|
type: Output
|
|
28
28
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItZmlsdGVyL2xpYi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWZpbHRlci9saWItZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBVTNFLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFDNEIsUUFBa0IsRUFDcEMsUUFBbUI7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFMdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNSLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBSzlDLENBQUM7SUFFRyxZQUFZO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFGLENBQUM7OEdBWlUsa0JBQWtCLGtCQUtuQixRQUFRO2tHQUxQLGtCQUFrQixnSENaL0IsdzhCQW9CQSw2ckJEYlksWUFBWSw2SEFBRSxtQkFBbUI7OzJGQUtoQyxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBTzVDLE1BQU07MkJBQUMsUUFBUTtpRUFIRCxVQUFVO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIFJlbmRlcmVyMiwgRXZlbnRFbWl0dGVyLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TGliU3ZnSWNvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1zdmctaWNvbi9saWItc3ZnLWljb24uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1maWx0ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGliU3ZnSWNvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saWItZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYkZpbHRlckNvbXBvbmVudCB7XHJcbiAgcHVibGljIGhpZGVGaWx0ZXIgPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVzZXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGVGaWx0ZXIgPSAhdGhpcy5oaWRlRmlsdGVyO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksICdvdmVyZmxvdycsIHRoaXMuaGlkZUZpbHRlciA/ICcnIDogJ2hpZGRlbicpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlcl9fYmxvY2tcIiBbbmdDbGFzc109XCJ7ICdoaWRlLXRhYmxldCc6IGhpZGVGaWx0ZXIgfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlcl9faGVhZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyX19iYWNrIGctaDUtdGl0bGUgZC1mbGV4IGFsaWduLWNlbnRlciBjdXBcIiAoY2xpY2spPVwidG9nZ2xlRmlsdGVyKClcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIGljb249XCJ0b2dnbGVfYXJyb3dfbGVmdFwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMTZcIj7QpNC40LvRjNGC0YDRizwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJnLXRleHQgZ3JlZW4gY3VwXCIgKGNsaWNrKT1cInJlc2V0RXZlbnQuZW1pdCgpXCI+0J7Rh9C40YHRgtC40YLRjDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyX19ib2R5XCI+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItZmlsdGVyL2xpYi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWZpbHRlci9saWItZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBVTNFLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFDNEIsUUFBa0IsRUFDcEMsUUFBbUI7UUFERCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFMdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNSLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBSzlDLENBQUM7SUFFRyxZQUFZO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFGLENBQUM7OEdBWlUsa0JBQWtCLGtCQUtuQixRQUFRO2tHQUxQLGtCQUFrQixnSENaL0IsdzhCQW9CQSw2ckJEYlksWUFBWSw2SEFBRSxtQkFBbUI7OzJGQUtoQyxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBTzVDLE1BQU07MkJBQUMsUUFBUTtpRUFIRCxVQUFVO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIFJlbmRlcmVyMiwgRXZlbnRFbWl0dGVyLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TGliU3ZnSWNvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1zdmctaWNvbi9saWItc3ZnLWljb24uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1maWx0ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGliU3ZnSWNvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saWItZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYkZpbHRlckNvbXBvbmVudCB7XHJcbiAgcHVibGljIGhpZGVGaWx0ZXIgPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVzZXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGVGaWx0ZXIgPSAhdGhpcy5oaWRlRmlsdGVyO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksICdvdmVyZmxvdycsIHRoaXMuaGlkZUZpbHRlciA/ICcnIDogJ2hpZGRlbicpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlcl9fYmxvY2tcIiBbbmdDbGFzc109XCJ7ICdoaWRlLXRhYmxldCc6IGhpZGVGaWx0ZXIgfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlcl9faGVhZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyX19iYWNrIGctaDUtdGl0bGUgZC1mbGV4IGFsaWduLWNlbnRlciBjdXBcIiAoY2xpY2spPVwidG9nZ2xlRmlsdGVyKClcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIGljb249XCJ0b2dnbGVfYXJyb3dfbGVmdFwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMTZcIj7QpNC40LvRjNGC0YDRizwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJnLXRleHQgZ3JlZW4gY3VwXCIgKGNsaWNrKT1cInJlc2V0RXZlbnQuZW1pdCgpXCI+0J7Rh9C40YHRgtC40YLRjDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyX19ib2R5XCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzaG93LXRhYmxldFwiIChjbGljayk9XCJ0b2dnbGVGaWx0ZXIoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1jZW50ZXIgY3VwXCI+XHJcbiAgICAgIDxkZC1saWItc3ZnLWljb24gaWNvbj1cImZpbHRlclwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyX190eHQgZy10ZXh0IGdyZWVuIG1sLTEyIG0tbWwtOFwiPtCk0LjQu9GM0YLRgNGLPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,3 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Входные параметры (Input)
|
|
3
|
+
* keyTitle (default: 'title')
|
|
4
|
+
* Тип: string
|
|
5
|
+
* Описание: Наименование ключа для получения заголовка элемента данных.
|
|
6
|
+
*
|
|
7
|
+
* keyDesc (default: 'description')
|
|
8
|
+
* Тип: string
|
|
9
|
+
* Описание: Наименование ключа для получения описания элемента данных.
|
|
10
|
+
*
|
|
11
|
+
* styleInput (default: 'standard')
|
|
12
|
+
* Тип: 'round' | 'standard'
|
|
13
|
+
* Описание: Тип стиля входного элемента, может быть 'round' или 'standard'.
|
|
14
|
+
*
|
|
15
|
+
* inputStyle (default: 'gray')
|
|
16
|
+
* Тип: 'white' | 'gray'
|
|
17
|
+
* Описание: Стиль входного элемента, может быть 'white' или 'gray'.
|
|
18
|
+
*
|
|
19
|
+
* fetchMode
|
|
20
|
+
* Тип: boolean
|
|
21
|
+
* Описание: Флаг, указывающий, включен ли режим получения данных.
|
|
22
|
+
*
|
|
23
|
+
* searchData
|
|
24
|
+
* Тип: any
|
|
25
|
+
* Описание: Массив данных для поиска. Устанавливая данные, компонент сбрасывает состояние загрузки.
|
|
26
|
+
*
|
|
27
|
+
* debounceTime (default: 100)
|
|
28
|
+
* Тип: number
|
|
29
|
+
* Описание: Время задержки перед выполнением действий после ввода, в миллисекундах.
|
|
30
|
+
*
|
|
31
|
+
* delay (default: 0)
|
|
32
|
+
* Тип: number
|
|
33
|
+
* Описание: Задержка перед обработкой поиска, в миллисекундах.
|
|
34
|
+
*
|
|
35
|
+
* idClose
|
|
36
|
+
* Тип: string | undefined
|
|
37
|
+
* Описание: Идентификатор элемента закрытия (неопределено по умолчанию).
|
|
38
|
+
*
|
|
39
|
+
* loaded$
|
|
40
|
+
* Тип: BehaviorSubject<boolean>
|
|
41
|
+
* Описание: Субъект для управления состоянием загрузки компонента.
|
|
42
|
+
*
|
|
43
|
+
* Выходные параметры (Output)
|
|
44
|
+
* keyupEvent
|
|
45
|
+
* Тип: EventEmitter<string>
|
|
46
|
+
* Описание: Событие, испускаемое при вводе текста в поле поиска.
|
|
47
|
+
*
|
|
48
|
+
* selectedItem
|
|
49
|
+
* Тип: EventEmitter
|
|
50
|
+
* Описание: Событие, испускаемое при выборе элемента из результатов поиска.
|
|
51
|
+
*
|
|
52
|
+
* Внутренние свойства и переменные
|
|
53
|
+
* keyUp
|
|
54
|
+
* Тип: Subject<KeyboardEvent>
|
|
55
|
+
* Описание: Субъект для обработки событий ввода с клавиатуры.
|
|
56
|
+
*
|
|
57
|
+
* data
|
|
58
|
+
* Тип: any[] | undefined
|
|
59
|
+
* Описание: Массив данных для отображения результатов поиска.
|
|
60
|
+
|
|
61
|
+
* Методы
|
|
62
|
+
* ngOnInit Выполняет настройку потоков событий ввода при инициализации компонента.
|
|
63
|
+
* forceChangeМетод для принудительного вызова события изменения ввода.
|
|
64
|
+
* onClear(noEmit?: boolean)Метод для очистки поля ввода, сброса состояния загрузки и фокуса на элемент ввода.
|
|
65
|
+
* onClickSearchItem(item: any)Метод для обработки выбора элемента из результатов поиска.
|
|
66
|
+
* getTitle(item: any)Метод для получения заголовка элемента данных.
|
|
67
|
+
* getDesc(item: any)Метод для получения описания элемента данных.
|
|
68
|
+
* **/
|
|
1
69
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
70
|
import { FormsModule } from '@angular/forms';
|
|
3
71
|
import { AsyncPipe, NgOptimizedImage } from '@angular/common';
|
|
@@ -25,6 +93,7 @@ export class LibSearchInputComponent extends LibCommonInputTextComponent {
|
|
|
25
93
|
this.keyDesc = 'description';
|
|
26
94
|
this.styleInput = 'standard';
|
|
27
95
|
this.inputStyle = 'gray';
|
|
96
|
+
this.fetchMode = false;
|
|
28
97
|
this.debounceTime = 100;
|
|
29
98
|
this.delay = 0;
|
|
30
99
|
this.loaded$ = new BehaviorSubject(false);
|
|
@@ -35,7 +104,11 @@ export class LibSearchInputComponent extends LibCommonInputTextComponent {
|
|
|
35
104
|
ngOnInit() {
|
|
36
105
|
if (this.commitOnInput) {
|
|
37
106
|
this.keyUp
|
|
38
|
-
.pipe(tap(() =>
|
|
107
|
+
.pipe(tap(() => {
|
|
108
|
+
if (this.fetchMode) {
|
|
109
|
+
this.loaded$.next(true);
|
|
110
|
+
}
|
|
111
|
+
}), map(event => event.target?.value), debounceTime(this.debounceTime),
|
|
39
112
|
// distinctUntilChanged(), надо ли?
|
|
40
113
|
mergeMap(search => of(search).pipe(delay(this.delay))), takeUntil(this.destroy$))
|
|
41
114
|
.subscribe(str => {
|
|
@@ -70,7 +143,7 @@ export class LibSearchInputComponent extends LibCommonInputTextComponent {
|
|
|
70
143
|
return item[this.keyDesc];
|
|
71
144
|
}
|
|
72
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSearchInputComponent, deps: [{ token: i1.DestroyService }, { token: i0.ChangeDetectorRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSearchInputComponent, isStandalone: true, selector: "dd-lib-search-input", inputs: { keyTitle: "keyTitle", keyDesc: "keyDesc", styleInput: "styleInput", inputStyle: "inputStyle", searchData: "searchData", debounceTime: "debounceTime", delay: "delay", idClose: "idClose", loaded$: "loaded$" }, outputs: { keyupEvent: "keyupEvent", selectedItem: "selectedItem" }, providers: [DestroyService], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-search-input\">\r\n <label [for]=\"id\" class=\"lib-search-input__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative\">\r\n <dd-lib-svg-icon (click)=\"forceChange()\" class=\"search-icon\" icon=\"search\"></dd-lib-svg-icon>\r\n <input\r\n #searchInput\r\n (keyup)=\"keyUp.next($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.round]=\"styleInput === 'round'\"\r\n [class.white]=\"inputStyle === 'white'\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"search-input\" />\r\n <dd-lib-svg-icon\r\n (click)=\"onClear()\"\r\n [id]=\"idClose\" [style.display]=\"value?.length ? 'block' : 'none'\"\r\n class=\"clear-icon\" icon=\"clear\"></dd-lib-svg-icon>\r\n @if (loaded$ | async) {\r\n <div class=\"loading-icon\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (data?.length) {\r\n <dd-lib-card [class.top]=\"side === 'top'\">\r\n @for (item of data; track item) {\r\n <div (click)=\"onClickSearchItem(item)\" class=\"search-result\">\r\n @if (getTitle(item); as title) {\r\n <div [innerHTML]=\"title | highlight: value | safe: 'html'\" class=\"search-result__title\"></div>\r\n } @if (getDesc(item); as desc) {\r\n <div [innerHTML]=\"desc | highlight: value | safe: 'html'\" class=\"search-result__desc\"></div>\r\n }\r\n </div>\r\n }\r\n </dd-lib-card>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-search-input{position:relative}.lib-search-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-search-input input{width:100%;height:48px;padding:16px 16px 15px 44px;border-radius:8px;border:none;background-color:var(--input-gray-bgc)}.lib-search-input input.white{background-color:var(--white-color);border:1px solid var(--primary-gray-color)}.lib-search-input .round{border-radius:24px}.lib-search-input .search-icon{position:absolute;left:16px;top:14px;cursor:pointer}.lib-search-input .clear-icon{position:absolute;right:16px;top:14px;cursor:pointer}.lib-search-input .loading-icon{position:absolute;right:40px;top:12px}.lib-search-input .search-result{font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left;cursor:pointer}.lib-search-input .search-result:hover{opacity:.8}.lib-search-input .search-result:last-child .search-result__desc{border:none;padding-bottom:0}.lib-search-input .search-result__title{color:var(--second-gray-color);margin:24px 0 2px}.lib-search-input .search-result__desc{padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}.lib-search-input dd-lib-card{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;box-shadow:var(--main-card-shadow);overflow:auto}.lib-search-input dd-lib-card.top{bottom:50px;top:unset}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibSearchInputComponent, isStandalone: true, selector: "dd-lib-search-input", inputs: { keyTitle: "keyTitle", keyDesc: "keyDesc", styleInput: "styleInput", inputStyle: "inputStyle", fetchMode: "fetchMode", searchData: "searchData", debounceTime: "debounceTime", delay: "delay", idClose: "idClose", loaded$: "loaded$" }, outputs: { keyupEvent: "keyupEvent", selectedItem: "selectedItem" }, providers: [DestroyService], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-search-input\">\r\n <label [for]=\"id\" class=\"lib-search-input__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative\">\r\n <dd-lib-svg-icon (click)=\"forceChange()\" class=\"search-icon\" icon=\"search\"></dd-lib-svg-icon>\r\n <input\r\n #searchInput\r\n (keyup)=\"keyUp.next($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.autocomplete]=\"autocomplete === undefined ? null : autocomplete\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [attr.type]=\"type || 'text'\"\r\n [class.focused]=\"focused\"\r\n [class.round]=\"styleInput === 'round'\"\r\n [class.white]=\"inputStyle === 'white'\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n class=\"search-input\" />\r\n <dd-lib-svg-icon\r\n (click)=\"onClear()\"\r\n [id]=\"idClose\" [style.display]=\"value?.length ? 'block' : 'none'\"\r\n class=\"clear-icon\" icon=\"clear\"></dd-lib-svg-icon>\r\n @if (loaded$ | async) {\r\n <div class=\"loading-icon\">\r\n <dd-lib-loader></dd-lib-loader>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (data?.length) {\r\n <dd-lib-card [class.top]=\"side === 'top'\">\r\n @for (item of data; track item) {\r\n <div (click)=\"onClickSearchItem(item)\" class=\"search-result\">\r\n @if (getTitle(item); as title) {\r\n <div [innerHTML]=\"title | highlight: value | safe: 'html'\" class=\"search-result__title\"></div>\r\n } @if (getDesc(item); as desc) {\r\n <div [innerHTML]=\"desc | highlight: value | safe: 'html'\" class=\"search-result__desc\"></div>\r\n }\r\n </div>\r\n }\r\n </dd-lib-card>\r\n }\r\n</div>\r\n", styles: [":host{display:block}.lib-search-input{position:relative}.lib-search-input__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-search-input input{width:100%;height:48px;padding:16px 16px 15px 44px;border-radius:8px;border:none;background-color:var(--input-gray-bgc)}.lib-search-input input.white{background-color:var(--white-color);border:1px solid var(--primary-gray-color)}.lib-search-input .round{border-radius:24px}.lib-search-input .search-icon{position:absolute;left:16px;top:14px;cursor:pointer}.lib-search-input .clear-icon{position:absolute;right:16px;top:14px;cursor:pointer}.lib-search-input .loading-icon{position:absolute;right:40px;top:12px}.lib-search-input .search-result{font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left;cursor:pointer}.lib-search-input .search-result:hover{opacity:.8}.lib-search-input .search-result:last-child .search-result__desc{border:none;padding-bottom:0}.lib-search-input .search-result__title{color:var(--second-gray-color);margin:24px 0 2px}.lib-search-input .search-result__desc{padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}.lib-search-input dd-lib-card{position:absolute;display:block;top:76px;z-index:100;width:100%;max-height:400px;box-shadow:var(--main-card-shadow);overflow:auto}.lib-search-input dd-lib-card.top{bottom:50px;top:unset}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
74
147
|
}
|
|
75
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibSearchInputComponent, decorators: [{
|
|
76
149
|
type: Component,
|
|
@@ -83,6 +156,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
83
156
|
type: Input
|
|
84
157
|
}], inputStyle: [{
|
|
85
158
|
type: Input
|
|
159
|
+
}], fetchMode: [{
|
|
160
|
+
type: Input
|
|
86
161
|
}], searchData: [{
|
|
87
162
|
type: Input
|
|
88
163
|
}], debounceTime: [{
|
|
@@ -98,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
98
173
|
}], selectedItem: [{
|
|
99
174
|
type: Output
|
|
100
175
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItc2VhcmNoLWlucHV0L2xpYi1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXNlYXJjaC1pbnB1dC9saWItc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVd0RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQTJCO0lBTXRF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QUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUE2QixDQUFXLENBQUM7SUFDNUQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFTO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUE0QixDQUFXLENBQUM7SUFDM0QsQ0FBQzs4R0ExRVUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaVdBRnZCLENBQUMsY0FBYyxDQUFDLGlEQzFCN0IsaytEQXFEQSxrNkNEL0JZLFdBQVcsK21CQUFvQixnQkFBZ0IscUxBQUUsYUFBYSw2Q0FBRSxRQUFRLDZDQUFFLG1CQUFtQiwwR0FBRSxrQkFBa0Isd0VBQUUsU0FBUzs7MkZBTTNILHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLG1CQUd0SCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxDQUFDO21KQUdYLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBRWMsVUFBVTtzQkFBN0IsS0FBSztnQkFJVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNXLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ09wdGltaXplZEltYWdlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0xpYkNvbW1vbklucHV0VGV4dENvbXBvbmVudH0gZnJvbSAnLi4vY29tbW9uL2xpYi1jb21tb24taW5wdXQtdGV4dCc7XHJcbmltcG9ydCB7TGliQ2FyZENvbXBvbmVudH0gZnJvbSAnLi4vbGliLWNhcmQvbGliLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRlbGF5LCBtYXAsIG1lcmdlTWFwLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0Rlc3Ryb3lTZXJ2aWNlLCBIaWdobGlnaHRQaXBlLCBTYWZlUGlwZX0gZnJvbSBcIi4uL2NvcmVcIjtcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaWJMb2FkZXJDb21wb25lbnR9IGZyb20gXCIuLi9saWItbG9hZGVyL2xpYi1sb2FkZXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1zZWFyY2gtaW5wdXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBOZ09wdGltaXplZEltYWdlLCBMaWJDYXJkQ29tcG9uZW50LCBIaWdobGlnaHRQaXBlLCBTYWZlUGlwZSwgTGliU3ZnSWNvbkNvbXBvbmVudCwgTGliTG9hZGVyQ29tcG9uZW50LCBBc3luY1BpcGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWItc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRGVzdHJveVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliU2VhcmNoSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBrZXlUaXRsZSA9ICd0aXRsZSc7XHJcbiAgQElucHV0KCkgcHVibGljIGtleURlc2MgPSAnZGVzY3JpcHRpb24nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdHlsZUlucHV0OiAncm91bmQnIHwgJ3N0YW5kYXJkJyA9ICdzdGFuZGFyZCc7XHJcbiAgQElucHV0KCkgcHVibGljIGlucHV0U3R5bGU6ICd3aGl0ZScgfCAnZ3JheScgPSAnZ3JheSc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2VhcmNoRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGVkJC5uZXh0KGZhbHNlKVxyXG4gICAgdGhpcy5kYXRhID0gZGF0YTtcclxuICB9O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWJvdW5jZVRpbWUgPSAxMDA7XHJcbiAgQElucHV0KCkgcHVibGljIGRlbGF5ID0gMDtcclxuICBASW5wdXQoKSBwdWJsaWMgaWRDbG9zZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBrZXl1cEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHVibGljIGtleVVwID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcclxuICBwdWJsaWMgZGF0YTogYW55W10gfCB1bmRlZmluZWRcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGVzdHJveSQ6IERlc3Ryb3lTZXJ2aWNlLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKGNoYW5nZURldGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb21taXRPbklucHV0KSB7XHJcbiAgICAgIHRoaXMua2V5VXBcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRlZCQubmV4dCh0cnVlKSksXHJcbiAgICAgICAgICBtYXAoZXZlbnQgPT4gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KT8udmFsdWUpLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSxcclxuICAgICAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksINC90LDQtNC+INC70Lg/XHJcbiAgICAgICAgICBtZXJnZU1hcChzZWFyY2ggPT4gb2Yoc2VhcmNoKS5waXBlKGRlbGF5KHRoaXMuZGVsYXkpKSksXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoc3RyID0+IHtcclxuICAgICAgICAgIHRoaXMua2V5dXBFdmVudC5lbWl0KHN0cik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKCkgPT4gdGhpcy5sb2FkZWQkLm5leHQoZmFsc2UpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JjZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb21taXRPbklucHV0KSB7XHJcbiAgICAgIHRoaXMua2V5dXBFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xlYXIobm9FbWl0PzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZWQkLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgaWYgKCFub0VtaXQpIHtcclxuICAgICAgdGhpcy5jbGVhcmVkLmVtaXQoKTtcclxuICAgICAgdGhpcy5rZXl1cEV2ZW50LmVtaXQoJycpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dFNlYXJjaEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrU2VhcmNoSXRlbShpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGVkJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoaXRlbSk7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRUaXRsZShpdGVtKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUaXRsZShpdGVtOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW1bdGhpcy5rZXlUaXRsZSBhcyBrZXlvZiB0eXBlb2YgaXRlbV0gYXMgc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERlc2MoaXRlbTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtW3RoaXMua2V5RGVzYyBhcyBrZXlvZiB0eXBlb2YgaXRlbV0gYXMgc3RyaW5nO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGliLXNlYXJjaC1pbnB1dFwiPlxyXG4gIDxsYWJlbCBbZm9yXT1cImlkXCIgY2xhc3M9XCJsaWItc2VhcmNoLWlucHV0X190aXRsZVwiPlxyXG4gICAge3sgbGFiZWwgfX1cclxuICAgIEBpZiAocmVxdWlyZWQpIHtcclxuICAgICAgPGRkLWxpYi1zdmctaWNvbiBpY29uPVwiZXJyb3JfaGludFwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgfVxyXG4gIDwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cInBvcy1yZWxhdGl2ZVwiPlxyXG4gICAgPGRkLWxpYi1zdmctaWNvbiAoY2xpY2spPVwiZm9yY2VDaGFuZ2UoKVwiIGNsYXNzPVwic2VhcmNoLWljb25cIiBpY29uPVwic2VhcmNoXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICA8aW5wdXRcclxuICAgICAgI3NlYXJjaElucHV0XHJcbiAgICAgIChrZXl1cCk9XCJrZXlVcC5uZXh0KCRldmVudClcIlxyXG4gICAgICAoa2V5dXAuZW50ZXIpPVwiZm9yY2VDaGFuZ2UoKVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID09PSB1bmRlZmluZWQgPyBudWxsIDogYXV0b2NvbXBsZXRlXCJcclxuICAgICAgW2F0dHIuaWRdPVwiaWQgPyBpZCA6IG51bGxcIlxyXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXHJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXHJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2F0dHIudGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cInR5cGUgfHwgJ3RleHQnXCJcclxuICAgICAgW2NsYXNzLmZvY3VzZWRdPVwiZm9jdXNlZFwiXHJcbiAgICAgIFtjbGFzcy5yb3VuZF09XCJzdHlsZUlucHV0ID09PSAncm91bmQnXCJcclxuICAgICAgW2NsYXNzLndoaXRlXT1cImlucHV0U3R5bGUgPT09ICd3aGl0ZSdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4gICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIC8+XHJcbiAgICA8ZGQtbGliLXN2Zy1pY29uXHJcbiAgICAgIChjbGljayk9XCJvbkNsZWFyKClcIlxyXG4gICAgICBbaWRdPVwiaWRDbG9zZVwiIFtzdHlsZS5kaXNwbGF5XT1cInZhbHVlPy5sZW5ndGggPyAnYmxvY2snIDogJ25vbmUnXCJcclxuICAgICAgY2xhc3M9XCJjbGVhci1pY29uXCIgaWNvbj1cImNsZWFyXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICBAaWYgKGxvYWRlZCQgfCBhc3luYykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1pY29uXCI+XHJcbiAgICAgICAgPGRkLWxpYi1sb2FkZXI+PC9kZC1saWItbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuXHJcbiAgQGlmIChkYXRhPy5sZW5ndGgpIHtcclxuICA8ZGQtbGliLWNhcmQgW2NsYXNzLnRvcF09XCJzaWRlID09PSAndG9wJ1wiPlxyXG4gICAgQGZvciAoaXRlbSBvZiBkYXRhOyB0cmFjayBpdGVtKSB7XHJcbiAgICA8ZGl2IChjbGljayk9XCJvbkNsaWNrU2VhcmNoSXRlbShpdGVtKVwiIGNsYXNzPVwic2VhcmNoLXJlc3VsdFwiPlxyXG4gICAgICBAaWYgKGdldFRpdGxlKGl0ZW0pOyBhcyB0aXRsZSkge1xyXG4gICAgICA8ZGl2IFtpbm5lckhUTUxdPVwidGl0bGUgfCBoaWdobGlnaHQ6IHZhbHVlIHwgc2FmZTogJ2h0bWwnXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0X190aXRsZVwiPjwvZGl2PlxyXG4gICAgICB9IEBpZiAoZ2V0RGVzYyhpdGVtKTsgYXMgZGVzYykge1xyXG4gICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZGVzYyB8IGhpZ2hsaWdodDogdmFsdWUgfCBzYWZlOiAnaHRtbCdcIiBjbGFzcz1cInNlYXJjaC1yZXN1bHRfX2Rlc2NcIj48L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kZC1saWItY2FyZD5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItc2VhcmNoLWlucHV0L2xpYi1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXNlYXJjaC1pbnB1dC9saWItc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUVNO0FBRU4sT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8s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SztzQkFBcEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1csVUFBVTtzQkFBMUIsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiDQktGF0L7QtNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0YsgKElucHV0KVxyXG4gKiBrZXlUaXRsZSAoZGVmYXVsdDogJ3RpdGxlJylcclxuICog0KLQuNC/OiBzdHJpbmdcclxuICog0J7Qv9C40YHQsNC90LjQtTog0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INC60LvRjtGH0LAg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60LAg0Y3Qu9C10LzQtdC90YLQsCDQtNCw0L3QvdGL0YUuXHJcbiAqXHJcbiAqIGtleURlc2MgKGRlZmF1bHQ6ICdkZXNjcmlwdGlvbicpXHJcbiAqINCi0LjQvzogc3RyaW5nXHJcbiAqINCe0L/QuNGB0LDQvdC40LU6INCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSDQutC70Y7Rh9CwINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0L7Qv9C40YHQsNC90LjRjyDRjdC70LXQvNC10L3RgtCwINC00LDQvdC90YvRhS5cclxuICpcclxuICogc3R5bGVJbnB1dCAoZGVmYXVsdDogJ3N0YW5kYXJkJylcclxuICog0KLQuNC/OiAncm91bmQnIHwgJ3N0YW5kYXJkJ1xyXG4gKiDQntC/0LjRgdCw0L3QuNC1OiDQotC40L8g0YHRgtC40LvRjyDQstGF0L7QtNC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAsINC80L7QttC10YIg0LHRi9GC0YwgJ3JvdW5kJyDQuNC70LggJ3N0YW5kYXJkJy5cclxuICpcclxuICogaW5wdXRTdHlsZSAoZGVmYXVsdDogJ2dyYXknKVxyXG4gKiDQotC40L86ICd3aGl0ZScgfCAnZ3JheSdcclxuICog0J7Qv9C40YHQsNC90LjQtTog0KHRgtC40LvRjCDQstGF0L7QtNC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAsINC80L7QttC10YIg0LHRi9GC0YwgJ3doaXRlJyDQuNC70LggJ2dyYXknLlxyXG4gKlxyXG4gKiBmZXRjaE1vZGVcclxuICog0KLQuNC/OiBib29sZWFuXHJcbiAqINCe0L/QuNGB0LDQvdC40LU6INCk0LvQsNCzLCDRg9C60LDQt9GL0LLQsNGO0YnQuNC5LCDQstC60LvRjtGH0LXQvSDQu9C4INGA0LXQttC40Lwg0L/QvtC70YPRh9C10L3QuNGPINC00LDQvdC90YvRhS5cclxuICpcclxuICogc2VhcmNoRGF0YVxyXG4gKiDQotC40L86IGFueVxyXG4gKiDQntC/0LjRgdCw0L3QuNC1OiDQnNCw0YHRgdC40LIg0LTQsNC90L3Ri9GFINC00LvRjyDQv9C+0LjRgdC60LAuINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDRjyDQtNCw0L3QvdGL0LUsINC60L7QvNC/0L7QvdC10L3RgiDRgdCx0YDQsNGB0YvQstCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40LUg0LfQsNCz0YDRg9C30LrQuC5cclxuICpcclxuICogZGVib3VuY2VUaW1lIChkZWZhdWx0OiAxMDApXHJcbiAqINCi0LjQvzogbnVtYmVyXHJcbiAqINCe0L/QuNGB0LDQvdC40LU6INCS0YDQtdC80Y8g0LfQsNC00LXRgNC20LrQuCDQv9C10YDQtdC0INCy0YvQv9C+0LvQvdC10L3QuNC10Lwg0LTQtdC50YHRgtCy0LjQuSDQv9C+0YHQu9C1INCy0LLQvtC00LAsINCyINC80LjQu9C70LjRgdC10LrRg9C90LTQsNGFLlxyXG4gKlxyXG4gKiBkZWxheSAoZGVmYXVsdDogMClcclxuICog0KLQuNC/OiBudW1iZXJcclxuICog0J7Qv9C40YHQsNC90LjQtTog0JfQsNC00LXRgNC20LrQsCDQv9C10YDQtdC0INC+0LHRgNCw0LHQvtGC0LrQvtC5INC/0L7QuNGB0LrQsCwg0LIg0LzQuNC70LvQuNGB0LXQutGD0L3QtNCw0YUuXHJcbiAqXHJcbiAqIGlkQ2xvc2VcclxuICog0KLQuNC/OiBzdHJpbmcgfCB1bmRlZmluZWRcclxuICog0J7Qv9C40YHQsNC90LjQtTog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0Y3Qu9C10LzQtdC90YLQsCDQt9Cw0LrRgNGL0YLQuNGPICjQvdC10L7Qv9GA0LXQtNC10LvQtdC90L4g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4pLlxyXG4gKlxyXG4gKiBsb2FkZWQkXHJcbiAqINCi0LjQvzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+XHJcbiAqINCe0L/QuNGB0LDQvdC40LU6INCh0YPQsdGK0LXQutGCINC00LvRjyDRg9C/0YDQsNCy0LvQtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40LXQvCDQt9Cw0LPRgNGD0LfQutC4INC60L7QvNC/0L7QvdC10L3RgtCwLlxyXG4gKlxyXG4gKiDQktGL0YXQvtC00L3Ri9C1INC/0LDRgNCw0LzQtdGC0YDRiyAoT3V0cHV0KVxyXG4gKiBrZXl1cEV2ZW50XHJcbiAqINCi0LjQvzogRXZlbnRFbWl0dGVyPHN0cmluZz5cclxuICog0J7Qv9C40YHQsNC90LjQtTog0KHQvtCx0YvRgtC40LUsINC40YHQv9GD0YHQutCw0LXQvNC+0LUg0L/RgNC4INCy0LLQvtC00LUg0YLQtdC60YHRgtCwINCyINC/0L7Qu9C1INC/0L7QuNGB0LrQsC5cclxuICpcclxuICogc2VsZWN0ZWRJdGVtXHJcbiAqINCi0LjQvzogRXZlbnRFbWl0dGVyXHJcbiAqINCe0L/QuNGB0LDQvdC40LU6INCh0L7QsdGL0YLQuNC1LCDQuNGB0L/Rg9GB0LrQsNC10LzQvtC1INC/0YDQuCDQstGL0LHQvtGA0LUg0Y3Qu9C10LzQtdC90YLQsCDQuNC3INGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L/QvtC40YHQutCwLlxyXG4gKlxyXG4gKiDQktC90YPRgtGA0LXQvdC90LjQtSDRgdCy0L7QudGB0YLQstCwINC4INC/0LXRgNC10LzQtdC90L3Ri9C1XHJcbiAqIGtleVVwXHJcbiAqINCi0LjQvzogU3ViamVjdDxLZXlib2FyZEV2ZW50PlxyXG4gKiDQntC/0LjRgdCw0L3QuNC1OiDQodGD0LHRitC10LrRgiDQtNC70Y8g0L7QsdGA0LDQsdC+0YLQutC4INGB0L7QsdGL0YLQuNC5INCy0LLQvtC00LAg0YEg0LrQu9Cw0LLQuNCw0YLRg9GA0YsuXHJcbiAqXHJcbiAqIGRhdGFcclxuICog0KLQuNC/OiBhbnlbXSB8IHVuZGVmaW5lZFxyXG4gKiDQntC/0LjRgdCw0L3QuNC1OiDQnNCw0YHRgdC40LIg0LTQsNC90L3Ri9GFINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L/QvtC40YHQutCwLlxyXG5cclxuICog0JzQtdGC0L7QtNGLXHJcbiAqIG5nT25Jbml0INCS0YvQv9C+0LvQvdGP0LXRgiDQvdCw0YHRgtGA0L7QudC60YMg0L/QvtGC0L7QutC+0LIg0YHQvtCx0YvRgtC40Lkg0LLQstC+0LTQsCDQv9GA0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Lgg0LrQvtC80L/QvtC90LXQvdGC0LAuXHJcbiAqIGZvcmNlQ2hhbmdl0JzQtdGC0L7QtCDQtNC70Y8g0L/RgNC40L3Rg9C00LjRgtC10LvRjNC90L7Qs9C+INCy0YvQt9C+0LLQsCDRgdC+0LHRi9GC0LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0LLQstC+0LTQsC5cclxuICogb25DbGVhcihub0VtaXQ/OiBib29sZWFuKdCc0LXRgtC+0LQg0LTQu9GPINC+0YfQuNGB0YLQutC4INC/0L7Qu9GPINCy0LLQvtC00LAsINGB0LHRgNC+0YHQsCDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNCz0YDRg9C30LrQuCDQuCDRhNC+0LrRg9GB0LAg0L3QsCDRjdC70LXQvNC10L3RgiDQstCy0L7QtNCwLlxyXG4gKiBvbkNsaWNrU2VhcmNoSXRlbShpdGVtOiBhbnkp0JzQtdGC0L7QtCDQtNC70Y8g0L7QsdGA0LDQsdC+0YLQutC4INCy0YvQsdC+0YDQsCDRjdC70LXQvNC10L3RgtCwINC40Lcg0YDQtdC30YPQu9GM0YLQsNGC0L7QsiDQv9C+0LjRgdC60LAuXHJcbiAqIGdldFRpdGxlKGl0ZW06IGFueSnQnNC10YLQvtC0INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LfQsNCz0L7Qu9C+0LLQutCwINGN0LvQtdC80LXQvdGC0LAg0LTQsNC90L3Ri9GFLlxyXG4gKiBnZXREZXNjKGl0ZW06IGFueSnQnNC10YLQvtC0INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0L7Qv9C40YHQsNC90LjRjyDRjdC70LXQvNC10L3RgtCwINC00LDQvdC90YvRhS5cclxuICogKiovXHJcblxyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0FzeW5jUGlwZSwgTmdPcHRpbWl6ZWRJbWFnZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnR9IGZyb20gJy4uL2NvbW1vbi9saWItY29tbW9uLWlucHV0LXRleHQnO1xyXG5pbXBvcnQge0xpYkNhcmRDb21wb25lbnR9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkZWxheSwgbWFwLCBtZXJnZU1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtEZXN0cm95U2VydmljZSwgSGlnaGxpZ2h0UGlwZSwgU2FmZVBpcGV9IGZyb20gXCIuLi9jb3JlXCI7XHJcbmltcG9ydCB7TGliU3ZnSWNvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1zdmctaWNvbi9saWItc3ZnLWljb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TGliTG9hZGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLWxvYWRlci9saWItbG9hZGVyLmNvbXBvbmVudFwiO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1zZWFyY2gtaW5wdXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBOZ09wdGltaXplZEltYWdlLCBMaWJDYXJkQ29tcG9uZW50LCBIaWdobGlnaHRQaXBlLCBTYWZlUGlwZSwgTGliU3ZnSWNvbkNvbXBvbmVudCwgTGliTG9hZGVyQ29tcG9uZW50LCBBc3luY1BpcGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWItc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRGVzdHJveVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliU2VhcmNoSW5wdXRDb21wb25lbnQ8VD4gZXh0ZW5kcyBMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBrZXlUaXRsZSA9ICd0aXRsZSc7XHJcbiAgQElucHV0KCkgcHVibGljIGtleURlc2MgPSAnZGVzY3JpcHRpb24nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdHlsZUlucHV0OiAncm91bmQnIHwgJ3N0YW5kYXJkJyA9ICdzdGFuZGFyZCc7XHJcbiAgQElucHV0KCkgcHVibGljIGlucHV0U3R5bGU6ICd3aGl0ZScgfCAnZ3JheScgPSAnZ3JheSc7XHJcbiAgQElucHV0KCkgcHVibGljIGZldGNoTW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2VhcmNoRGF0YShkYXRhOiBUW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLmxvYWRlZCQubmV4dChmYWxzZSlcclxuICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgfTtcclxuICBASW5wdXQoKSBwdWJsaWMgZGVib3VuY2VUaW1lID0gMTAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxheSA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIGlkQ2xvc2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbG9hZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMga2V5dXBFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRJdGVtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHB1YmxpYyBrZXlVcCA9IG5ldyBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+KCk7XHJcbiAgcHVibGljIGRhdGE6IFRbXSB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBEZXN0cm95U2VydmljZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29tbWl0T25JbnB1dCkge1xyXG4gICAgICB0aGlzLmtleVVwXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mZXRjaE1vZGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRlZCQubmV4dCh0cnVlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIG1hcChldmVudCA9PiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy52YWx1ZSksXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxyXG4gICAgICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKSwg0L3QsNC00L4g0LvQuD9cclxuICAgICAgICAgIG1lcmdlTWFwKHNlYXJjaCA9PiBvZihzZWFyY2gpLnBpcGUoZGVsYXkodGhpcy5kZWxheSkpKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZShzdHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5rZXl1cEV2ZW50LmVtaXQoc3RyKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoKSA9PiB0aGlzLmxvYWRlZCQubmV4dChmYWxzZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlIGZvcmNlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbW1pdE9uSW5wdXQpIHtcclxuICAgICAgdGhpcy5rZXl1cEV2ZW50LmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGVhcihub0VtaXQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRlZCQubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICBpZiAoIW5vRW1pdCkge1xyXG4gICAgICB0aGlzLmNsZWFyZWQuZW1pdCgpO1xyXG4gICAgICB0aGlzLmtleXVwRXZlbnQuZW1pdCgnJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0U2VhcmNoRWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xpY2tTZWFyY2hJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZWQkLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdChpdGVtKTtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFRpdGxlKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRpdGxlKGl0ZW06IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbVt0aGlzLmtleVRpdGxlIGFzIGtleW9mIHR5cGVvZiBpdGVtXSBhcyBzdHJpbmc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RGVzYyhpdGVtOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW1bdGhpcy5rZXlEZXNjIGFzIGtleW9mIHR5cGVvZiBpdGVtXSBhcyBzdHJpbmc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaWItc2VhcmNoLWlucHV0XCI+XHJcbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImxpYi1zZWFyY2gtaW5wdXRfX3RpdGxlXCI+XHJcbiAgICB7eyBsYWJlbCB9fVxyXG4gICAgQGlmIChyZXF1aXJlZCkge1xyXG4gICAgICA8ZGQtbGliLXN2Zy1pY29uIGljb249XCJlcnJvcl9oaW50XCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICB9XHJcbiAgPC9sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwicG9zLXJlbGF0aXZlXCI+XHJcbiAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJmb3JjZUNoYW5nZSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvblwiIGljb249XCJzZWFyY2hcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICAgIDxpbnB1dFxyXG4gICAgICAjc2VhcmNoSW5wdXRcclxuICAgICAgKGtleXVwKT1cImtleVVwLm5leHQoJGV2ZW50KVwiXHJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJmb3JjZUNoYW5nZSgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhdXRvY29tcGxldGVcIlxyXG4gICAgICBbYXR0ci5pZF09XCJpZCA/IGlkIDogbnVsbFwiXHJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcclxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcclxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbYXR0ci50YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgIFthdHRyLnR5cGVdPVwidHlwZSB8fCAndGV4dCdcIlxyXG4gICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkXCJcclxuICAgICAgW2NsYXNzLnJvdW5kXT1cInN0eWxlSW5wdXQgPT09ICdyb3VuZCdcIlxyXG4gICAgICBbY2xhc3Mud2hpdGVdPVwiaW5wdXRTdHlsZSA9PT0gJ3doaXRlJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbiAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgLz5cclxuICAgIDxkZC1saWItc3ZnLWljb25cclxuICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXHJcbiAgICAgIFtpZF09XCJpZENsb3NlXCIgW3N0eWxlLmRpc3BsYXldPVwidmFsdWU/Lmxlbmd0aCA/ICdibG9jaycgOiAnbm9uZSdcIlxyXG4gICAgICBjbGFzcz1cImNsZWFyLWljb25cIiBpY29uPVwiY2xlYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICAgIEBpZiAobG9hZGVkJCB8IGFzeW5jKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWljb25cIj5cclxuICAgICAgICA8ZGQtbGliLWxvYWRlcj48L2RkLWxpYi1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG5cclxuICBAaWYgKGRhdGE/Lmxlbmd0aCkge1xyXG4gIDxkZC1saWItY2FyZCBbY2xhc3MudG9wXT1cInNpZGUgPT09ICd0b3AnXCI+XHJcbiAgICBAZm9yIChpdGVtIG9mIGRhdGE7IHRyYWNrIGl0ZW0pIHtcclxuICAgIDxkaXYgKGNsaWNrKT1cIm9uQ2xpY2tTZWFyY2hJdGVtKGl0ZW0pXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0XCI+XHJcbiAgICAgIEBpZiAoZ2V0VGl0bGUoaXRlbSk7IGFzIHRpdGxlKSB7XHJcbiAgICAgIDxkaXYgW2lubmVySFRNTF09XCJ0aXRsZSB8IGhpZ2hsaWdodDogdmFsdWUgfCBzYWZlOiAnaHRtbCdcIiBjbGFzcz1cInNlYXJjaC1yZXN1bHRfX3RpdGxlXCI+PC9kaXY+XHJcbiAgICAgIH0gQGlmIChnZXREZXNjKGl0ZW0pOyBhcyBkZXNjKSB7XHJcbiAgICAgIDxkaXYgW2lubmVySFRNTF09XCJkZXNjIHwgaGlnaGxpZ2h0OiB2YWx1ZSB8IHNhZmU6ICdodG1sJ1wiIGNsYXNzPVwic2VhcmNoLXJlc3VsdF9fZGVzY1wiPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2RkLWxpYi1jYXJkPlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -19,7 +19,7 @@ export class LibSelectComponent extends LibCommonInputTextComponent {
|
|
|
19
19
|
this.checkedItems = [];
|
|
20
20
|
}
|
|
21
21
|
ngOnInit() {
|
|
22
|
-
this.stringArray = typeof this.data[0] === 'string';
|
|
22
|
+
this.stringArray = typeof this.data?.[0] === 'string';
|
|
23
23
|
if (!this.selectId) {
|
|
24
24
|
this.selectId = 'dd-select-' + LibSelectComponent.idCounter++;
|
|
25
25
|
}
|
|
@@ -192,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
192
192
|
}], placeholder: [{
|
|
193
193
|
type: Input
|
|
194
194
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItc2VsZWN0L2xpYi1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXNlbGVjdC9saWItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osS0FBSyxFQUVMLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFHTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQzs7O0FBNkJ4RixNQUFNLE9BQU8sa0JBQ1gsU0FBUSwyQkFBMkI7YUFHckIsY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBZ0I1QixZQUNFLGVBQWtDLEVBQ00sZ0JBQWtDO1FBRTFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUZpQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBYjVELGFBQVEsR0FBRyxNQUFNLENBQUM7UUFFbEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNQLGdCQUFXLEdBQUcsb0JBQW9CLENBQUM7UUFFckQsaUJBQVksR0FBVSxFQUFFLENBQUM7SUFXaEMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU87WUFDVixJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVlLGdCQUFnQixDQUFDLEVBQU87UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFZSxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFZSxXQUFXLENBQUMsQ0FBUTtRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0QixDQUFDO0lBRWUsZ0JBQWdCLENBQUMsQ0FBUTtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFVO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQTtZQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BGLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsSUFBUztRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsSUFBUztRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFXO0lBQ25DLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ2hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO2dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFTO1FBQy9CLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFFL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUE7WUFDN0csQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN6QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLE9BQU8sR0FBRyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFTSxhQUFhLENBQUMsSUFBUztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFBO1FBQzlGLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUE7UUFDakcsQ0FBQztJQUNILENBQUM7OEdBdkpVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHdOQVRsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpRENqREgsMHdGQXFGQSwwcUVEdkRJLG1CQUFtQixzWkFDbkIsV0FBVyxrUEFDWCxhQUFhLDZDQUViLFFBQVEsNkNBQ1IscUJBQXFCLGdIQUNyQixrQkFBa0Isd0VBQ2xCLGVBQWUsb0RBQ2YsbUJBQW1COzsyRkFjVixrQkFBa0I7a0JBM0I5QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1IscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixRQUFRO3FCQUNULGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkF3QjVDLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLFFBQVE7eUNBaEJmLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNtQixXQUFXO3NCQUFuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBTa2lwU2VsZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtKc29uUGlwZSwgTmdPcHRpbWl6ZWRJbWFnZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sQ29udGFpbmVyLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0xpYkNvbW1vbklucHV0VGV4dENvbXBvbmVudH0gZnJvbSAnLi4vY29tbW9uL2xpYi1jb21tb24taW5wdXQtdGV4dCc7XHJcbmltcG9ydCB7TGliQ2FyZENvbXBvbmVudH0gZnJvbSAnLi4vbGliLWNhcmQvbGliLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHtMaWJMb2FkZXJDb21wb25lbnR9IGZyb20gJy4uL2xpYi1sb2FkZXIvbGliLWxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xpYlN2Z0ljb25Db21wb25lbnR9IGZyb20gXCIuLi9saWItc3ZnLWljb24vbGliLXN2Zy1pY29uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NsaWNrT3V0c2lkZURpcmVjdGl2ZSwgRmlsdGVyQnlLZXlQaXBlLCBIaWdobGlnaHRQaXBlLCBTYWZlUGlwZX0gZnJvbSBcIi4uL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGQtbGliLXNlbGVjdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ09wdGltaXplZEltYWdlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSGlnaGxpZ2h0UGlwZSxcclxuICAgIExpYkNhcmRDb21wb25lbnQsXHJcbiAgICBTYWZlUGlwZSxcclxuICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcclxuICAgIExpYkxvYWRlckNvbXBvbmVudCxcclxuICAgIEZpbHRlckJ5S2V5UGlwZSxcclxuICAgIExpYlN2Z0ljb25Db21wb25lbnQsXHJcbiAgICBKc29uUGlwZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWItc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLXNlbGVjdC5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaWJTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYlNlbGVjdENvbXBvbmVudDxUPlxyXG4gIGV4dGVuZHMgTGliQ29tbW9uSW5wdXRUZXh0Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbntcclxuICBwdWJsaWMgc3RhdGljIGlkQ291bnRlciA9IDE7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0SWQ6IHN0cmluZyAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGRhdGE6IGFueSAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGtleVRpdGxlID0gJ25hbWUnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBrZXlEZXNjOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGtleVZhbHVlID0gJ2lkJztcclxuICBASW5wdXQoKSBwdWJsaWMgb3ZlcnJpZGUgcGxhY2Vob2xkZXIgPSAn0JLRi9Cx0LXRgNC40YLQtSDQuNC3INGB0L/QuNGB0LrQsCc7XHJcbiAgcHVibGljIGNoZWNrZWRJdGVtOiBhbnk7XHJcbiAgcHVibGljIGNoZWNrZWRJdGVtczogYW55W10gPSBbXTtcclxuICBwdWJsaWMgaW5wdXRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBpc1Nob3duTGlzdDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN0cmluZ0FycmF5OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIEBTa2lwU2VsZigpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcclxuICApIHtcclxuICAgIHN1cGVyKGNoYW5nZURldGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0cmluZ0FycmF5ID0gdHlwZW9mIHRoaXMuZGF0YVswXSA9PT0gJ3N0cmluZyc7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0SWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RJZCA9ICdkZC1zZWxlY3QtJyArIExpYlNlbGVjdENvbXBvbmVudC5pZENvdW50ZXIrKztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmtleVRpdGxlICYmICF0aGlzLmtleVZhbHVlKSB7XHJcbiAgICAgIHRoaXMua2V5VmFsdWUgPSB0aGlzLmtleVRpdGxlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250cm9sID1cclxuICAgICAgdGhpcy5jb250cm9sQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICAgPyB0aGlzLmNvbnRyb2xDb250YWluZXI/LmNvbnRyb2w/LmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSlcclxuICAgICAgICA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZShmbilcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgICBzdXBlci5yZWdpc3Rlck9uVG91Y2hlZChmbilcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSBoYW5kbGVJbnB1dChlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1Nob3duTGlzdCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gdGhpcy5pbnB1dFZhbHVlO1xyXG4gICAgc3VwZXIuaGFuZGxlSW5wdXQoZSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSBub3RpZnlGb2N1c0V2ZW50KGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5pc1Nob3duTGlzdCA9ICF0aGlzLmlzU2hvd25MaXN0O1xyXG4gICAgfVxyXG4gICAgc3VwZXIubm90aWZ5Rm9jdXNFdmVudChlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubXVsdGkgJiYgdmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBg0JLRi9Cx0YDQsNC90L4gKCR7dmFsdWUubGVuZ3RofSlgXHJcbiAgICAgIHRoaXMuY2hlY2tlZEl0ZW1zID0gdGhpcy5kYXRhLmZpbHRlcigoZjogYW55KSA9PiB2YWx1ZS5pbmNsdWRlcyhmW3RoaXMua2V5VmFsdWVdKSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnN0cmluZ0FycmF5KSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZWYWwgPSB0aGlzLmRhdGEuZmluZCgoZjogYW55KSA9PiBmW3RoaXMua2V5VmFsdWVdID09PSB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGZWYWw7XHJcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gZlZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEl0ZW0oaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tdWx0aSkge1xyXG4gICAgICB0aGlzLnNlbGVjdE11bHRpSXRlbShpdGVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0U2luZ2xlSXRlbShpdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWx0ZXJMaXN0KGl0ZW06IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gaXRlbVt0aGlzLmtleVRpdGxlIV0/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZT8udG9Mb3dlckNhc2UoKSB8fCAnJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RTaW5nbGVJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAoIXRoaXMuY2hlY2tlZEl0ZW0pIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRJdGVtID0gaXRlbTtcclxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZEl0ZW0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHVuZGVmaW5lZCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5jaGVja2VkSXRlbSB8fCBpdGVtW3RoaXMua2V5VmFsdWUhXSAhPT0gdGhpcy5jaGVja2VkSXRlbT8uW3RoaXMua2V5VmFsdWUhXSkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuY2hlY2tlZEl0ZW1bdGhpcy5rZXlUaXRsZSFdO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBpdGVtW3RoaXMua2V5VmFsdWUhXTtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRJdGVtID0gbnVsbDtcclxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh1bmRlZmluZWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5pc1Nob3duTGlzdCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RNdWx0aUl0ZW0oaXRlbTogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuY2hlY2tTZWxlY3RlZChpdGVtKSkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZEl0ZW1zID0gdGhpcy5jaGVja2VkSXRlbXMuZmlsdGVyKGYgPT4gZlt0aGlzLmtleVZhbHVlIV0gIT09IGl0ZW1bdGhpcy5rZXlWYWx1ZSFdIHx8IGYgIT09IGl0ZW0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkSXRlbXMucHVzaChpdGVtKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWx1ZXMgPSAgdGhpcy5jaGVja2VkSXRlbXMubWFwKG0gPT4gbVt0aGlzLmtleVZhbHVlXSlcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHZhbHVlcyk7XHJcbiAgICBjb25zdCBzZWxlY3RMID0gdGhpcy5jaGVja2VkSXRlbXMubGVuZ3RoO1xyXG4gICAgaWYgKHNlbGVjdEwpIHtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gYNCS0YvQsdGA0LDQvdC+ICgke3NlbGVjdEx9KWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tTZWxlY3RlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrZWRJdGVtcy5maW5kKGYgPT4gZlt0aGlzLmtleVZhbHVlIV0gPT09IGl0ZW1bdGhpcy5rZXlWYWx1ZSFdIHx8IGYgPT09IGl0ZW0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jaGVja2VkSXRlbT8uW3RoaXMua2V5VmFsdWUhXSA9PT0gaXRlbVt0aGlzLmtleVZhbHVlIV0gfHwgdGhpcy5jaGVja2VkSXRlbSA9PT0gaXRlbVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaWItc2VsZWN0XCIgaWQ9XCJsaWItc2VsZWN0LXt7IHNlbGVjdElkIH19XCI+XG4gIDxsYWJlbCBbZm9yXT1cImlkXCIgY2xhc3M9XCJsaWItc2VsZWN0X190aXRsZVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgPGRkLWxpYi1zdmctaWNvbiBpY29uPVwiZXJyb3JfaGludFwiPjwvZGQtbGliLXN2Zy1pY29uPlxuICAgIH1cbiAgPC9sYWJlbD5cblxuICA8ZGl2IGNsYXNzPVwicG9zLXJlbGF0aXZlXCI+XG4gICAgPGlucHV0XG4gICAgICAjc2VsZWN0XG4gICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgpXCJcbiAgICAgIChjbGljayk9XCJub3RpZnlGb2N1c0V2ZW50KCRldmVudClcIlxuICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgIFthdHRyLmlkXT1cInNlbGVjdElkXCJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbYXR0ci50YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICBbYXR0ci50eXBlXT1cIid0ZXh0J1wiXG4gICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkXCJcbiAgICAgIFtjbGFzcy5pbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICBbdGl0bGVdPVwiaW5wdXRWYWx1ZVwiXG4gICAgICBjbGFzcz1cInRleHQtc2VsZWN0XCIgLz5cbiAgICA8IS0tICAgIChibHVyKT1cIm5vdGlmeUZvY3VzRXZlbnQoJGV2ZW50KVwiLS0+XG4gICAgQGlmICghY2hlY2tlZEl0ZW0pIHtcbiAgICAgIDxkZC1saWItc3ZnLWljb25cbiAgICAgICAgKGNsaWNrKT1cIm5vdGlmeUZvY3VzRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgIFtjbGFzcy5ibGFjay1zdmddPVwiaXNTaG93bkxpc3RcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MuZ3JheS1zdmddPVwiIWlzU2hvd25MaXN0XCJcbiAgICAgICAgW2NsYXNzLnVwXT1cImlzU2hvd25MaXN0XCJcbiAgICAgICAgaWQ9XCJjaGV2cm9uLXt7IHNlbGVjdElkIH19XCIgY2xhc3M9XCJjaGV2cm9uXCIgaWNvbj1cImRvd25fY2hldnJvblwiPjwvZGQtbGliLXN2Zy1pY29uPlxuXG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGQtbGliLXN2Zy1pY29uXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGNoZWNrZWRJdGVtKVwiXG4gICAgICAgIGNsYXNzPVwiY2xlYXJcIlxuICAgICAgICBpZD1cImNoZXZyb24te3sgc2VsZWN0SWQgfX1cIiBpY29uPVwiY2xlYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cblxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmIChlcnJvclRleHQgJiYgaW52YWxpZCkge1xuICA8ZGl2IGNsYXNzPVwibGliLXNlbGVjdF9fZXJyb3JcIj57eyBlcnJvclRleHQgfX08L2Rpdj5cbiAgfSBAaWYgKGlzU2hvd25MaXN0KSB7XG4gIDxkaXZcbiAgICAoZGRDbGlja091dHNpZGUpPVwibm90aWZ5Rm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICBbZWxlbWVudHNdPVwiWydsaWItc2VsZWN0LScgKyBzZWxlY3RJZCwgJ2NoZXZyb24nICsgc2VsZWN0SWRdXCJcbiAgICBbY2xhc3MudG9wXT1cInNpZGUgPT09ICd0b3AnXCJcbiAgICBjbGFzcz1cInNlbGVjdC1saXN0LXdyYXBwZXJcIj5cbiAgICBAaWYgKGRhdGE/Lmxlbmd0aCkgeyBAZm9yIChpdGVtIG9mIGRhdGEgfCBmaWx0ZXJCeUtleTogZmlsdGVyTGlzdC5iaW5kKHRoaXMpOyB0cmFjayBpdGVtKSB7XG4gICAgPGRpdlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjaGVja1NlbGVjdGVkKGl0ZW0pXCJcbiAgICAgIGNsYXNzPVwic2VsZWN0LWRhdGFcIj5cblxuICAgICAgQGlmICgha2V5RGVzYyAmJiAha2V5VGl0bGUpIHtcbiAgICAgIDxkaXYgW2lubmVySFRNTF09XCJpdGVtIHwgaGlnaGxpZ2h0OiBpbnB1dFZhbHVlIHwgc2FmZTogJ2h0bWwnXCIgY2xhc3M9XCJzZWxlY3QtZGF0YV9fdGl0bGVcIj48L2Rpdj5cbiAgICAgIH0gQGlmIChrZXlUaXRsZSkge1xuICAgICAgPGRpdlxuICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW1ba2V5VGl0bGUhXSB8IGhpZ2hsaWdodDogaW5wdXRWYWx1ZSB8IHNhZmU6ICdodG1sJ1wiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0LWRhdGFfX3RpdGxlXCI+PC9kaXY+XG4gICAgICB9IEBpZiAoa2V5RGVzYykge1xuICAgICAgPGRpdlxuICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW1ba2V5RGVzYyFdIHwgaGlnaGxpZ2h0OiBpbnB1dFZhbHVlIHwgc2FmZTogJ2h0bWwnXCJcbiAgICAgICAgW3RpdGxlXT1cIml0ZW1ba2V5RGVzY11cIlxuICAgICAgICBjbGFzcz1cInNlbGVjdC1kYXRhX19kZXNjXCI+PC9kaXY+XG4gICAgICB9IEBpZiAoY2hlY2tTZWxlY3RlZChpdGVtKSkge1xuICAgICAgPGRkLWxpYi1zdmctaWNvblxuICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShjaGVja2VkSXRlbSlcIlxuICAgICAgICBjbGFzcz1cImNoZWNrZWRcIlxuICAgICAgICBpZD1cImNoZXZyb24te3sgc2VsZWN0SWQgfX1cIiBpY29uPVwiY2hlY2tfZ3JlZW5cIj48L2RkLWxpYi1zdmctaWNvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9IH0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtbG9hZGVyXCI+XG4gICAgICA8ZGQtbGliLWxvYWRlcj48L2RkLWxpYi1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItc2VsZWN0L2xpYi1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXNlbGVjdC9saWItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osS0FBSyxFQUVMLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFHTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQzs7O0FBNkJ4RixNQUFNLE9BQU8sa0JBQ1gsU0FBUSwyQkFBMkI7YUFHckIsY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBZ0I1QixZQUNFLGVBQWtDLEVBQ00sZ0JBQWtDO1FBRTFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUZpQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBYjVELGFB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Q0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDakQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ2pESCwwd0ZBcUZBLDBxRUR2REksbUJBQW1CLHNaQUNuQixXQUFXLGtQQUNYLGFBQWEsNkNBRWIsUUFBUSw2Q0FDUixxQkFBcUIsZ0hBQ3JCLGtCQUFrQix3RUFDbEIsZUFBZSxvREFDZixtQkFBbUI7OzJGQWNWLGtCQUFrQjtrQkEzQjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFFBQVE7cUJBQ1QsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQXdCNUMsUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTt5Q0FoQmYsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ21CLFdBQVc7c0JBQW5DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNraXBTZWxmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0pzb25QaXBlLCBOZ09wdGltaXplZEltYWdlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xDb250YWluZXIsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybXNNb2R1bGUsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TGliQ29tbW9uSW5wdXRUZXh0Q29tcG9uZW50fSBmcm9tICcuLi9jb21tb24vbGliLWNvbW1vbi1pbnB1dC10ZXh0JztcclxuaW1wb3J0IHtMaWJDYXJkQ29tcG9uZW50fSBmcm9tICcuLi9saWItY2FyZC9saWItY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xpYkxvYWRlckNvbXBvbmVudH0gZnJvbSAnLi4vbGliLWxvYWRlci9saWItbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGliU3ZnSWNvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1zdmctaWNvbi9saWItc3ZnLWljb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Q2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBGaWx0ZXJCeUtleVBpcGUsIEhpZ2hsaWdodFBpcGUsIFNhZmVQaXBlfSBmcm9tIFwiLi4vY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItc2VsZWN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIaWdobGlnaHRQaXBlLFxyXG4gICAgTGliQ2FyZENvbXBvbmVudCxcclxuICAgIFNhZmVQaXBlLFxyXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxyXG4gICAgTGliTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyQnlLZXlQaXBlLFxyXG4gICAgTGliU3ZnSWNvbkNvbXBvbmVudCxcclxuICAgIEpzb25QaXBlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saWItc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYlNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliU2VsZWN0Q29tcG9uZW50PFQ+XHJcbiAgZXh0ZW5kcyBMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Jcclxue1xyXG4gIHB1YmxpYyBzdGF0aWMgaWRDb3VudGVyID0gMTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIG11bHRpOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RJZDogc3RyaW5nICB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgZGF0YTogYW55ICB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMga2V5VGl0bGUgPSAnbmFtZSc7XHJcbiAgQElucHV0KCkgcHVibGljIGtleURlc2M6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMga2V5VmFsdWUgPSAnaWQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvdmVycmlkZSBwbGFjZWhvbGRlciA9ICfQktGL0LHQtdGA0LjRgtC1INC40Lcg0YHQv9C40YHQutCwJztcclxuICBwdWJsaWMgY2hlY2tlZEl0ZW06IGFueTtcclxuICBwdWJsaWMgY2hlY2tlZEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBpbnB1dFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHNlYXJjaFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGlzU2hvd25MaXN0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgc3RyaW5nQXJyYXk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICkge1xyXG4gICAgc3VwZXIoY2hhbmdlRGV0ZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLnN0cmluZ0FycmF5ID0gdHlwZW9mIHRoaXMuZGF0YT8uWzBdID09PSAnc3RyaW5nJztcclxuICAgIGlmICghdGhpcy5zZWxlY3RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdElkID0gJ2RkLXNlbGVjdC0nICsgTGliU2VsZWN0Q29tcG9uZW50LmlkQ291bnRlcisrO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua2V5VGl0bGUgJiYgIXRoaXMua2V5VmFsdWUpIHtcclxuICAgICAgdGhpcy5rZXlWYWx1ZSA9IHRoaXMua2V5VGl0bGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2wgPVxyXG4gICAgICB0aGlzLmNvbnRyb2xDb250YWluZXIgJiYgdGhpcy5mb3JtQ29udHJvbE5hbWVcclxuICAgICAgICA/IHRoaXMuY29udHJvbENvbnRhaW5lcj8uY29udHJvbD8uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKVxyXG4gICAgICAgIDogbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgICBzdXBlci5yZWdpc3Rlck9uQ2hhbmdlKGZuKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICAgIHN1cGVyLnJlZ2lzdGVyT25Ub3VjaGVkKGZuKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlIGhhbmRsZUlucHV0KGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2hvd25MaXN0ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSB0aGlzLmlucHV0VmFsdWU7XHJcbiAgICBzdXBlci5oYW5kbGVJbnB1dChlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlIG5vdGlmeUZvY3VzRXZlbnQoZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmlzU2hvd25MaXN0ID0gIXRoaXMuaXNTaG93bkxpc3Q7XHJcbiAgICB9XHJcbiAgICBzdXBlci5ub3RpZnlGb2N1c0V2ZW50KGUpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tdWx0aSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGDQktGL0LHRgNCw0L3QviAoJHt2YWx1ZS5sZW5ndGh9KWBcclxuICAgICAgdGhpcy5jaGVja2VkSXRlbXMgPSB0aGlzLmRhdGEuZmlsdGVyKChmOiBhbnkpID0+IHZhbHVlLmluY2x1ZGVzKGZbdGhpcy5rZXlWYWx1ZV0pKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuc3RyaW5nQXJyYXkpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZlZhbCA9IHRoaXMuZGF0YS5maW5kKChmOiBhbnkpID0+IGZbdGhpcy5rZXlWYWx1ZV0gPT09IHZhbHVlKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gZlZhbDtcclxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSBmVmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0SXRlbShpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0TXVsdGlJdGVtKGl0ZW0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RTaW5nbGVJdGVtKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlckxpc3QoaXRlbTogYW55KTogYW55IHtcclxuICAgIHJldHVybiBpdGVtW3RoaXMua2V5VGl0bGUhXT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlPy50b0xvd2VyQ2FzZSgpIHx8ICcnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdFNpbmdsZUl0ZW0oaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGlmICghdGhpcy5jaGVja2VkSXRlbSkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkSXRlbSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodW5kZWZpbmVkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLmNoZWNrZWRJdGVtIHx8IGl0ZW1bdGhpcy5rZXlWYWx1ZSFdICE9PSB0aGlzLmNoZWNrZWRJdGVtPy5bdGhpcy5rZXlWYWx1ZSFdKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkSXRlbSA9IGl0ZW07XHJcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5jaGVja2VkSXRlbVt0aGlzLmtleVRpdGxlIV07XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGl0ZW1bdGhpcy5rZXlWYWx1ZSFdO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZEl0ZW0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHVuZGVmaW5lZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmlzU2hvd25MaXN0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdE11bHRpSXRlbShpdGVtOiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5jaGVja1NlbGVjdGVkKGl0ZW0pKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkSXRlbXMgPSB0aGlzLmNoZWNrZWRJdGVtcy5maWx0ZXIoZiA9PiBmW3RoaXMua2V5VmFsdWUhXSAhPT0gaXRlbVt0aGlzLmtleVZhbHVlIV0gfHwgZiAhPT0gaXRlbSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRJdGVtcy5wdXNoKGl0ZW0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHZhbHVlcyA9ICB0aGlzLmNoZWNrZWRJdGVtcy5tYXAobSA9PiBtW3RoaXMua2V5VmFsdWVdKVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodmFsdWVzKTtcclxuICAgIGNvbnN0IHNlbGVjdEwgPSB0aGlzLmNoZWNrZWRJdGVtcy5sZW5ndGg7XHJcbiAgICBpZiAoc2VsZWN0TCkge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBg0JLRi9Cx0YDQsNC90L4gKCR7c2VsZWN0TH0pYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja1NlbGVjdGVkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubXVsdGkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tlZEl0ZW1zLmZpbmQoZiA9PiBmW3RoaXMua2V5VmFsdWUhXSA9PT0gaXRlbVt0aGlzLmtleVZhbHVlIV0gfHwgZiA9PT0gaXRlbSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrZWRJdGVtPy5bdGhpcy5rZXlWYWx1ZSFdID09PSBpdGVtW3RoaXMua2V5VmFsdWUhXSB8fCB0aGlzLmNoZWNrZWRJdGVtID09PSBpdGVtXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxpYi1zZWxlY3RcIiBpZD1cImxpYi1zZWxlY3Qte3sgc2VsZWN0SWQgfX1cIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImxpYi1zZWxlY3RfX3RpdGxlXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICA8ZGQtbGliLXN2Zy1pY29uIGljb249XCJlcnJvcl9oaW50XCI+PC9kZC1saWItc3ZnLWljb24+XG4gICAgfVxuICA8L2xhYmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJwb3MtcmVsYXRpdmVcIj5cbiAgICA8aW5wdXRcbiAgICAgICNzZWxlY3RcbiAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgKGNsaWNrKT1cIm5vdGlmeUZvY3VzRXZlbnQoJGV2ZW50KVwiXG4gICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgW2F0dHIuaWRdPVwic2VsZWN0SWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFthdHRyLnRhYkluZGV4XT1cInRhYkluZGV4XCJcbiAgICAgIFthdHRyLnR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIlxuICAgICAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgIFt0aXRsZV09XCJpbnB1dFZhbHVlXCJcbiAgICAgIGNsYXNzPVwidGV4dC1zZWxlY3RcIiAvPlxuICAgIDwhLS0gICAgKGJsdXIpPVwibm90aWZ5Rm9jdXNFdmVudCgkZXZlbnQpXCItLT5cbiAgICBAaWYgKCFjaGVja2VkSXRlbSkge1xuICAgICAgPGRkLWxpYi1zdmctaWNvblxuICAgICAgICAoY2xpY2spPVwibm90aWZ5Rm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgW2NsYXNzLmJsYWNrLXN2Z109XCJpc1Nob3duTGlzdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5ncmF5LXN2Z109XCIhaXNTaG93bkxpc3RcIlxuICAgICAgICBbY2xhc3MudXBdPVwiaXNTaG93bkxpc3RcIlxuICAgICAgICBpZD1cImNoZXZyb24te3sgc2VsZWN0SWQgfX1cIiBjbGFzcz1cImNoZXZyb25cIiBpY29uPVwiZG93bl9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkZC1saWItc3ZnLWljb25cbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oY2hlY2tlZEl0ZW0pXCJcbiAgICAgICAgY2xhc3M9XCJjbGVhclwiXG4gICAgICAgIGlkPVwiY2hldnJvbi17eyBzZWxlY3RJZCB9fVwiIGljb249XCJjbGVhclwiPjwvZGQtbGliLXN2Zy1pY29uPlxuXG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKGVycm9yVGV4dCAmJiBpbnZhbGlkKSB7XG4gIDxkaXYgY2xhc3M9XCJsaWItc2VsZWN0X19lcnJvclwiPnt7IGVycm9yVGV4dCB9fTwvZGl2PlxuICB9IEBpZiAoaXNTaG93bkxpc3QpIHtcbiAgPGRpdlxuICAgIChkZENsaWNrT3V0c2lkZSk9XCJub3RpZnlGb2N1c0V2ZW50KCRldmVudClcIlxuICAgIFtlbGVtZW50c109XCJbJ2xpYi1zZWxlY3QtJyArIHNlbGVjdElkLCAnY2hldnJvbicgKyBzZWxlY3RJZF1cIlxuICAgIFtjbGFzcy50b3BdPVwic2lkZSA9PT0gJ3RvcCdcIlxuICAgIGNsYXNzPVwic2VsZWN0LWxpc3Qtd3JhcHBlclwiPlxuICAgIEBpZiAoZGF0YT8ubGVuZ3RoKSB7IEBmb3IgKGl0ZW0gb2YgZGF0YSB8IGZpbHRlckJ5S2V5OiBmaWx0ZXJMaXN0LmJpbmQodGhpcyk7IHRyYWNrIGl0ZW0pIHtcbiAgICA8ZGl2XG4gICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cImNoZWNrU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgY2xhc3M9XCJzZWxlY3QtZGF0YVwiPlxuXG4gICAgICBAaWYgKCFrZXlEZXNjICYmICFrZXlUaXRsZSkge1xuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW0gfCBoaWdobGlnaHQ6IGlucHV0VmFsdWUgfCBzYWZlOiAnaHRtbCdcIiBjbGFzcz1cInNlbGVjdC1kYXRhX190aXRsZVwiPjwvZGl2PlxuICAgICAgfSBAaWYgKGtleVRpdGxlKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbVtrZXlUaXRsZSFdIHwgaGlnaGxpZ2h0OiBpbnB1dFZhbHVlIHwgc2FmZTogJ2h0bWwnXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3QtZGF0YV9fdGl0bGVcIj48L2Rpdj5cbiAgICAgIH0gQGlmIChrZXlEZXNjKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbVtrZXlEZXNjIV0gfCBoaWdobGlnaHQ6IGlucHV0VmFsdWUgfCBzYWZlOiAnaHRtbCdcIlxuICAgICAgICBbdGl0bGVdPVwiaXRlbVtrZXlEZXNjXVwiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0LWRhdGFfX2Rlc2NcIj48L2Rpdj5cbiAgICAgIH0gQGlmIChjaGVja1NlbGVjdGVkKGl0ZW0pKSB7XG4gICAgICA8ZGQtbGliLXN2Zy1pY29uXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGNoZWNrZWRJdGVtKVwiXG4gICAgICAgIGNsYXNzPVwiY2hlY2tlZFwiXG4gICAgICAgIGlkPVwiY2hldnJvbi17eyBzZWxlY3RJZCB9fVwiIGljb249XCJjaGVja19ncmVlblwiPjwvZGQtbGliLXN2Zy1pY29uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIH0gfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdC1sb2FkZXJcIj5cbiAgICAgIDxkZC1saWItbG9hZGVyPjwvZGQtbGliLWxvYWRlcj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|