@colijnit/corecomponents_v12 260.1.12 → 260.1.14
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/bundles/colijnit-corecomponents_v12.umd.js +13 -4
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/esm2015/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.component.js +3 -2
- package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +7 -2
- package/esm2015/lib/components/list-of-values/list-of-values.component.js +6 -3
- package/fesm2015/colijnit-corecomponents_v12.js +13 -4
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/list-of-values/list-of-values.component.d.ts +1 -1
- package/package.json +1 -1
package/esm2015/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.component.js
CHANGED
|
@@ -254,7 +254,8 @@ export class HourSchedulingExpandableComponent {
|
|
|
254
254
|
return split.join(':');
|
|
255
255
|
}
|
|
256
256
|
convertTZ(date, tzString) {
|
|
257
|
-
|
|
257
|
+
var _a;
|
|
258
|
+
return new Date((_a = (typeof date === "string" ? new Date(date) : date)) === null || _a === void 0 ? void 0 : _a.toLocaleString("en-US", { timeZone: tzString }));
|
|
258
259
|
}
|
|
259
260
|
convertDateToEuropean(date) {
|
|
260
261
|
return this.convertTZ(date, 'Europe/Amsterdam');
|
|
@@ -333,4 +334,4 @@ HourSchedulingExpandableComponent.propDecorators = {
|
|
|
333
334
|
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }],
|
|
334
335
|
clickOut: [{ type: HostListener, args: ['document:click', ['$event'],] }]
|
|
335
336
|
};
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLWV4cGFuZGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQWdFdkIsTUFBTSxPQUFPLGlDQUFpQztJQTZENUMsWUFDVSxLQUF3QixFQUN4QixJQUFnQjtRQURoQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBN0RuQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFHekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQiwwQkFBcUIsR0FBNEIsSUFBSSxDQUFDO1FBQ3RELDBCQUFxQixHQUE0QixJQUFJLENBQUM7UUFDdEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBdUJkLG9CQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkUsdUJBQWtCLEdBQXdELElBQUksWUFBWSxFQUd2RyxDQUFDO1FBRVksOEJBQXlCLEdBQXdELElBQUksWUFBWSxFQUF5QyxDQUFDO1FBR3JKLGNBQVMsR0FBWSxJQUFJLENBQUM7SUFtQmpDLENBQUM7SUFoREQsSUFBb0IsUUFBUSxDQUFFLEtBQWE7UUFDekMsSUFBRyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUks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Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF6RUMsaUJBQWlCO1lBQ04sVUFBVTs7O3VCQTBGcEIsS0FBSzs0QkFhTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7cUJBQ0wsS0FBSzs4QkFFTCxNQUFNO2lDQUNOLE1BQU07d0NBS04sTUFBTTt3QkFFTixXQUFXLFNBQUMscUNBQXFDO3VCQUdqRCxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO3VCQUt4QyxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbnRlcmZhY2UgU2NoZWR1bGluZ09iamVjdCB7XHJcbiAgc3RhcnQ6IERhdGU7XHJcbiAgZW5kOiBEYXRlO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHN1YlRpdGxlPzogc3RyaW5nO1xyXG4gIGhlaWdodD86IG51bWJlcjtcclxuICB0b3A/OiBudW1iZXI7XHJcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICBzaG93VG9wUmVzaXplcj86IGJvb2xlYW47XHJcbiAgc2hvd0JvdHRvbVJlc2l6ZXI/OiBib29sZWFuO1xyXG5cclxuXHJcbiAgW2tleTogc3RyaW5nXTogYW55OyAvLyBBbGxvd3MgZHluYW1pYyBwcm9wZXJ0aWVzIGluY2x1ZGluZyB1bmlxdWUgaWRlbnRpZmllcnNcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1ob3VyLXNjaGVkdWxpbmctZXhwYW5kYWJsZScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWJsb2NrXCIgKm5nRm9yPVwibGV0IGhvdXIgb2YgaG91ckxhYmVsc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWxhYmVsXCI+PHNwYW4gW3RleHRDb250ZW50XT1cImhvdXJcIj48L3NwYW4+PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtZGlzcGxheVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpcnN0LWhhbGYtaG91ciBvYmplY3QtaGFsZlwiXHJcbiAgICAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCBob3VyKVwiXHJcbiAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwiaGFuZGxlRHJhZ0xlYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudCwgaG91cilcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmQtaGFsZi1ob3VyIG9iamVjdC1oYWxmXCJcclxuICAgICAgICAgICAgICAgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQsIGFkZEhhbGZIb3VyKGhvdXIpKVwiXHJcbiAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwiaGFuZGxlRHJhZ0xlYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudCwgYWRkSGFsZkhvdXIoaG91cikpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVkLW9iamVjdHNcIiA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcbiAgICAgICAgICAgICAgb2JqZWN0czogc2NoZWR1bGVkT2JqZWN0cyxcclxuICAgICAgICAgICAgICBvblNlbGVjdEJsb2NrOiB0aGlzLm9uU2VsZWN0QmxvY2suYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICBvblJlc2l6ZVN0YXJ0OiB0aGlzLm9uUmVzaXplU3RhcnQuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICBvbkRyYWdTdGFydEN1c3RvbTogdGhpcy5vbkRyYWdTdGFydEN1c3RvbS5iaW5kKHRoaXMpXHJcblxyXG4gICAgICAgICAgICB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhvdXJTY2hlZHVsaW5nRXhwYW5kYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBob3VyTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBzY2hlZHVsZWRPYmplY3RzOiBTY2hlZHVsaW5nT2JqZWN0W10gPSBbXTtcclxuXHJcblxyXG4gIHByaXZhdGUgcmVzaXppbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHJlc2l6ZURpcmVjdGlvbjogJ3RvcCcgfCAnYm90dG9tJztcclxuICBwcml2YXRlIGluaXRpYWxZOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbml0aWFsSGVpZ2h0OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbml0aWFsVG9wOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBjdXJyZW50UmVzaXppbmdPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGN1cnJlbnREcmFnZ2luZ09iamVjdDogU2NoZWR1bGluZ09iamVjdCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgTUlOX0hFSUdIVCA9IDMwO1xyXG4gIHByaXZhdGUgX3NjaGVkdWxlOiBPYmplY3QgPSB7fTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2NoZWR1bGUoIHZhbHVlOiBPYmplY3QpIHtcclxuICAgIGlmKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLl9zY2hlZHVsZSkge1xyXG4gICAgICB0aGlzLnJlbmRlck9iamVjdHMoKTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLl9zY2hlZHVsZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzY2hlZHVsZSgpOiBPYmplY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NjaGVkdWxlO1xyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdGFydFRpbWVQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGVuZFRpbWVQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIG9iamVjdHNQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoaWxkUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBwdWJsaWMgaWRQcm9wOiBzdHJpbmc7ICAvLyBJbnB1dCBmb3IgdW5pcXVlIGlkZW50aWZpZXIgcHJvcGVydHlcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0aW1lQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBuZXdPYmplY3RQbGFuRXZlbnQ6IEV2ZW50RW1pdHRlcjx7IGN1cnJlbnRIb3VyOiBzdHJpbmcsIGRhdGE6IHN0cmluZyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgY3VycmVudEhvdXI6IHN0cmluZyxcclxuICAgIGRhdGE6IHN0cmluZ1xyXG4gIH0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW92ZUJldHdlZW5DYWxlbmRhcnNFdmVudDogRXZlbnRFbWl0dGVyPHtob3VyOiBzdHJpbmcsIGRhdGE6U2NoZWR1bGluZ09iamVjdH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7aG91cjogc3RyaW5nLCBkYXRhOlNjaGVkdWxpbmdPYmplY3R9PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlJylcclxuICBwdWJsaWMgc2hvd0NsYXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uUmVzaXplKGV2ZW50OiB7IHRhcmdldDogeyBpbm5lcldpZHRoOiBhbnk7IH07IH0pIHtcclxuICAgIGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBjbGlja091dChldmVudDogeyB0YXJnZXQ6IGFueTsgfSkge1xyXG4gICAgaWYoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgdGhpcy5oYW5kbGVEZXNlbGVjdEFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5nZW5lcmF0ZVRpbWVCbG9ja3MoKTtcclxuICAgIGlmKHRoaXMuc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJPYmplY3RzKCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvLyBDYWxjdWxhdGUgcHJvcGVydGllcyBmb3IgZWFjaCBzY2hlZHVsZWQgb2JqZWN0IHRvIGRldGVybWluZSByZXNpemVyIHZpc2liaWxpdHlcclxuXHJcblxyXG4gIC8vIEZpbmQgdGhlIG5leHQgb2JqZWN0IGluIHRoZSBzY2hlZHVsZWRPYmplY3RzIGxpc3RcclxuICBwcml2YXRlIF9maW5kTmV4dE9iamVjdChjdXJyZW50T2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0KTogU2NoZWR1bGluZ09iamVjdCB8IG51bGwge1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5zY2hlZHVsZWRPYmplY3RzLmluZGV4T2YoY3VycmVudE9iamVjdCk7XHJcbiAgICBpZiAoY3VycmVudEluZGV4ID49IDAgJiYgY3VycmVudEluZGV4IDwgdGhpcy5zY2hlZHVsZWRPYmplY3RzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tjdXJyZW50SW5kZXggKyAxXTsgLy8gVGhlIG5leHQgb2JqZWN0IGluIHRoZSBsaXN0XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDsgLy8gTm8gbmV4dCBvYmplY3QgKGl0J3MgdGhlIGxhc3Qgb25lKVxyXG4gIH1cclxuXHJcbiAgLy8gRmluZCB0aGUgcHJldmlvdXMgb2JqZWN0IGluIHRoZSBzY2hlZHVsZWRPYmplY3RzIGxpc3RcclxuICBwcml2YXRlIF9maW5kUHJldmlvdXNPYmplY3QoY3VycmVudE9iamVjdDogU2NoZWR1bGluZ09iamVjdCk6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5pbmRleE9mKGN1cnJlbnRPYmplY3QpO1xyXG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tjdXJyZW50SW5kZXggLSAxXTsgLy8gVGhlIHByZXZpb3VzIG9iamVjdCBpbiB0aGUgbGlzdFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7IC8vIE5vIHByZXZpb3VzIG9iamVjdCAoaXQncyB0aGUgZmlyc3Qgb25lKVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyByZW5kZXJPYmplY3RzKCkge1xyXG4gICAgaWYodGhpcy5zY2hlZHVsZSkge1xyXG4gICAgICBpZiAodGhpcy5zY2hlZHVsZWRPYmplY3RzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgb2JqZWN0czogT2JqZWN0W10gPSB0aGlzLnNjaGVkdWxlW3RoaXMub2JqZWN0c1Byb3BdO1xyXG5cclxuICAgICAgbGV0IHNjaGVkdWxpbmdPYmplY3RzOiBTY2hlZHVsaW5nT2JqZWN0W10gPSBbXTtcclxuXHJcblxyXG4gICAgICBpZiAob2JqZWN0cyAmJiBvYmplY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBvYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IHtcclxuICAgICAgICAgIGxldCB0b3BEaWZmZXJlbmNlOiBudW1iZXIgPSB0aGlzLnRpbWVEaWZmZXJlbmNlKHRoaXMuc2NoZWR1bGVbdGhpcy5jaGlsZFByb3BdW3RoaXMuc3RhcnRUaW1lUHJvcF0sIG9iamVjdFt0aGlzLnN0YXJ0VGltZVByb3BdKTtcclxuICAgICAgICAgIHNjaGVkdWxpbmdPYmplY3RzLnB1c2goXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogb2JqZWN0Wyd0aXRsZSddLFxyXG4gICAgICAgICAgICAgIHN1YlRpdGxlOiBvYmplY3RbJ3N1YlRpdGxlJ10sXHJcblxyXG4gICAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihvYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSksXHJcbiAgICAgICAgICAgICAgZW5kOiB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihvYmplY3RbdGhpcy5lbmRUaW1lUHJvcF0pLFxyXG4gICAgICAgICAgICAgIGlkOiBvYmplY3RbdGhpcy5pZFByb3BdLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogdGhpcy50aW1lRGlmZmVyZW5jZShvYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSwgb2JqZWN0W3RoaXMuZW5kVGltZVByb3BdKSxcclxuICAgICAgICAgICAgICB0b3A6IHRvcERpZmZlcmVuY2UsXHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMgPSBzY2hlZHVsaW5nT2JqZWN0cztcclxuXHJcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0QmxvY2sob2JqOiBTY2hlZHVsaW5nT2JqZWN0KSB7XHJcbiAgICBvYmouc2VsZWN0ZWQgPSAhb2JqLnNlbGVjdGVkO1xyXG4gICAgaWYob2JqLnNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5mb3JFYWNoKChzY2hlZHVsZWRPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QpID0+IHtcclxuICAgICAgICBpZiAoc2NoZWR1bGVkT2JqZWN0LnNlbGVjdGVkICYmIHNjaGVkdWxlZE9iamVjdCAhPT0gb2JqKSB7XHJcbiAgICAgICAgICBzY2hlZHVsZWRPYmplY3Quc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QgPSBvYmo7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EcmFnU3RhcnRDdXN0b20ob2JqOiBTY2hlZHVsaW5nT2JqZWN0KSB7XHJcbiAgICB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdCA9IG9iajtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgaGFuZGxlRHJvcChkcmFnRXZlbnQ6IERyYWdFdmVudCwgaG91cjogc3RyaW5nKSB7XHJcbiAgICBkcmFnRXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGRyYWdFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZighdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXSB8fCAhdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXS5maW5kKChvYmplY3Q6IE9iamVjdCkgPT4gb2JqZWN0W3RoaXMuaWRQcm9wXSA9PT0gdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgJiYgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3Q/LmlkKSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QpIHtcclxuICAgICAgLy9UaGUgb3JkZXIgd2FzIHNjaGVkdWxlZCBhbmQgbmVlZHMgdG8gYmUgbW92ZWRcclxuXHJcbiAgICAgIGxldCBzdGFydDogRGF0ZSA9IHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LnN0YXJ0O1xyXG4gICAgICBsZXQgaG91clNwbGl0ID0gaG91ci5zcGxpdChcIjpcIilcclxuICAgICAgc3RhcnQuc2V0SG91cnMocGFyc2VJbnQoaG91clNwbGl0WzBdKSk7XHJcbiAgICAgIHN0YXJ0LnNldE1pbnV0ZXMocGFyc2VJbnQoaG91clNwbGl0WzFdKSk7XHJcbiAgICAgIGxldCBzY2hlZHVsZWRPYmplY3QgPSB0aGlzLnNjaGVkdWxlZE9iamVjdHMuZmluZCggc2NoZWR1bGVkT2JqZWN0ID0+IHNjaGVkdWxlZE9iamVjdC5pZCA9PT0gdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QuaWQpO1xyXG4gICAgICBpZihzY2hlZHVsZWRPYmplY3QpIHtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3Quc3RhcnQgPSBzdGFydDtcclxuXHJcbiAgICAgICAgbGV0IG9yaWdpbmFsT2JqZWN0OiBPYmplY3QgPSB0aGlzLnNjaGVkdWxlW3RoaXMub2JqZWN0c1Byb3BdLmZpbmQoKG9iamVjdDogT2JqZWN0KSA9PiBvYmplY3RbdGhpcy5pZFByb3BdID09PSB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdC5pZCk7XHJcbiAgICAgICAgb3JpZ2luYWxPYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSA9IHN0YXJ0O1xyXG4gICAgICAgIGxldCBlbmQ6IERhdGUgPSB0aGlzLmFkZE1pbnV0ZXMob3JpZ2luYWxPYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSwgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QuaGVpZ2h0KTtcclxuICAgICAgICBvcmlnaW5hbE9iamVjdFt0aGlzLmVuZFRpbWVQcm9wXSA9IGVuZDtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3QuZW5kID0gZW5kO1xyXG4gICAgICAgIHNjaGVkdWxlZE9iamVjdC50b3AgPSB0aGlzLnRpbWVEaWZmZXJlbmNlKHRoaXMuc2NoZWR1bGVbdGhpcy5jaGlsZFByb3BdW3RoaXMuc3RhcnRUaW1lUHJvcF0sIHNjaGVkdWxlZE9iamVjdC5zdGFydCk7XHJcbiAgICAgICAgc2NoZWR1bGVkT2JqZWN0LmhlaWdodCA9IHRoaXMudGltZURpZmZlcmVuY2Uoc2NoZWR1bGVkT2JqZWN0LnN0YXJ0LCBzY2hlZHVsZWRPYmplY3QuZW5kKTtcclxuXHJcbiAgICAgICAgdGhpcy50aW1lQ2hhbmdlRXZlbnQuZW1pdChvcmlnaW5hbE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgbGV0IHBhcnNlZDogU2NoZWR1bGluZ09iamVjdCA9IHRoaXMudHJ5UGFyc2VKU09OT2JqZWN0KGRyYWdFdmVudC5kYXRhVHJhbnNmZXIhLmdldERhdGEoXCJ0ZXh0XCIpKTtcclxuXHJcbiAgICAgIGlmICghcGFyc2VkKSB7XHJcbiAgICAgICAgdGhpcy5uZXdPYmplY3RQbGFuRXZlbnQuZW1pdCh7Y3VycmVudEhvdXI6IGhvdXIsIGRhdGE6IHBhcnNlZC50b1N0cmluZygpfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlQmV0d2VlbkNhbGVuZGFyc0V2ZW50LmVtaXQoe2hvdXI6IGhvdXIsIGRhdGE6IHBhcnNlZH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50LCBob3VyOiBzdHJpbmcpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZHJhZy1vdmVyJykpIHtcclxuICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2RyYWctb3ZlcicpO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QpIHtcclxuICAgICAgbGV0IG5ld1N0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LnN0YXJ0KTtcclxuICAgICAgbGV0IGhvdXJTcGxpdDogc3RyaW5nW10gPSBob3VyLnNwbGl0KFwiOlwiKTtcclxuICAgICAgbmV3U3RhcnREYXRlLnNldEhvdXJzKHBhcnNlSW50KGhvdXJTcGxpdFswXSkpO1xyXG4gICAgICBuZXdTdGFydERhdGUuc2V0SG91cnMocGFyc2VJbnQoaG91clNwbGl0WzFdKSk7XHJcblxyXG4gICAgICBpZih0aGlzLnNjaGVkdWxlZE9iamVjdHMuZmluZCggKHNjaGVkdWxlZE9iamVjdDogU2NoZWR1bGluZ09iamVjdCkgPT4gc2NoZWR1bGVkT2JqZWN0LnN0YXJ0ID09PSBuZXdTdGFydERhdGUgKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcHVibGljIGhhbmRsZURyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZHJhZy1vdmVyJykpIHtcclxuICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWctb3ZlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBUcmlnZ2VyZWQgd2hlbiByZXNpemluZyBzdGFydHNcclxuXHJcbiAgcHVibGljIG9uUmVzaXplU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQsIG9iajogU2NoZWR1bGluZ09iamVjdCwgZGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nKSB7XHJcbiAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzaXplRGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QgPSBvYmo7XHJcbiAgICB0aGlzLmluaXRpYWxZID0gZXZlbnQuY2xpZW50WTtcclxuICAgIHRoaXMuaW5pdGlhbEhlaWdodCA9IG9iai5oZWlnaHQgfHwgMDtcclxuICAgIHRoaXMuaW5pdGlhbFRvcCA9IG9iai50b3AgfHwgMDtcclxuXHJcbiAgICAvLyBMaXN0ZW4gdG8gbW91c2Vtb3ZlIGFuZCBtb3VzZXVwIGV2ZW50cyBnbG9iYWxseVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vblJlc2l6aW5nLmJpbmQodGhpcykpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVFbmQuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG4gIC8vIEhhbmRsZSByZXNpemluZyB3aXRoIHNuYXBwaW5nIHRvIDMwcHggaW5jcmVtZW50cyBhbmQgbWluaW11bSBoZWlnaHQgcmVzdHJpY3Rpb25cclxuXHJcbiAgcHVibGljIG9uUmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5yZXNpemluZyB8fCAhdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBkZWx0YVkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5pbml0aWFsWTtcclxuICAgIGNvbnN0IHNuYXBwZWREZWx0YVkgPSBNYXRoLnJvdW5kKGRlbHRhWSAvIDMwKSAqIDMwO1xyXG5cclxuICAgIGlmICh0aGlzLnJlc2l6ZURpcmVjdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgY29uc3QgbmV4dE9iamVjdCA9IHRoaXMuX2ZpbmROZXh0T2JqZWN0KHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0KTtcclxuICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gbmV4dE9iamVjdCA/IG5leHRPYmplY3QudG9wIC0gdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QudG9wIDogSW5maW5pdHk7XHJcblxyXG4gICAgICAvLyBCbG9jayBleHBhbmRpbmcgYmV5b25kIHRoZSBuZXh0IG9iamVjdCBhbmQgc2hyaW5raW5nIGJlbG93IDMwcHhcclxuICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5pbml0aWFsSGVpZ2h0ICsgc25hcHBlZERlbHRhWSwgdGhpcy5NSU5fSEVJR0hUKTtcclxuICAgICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QuaGVpZ2h0ID0gTWF0aC5taW4obmV3SGVpZ2h0LCBtYXhIZWlnaHQpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemVEaXJlY3Rpb24gPT09ICd0b3AnKSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzT2JqZWN0ID0gdGhpcy5fZmluZFByZXZpb3VzT2JqZWN0KHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0KTtcclxuICAgICAgY29uc3QgbWluVG9wID0gcHJldmlvdXNPYmplY3QgPyBwcmV2aW91c09iamVjdC50b3AgKyBwcmV2aW91c09iamVjdC5oZWlnaHQgOiAwO1xyXG5cclxuICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5pbml0aWFsSGVpZ2h0IC0gc25hcHBlZERlbHRhWSwgdGhpcy5NSU5fSEVJR0hUKTtcclxuICAgICAgY29uc3QgbmV3VG9wID0gdGhpcy5pbml0aWFsVG9wICsgKHRoaXMuaW5pdGlhbEhlaWdodCAtIG5ld0hlaWdodCk7XHJcblxyXG4gICAgICAvLyBCbG9jayBtb3ZpbmcgYWJvdmUgdGhlIHByZXZpb3VzIG9iamVjdCdzIGJvdHRvbSBhbmQgc2hyaW5raW5nIGJlbG93IE1JTl9IRUlHSFRcclxuICAgICAgaWYgKG5ld0hlaWdodCA+PSB0aGlzLk1JTl9IRUlHSFQgJiYgbmV3VG9wID49IG1pblRvcCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LnRvcCA9IG5ld1RvcDtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdC5oZWlnaHQgPSBuZXdIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBFbnN1cmUgY2hhbmdlIGRldGVjdGlvbiBoYXBwZW5zXHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gcmVzaXppbmcgZW5kc1xyXG5cclxuICBwdWJsaWMgb25SZXNpemVFbmQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGxldCBvYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QgPSB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdDtcclxuXHJcbiAgICBpZihvYmplY3QgJiYgb2JqZWN0LnNlbGVjdGVkKSB7XHJcbiAgICAgIGxldCBvcmlnaW5hbE9iamVjdCA9IHRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF0uZmluZCgoc2NoZWR1bGVkT2JqZWN0OiBPYmplY3QpID0+IHNjaGVkdWxlZE9iamVjdFt0aGlzLmlkUHJvcF0gPT09IG9iamVjdC5pZCk7XHJcblxyXG4gICAgICBpZiAob3JpZ2luYWxPYmplY3QpIHtcclxuICAgICAgICAvLyBTdGFydCBkYXRlIGNhbGN1bGF0aW9uIGZpcnN0XHJcbiAgICAgICAgb3JpZ2luYWxPYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSA9IHRoaXMuYWRkTWludXRlcyh0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbih0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdKSwgb2JqZWN0LnRvcCk7XHJcblxyXG4gICAgICAgIC8vIFRoZW4gIGVuZCBkYXRlIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHRoZSBoZWlnaHQgb2YgdGhlIG9iamVjdFxyXG4gICAgICAgIG9yaWdpbmFsT2JqZWN0W3RoaXMuZW5kVGltZVByb3BdID0gdGhpcy5hZGRNaW51dGVzKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0pLCBvYmplY3QuaGVpZ2h0KTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50aW1lQ2hhbmdlRXZlbnQuZW1pdChvcmlnaW5hbE9iamVjdCk7XHJcblxyXG4gICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0ID0gbnVsbDtcclxuXHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBSZW1vdmUgZ2xvYmFsIGV2ZW50IGxpc3RlbmVyc1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vblJlc2l6aW5nLmJpbmQodGhpcykpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVFbmQuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdGltZURpZmZlcmVuY2UoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICBsZXQgZGlmZmVyZW5jZSA9IHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKGRhdGUxKS5nZXRUaW1lKCkgLyAxMDAwIC0gdGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4oZGF0ZTIpLmdldFRpbWUoKSAvIDEwMDA7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMoZGlmZmVyZW5jZSAvIDYwKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVUaW1lQmxvY2tzKCkge1xyXG4gICAgbGV0IHN0YXJ0VW5peDogbnVtYmVyID0gIXRoaXMuY2hpbGRQcm9wID8gdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLnN0YXJ0VGltZVByb3BdKSkgOiB0aGlzLmRhdGVUb1VuaXhFcG9jaCh0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbih0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdKSk7XHJcbiAgICBsZXQgZW5kVW5peDogbnVtYmVyID0gIXRoaXMuY2hpbGRQcm9wID8gdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmVuZFRpbWVQcm9wXSkpIDogdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmNoaWxkUHJvcF1bdGhpcy5lbmRUaW1lUHJvcF0pKTtcclxuXHJcbiAgICBsZXQgaW50ZXJ2YWwgPSA2MCAqIDYwO1xyXG5cclxuICAgIGZvciAobGV0IGhvdXJDb3VudCA9IHN0YXJ0VW5peDsgaG91ckNvdW50IDw9IGVuZFVuaXg7IGhvdXJDb3VudCArPSBpbnRlcnZhbCkge1xyXG4gICAgICBsZXQgaG91ciA9IG5ldyBEYXRlKGhvdXJDb3VudCAqIDEwMDApXHJcbiAgICAgIGxldCBob3VyU3RyaW5nID0gYCR7aG91ci5nZXRIb3VycygpfToke2hvdXIuZ2V0TWludXRlcygpID09PSAwID8gJzAwJyA6IGhvdXIuZ2V0TWludXRlcygpfWA7XHJcbiAgICAgIHRoaXMuaG91ckxhYmVscy5wdXNoKGhvdXJTdHJpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRhdGVUb1VuaXhFcG9jaChkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGRhdGUuZ2V0VGltZSgpKSAvIDEwMDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTWludXRlcyhkYXRlOiBEYXRlLCBtaW51dGVzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIG1pbnV0ZXMgKiA2MDAwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJ5UGFyc2VKU09OT2JqZWN0KGpzb25TdHJpbmc6IHN0cmluZykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG8gPSBKU09OLnBhcnNlKGpzb25TdHJpbmcpO1xyXG4gICAgICBpZiAobyAmJiB0eXBlb2YgbyA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgIHJldHVybiBvO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEhhbGZIb3VyKGhvdXI6IHN0cmluZykge1xyXG4gICAgbGV0IHNwbGl0ID0gaG91ci5zcGxpdChcIjpcIik7XHJcbiAgICBzcGxpdFsxXSA9IFwiMzBcIjtcclxuICAgIHJldHVybiBzcGxpdC5qb2luKCc6Jyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydFRaKGRhdGUsIHR6U3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiID8gbmV3IERhdGUoZGF0ZSkgOiBkYXRlKS50b0xvY2FsZVN0cmluZyhcImVuLVVTXCIsIHt0aW1lWm9uZTogdHpTdHJpbmd9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydERhdGVUb0V1cm9wZWFuKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUWihkYXRlLCAnRXVyb3BlL0Ftc3RlcmRhbScpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMuZm9yRWFjaCggKHNjaGVkdWxlZE9iamVjdDogU2NoZWR1bGluZ09iamVjdCkgPT4ge1xyXG4gICAgICBpZihzY2hlZHVsZWRPYmplY3Quc2VsZWN0ZWQpIHtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3Quc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLWV4cGFuZGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQWdFdkIsTUFBTSxPQUFPLGlDQUFpQztJQTZENUMsWUFDVSxLQUF3QixFQUN4QixJQUFnQjtRQURoQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBN0RuQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFHekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQiwwQkFBcUIsR0FBNEIsSUFBSSxDQUFDO1FBQ3RELDBCQUFxQixHQUE0QixJQUFJLENBQUM7UUFDdEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBdUJkLG9CQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkUsdUJBQWtCLEdBQXdELElBQUksWUFBWSxFQUd2RyxDQUFDO1FBRVksOEJBQXlCLEdBQXdELElBQUksWUFBWSxFQUF5QyxDQUFDO1FBR3JKLGNBQVMsR0FBWSxJQUFJLENBQUM7SUFtQmpDLENBQUM7SUFoREQsSUFBb0IsUUFBUSxDQUFFLEtBQWE7UUFDekMsSUFBRyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUks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O0dBdUNUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBekVDLGlCQUFpQjtZQUNOLFVBQVU7Ozt1QkEwRnBCLEtBQUs7NEJBYUwsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzs2QkFDTCxLQUFLO3FCQUNMLEtBQUs7OEJBRUwsTUFBTTtpQ0FDTixNQUFNO3dDQUtOLE1BQU07d0JBRU4sV0FBVyxTQUFDLHFDQUFxQzt1QkFHakQsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzt1QkFLeEMsWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW50ZXJmYWNlIFNjaGVkdWxpbmdPYmplY3Qge1xyXG4gIHN0YXJ0OiBEYXRlO1xyXG4gIGVuZDogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzdWJUaXRsZT86IHN0cmluZztcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgdG9wPzogbnVtYmVyO1xyXG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgc2hvd1RvcFJlc2l6ZXI/OiBib29sZWFuO1xyXG4gIHNob3dCb3R0b21SZXNpemVyPzogYm9vbGVhbjtcclxuXHJcblxyXG4gIFtrZXk6IHN0cmluZ106IGFueTsgLy8gQWxsb3dzIGR5bmFtaWMgcHJvcGVydGllcyBpbmNsdWRpbmcgdW5pcXVlIGlkZW50aWZpZXJzXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28taG91ci1zY2hlZHVsaW5nLWV4cGFuZGFibGUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGltZS1ibG9ja1wiICpuZ0Zvcj1cImxldCBob3VyIG9mIGhvdXJMYWJlbHNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbFwiPjxzcGFuIFt0ZXh0Q29udGVudF09XCJob3VyXCI+PC9zcGFuPjwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWRpc3BsYXlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaXJzdC1oYWxmLWhvdXIgb2JqZWN0LWhhbGZcIlxyXG4gICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudCwgaG91cilcIlxyXG4gICAgICAgICAgICAgICAoZHJhZ2xlYXZlKT1cImhhbmRsZURyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGRyb3ApPVwiaGFuZGxlRHJvcCgkZXZlbnQsIGhvdXIpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kLWhhbGYtaG91ciBvYmplY3QtaGFsZlwiXHJcbiAgICAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCBhZGRIYWxmSG91cihob3VyKSlcIlxyXG4gICAgICAgICAgICAgICAoZHJhZ2xlYXZlKT1cImhhbmRsZURyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGRyb3ApPVwiaGFuZGxlRHJvcCgkZXZlbnQsIGFkZEhhbGZIb3VyKGhvdXIpKVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlZC1vYmplY3RzXCIgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG4gICAgICAgICAgICAgIG9iamVjdHM6IHNjaGVkdWxlZE9iamVjdHMsXHJcbiAgICAgICAgICAgICAgb25TZWxlY3RCbG9jazogdGhpcy5vblNlbGVjdEJsb2NrLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgb25SZXNpemVTdGFydDogdGhpcy5vblJlc2l6ZVN0YXJ0LmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgb25EcmFnU3RhcnRDdXN0b206IHRoaXMub25EcmFnU3RhcnRDdXN0b20uYmluZCh0aGlzKVxyXG5cclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb3VyU2NoZWR1bGluZ0V4cGFuZGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgaG91ckxhYmVsczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgc2NoZWR1bGVkT2JqZWN0czogU2NoZWR1bGluZ09iamVjdFtdID0gW107XHJcblxyXG5cclxuICBwcml2YXRlIHJlc2l6aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZXNpemVEaXJlY3Rpb246ICd0b3AnIHwgJ2JvdHRvbSc7XHJcbiAgcHJpdmF0ZSBpbml0aWFsWTogbnVtYmVyO1xyXG4gIHByaXZhdGUgaW5pdGlhbEhlaWdodDogbnVtYmVyO1xyXG4gIHByaXZhdGUgaW5pdGlhbFRvcDogbnVtYmVyO1xyXG4gIHByaXZhdGUgY3VycmVudFJlc2l6aW5nT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBjdXJyZW50RHJhZ2dpbmdPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIE1JTl9IRUlHSFQgPSAzMDtcclxuICBwcml2YXRlIF9zY2hlZHVsZTogT2JqZWN0ID0ge307XHJcblxyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNjaGVkdWxlKCB2YWx1ZTogT2JqZWN0KSB7XHJcbiAgICBpZih2YWx1ZSAmJiB2YWx1ZSAhPT0gdGhpcy5fc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJPYmplY3RzKCk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5fc2NoZWR1bGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2NoZWR1bGUoKTogT2JqZWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9zY2hlZHVsZTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc3RhcnRUaW1lUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmRUaW1lUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvYmplY3RzUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGlsZFByb3A6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIGlkUHJvcDogc3RyaW5nOyAgLy8gSW5wdXQgZm9yIHVuaXF1ZSBpZGVudGlmaWVyIHByb3BlcnR5XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdGltZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8T2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbmV3T2JqZWN0UGxhbkV2ZW50OiBFdmVudEVtaXR0ZXI8eyBjdXJyZW50SG91cjogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGN1cnJlbnRIb3VyOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBzdHJpbmdcclxuICB9PigpO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIG1vdmVCZXR3ZWVuQ2FsZW5kYXJzRXZlbnQ6IEV2ZW50RW1pdHRlcjx7aG91cjogc3RyaW5nLCBkYXRhOlNjaGVkdWxpbmdPYmplY3R9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e2hvdXI6IHN0cmluZywgZGF0YTpTY2hlZHVsaW5nT2JqZWN0fT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1ob3VyLXNjaGVkdWxpbmctZXhwYW5kYWJsZScpXHJcbiAgcHVibGljIHNob3dDbGFzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvblJlc2l6ZShldmVudDogeyB0YXJnZXQ6IHsgaW5uZXJXaWR0aDogYW55OyB9OyB9KSB7XHJcbiAgICBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgY2xpY2tPdXQoZXZlbnQ6IHsgdGFyZ2V0OiBhbnk7IH0pIHtcclxuICAgIGlmKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRGVzZWxlY3RBbGwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVUaW1lQmxvY2tzKCk7XHJcbiAgICBpZih0aGlzLnNjaGVkdWxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyT2JqZWN0cygpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgLy8gQ2FsY3VsYXRlIHByb3BlcnRpZXMgZm9yIGVhY2ggc2NoZWR1bGVkIG9iamVjdCB0byBkZXRlcm1pbmUgcmVzaXplciB2aXNpYmlsaXR5XHJcblxyXG5cclxuICAvLyBGaW5kIHRoZSBuZXh0IG9iamVjdCBpbiB0aGUgc2NoZWR1bGVkT2JqZWN0cyBsaXN0XHJcbiAgcHJpdmF0ZSBfZmluZE5leHRPYmplY3QoY3VycmVudE9iamVjdDogU2NoZWR1bGluZ09iamVjdCk6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5pbmRleE9mKGN1cnJlbnRPYmplY3QpO1xyXG4gICAgaWYgKGN1cnJlbnRJbmRleCA+PSAwICYmIGN1cnJlbnRJbmRleCA8IHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlZE9iamVjdHNbY3VycmVudEluZGV4ICsgMV07IC8vIFRoZSBuZXh0IG9iamVjdCBpbiB0aGUgbGlzdFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7IC8vIE5vIG5leHQgb2JqZWN0IChpdCdzIHRoZSBsYXN0IG9uZSlcclxuICB9XHJcblxyXG4gIC8vIEZpbmQgdGhlIHByZXZpb3VzIG9iamVjdCBpbiB0aGUgc2NoZWR1bGVkT2JqZWN0cyBsaXN0XHJcbiAgcHJpdmF0ZSBfZmluZFByZXZpb3VzT2JqZWN0KGN1cnJlbnRPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QpOiBTY2hlZHVsaW5nT2JqZWN0IHwgbnVsbCB7XHJcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnNjaGVkdWxlZE9iamVjdHMuaW5kZXhPZihjdXJyZW50T2JqZWN0KTtcclxuICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlZE9iamVjdHNbY3VycmVudEluZGV4IC0gMV07IC8vIFRoZSBwcmV2aW91cyBvYmplY3QgaW4gdGhlIGxpc3RcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsOyAvLyBObyBwcmV2aW91cyBvYmplY3QgKGl0J3MgdGhlIGZpcnN0IG9uZSlcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgcmVuZGVyT2JqZWN0cygpIHtcclxuICAgIGlmKHRoaXMuc2NoZWR1bGUpIHtcclxuICAgICAgaWYgKHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzID0gW107XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG9iamVjdHM6IE9iamVjdFtdID0gdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXTtcclxuXHJcbiAgICAgIGxldCBzY2hlZHVsaW5nT2JqZWN0czogU2NoZWR1bGluZ09iamVjdFtdID0gW107XHJcblxyXG5cclxuICAgICAgaWYgKG9iamVjdHMgJiYgb2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKG9iamVjdCA9PiB7XHJcbiAgICAgICAgICBsZXQgdG9wRGlmZmVyZW5jZTogbnVtYmVyID0gdGhpcy50aW1lRGlmZmVyZW5jZSh0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdLCBvYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSk7XHJcbiAgICAgICAgICBzY2hlZHVsaW5nT2JqZWN0cy5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IG9iamVjdFsndGl0bGUnXSxcclxuICAgICAgICAgICAgICBzdWJUaXRsZTogb2JqZWN0WydzdWJUaXRsZSddLFxyXG5cclxuICAgICAgICAgICAgICBzdGFydDogdGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4ob2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0pLFxyXG4gICAgICAgICAgICAgIGVuZDogdGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4ob2JqZWN0W3RoaXMuZW5kVGltZVByb3BdKSxcclxuICAgICAgICAgICAgICBpZDogb2JqZWN0W3RoaXMuaWRQcm9wXSxcclxuICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMudGltZURpZmZlcmVuY2Uob2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0sIG9iamVjdFt0aGlzLmVuZFRpbWVQcm9wXSksXHJcbiAgICAgICAgICAgICAgdG9wOiB0b3BEaWZmZXJlbmNlLFxyXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzID0gc2NoZWR1bGluZ09iamVjdHM7XHJcblxyXG4gICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdEJsb2NrKG9iajogU2NoZWR1bGluZ09iamVjdCkge1xyXG4gICAgb2JqLnNlbGVjdGVkID0gIW9iai5zZWxlY3RlZDtcclxuICAgIGlmKG9iai5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMuZm9yRWFjaCgoc2NoZWR1bGVkT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHNjaGVkdWxlZE9iamVjdC5zZWxlY3RlZCAmJiBzY2hlZHVsZWRPYmplY3QgIT09IG9iaikge1xyXG4gICAgICAgICAgc2NoZWR1bGVkT2JqZWN0LnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0ID0gb2JqO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRHJhZ1N0YXJ0Q3VzdG9tKG9iajogU2NoZWR1bGluZ09iamVjdCkge1xyXG4gICAgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgPSBvYmo7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGhhbmRsZURyb3AoZHJhZ0V2ZW50OiBEcmFnRXZlbnQsIGhvdXI6IHN0cmluZykge1xyXG4gICAgZHJhZ0V2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBkcmFnRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYoIXRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF0gfHwgIXRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF0uZmluZCgob2JqZWN0OiBPYmplY3QpID0+IG9iamVjdFt0aGlzLmlkUHJvcF0gPT09IHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0ICYmIHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0Py5pZCkpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0KSB7XHJcbiAgICAgIC8vVGhlIG9yZGVyIHdhcyBzY2hlZHVsZWQgYW5kIG5lZWRzIHRvIGJlIG1vdmVkXHJcblxyXG4gICAgICBsZXQgc3RhcnQ6IERhdGUgPSB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdC5zdGFydDtcclxuICAgICAgbGV0IGhvdXJTcGxpdCA9IGhvdXIuc3BsaXQoXCI6XCIpXHJcbiAgICAgIHN0YXJ0LnNldEhvdXJzKHBhcnNlSW50KGhvdXJTcGxpdFswXSkpO1xyXG4gICAgICBzdGFydC5zZXRNaW51dGVzKHBhcnNlSW50KGhvdXJTcGxpdFsxXSkpO1xyXG4gICAgICBsZXQgc2NoZWR1bGVkT2JqZWN0ID0gdGhpcy5zY2hlZHVsZWRPYmplY3RzLmZpbmQoIHNjaGVkdWxlZE9iamVjdCA9PiBzY2hlZHVsZWRPYmplY3QuaWQgPT09IHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LmlkKTtcclxuICAgICAgaWYoc2NoZWR1bGVkT2JqZWN0KSB7XHJcbiAgICAgICAgc2NoZWR1bGVkT2JqZWN0LnN0YXJ0ID0gc3RhcnQ7XHJcblxyXG4gICAgICAgIGxldCBvcmlnaW5hbE9iamVjdDogT2JqZWN0ID0gdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXS5maW5kKChvYmplY3Q6IE9iamVjdCkgPT4gb2JqZWN0W3RoaXMuaWRQcm9wXSA9PT0gdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QuaWQpO1xyXG4gICAgICAgIG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0gPSBzdGFydDtcclxuICAgICAgICBsZXQgZW5kOiBEYXRlID0gdGhpcy5hZGRNaW51dGVzKG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0sIHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LmhlaWdodCk7XHJcbiAgICAgICAgb3JpZ2luYWxPYmplY3RbdGhpcy5lbmRUaW1lUHJvcF0gPSBlbmQ7XHJcbiAgICAgICAgc2NoZWR1bGVkT2JqZWN0LmVuZCA9IGVuZDtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3QudG9wID0gdGhpcy50aW1lRGlmZmVyZW5jZSh0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdLCBzY2hlZHVsZWRPYmplY3Quc3RhcnQpO1xyXG4gICAgICAgIHNjaGVkdWxlZE9iamVjdC5oZWlnaHQgPSB0aGlzLnRpbWVEaWZmZXJlbmNlKHNjaGVkdWxlZE9iamVjdC5zdGFydCwgc2NoZWR1bGVkT2JqZWN0LmVuZCk7XHJcblxyXG4gICAgICAgIHRoaXMudGltZUNoYW5nZUV2ZW50LmVtaXQob3JpZ2luYWxPYmplY3QpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0ID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGxldCBwYXJzZWQ6IFNjaGVkdWxpbmdPYmplY3QgPSB0aGlzLnRyeVBhcnNlSlNPTk9iamVjdChkcmFnRXZlbnQuZGF0YVRyYW5zZmVyIS5nZXREYXRhKFwidGV4dFwiKSk7XHJcblxyXG4gICAgICBpZiAoIXBhcnNlZCkge1xyXG4gICAgICAgIHRoaXMubmV3T2JqZWN0UGxhbkV2ZW50LmVtaXQoe2N1cnJlbnRIb3VyOiBob3VyLCBkYXRhOiBwYXJzZWQudG9TdHJpbmcoKX0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW92ZUJldHdlZW5DYWxlbmRhcnNFdmVudC5lbWl0KHtob3VyOiBob3VyLCBkYXRhOiBwYXJzZWR9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhbGxvd0Ryb3AoZXZlbnQ6IERyYWdFdmVudCwgaG91cjogc3RyaW5nKSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2RyYWctb3ZlcicpKSB7XHJcbiAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdkcmFnLW92ZXInKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0KSB7XHJcbiAgICAgIGxldCBuZXdTdGFydERhdGU6IERhdGUgPSB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbih0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdC5zdGFydCk7XHJcbiAgICAgIGxldCBob3VyU3BsaXQ6IHN0cmluZ1tdID0gaG91ci5zcGxpdChcIjpcIik7XHJcbiAgICAgIG5ld1N0YXJ0RGF0ZS5zZXRIb3VycyhwYXJzZUludChob3VyU3BsaXRbMF0pKTtcclxuICAgICAgbmV3U3RhcnREYXRlLnNldEhvdXJzKHBhcnNlSW50KGhvdXJTcGxpdFsxXSkpO1xyXG5cclxuICAgICAgaWYodGhpcy5zY2hlZHVsZWRPYmplY3RzLmZpbmQoIChzY2hlZHVsZWRPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QpID0+IHNjaGVkdWxlZE9iamVjdC5zdGFydCA9PT0gbmV3U3RhcnREYXRlICkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVEcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2RyYWctb3ZlcicpKSB7XHJcbiAgICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnLW92ZXInKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gcmVzaXppbmcgc3RhcnRzXHJcblxyXG4gIHB1YmxpYyBvblJlc2l6ZVN0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50LCBvYmo6IFNjaGVkdWxpbmdPYmplY3QsIGRpcmVjdGlvbjogJ3RvcCcgfCAnYm90dG9tJykge1xyXG4gICAgdGhpcy5yZXNpemluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc2l6ZURpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0ID0gb2JqO1xyXG4gICAgdGhpcy5pbml0aWFsWSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgICB0aGlzLmluaXRpYWxIZWlnaHQgPSBvYmouaGVpZ2h0IHx8IDA7XHJcbiAgICB0aGlzLmluaXRpYWxUb3AgPSBvYmoudG9wIHx8IDA7XHJcblxyXG4gICAgLy8gTGlzdGVuIHRvIG1vdXNlbW92ZSBhbmQgbW91c2V1cCBldmVudHMgZ2xvYmFsbHlcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25SZXNpemluZy5iaW5kKHRoaXMpKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uUmVzaXplRW5kLmJpbmQodGhpcykpO1xyXG4gIH1cclxuICAvLyBIYW5kbGUgcmVzaXppbmcgd2l0aCBzbmFwcGluZyB0byAzMHB4IGluY3JlbWVudHMgYW5kIG1pbmltdW0gaGVpZ2h0IHJlc3RyaWN0aW9uXHJcblxyXG4gIHB1YmxpYyBvblJlc2l6aW5nKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMucmVzaXppbmcgfHwgIXRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZGVsdGFZID0gZXZlbnQuY2xpZW50WSAtIHRoaXMuaW5pdGlhbFk7XHJcbiAgICBjb25zdCBzbmFwcGVkRGVsdGFZID0gTWF0aC5yb3VuZChkZWx0YVkgLyAzMCkgKiAzMDtcclxuXHJcbiAgICBpZiAodGhpcy5yZXNpemVEaXJlY3Rpb24gPT09ICdib3R0b20nKSB7XHJcbiAgICAgIGNvbnN0IG5leHRPYmplY3QgPSB0aGlzLl9maW5kTmV4dE9iamVjdCh0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdCk7XHJcbiAgICAgIGNvbnN0IG1heEhlaWdodCA9IG5leHRPYmplY3QgPyBuZXh0T2JqZWN0LnRvcCAtIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LnRvcCA6IEluZmluaXR5O1xyXG5cclxuICAgICAgLy8gQmxvY2sgZXhwYW5kaW5nIGJleW9uZCB0aGUgbmV4dCBvYmplY3QgYW5kIHNocmlua2luZyBiZWxvdyAzMHB4XHJcbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KHRoaXMuaW5pdGlhbEhlaWdodCArIHNuYXBwZWREZWx0YVksIHRoaXMuTUlOX0hFSUdIVCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LmhlaWdodCA9IE1hdGgubWluKG5ld0hlaWdodCwgbWF4SGVpZ2h0KTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzaXplRGlyZWN0aW9uID09PSAndG9wJykge1xyXG4gICAgICBjb25zdCBwcmV2aW91c09iamVjdCA9IHRoaXMuX2ZpbmRQcmV2aW91c09iamVjdCh0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdCk7XHJcbiAgICAgIGNvbnN0IG1pblRvcCA9IHByZXZpb3VzT2JqZWN0ID8gcHJldmlvdXNPYmplY3QudG9wICsgcHJldmlvdXNPYmplY3QuaGVpZ2h0IDogMDtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KHRoaXMuaW5pdGlhbEhlaWdodCAtIHNuYXBwZWREZWx0YVksIHRoaXMuTUlOX0hFSUdIVCk7XHJcbiAgICAgIGNvbnN0IG5ld1RvcCA9IHRoaXMuaW5pdGlhbFRvcCArICh0aGlzLmluaXRpYWxIZWlnaHQgLSBuZXdIZWlnaHQpO1xyXG5cclxuICAgICAgLy8gQmxvY2sgbW92aW5nIGFib3ZlIHRoZSBwcmV2aW91cyBvYmplY3QncyBib3R0b20gYW5kIHNocmlua2luZyBiZWxvdyBNSU5fSEVJR0hUXHJcbiAgICAgIGlmIChuZXdIZWlnaHQgPj0gdGhpcy5NSU5fSEVJR0hUICYmIG5ld1RvcCA+PSBtaW5Ub3ApIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdC50b3AgPSBuZXdUb3A7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QuaGVpZ2h0ID0gbmV3SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRW5zdXJlIGNoYW5nZSBkZXRlY3Rpb24gaGFwcGVuc1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIC8vIFRyaWdnZXJlZCB3aGVuIHJlc2l6aW5nIGVuZHNcclxuXHJcbiAgcHVibGljIG9uUmVzaXplRW5kKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBsZXQgb2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0ID0gdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3Q7XHJcblxyXG4gICAgaWYob2JqZWN0ICYmIG9iamVjdC5zZWxlY3RlZCkge1xyXG4gICAgICBsZXQgb3JpZ2luYWxPYmplY3QgPSB0aGlzLnNjaGVkdWxlW3RoaXMub2JqZWN0c1Byb3BdLmZpbmQoKHNjaGVkdWxlZE9iamVjdDogT2JqZWN0KSA9PiBzY2hlZHVsZWRPYmplY3RbdGhpcy5pZFByb3BdID09PSBvYmplY3QuaWQpO1xyXG5cclxuICAgICAgaWYgKG9yaWdpbmFsT2JqZWN0KSB7XHJcbiAgICAgICAgLy8gU3RhcnQgZGF0ZSBjYWxjdWxhdGlvbiBmaXJzdFxyXG4gICAgICAgIG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0gPSB0aGlzLmFkZE1pbnV0ZXModGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmNoaWxkUHJvcF1bdGhpcy5zdGFydFRpbWVQcm9wXSksIG9iamVjdC50b3ApO1xyXG5cclxuICAgICAgICAvLyBUaGVuICBlbmQgZGF0ZSBjYWxjdWxhdGlvbiBiYXNlZCBvbiB0aGUgaGVpZ2h0IG9mIHRoZSBvYmplY3RcclxuICAgICAgICBvcmlnaW5hbE9iamVjdFt0aGlzLmVuZFRpbWVQcm9wXSA9IHRoaXMuYWRkTWludXRlcyh0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihvcmlnaW5hbE9iamVjdFt0aGlzLnN0YXJ0VGltZVByb3BdKSwgb2JqZWN0LmhlaWdodCk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGltZUNoYW5nZUV2ZW50LmVtaXQob3JpZ2luYWxPYmplY3QpO1xyXG5cclxuICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdCA9IG51bGw7XHJcblxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gUmVtb3ZlIGdsb2JhbCBldmVudCBsaXN0ZW5lcnNcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25SZXNpemluZy5iaW5kKHRoaXMpKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uUmVzaXplRW5kLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRpbWVEaWZmZXJlbmNlKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSkge1xyXG4gICAgbGV0IGRpZmZlcmVuY2UgPSB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihkYXRlMSkuZ2V0VGltZSgpIC8gMTAwMCAtIHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKGRhdGUyKS5nZXRUaW1lKCkgLyAxMDAwO1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKGRpZmZlcmVuY2UgLyA2MCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlVGltZUJsb2NrcygpIHtcclxuICAgIGxldCBzdGFydFVuaXg6IG51bWJlciA9ICF0aGlzLmNoaWxkUHJvcCA/IHRoaXMuZGF0ZVRvVW5peEVwb2NoKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuc2NoZWR1bGVbdGhpcy5zdGFydFRpbWVQcm9wXSkpIDogdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmNoaWxkUHJvcF1bdGhpcy5zdGFydFRpbWVQcm9wXSkpO1xyXG4gICAgbGV0IGVuZFVuaXg6IG51bWJlciA9ICF0aGlzLmNoaWxkUHJvcCA/IHRoaXMuZGF0ZVRvVW5peEVwb2NoKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuc2NoZWR1bGVbdGhpcy5lbmRUaW1lUHJvcF0pKSA6IHRoaXMuZGF0ZVRvVW5peEVwb2NoKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuc2NoZWR1bGVbdGhpcy5jaGlsZFByb3BdW3RoaXMuZW5kVGltZVByb3BdKSk7XHJcblxyXG4gICAgbGV0IGludGVydmFsID0gNjAgKiA2MDtcclxuXHJcbiAgICBmb3IgKGxldCBob3VyQ291bnQgPSBzdGFydFVuaXg7IGhvdXJDb3VudCA8PSBlbmRVbml4OyBob3VyQ291bnQgKz0gaW50ZXJ2YWwpIHtcclxuICAgICAgbGV0IGhvdXIgPSBuZXcgRGF0ZShob3VyQ291bnQgKiAxMDAwKVxyXG4gICAgICBsZXQgaG91clN0cmluZyA9IGAke2hvdXIuZ2V0SG91cnMoKX06JHtob3VyLmdldE1pbnV0ZXMoKSA9PT0gMCA/ICcwMCcgOiBob3VyLmdldE1pbnV0ZXMoKX1gO1xyXG4gICAgICB0aGlzLmhvdXJMYWJlbHMucHVzaChob3VyU3RyaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkYXRlVG9Vbml4RXBvY2goZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcihkYXRlLmdldFRpbWUoKSkgLyAxMDAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE1pbnV0ZXMoZGF0ZTogRGF0ZSwgbWludXRlczogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyBtaW51dGVzICogNjAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyeVBhcnNlSlNPTk9iamVjdChqc29uU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBvID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcclxuICAgICAgaWYgKG8gJiYgdHlwZW9mIG8gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRIYWxmSG91cihob3VyOiBzdHJpbmcpIHtcclxuICAgIGxldCBzcGxpdCA9IGhvdXIuc3BsaXQoXCI6XCIpO1xyXG4gICAgc3BsaXRbMV0gPSBcIjMwXCI7XHJcbiAgICByZXR1cm4gc3BsaXQuam9pbignOicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnRUWihkYXRlLCB0elN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKCh0eXBlb2YgZGF0ZSA9PT0gXCJzdHJpbmdcIiA/IG5ldyBEYXRlKGRhdGUpIDogZGF0ZSk/LnRvTG9jYWxlU3RyaW5nKFwiZW4tVVNcIiwge3RpbWVab25lOiB0elN0cmluZ30pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb252ZXJ0RGF0ZVRvRXVyb3BlYW4oZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udmVydFRaKGRhdGUsICdFdXJvcGUvQW1zdGVyZGFtJylcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZXNlbGVjdEFsbCgpIHtcclxuICAgIHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5mb3JFYWNoKCAoc2NoZWR1bGVkT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0KSA9PiB7XHJcbiAgICAgIGlmKHNjaGVkdWxlZE9iamVjdC5zZWxlY3RlZCkge1xyXG4gICAgICAgIHNjaGVkdWxlZE9iamVjdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -192,7 +192,12 @@ export class ListOfValuesPopupComponent {
|
|
|
192
192
|
this.viewModels.length = 0;
|
|
193
193
|
this.viewModels = this.viewModelsMain.filter(vm => {
|
|
194
194
|
return Object.values(vm.model).some((value) => {
|
|
195
|
-
|
|
195
|
+
if (!this.searchTerm || !value) {
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return value.toString().toLowerCase().includes(this.searchTerm.toLowerCase());
|
|
200
|
+
}
|
|
196
201
|
});
|
|
197
202
|
});
|
|
198
203
|
}
|
|
@@ -287,4 +292,4 @@ ListOfValuesPopupComponent.propDecorators = {
|
|
|
287
292
|
keyDown: [{ type: Output }],
|
|
288
293
|
showClass: [{ type: HostBinding, args: ['class.co-list-of-values-popup',] }]
|
|
289
294
|
};
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBK0M1RCxNQUFNLE9BQU8sMEJBQTBCO0lBMEZyQyxZQUNTLGdCQUFtQyxFQUNsQyxXQUF1QjtRQUR4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBeEUxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUcvQixpQkFBWSxHQUFXLGFBQWEsQ0FBQztRQVNyQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQXFCaEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd6RCxlQUFVLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFHNUQsWUFBTyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQWtCekUsZUFBVSxHQUFtQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVC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LEtBQUs7Z0NBR0wsS0FBSzs2QkFHTCxLQUFLOzZCQUdMLEtBQUs7K0JBR0wsS0FBSzt5QkFHTCxLQUFLO3lCQUdMLEtBQUs7MEJBWUwsTUFBTTt5QkFHTixNQUFNO3NCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0U2VhcmNoQ29tcG9uZW50fSBmcm9tICcuLi9pbnB1dC1zZWFyY2gvaW5wdXQtc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7S2V5Ym9hcmRLZXl9IGZyb20gJy4uLy4uL2NvcmUvZW51bS9rZXlib2FyZC1rZXkuZW51bSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vaWNvbi9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBsb3ZWaWV3TW9kZWwge1xyXG4gIGNoZWNrZWQ6IGJvb2xlYW5cclxuICBtb2RlbDogYW55XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tbGlzdC1vZi12YWx1ZXMtcG9wdXAnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb3Ytb3B0aW9uc1wiIFtvdmVybGF5XT1cInBhcmVudEZvck92ZXJsYXlcIiBbaW5oZXJpdFdpZHRoXT1cInRydWVcIiBbbmdDbGFzc109XCJjdXN0b21Dc3NDbGFzc1wiXHJcbiAgICAgICAgICAgaWQ9XCJsb3YtcG9wdXBcIlxyXG4gICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCIgW3RhYmluZGV4XT1cIi0xXCJcclxuICAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNsb3NlUG9wdXAuZW1pdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtc2VhcmNoICpuZ0lmPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoVGVybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUlucHV0S2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImZpbHRlclZpZXdNb2RlbHMoKVwiPjwvY28taW5wdXQtc2VhcmNoPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnYXBcIiAqbmdJZj1cInNob3dUb2dnbGVBbGwgJiYgbXVsdGlzZWxlY3RcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW21vZGVsXT1cImFsbFNlbGVjdGVkXCIgKG1vZGVsQ2hhbmdlKT1cInRvZ2dsZUFsbCgpXCI+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0RFU0VMRUNUX0FMTCcgfCBjb3JlTG9jYWxpemVcIiAoY2xpY2spPVwidG9nZ2xlQWxsKClcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLWxpc3RcIiAjZHJvcERvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgI2xvdkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2aWV3TW9kZWwgb2Ygdmlld01vZGVsczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInZpZXdNb2RlbCA9PT0gaGlnaExpZ2h0TW9kZWwgfHwgdmlld01vZGVscy5sZW5ndGggPT09IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZpZXdNb2RlbCh2aWV3TW9kZWwsICFtdWx0aXNlbGVjdClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInZpZXdNb2RlbC5tb2RlbFtvcHRpb25JY29uXVwiIGNsYXNzPVwiaW5wdXQtdGV4dC1sZWZ0LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKHZpZXdNb2RlbC5tb2RlbFtvcHRpb25JY29uXSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG92LW9wdGlvbnMtdGV4dFwiIFt0ZXh0Q29udGVudF09XCJ2aWV3TW9kZWwubW9kZWxbZGlzcGxheUZpZWxkXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94IFttb2RlbF09XCJ2aWV3TW9kZWwuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNlbGVjdFZpZXdNb2RlbCh2aWV3TW9kZWwsIGZhbHNlKVwiPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvdi1vcHRpb25zLXRleHRcIiBbdGV4dENvbnRlbnRdPVwidmlld01vZGVsLm1vZGVsW2Rpc3BsYXlGaWVsZF1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0T2ZWYWx1ZXNQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZHJlbignbG92SXRlbScsIHtyZWFkOiBFbGVtZW50UmVmfSkgc2V0IGxvdkl0ZW1zKGNoaWxkcmVuKSB7XHJcbiAgICB0aGlzLl9sb3ZJdGVtcyA9IGNoaWxkcmVuLnRvQXJyYXkoKTtcclxuICAgIHRoaXMuX3Njcm9sbEludG9WaWV3KCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdkcm9wRG93bkxpc3QnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIGRyb3BEb3duTGlzdDogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZChJbnB1dFNlYXJjaENvbXBvbmVudCkgc2V0IGlucHV0U2VhcmNoKGNvbXBvbmVudDogSW5wdXRTZWFyY2hDb21wb25lbnQpIHtcclxuICAgIHRoaXMuX3NlYXJjaElucHV0ID0gY29tcG9uZW50O1xyXG4gICAgaWYgKHRoaXMuX3NlYXJjaElucHV0KSB7XHJcbiAgICAgIHRoaXMuX3NlYXJjaElucHV0LnJlcXVlc3RGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbW9kZWw6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbXVsdGlzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1RvZ2dsZUFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZyA9ICdkZXNjcmlwdGlvbic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbUNzc0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhcmVudEZvck92ZXJsYXk6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9wdGlvbkljb246IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbGxlY3Rpb24odmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9jb2xsZWN0aW9uID0gdmFsdWUgfHwgW107XHJcbiAgICB0aGlzLl9wcmVwYXJlVmlld01vZGVsc01haW4oKTtcclxuICAgIHRoaXMuX3ByZXBhcmVWaWV3TW9kZWxzKCk7XHJcbiAgICB0aGlzLmZpbHRlclZpZXdNb2RlbHMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sbGVjdGlvbigpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNsb3NlUG9wdXA6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWxpc3Qtb2YtdmFsdWVzLXBvcHVwJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHNlYXJjaFRlcm0odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2VhcmNoVGVybSA9IHZhbHVlO1xyXG4gICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuaGlnaExpZ2h0TW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZpbHRlclZpZXdNb2RlbHMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VhcmNoVGVybSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFRlcm07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdmlld01vZGVsczogbG92Vmlld01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdmlld01vZGVsc01haW46IGxvdlZpZXdNb2RlbFtdID0gW107XHJcbiAgcHVibGljIGhpZ2hMaWdodE1vZGVsOiBsb3ZWaWV3TW9kZWw7XHJcbiAgcHVibGljIGFsbFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb246IGFueVtdID0gW107XHJcbiAgcHJpdmF0ZSBfc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XHJcbiAgcHJpdmF0ZSBfbG92SXRlbXM6IEVsZW1lbnRSZWZbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3NlYXJjaElucHV0OiBJbnB1dFNlYXJjaENvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZSA6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbEludG9WaWV3KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1vZGVsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCB2aWV3TW9kZWw6IGxvdlZpZXdNb2RlbCA9IHRoaXMudmlld01vZGVsc01haW4uZmluZCh2ID0+IEpTT04uc3RyaW5naWZ5KHYubW9kZWwpID09PSBKU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsW2ldKSk7XHJcbiAgICAgICAgICBpZiAodmlld01vZGVsKSB7XHJcbiAgICAgICAgICAgIHZpZXdNb2RlbC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJbnB1dEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcclxuICAgICAgICBjYXNlIEtleWJvYXJkS2V5LkRvd246XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE5leHRPcHRpb24oKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICBjYXNlIEtleWJvYXJkS2V5LlVwOlxyXG4gICAgICAgICAgdGhpcy5zZWxlY3ROZXh0T3B0aW9uKHRydWUpO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuRW50ZXI6XHJcbiAgICAgICAgICBpZiAodGhpcy5oaWdoTGlnaHRNb2RlbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdFZpZXdNb2RlbCh0aGlzLmhpZ2hMaWdodE1vZGVsLCBmYWxzZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmtleURvd24ubmV4dChldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLmtleURvd24ubmV4dChldmVudCk7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlclZpZXdNb2RlbHMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wcmVwYXJlVmlld01vZGVscygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdFZpZXdNb2RlbCh2aWV3TW9kZWw6IGxvdlZpZXdNb2RlbCwgY2xvc2VQb3B1cDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xyXG4gICAgICB0aGlzLnNlbGVjdE1vZGVsQnlWaWV3TW9kZWwodmlld01vZGVsLCBjbG9zZVBvcHVwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGlkeDogbnVtYmVyID0gdGhpcy52aWV3TW9kZWxzLmZpbmRJbmRleCh2bSA9PiB2bSA9PT0gdmlld01vZGVsKTtcclxuICAgICAgdGhpcy52aWV3TW9kZWxzW2lkeF0uY2hlY2tlZCA9ICF0aGlzLnZpZXdNb2RlbHNbaWR4XS5jaGVja2VkO1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RNb2RlbEJ5Vmlld01vZGVsKHZpZXdNb2RlbDogbG92Vmlld01vZGVsLCBjbG9zZVBvcHVwOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMudmlld01vZGVsc01haW4uZmluZCh2bSA9PiB2bSA9PT0gdmlld01vZGVsKS5tb2RlbDtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX3Njcm9sbEludG9WaWV3KCk7XHJcbiAgICBpZiAoY2xvc2VQb3B1cCkge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZm9yIHNpbmdsZSBzZWxlY3RcclxuICBwdWJsaWMgc2VsZWN0T3B0aW9uQW5kQ2xvc2VQb3B1cCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZpZXdNb2RlbHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0TmV4dE9wdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5tb2RlbCAmJiB0aGlzLnNlYXJjaFRlcm0pIHtcclxuICAgICAgY29uc3Qgd2lzaE1vZGVsOiBsb3ZWaWV3TW9kZWwgPSB0aGlzLnZpZXdNb2RlbHNNYWluLmZpbmQodm1tID0+IHZtbS5tb2RlbFt0aGlzLmRpc3BsYXlGaWVsZF0gPT09IHRoaXMuc2VhcmNoVGVybSk7XHJcbiAgICAgIGlmICh3aXNoTW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdFZpZXdNb2RlbCh3aXNoTW9kZWwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZm9yIG11bHRpIHNlbGVjdFxyXG4gIHB1YmxpYyBzZWxlY3RPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMudmlld01vZGVsc01haW4uZmlsdGVyKHYgPT4gdi5jaGVja2VkKS5tYXAobSA9PiBtLm1vZGVsKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3ROZXh0T3B0aW9uKGJhY2s6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IG5leHRNb2RlbDogYW55O1xyXG4gICAgaWYgKCF0aGlzLmhpZ2hMaWdodE1vZGVsKSB7XHJcbiAgICAgIG5leHRNb2RlbCA9IHRoaXMudmlld01vZGVsc1tiYWNrID8gdGhpcy52aWV3TW9kZWxzLmxlbmd0aCAtIDEgOiAwXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRWaWV3TW9kZWxJZHg6IG51bWJlciA9IHRoaXMudmlld01vZGVscy5maW5kSW5kZXgodm0gPT4gdm0gPT09IHRoaXMuaGlnaExpZ2h0TW9kZWwpO1xyXG4gICAgICBpZiAoYmFjaykge1xyXG4gICAgICAgIG5leHRNb2RlbCA9IHRoaXMudmlld01vZGVsc1tjdXJyZW50Vmlld01vZGVsSWR4IDw9IDAgPyB0aGlzLnZpZXdNb2RlbHMubGVuZ3RoIC0gMSA6IGN1cnJlbnRWaWV3TW9kZWxJZHggLSAxXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXh0TW9kZWwgPSB0aGlzLnZpZXdNb2RlbHNbY3VycmVudFZpZXdNb2RlbElkeCA+PSB0aGlzLnZpZXdNb2RlbHMubGVuZ3RoIC0gMSA/IDAgOiBjdXJyZW50Vmlld01vZGVsSWR4ICsgMV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaGlnaExpZ2h0TW9kZWwgPSBuZXh0TW9kZWw7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgdGhpcy5zZWxlY3RWaWV3TW9kZWwobmV4dE1vZGVsLCBmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zY3JvbGxJbnRvVmlldygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZpZXdNb2RlbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnZpZXdNb2RlbHMuZm9yRWFjaCh2bSA9PiB2bS5jaGVja2VkID0gdHJ1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUFsbCgpOiB2b2lkIHtcclxuICAgIGlmKCF0aGlzLmFsbFNlbGVjdGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnZpZXdNb2RlbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMudmlld01vZGVscy5mb3JFYWNoKHZtID0+IHZtLmNoZWNrZWQgPSB0cnVlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudmlld01vZGVscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy52aWV3TW9kZWxzLmZvckVhY2godm0gPT4gdm0uY2hlY2tlZCA9IGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSAhdGhpcy5hbGxTZWxlY3RlZDtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVZpZXdNb2RlbHNNYWluKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3TW9kZWxzTWFpbi5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2gobSA9PiB7XHJcbiAgICAgIHRoaXMudmlld01vZGVsc01haW4ucHVzaCh7Y2hlY2tlZDogZmFsc2UsIG1vZGVsOiBtfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVZpZXdNb2RlbHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdNb2RlbHMubGVuZ3RoID0gMDtcclxuICAgIHRoaXMudmlld01vZGVscyA9IHRoaXMudmlld01vZGVsc01haW4uZmlsdGVyKHZtID0+IHtcclxuICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModm0ubW9kZWwpLnNvbWUoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGVybSA/IHRoaXMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpIDogJycpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2Nyb2xsSW50b1ZpZXcoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhY3RpdmVJbmRleDogbnVtYmVyID0gdGhpcy52aWV3TW9kZWxzLmZpbmRJbmRleCh2bW0gPT4gdm1tID09PSB0aGlzLmhpZ2hMaWdodE1vZGVsKTtcclxuICAgIGlmICghdGhpcy5fbG92SXRlbXMgfHwgdGhpcy5fbG92SXRlbXMubGVuZ3RoIDw9IDAgfHwgYWN0aXZlSW5kZXggPCAwIHx8ICF0aGlzLmRyb3BEb3duTGlzdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBhY3RpdmVJdGVtID0gdGhpcy5fbG92SXRlbXNbYWN0aXZlSW5kZXhdLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLl9sb3ZJdGVtc1thY3RpdmVJbmRleF0ubmF0aXZlRWxlbWVudCA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IHNjcm9sbFBhcmVudCA9IHRoaXMuZHJvcERvd25MaXN0Lm5hdGl2ZUVsZW1lbnQgPyB0aGlzLmRyb3BEb3duTGlzdC5uYXRpdmVFbGVtZW50IDogdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fc2Nyb2xsQWN0aXZlSXRlbUludG9WaWV3KGFjdGl2ZUl0ZW0sIHNjcm9sbFBhcmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zY3JvbGxBY3RpdmVJdGVtSW50b1ZpZXcoYWN0aXZlSXRlbTogYW55LCBzY3JvbGxQYXJlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCFhY3RpdmVJdGVtIHx8ICFzY3JvbGxQYXJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHtvZmZzZXRIZWlnaHQsIG9mZnNldFRvcH0gPSBhY3RpdmVJdGVtO1xyXG4gICAgbGV0IHtvZmZzZXRIZWlnaHQ6IHBhcmVudE9mZnNldEhlaWdodCwgc2Nyb2xsVG9wLCBvZmZzZXRUb3A6IHBhcmVudE9mZnNldFRvcH0gPSBzY3JvbGxQYXJlbnQ7XHJcbiAgICBvZmZzZXRUb3AgPSBvZmZzZXRUb3AgLSBwYXJlbnRPZmZzZXRUb3A7XHJcblxyXG4gICAgY29uc3QgaXNBYm92ZSA9IG9mZnNldFRvcCA8IHNjcm9sbFRvcDtcclxuICAgIGNvbnN0IGlzQmVsb3cgPSBvZmZzZXRUb3AgKyBvZmZzZXRIZWlnaHQgPiBzY3JvbGxUb3AgKyBwYXJlbnRPZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgaWYgKGlzQWJvdmUpIHtcclxuICAgICAgc2Nyb2xsUGFyZW50LnNjcm9sbFRvKDAsIG9mZnNldFRvcCk7XHJcbiAgICB9IGVsc2UgaWYgKGlzQmVsb3cpIHtcclxuICAgICAgc2Nyb2xsUGFyZW50LnNjcm9sbFRvKDAsIG9mZnNldFRvcCAtIHBhcmVudE9mZnNldEhlaWdodCArIG9mZnNldEhlaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBK0M1RCxNQUFNLE9BQU8sMEJBQTBCO0lBMEZyQyxZQUNTLGdCQUFtQyxFQUNsQyxXQUF1QjtRQUR4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBeEUxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUcvQixpQkFBWSxHQUFXLGFBQWEsQ0FBQztRQVNyQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQXFCaEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd6RCxlQUFVLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFHNUQsWUFBTyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQWtCekUsZUFBVSxHQUFtQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVC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QjtvQkFPOUIsS0FBSzswQkFHTCxLQUFLOzRCQUdMLEtBQUs7MkJBR0wsS0FBSztnQ0FHTCxLQUFLOzZCQUdMLEtBQUs7NkJBR0wsS0FBSzsrQkFHTCxLQUFLO3lCQUdMLEtBQUs7eUJBR0wsS0FBSzswQkFZTCxNQUFNO3lCQUdOLE1BQU07c0JBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SW5wdXRTZWFyY2hDb21wb25lbnR9IGZyb20gJy4uL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHtLZXlib2FyZEtleX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2tleWJvYXJkLWtleS5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9pY29uL2ljb24tY2FjaGUuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGxvdlZpZXdNb2RlbCB7XHJcbiAgY2hlY2tlZDogYm9vbGVhblxyXG4gIG1vZGVsOiBhbnlcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1saXN0LW9mLXZhbHVlcy1wb3B1cCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cImxvdi1vcHRpb25zXCIgW292ZXJsYXldPVwicGFyZW50Rm9yT3ZlcmxheVwiIFtpbmhlcml0V2lkdGhdPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cImN1c3RvbUNzc0NsYXNzXCJcclxuICAgICAgICAgICBpZD1cImxvdi1wb3B1cFwiXHJcbiAgICAgICAgICAgcm9sZT1cImxpc3Rib3hcIiBbdGFiaW5kZXhdPVwiLTFcIlxyXG4gICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VQb3B1cC5lbWl0KCRldmVudClcIj5cclxuICAgICAgICAgIDxjby1pbnB1dC1zZWFyY2ggKm5nSWY9XCJtdWx0aXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hUZXJtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlSW5wdXRLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZmlsdGVyVmlld01vZGVscygpXCI+PC9jby1pbnB1dC1zZWFyY2g+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGdhcFwiICpuZ0lmPVwic2hvd1RvZ2dsZUFsbCAmJiBtdWx0aXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbbW9kZWxdPVwiYWxsU2VsZWN0ZWRcIiAobW9kZWxDaGFuZ2UpPVwidG9nZ2xlQWxsKClcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInREVTRUxFQ1RfQUxMJyB8IGNvcmVMb2NhbGl6ZVwiIChjbGljayk9XCJ0b2dnbGVBbGwoKVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbGlzdFwiICNkcm9wRG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAjbG92SXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZpZXdNb2RlbCBvZiB2aWV3TW9kZWxzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwidmlld01vZGVsID09PSBoaWdoTGlnaHRNb2RlbCB8fCB2aWV3TW9kZWxzLmxlbmd0aCA9PT0gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Vmlld01vZGVsKHZpZXdNb2RlbCwgIW11bHRpc2VsZWN0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwidmlld01vZGVsLm1vZGVsW29wdGlvbkljb25dXCIgY2xhc3M9XCJpbnB1dC10ZXh0LWxlZnQtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24odmlld01vZGVsLm1vZGVsW29wdGlvbkljb25dKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb3Ytb3B0aW9ucy10ZXh0XCIgW3RleHRDb250ZW50XT1cInZpZXdNb2RlbC5tb2RlbFtkaXNwbGF5RmllbGRdXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW21vZGVsXT1cInZpZXdNb2RlbC5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwic2VsZWN0Vmlld01vZGVsKHZpZXdNb2RlbCwgZmFsc2UpXCI+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG92LW9wdGlvbnMtdGV4dFwiIFt0ZXh0Q29udGVudF09XCJ2aWV3TW9kZWwubW9kZWxbZGlzcGxheUZpZWxkXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkcmVuKCdsb3ZJdGVtJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBzZXQgbG92SXRlbXMoY2hpbGRyZW4pIHtcclxuICAgIHRoaXMuX2xvdkl0ZW1zID0gY2hpbGRyZW4udG9BcnJheSgpO1xyXG4gICAgdGhpcy5fc2Nyb2xsSW50b1ZpZXcoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3BEb3duTGlzdCcsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgZHJvcERvd25MaXN0OiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKElucHV0U2VhcmNoQ29tcG9uZW50KSBzZXQgaW5wdXRTZWFyY2goY29tcG9uZW50OiBJbnB1dFNlYXJjaENvbXBvbmVudCkge1xyXG4gICAgdGhpcy5fc2VhcmNoSW5wdXQgPSBjb21wb25lbnQ7XHJcbiAgICBpZiAodGhpcy5fc2VhcmNoSW5wdXQpIHtcclxuICAgICAgdGhpcy5fc2VhcmNoSW5wdXQucmVxdWVzdEZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtb2RlbDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtdWx0aXNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93VG9nZ2xlQWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gJ2Rlc2NyaXB0aW9uJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VzdG9tQ3NzQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VhcmNoRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFyZW50Rm9yT3ZlcmxheTogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb3B0aW9uSWNvbjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29sbGVjdGlvbih2YWx1ZTogYW55W10pIHtcclxuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSB2YWx1ZSB8fCBbXTtcclxuICAgIHRoaXMuX3ByZXBhcmVWaWV3TW9kZWxzTWFpbigpO1xyXG4gICAgdGhpcy5fcHJlcGFyZVZpZXdNb2RlbHMoKTtcclxuICAgIHRoaXMuZmlsdGVyVmlld01vZGVscygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsZWN0aW9uKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VQb3B1cDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBrZXlEb3duOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tbGlzdC1vZi12YWx1ZXMtcG9wdXAnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgc2VhcmNoVGVybSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWFyY2hUZXJtID0gdmFsdWU7XHJcbiAgICB0aGlzLm1vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5oaWdoTGlnaHRNb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmlsdGVyVmlld01vZGVscygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZWFyY2hUZXJtKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVGVybTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2aWV3TW9kZWxzOiBsb3ZWaWV3TW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB2aWV3TW9kZWxzTWFpbjogbG92Vmlld01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgaGlnaExpZ2h0TW9kZWw6IGxvdlZpZXdNb2RlbDtcclxuICBwdWJsaWMgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbjogYW55W10gPSBbXTtcclxuICBwcml2YXRlIF9zZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF9sb3ZJdGVtczogRWxlbWVudFJlZltdID0gW107XHJcbiAgcHJpdmF0ZSBfc2VhcmNoSW5wdXQ6IElucHV0U2VhcmNoQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlIDogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZWwpIHtcclxuICAgICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0KSB7XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubW9kZWwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IHZpZXdNb2RlbDogbG92Vmlld01vZGVsID0gdGhpcy52aWV3TW9kZWxzTWFpbi5maW5kKHYgPT4gSlNPTi5zdHJpbmdpZnkodi5tb2RlbCkgPT09IEpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWxbaV0pKTtcclxuICAgICAgICAgIGlmICh2aWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgdmlld01vZGVsLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUlucHV0S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuRG93bjpcclxuICAgICAgICAgIHRoaXMuc2VsZWN0TmV4dE9wdGlvbigpO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuVXA6XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE5leHRPcHRpb24odHJ1ZSk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgY2FzZSBLZXlib2FyZEtleS5FbnRlcjpcclxuICAgICAgICAgIGlmICh0aGlzLmhpZ2hMaWdodE1vZGVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Vmlld01vZGVsKHRoaXMuaGlnaExpZ2h0TW9kZWwsIGZhbHNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMua2V5RG93bi5uZXh0KGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMua2V5RG93bi5uZXh0KGV2ZW50KTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyVmlld01vZGVscygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3ByZXBhcmVWaWV3TW9kZWxzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0Vmlld01vZGVsKHZpZXdNb2RlbDogbG92Vmlld01vZGVsLCBjbG9zZVBvcHVwOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0TW9kZWxCeVZpZXdNb2RlbCh2aWV3TW9kZWwsIGNsb3NlUG9wdXApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaWR4OiBudW1iZXIgPSB0aGlzLnZpZXdNb2RlbHMuZmluZEluZGV4KHZtID0+IHZtID09PSB2aWV3TW9kZWwpO1xyXG4gICAgICB0aGlzLnZpZXdNb2RlbHNbaWR4XS5jaGVja2VkID0gIXRoaXMudmlld01vZGVsc1tpZHhdLmNoZWNrZWQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1vZGVsQnlWaWV3TW9kZWwodmlld01vZGVsOiBsb3ZWaWV3TW9kZWwsIGNsb3NlUG9wdXA6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGVsID0gdGhpcy52aWV3TW9kZWxzTWFpbi5maW5kKHZtID0+IHZtID09PSB2aWV3TW9kZWwpLm1vZGVsO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgIGlmIChjbG9zZVBvcHVwKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VQb3B1cC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBmb3Igc2luZ2xlIHNlbGVjdFxyXG4gIHB1YmxpYyBzZWxlY3RPcHRpb25BbmRDbG9zZVBvcHVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmlld01vZGVscy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5zZWxlY3ROZXh0T3B0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLm1vZGVsICYmIHRoaXMuc2VhcmNoVGVybSkge1xyXG4gICAgICBjb25zdCB3aXNoTW9kZWw6IGxvdlZpZXdNb2RlbCA9IHRoaXMudmlld01vZGVsc01haW4uZmluZCh2bW0gPT4gdm1tLm1vZGVsW3RoaXMuZGlzcGxheUZpZWxkXSA9PT0gdGhpcy5zZWFyY2hUZXJtKTtcclxuICAgICAgaWYgKHdpc2hNb2RlbCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0Vmlld01vZGVsKHdpc2hNb2RlbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VQb3B1cC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBmb3IgbXVsdGkgc2VsZWN0XHJcbiAgcHVibGljIHNlbGVjdE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGVsID0gdGhpcy52aWV3TW9kZWxzTWFpbi5maWx0ZXIodiA9PiB2LmNoZWNrZWQpLm1hcChtID0+IG0ubW9kZWwpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE5leHRPcHRpb24oYmFjazogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICBsZXQgbmV4dE1vZGVsOiBhbnk7XHJcbiAgICBpZiAoIXRoaXMuaGlnaExpZ2h0TW9kZWwpIHtcclxuICAgICAgbmV4dE1vZGVsID0gdGhpcy52aWV3TW9kZWxzW2JhY2sgPyB0aGlzLnZpZXdNb2RlbHMubGVuZ3RoIC0gMSA6IDBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY3VycmVudFZpZXdNb2RlbElkeDogbnVtYmVyID0gdGhpcy52aWV3TW9kZWxzLmZpbmRJbmRleCh2bSA9PiB2bSA9PT0gdGhpcy5oaWdoTGlnaHRNb2RlbCk7XHJcbiAgICAgIGlmIChiYWNrKSB7XHJcbiAgICAgICAgbmV4dE1vZGVsID0gdGhpcy52aWV3TW9kZWxzW2N1cnJlbnRWaWV3TW9kZWxJZHggPD0gMCA/IHRoaXMudmlld01vZGVscy5sZW5ndGggLSAxIDogY3VycmVudFZpZXdNb2RlbElkeCAtIDFdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5leHRNb2RlbCA9IHRoaXMudmlld01vZGVsc1tjdXJyZW50Vmlld01vZGVsSWR4ID49IHRoaXMudmlld01vZGVscy5sZW5ndGggLSAxID8gMCA6IGN1cnJlbnRWaWV3TW9kZWxJZHggKyAxXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5oaWdoTGlnaHRNb2RlbCA9IG5leHRNb2RlbDtcclxuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xyXG4gICAgICB0aGlzLnNlbGVjdFZpZXdNb2RlbChuZXh0TW9kZWwsIGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3Njcm9sbEludG9WaWV3KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmlld01vZGVscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudmlld01vZGVscy5mb3JFYWNoKHZtID0+IHZtLmNoZWNrZWQgPSB0cnVlKTtcclxuICAgICAgdGhpcy5zZWxlY3RPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlQWxsKCk6IHZvaWQge1xyXG4gICAgaWYoIXRoaXMuYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHRoaXMudmlld01vZGVscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy52aWV3TW9kZWxzLmZvckVhY2godm0gPT4gdm0uY2hlY2tlZCA9IHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy52aWV3TW9kZWxzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnZpZXdNb2RlbHMuZm9yRWFjaCh2bSA9PiB2bS5jaGVja2VkID0gZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9ICF0aGlzLmFsbFNlbGVjdGVkO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlVmlld01vZGVsc01haW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdNb2RlbHNNYWluLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChtID0+IHtcclxuICAgICAgdGhpcy52aWV3TW9kZWxzTWFpbi5wdXNoKHtjaGVja2VkOiBmYWxzZSwgbW9kZWw6IG19KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlVmlld01vZGVscygpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld01vZGVscy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy52aWV3TW9kZWxzID0gdGhpcy52aWV3TW9kZWxzTWFpbi5maWx0ZXIodm0gPT4ge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh2bS5tb2RlbCkuc29tZSgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hUZXJtIHx8ICF2YWx1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zY3JvbGxJbnRvVmlldygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFjdGl2ZUluZGV4OiBudW1iZXIgPSB0aGlzLnZpZXdNb2RlbHMuZmluZEluZGV4KHZtbSA9PiB2bW0gPT09IHRoaXMuaGlnaExpZ2h0TW9kZWwpO1xyXG4gICAgaWYgKCF0aGlzLl9sb3ZJdGVtcyB8fCB0aGlzLl9sb3ZJdGVtcy5sZW5ndGggPD0gMCB8fCBhY3RpdmVJbmRleCA8IDAgfHwgIXRoaXMuZHJvcERvd25MaXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLl9sb3ZJdGVtc1thY3RpdmVJbmRleF0ubmF0aXZlRWxlbWVudCA/IHRoaXMuX2xvdkl0ZW1zW2FjdGl2ZUluZGV4XS5uYXRpdmVFbGVtZW50IDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3Qgc2Nyb2xsUGFyZW50ID0gdGhpcy5kcm9wRG93bkxpc3QubmF0aXZlRWxlbWVudCA/IHRoaXMuZHJvcERvd25MaXN0Lm5hdGl2ZUVsZW1lbnQgOiB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9zY3JvbGxBY3RpdmVJdGVtSW50b1ZpZXcoYWN0aXZlSXRlbSwgc2Nyb2xsUGFyZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Njcm9sbEFjdGl2ZUl0ZW1JbnRvVmlldyhhY3RpdmVJdGVtOiBhbnksIHNjcm9sbFBhcmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIWFjdGl2ZUl0ZW0gfHwgIXNjcm9sbFBhcmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQge29mZnNldEhlaWdodCwgb2Zmc2V0VG9wfSA9IGFjdGl2ZUl0ZW07XHJcbiAgICBsZXQge29mZnNldEhlaWdodDogcGFyZW50T2Zmc2V0SGVpZ2h0LCBzY3JvbGxUb3AsIG9mZnNldFRvcDogcGFyZW50T2Zmc2V0VG9wfSA9IHNjcm9sbFBhcmVudDtcclxuICAgIG9mZnNldFRvcCA9IG9mZnNldFRvcCAtIHBhcmVudE9mZnNldFRvcDtcclxuXHJcbiAgICBjb25zdCBpc0Fib3ZlID0gb2Zmc2V0VG9wIDwgc2Nyb2xsVG9wO1xyXG4gICAgY29uc3QgaXNCZWxvdyA9IG9mZnNldFRvcCArIG9mZnNldEhlaWdodCA+IHNjcm9sbFRvcCArIHBhcmVudE9mZnNldEhlaWdodDtcclxuXHJcbiAgICBpZiAoaXNBYm92ZSkge1xyXG4gICAgICBzY3JvbGxQYXJlbnQuc2Nyb2xsVG8oMCwgb2Zmc2V0VG9wKTtcclxuICAgIH0gZWxzZSBpZiAoaXNCZWxvdykge1xyXG4gICAgICBzY3JvbGxQYXJlbnQuc2Nyb2xsVG8oMCwgb2Zmc2V0VG9wIC0gcGFyZW50T2Zmc2V0SGVpZ2h0ICsgb2Zmc2V0SGVpZ2h0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -69,11 +69,11 @@ export class ListOfValuesComponent extends BaseInputComponent {
|
|
|
69
69
|
}
|
|
70
70
|
this.selectedModel = model;
|
|
71
71
|
}
|
|
72
|
-
onModelChange(
|
|
72
|
+
onModelChange(model) {
|
|
73
73
|
this.isLoading = true;
|
|
74
74
|
clearTimeout(this.debounceTimeout);
|
|
75
75
|
this.debounceTimeout = setTimeout(() => {
|
|
76
|
-
this.applyFilter(
|
|
76
|
+
this.applyFilter(model);
|
|
77
77
|
}, 300);
|
|
78
78
|
}
|
|
79
79
|
applyFilter(text) {
|
|
@@ -104,6 +104,9 @@ export class ListOfValuesComponent extends BaseInputComponent {
|
|
|
104
104
|
(((_b = this.filteredCollection) === null || _b === void 0 ? void 0 : _b.length) > 0 && ((_c = this.filterText) === null || _c === void 0 ? void 0 : _c.length) > 2) ? this.openPopup() : this.closePopup();
|
|
105
105
|
this.isLoading = false;
|
|
106
106
|
this.changeDetector.detectChanges();
|
|
107
|
+
if (this._lovPopupComponentRef) {
|
|
108
|
+
this._lovPopupComponentRef.instance.searchTerm = text;
|
|
109
|
+
}
|
|
107
110
|
});
|
|
108
111
|
}
|
|
109
112
|
handleInputKeyDown(event) {
|
|
@@ -330,4 +333,4 @@ ListOfValuesComponent.propDecorators = {
|
|
|
330
333
|
showChips: [{ type: Input }],
|
|
331
334
|
showClass: [{ type: HostBinding, args: ['class.co-list-of-values',] }]
|
|
332
335
|
};
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBRW5DLFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9ILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQWtFNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUF1QjtJQXFGaEUsWUFDcUIsYUFBNEIsRUFDeEMsZ0JBQWtDLEVBQy9CLGNBQWlDLEVBQ2pDLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNs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QW1CN0IsdUNBQXVDO1lBQ3ZDLG9CQUFvQjtZQWxCMUIsVUFBVTs7O29CQXdGVCxLQUFLOytCQVVMLFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7MEJBR2hELFdBQVcsU0FBQyxxQkFBcUIsY0FDakMsV0FBVyxTQUFDLG9CQUFvQixjQUNoQyxLQUFLOzRCQUdMLEtBQUs7OEJBR0wsS0FBSzsyQkFHTCxLQUFLO3lCQUdMLEtBQUs7eUJBR0wsS0FBSzsrQkFTTCxLQUFLO21DQUdMLEtBQUs7MkJBR0wsS0FBSztnQ0FHTCxLQUFLO29CQUdMLEtBQUs7NkJBR0wsS0FBSzs2QkFHTCxLQUFLO3dCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZywgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Jhc2VJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tICcuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bSc7XHJcbmltcG9ydCB7T3ZlcmxheVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvb3ZlcmxheS5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaXN0T2ZWYWx1ZXNQb3B1cENvbXBvbmVudH0gZnJvbSAnLi9saXN0LW9mLXZhbHVlcy1wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0tleWJvYXJkS2V5fSBmcm9tICcuLi8uLi9jb3JlL2VudW0va2V5Ym9hcmQta2V5LmVudW0nO1xyXG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjcmVlbi1jb25maWctYWRhcHRlci1jb21wb25lbnQtaW50ZXJmYWNlLW5hbWUnO1xyXG5pbXBvcnQge0Zvcm1Db21wb25lbnR9IGZyb20gXCIuLi9mb3JtL2Zvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL2Zvcm0taW5wdXQtdXNlci1jaGFuZ2UtbGlzdGVuZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge05nWm9uZVdyYXBwZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vaWNvbi9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1saXN0LW9mLXZhbHVlcycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFsYXJnZUNvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzU2VsZWN0T3BlblwiXHJcbiAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImxvdi1wb3B1cFwiXHJcbiAgICAgICAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5vLWZvY3VzLWxpbmVcIlxyXG4gICAgICAgICAgICAgIG92ZXJsYXlQYXJlbnRcclxuICAgICAgICAgICAgICAjcGFyZW50Rm9yT3ZlcmxheT1cIm92ZXJsYXlQYXJlbnRcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBbaWRdPVwibGFiZWxcIlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJtdWx0aXNlbGVjdCA/IHNlbGVjdGVkTW9kZWxzIDogc2VsZWN0ZWRNb2RlbFwiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICBbbXlGb3JtSW5wdXRJbnN0YW5jZV09XCJ0aGlzXCJcclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICBbbm9DbGlja0ZvY3VzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbbGVmdEljb25EYXRhXT1cIiBtb2RlbCAmJiBtb2RlbFtvcHRpb25JY29uXSA/IGljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihtb2RlbFtvcHRpb25JY29uXSkgOiBsZWZ0SWNvbkRhdGFcIlxyXG4gICAgICAgICAgICAgIFtyaWdodEljb25dPVwiaXNTZWxlY3RPcGVuID8gaWNvbnMuQ2hldnJvblVwUmVndWxhciA6IGljb25zLkNoZXZyb25Eb3duUmVndWxhclwiXHJcbiAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbdXNlQ29udGVudF09XCJtdWx0aXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUhlaWdodF09XCJtdWx0aXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgW2tlZXBGb2N1c3NlZF09XCJrZWVwRm9jdXNzZWRcIlxyXG4gICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVJbnB1dE1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuUG9wdXAoKVwiXHJcbiAgICAgICAgICAgICAgKHJpZ2h0SWNvbkNsaWNrKT1cInRvZ2dsZVNlbGVjdCgpXCJcclxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVJbnB1dEtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKGNsZWFySWNvbkNsaWNrKT1cImNsZWFyTW9kZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKGJsdXIpPVwiY2hlY2tNb2RlbCgpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlzZWxlY3QgJiYgc2hvd0NoaXBzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpc2VsZWN0LWNoaXBzLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBzXCIgKm5nRm9yPVwibGV0IGNoaXAgb2YgbW9kZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcHMtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiY2hpcFtkaXNwbGF5RmllbGRdXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJyZW1vdmUtY2hpcC1pY29uXCIgW2ljb25dPVwiaWNvbnMuQ3Jvc3NTa2lubnlcIiAoY2xpY2spPVwicmVtb3ZlT3B0aW9uRnJvbU1vZGVsKGNoaXApXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2NvLWlucHV0LXRleHQ+XHJcblxyXG4gICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibGFyZ2VDb2xsZWN0aW9uXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgIDwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwiZmlsdGVyLWxvYWRlclwiPjxzcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbbmdNb2RlbF09XCJtb2RlbFwiPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBPdmVybGF5U2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdE9mVmFsdWVzQ29tcG9uZW50KVxyXG4gICAgfVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdE9mVmFsdWVzQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50PGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG1vZGVsKHZhbHVlOiBhbnkpIHtcclxuICAgIHN1cGVyLm1vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZXRTZWxlY3RlZE1vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1vZGVsKCk6IGFueSB7XHJcbiAgICByZXR1cm4gc3VwZXIubW9kZWw7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdwYXJlbnRGb3JPdmVybGF5Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBwYXJlbnRGb3JPdmVybGF5OiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmN1c3RvbS1oZWlnaHQnKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MubXVsdGktc2VsZWN0JylcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtdWx0aXNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93VG9nZ2xlQWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhcmdlQ29sbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZyA9ICdkZXNjcmlwdGlvbic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9wdGlvbkljb246IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbGxlY3Rpb24odmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9jb2xsZWN0aW9uID0gdmFsdWUgfHwgW107XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbGxlY3Rpb24oKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uTG9hZEZuOiBGdW5jdGlvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbkxvYWRGblByb3A6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGVmdEljb25EYXRhOiBTYWZlSHRtbCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VzdG9tQ3NzQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VhcmNoRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NoaXBzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1saXN0LW9mLXZhbHVlcycpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2VsZWN0T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzdGF0ZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG4gIHB1YmxpYyBmaWx0ZXJUZXh0OiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgc2VsZWN0ZWRNb2RlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZWxlY3RlZE1vZGVsczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZmlsdGVyZWRDb2xsZWN0aW9uOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbjogYW55W10gPSBbXTtcclxuICBwcml2YXRlIGRlYm91bmNlVGltZW91dDogYW55O1xyXG5cclxuICBwcml2YXRlIF9sb3ZQb3B1cENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtQ29tcG9uZW50OiBGb3JtQ29tcG9uZW50LFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJvdGVjdGVkIG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByb3RlY3RlZCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyPzogRm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmPzogRWxlbWVudFJlZixcclxuICApIHtcclxuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIG92ZXJsYXlTZXJ2aWNlLCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyLCBuZ1pvbmVXcmFwcGVyLCBlbGVtZW50UmVmKTtcclxuICAgIHN1cGVyLl9tYXJrQXNPblB1c2goKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3NldFNlbGVjdGVkTW9kZWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJbnB1dE1vZGVsQ2hhbmdlKG1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWFyY2hUZXJtID0gbW9kZWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRNb2RlbCAmJiBtb2RlbCkge1xyXG4gICAgICAgIHRoaXMub3BlblBvcHVwKCk7XHJcbiAgICAgICAgdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VhcmNoVGVybSA9IG1vZGVsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk1vZGVsQ2hhbmdlKHRleHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVib3VuY2VUaW1lb3V0KTtcclxuICAgIHRoaXMuZGVib3VuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGV4dCk7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGFwcGx5RmlsdGVyKHRleHQ6IHN0cmluZyk6IFByb21pc2U8W10+IHtcclxuICAgIGlmICh0ZXh0Py5sZW5ndGggPCAzKSB7XHJcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAzMDApKTtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDMwMCkpO1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4odGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZENvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb24/LmZpbHRlcigoaXRlbTpPYmplY3QpID0+IHtcclxuICAgICAgaWYodGhpcy5jb2xsZWN0aW9uTG9hZEZuUHJvcCAmJiB0aGlzLmNvbGxlY3Rpb25Mb2FkRm5Qcm9wLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXR1cm4gaXRlbVt0aGlzLmNvbGxlY3Rpb25Mb2FkRm5Qcm9wXSAmJiBpdGVtW3RoaXMuY29sbGVjdGlvbkxvYWRGblByb3BdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dC50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgKHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVyVGV4dD8ubGVuZ3RoID4gMikgPyB0aGlzLm9wZW5Qb3B1cCgpIDogdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSW5wdXRLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiBldmVudC5jb2RlID09PSBLZXlib2FyZEtleS5Eb3duICYmICF0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZikge1xyXG4gICAgICAgIHRoaXMub3BlblBvcHVwKCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZikge1xyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICAgICAgY2FzZSBLZXlib2FyZEtleS5Eb3duOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3ROZXh0T3B0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuVXA6XHJcbiAgICAgICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdE5leHRPcHRpb24odHJ1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuRW50ZXI6XHJcbiAgICAgICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdE9wdGlvbkFuZENsb3NlUG9wdXAoKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgY2FzZSBLZXlib2FyZEtleS5UYWI6XHJcbiAgICAgICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdE9wdGlvbkFuZENsb3NlUG9wdXAoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhck1vZGVsKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1vZGVsKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlU2VsZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc1NlbGVjdE9wZW4gPSAhdGhpcy5pc1NlbGVjdE9wZW47XHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdE9wZW4pIHtcclxuICAgICAgdGhpcy5vcGVuUG9wdXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0ZSA9ICh0aGlzLnN0YXRlID09PSAnZGVmYXVsdCcgPyAncm90YXRlZCcgOiAnZGVmYXVsdCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5Qb3B1cCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gdHJ1ZTtcclxuICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGVDb21wb25lbnQoTGlzdE9mVmFsdWVzUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgcGFyZW50Rm9yT3ZlcmxheTogdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICBjdXN0b21Dc3NDbGFzczogdGhpcy5jdXN0b21Dc3NDbGFzcyxcclxuICAgICAgc2VhcmNoRGlzYWJsZWQ6IHRoaXMuc2VhcmNoRGlzYWJsZWQsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiB0aGlzLnNlYXJjaFBsYWNlaG9sZGVyLFxyXG4gICAgICBkaXNwbGF5RmllbGQ6IHRoaXMuZGlzcGxheUZpZWxkLFxyXG4gICAgICBtdWx0aXNlbGVjdDogdGhpcy5tdWx0aXNlbGVjdCxcclxuICAgICAgc2hvd1RvZ2dsZUFsbDogdGhpcy5zaG93VG9nZ2xlQWxsLFxyXG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcclxuICAgICAgY29sbGVjdGlvbjogdGhpcy5jb2xsZWN0aW9uLFxyXG4gICAgICBvcHRpb25JY29uOiB0aGlzLm9wdGlvbkljb24sXHJcbiAgICB9LCB7XHJcbiAgICAgIG1vZGVsQ2hhbmdlOiAodmFsdWUpID0+IHRoaXMub3B0aW9uQ2hvc2VuKHZhbHVlKSxcclxuICAgICAgY2xvc2VQb3B1cDogKCkgPT4gdGhpcy5jbG9zZVBvcHVwKCksXHJcbiAgICAgIGtleURvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVJbnB1dEtleURvd24oZXZlbnQpXHJcbiAgICB9LFxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWZcclxuICAgICk7XHJcbiAgICB0aGlzLmtlZXBGb2N1c3NlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlT3B0aW9uRnJvbU1vZGVsKGNoaXA6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgY29uc3QgaWR4OiBudW1iZXIgPSB0aGlzLm1vZGVsLmZpbmRJbmRleChtID0+IG0gPT09IGNoaXApO1xyXG4gICAgICB0aGlzLm1vZGVsLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3B0aW9uQ2hvc2VuKG9wdGlvbjogYW55KTogdm9pZCB7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVscyA9IG9wdGlvbi5tYXAobyA9PiBvW3RoaXMuZGlzcGxheUZpZWxkXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gb3B0aW9uW3RoaXMuZGlzcGxheUZpZWxkXTtcclxuICAgICAgICBpZiAodGhpcy5sYXJnZUNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyVGV4dCA9IG9wdGlvblt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE1vZGVsKG9wdGlvbik7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UuZW1pdChvcHRpb24pO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VQb3B1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMua2VlcEZvY3Vzc2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2VsZWN0T3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5vdmVybGF5U2VydmljZS5yZW1vdmVDb21wb25lbnQodGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpO1xyXG4gICAgdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja01vZGVsKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0ICYmIHRoaXMuc2VsZWN0ZWRNb2RlbCAmJiB0aGlzLmNvbGxlY3Rpb24pIHtcclxuICAgICAgY29uc3QgbW9kZWw6IGFueSA9IHRoaXMuY29sbGVjdGlvbi5maW5kKGMgPT4gY1t0aGlzLmRpc3BsYXlGaWVsZF0gPT09IHRoaXMuc2VsZWN0ZWRNb2RlbCk7XHJcbiAgICAgIGlmIChtb2RlbCkge1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFNlbGVjdGVkTW9kZWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbHMubGVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLm1vZGVsLmZvckVhY2gobSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxzLnB1c2gobVt0aGlzLmRpc3BsYXlGaWVsZF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbHMubGVuZ3RoID0gMDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSB0aGlzLm1vZGVsW3RoaXMuZGlzcGxheUZpZWxkXTtcclxuICAgICAgICBpZiAodGhpcy5sYXJnZUNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyVGV4dCA9IHRoaXMubW9kZWxbdGhpcy5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSAnJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBRW5DLFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9ILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQWtFNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUF1QjtJQXFGaEUsWUFDcUIsYUFBNEIsRUFDeEMsZ0JBQWtDLEVBQy9CLGNBQWlDLEVBQ2pDLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNs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QUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXBFTyxhQUFhLHVCQTJKaEIsUUFBUTtZQXhKTCxnQkFBZ0I7WUF0QnRCLGlCQUFpQjtZQWNYLGNBQWM7WUFiVCx3QkFBd0I7WUFtQjdCLHVDQUF1QztZQUN2QyxvQkFBb0I7WUFsQjFCLFVBQVU7OztvQkF3RlQsS0FBSzsrQkFVTCxTQUFTLFNBQUMsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDOzBCQUdoRCxXQUFXLFNBQUMscUJBQXFCLGNBQ2pDLFdBQVcsU0FBQyxvQkFBb0IsY0FDaEMsS0FBSzs0QkFHTCxLQUFLOzhCQUdMLEtBQUs7MkJBR0wsS0FBSzt5QkFHTCxLQUFLO3lCQUdMLEtBQUs7K0JBU0wsS0FBSzttQ0FHTCxLQUFLOzJCQUdMLEtBQUs7Z0NBR0wsS0FBSztvQkFHTCxLQUFLOzZCQUdMLEtBQUs7NkJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLFdBQVcsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCYXNlSW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbn0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2NvcmUtY29tcG9uZW50cy1pY29uLmVudW0nO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzUG9wdXBDb21wb25lbnR9IGZyb20gJy4vbGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtLZXlib2FyZEtleX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2tleWJvYXJkLWtleS5lbnVtJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tbGlzdC1vZi12YWx1ZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbGFyZ2VDb2xsZWN0aW9uXCJcclxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc1NlbGVjdE9wZW5cIlxyXG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJsb3YtcG9wdXBcIlxyXG4gICAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuby1mb2N1cy1saW5lXCJcclxuICAgICAgICAgICAgICBvdmVybGF5UGFyZW50XHJcbiAgICAgICAgICAgICAgI3BhcmVudEZvck92ZXJsYXk9XCJvdmVybGF5UGFyZW50XCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwibXVsdGlzZWxlY3QgPyBzZWxlY3RlZE1vZGVscyA6IHNlbGVjdGVkTW9kZWxcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgW215Rm9ybUlucHV0SW5zdGFuY2VdPVwidGhpc1wiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2xlZnRJY29uRGF0YV09XCIgbW9kZWwgJiYgbW9kZWxbb3B0aW9uSWNvbl0gPyBpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24obW9kZWxbb3B0aW9uSWNvbl0pIDogbGVmdEljb25EYXRhXCJcclxuICAgICAgICAgICAgICBbcmlnaHRJY29uXT1cImlzU2VsZWN0T3BlbiA/IGljb25zLkNoZXZyb25VcFJlZ3VsYXIgOiBpY29ucy5DaGV2cm9uRG93blJlZ3VsYXJcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3VzZUNvbnRlbnRdPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21IZWlnaHRdPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtrZWVwRm9jdXNzZWRdPVwia2VlcEZvY3Vzc2VkXCJcclxuICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlSW5wdXRNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblBvcHVwKClcIlxyXG4gICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVTZWxlY3QoKVwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlSW5wdXRLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChjbGVhckljb25DbGljayk9XCJjbGVhck1vZGVsKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cImNoZWNrTW9kZWwoKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpc2VsZWN0ICYmIHNob3dDaGlwc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1jaGlwcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBjaGlwIG9mIG1vZGVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBzLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cImNoaXBbZGlzcGxheUZpZWxkXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVtb3ZlLWNoaXAtaWNvblwiIFtpY29uXT1cImljb25zLkNyb3NzU2tpbm55XCIgKGNsaWNrKT1cInJlbW92ZU9wdGlvbkZyb21Nb2RlbChjaGlwKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAqbmdJZj1cImxhcmdlQ29sbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImZpbHRlclRleHRcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImZpbHRlci1sb2FkZXJcIj48c3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW25nTW9kZWxdPVwibW9kZWxcIj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RPZlZhbHVlc0NvbXBvbmVudClcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RPZlZhbHVlc0NvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudDxhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBzdXBlci5tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHN1cGVyLm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGFyZW50Rm9yT3ZlcmxheScsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgcGFyZW50Rm9yT3ZlcmxheTogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jdXN0b20taGVpZ2h0JylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm11bHRpLXNlbGVjdCcpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbXVsdGlzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1RvZ2dsZUFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYXJnZUNvbGxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzcGxheUZpZWxkOiBzdHJpbmcgPSAnZGVzY3JpcHRpb24nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcHRpb25JY29uOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb2xsZWN0aW9uKHZhbHVlOiBhbnlbXSkge1xyXG4gICAgdGhpcy5fY29sbGVjdGlvbiA9IHZhbHVlIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsZWN0aW9uKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbkxvYWRGbjogRnVuY3Rpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbGxlY3Rpb25Mb2FkRm5Qcm9wOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxlZnRJY29uRGF0YTogU2FmZUh0bWwgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbUNzc0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dDaGlwczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tbGlzdC1vZi12YWx1ZXMnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NlbGVjdE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc3RhdGU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuICBwdWJsaWMgZmlsdGVyVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHNlbGVjdGVkTW9kZWw6IHN0cmluZztcclxuICBwdWJsaWMgc2VsZWN0ZWRNb2RlbHM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGZpbHRlcmVkQ29sbGVjdGlvbjogYW55W10gPSBbXTtcclxuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb246IGFueVtdID0gW107XHJcbiAgcHJpdmF0ZSBkZWJvdW5jZVRpbWVvdXQ6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfbG92UG9wdXBDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZm9ybUNvbXBvbmVudDogRm9ybUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcm90ZWN0ZWQgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lcj86IEZvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBuZ1pvbmVXcmFwcGVyPzogTmdab25lV3JhcHBlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3RvciwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBvdmVybGF5U2VydmljZSwgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lciwgbmdab25lV3JhcHBlciwgZWxlbWVudFJlZik7XHJcbiAgICBzdXBlci5fbWFya0FzT25QdXNoKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zZXRTZWxlY3RlZE1vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSW5wdXRNb2RlbENoYW5nZShtb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VhcmNoVGVybSA9IG1vZGVsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkTW9kZWwgJiYgbW9kZWwpIHtcclxuICAgICAgICB0aGlzLm9wZW5Qb3B1cCgpO1xyXG4gICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlYXJjaFRlcm0gPSBtb2RlbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gbW9kZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Nb2RlbENoYW5nZShtb2RlbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5kZWJvdW5jZVRpbWVvdXQpO1xyXG4gICAgdGhpcy5kZWJvdW5jZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlcihtb2RlbCk7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGFwcGx5RmlsdGVyKHRleHQ6IHN0cmluZyk6IFByb21pc2U8W10+IHtcclxuICAgIGlmICh0ZXh0Py5sZW5ndGggPCAzKSB7XHJcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAzMDApKTtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDMwMCkpO1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4odGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZENvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb24/LmZpbHRlcigoaXRlbTpPYmplY3QpID0+IHtcclxuICAgICAgaWYodGhpcy5jb2xsZWN0aW9uTG9hZEZuUHJvcCAmJiB0aGlzLmNvbGxlY3Rpb25Mb2FkRm5Qcm9wLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXR1cm4gaXRlbVt0aGlzLmNvbGxlY3Rpb25Mb2FkRm5Qcm9wXSAmJiBpdGVtW3RoaXMuY29sbGVjdGlvbkxvYWRGblByb3BdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dC50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgKHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVyVGV4dD8ubGVuZ3RoID4gMikgPyB0aGlzLm9wZW5Qb3B1cCgpIDogdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlYXJjaFRlcm0gPSB0ZXh0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUlucHV0S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGlmIChldmVudC5hbHRLZXkgJiYgZXZlbnQuY29kZSA9PT0gS2V5Ym9hcmRLZXkuRG93biAmJiAhdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLm9wZW5Qb3B1cCgpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpIHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuRG93bjpcclxuICAgICAgICAgICAgdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0TmV4dE9wdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICBjYXNlIEtleWJvYXJkS2V5LlVwOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3ROZXh0T3B0aW9uKHRydWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICBjYXNlIEtleWJvYXJkS2V5LkVudGVyOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RPcHRpb25BbmRDbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuVGFiOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RPcHRpb25BbmRDbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJNb2RlbChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNb2RlbCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVNlbGVjdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gIXRoaXMuaXNTZWxlY3RPcGVuO1xyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RPcGVuKSB7XHJcbiAgICAgIHRoaXMub3BlblBvcHVwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGUgPSAodGhpcy5zdGF0ZSA9PT0gJ2RlZmF1bHQnID8gJ3JvdGF0ZWQnIDogJ2RlZmF1bHQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuUG9wdXAoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU2VsZWN0T3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhcmVudEZvck92ZXJsYXk6IHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgY3VzdG9tQ3NzQ2xhc3M6IHRoaXMuY3VzdG9tQ3NzQ2xhc3MsXHJcbiAgICAgIHNlYXJjaERpc2FibGVkOiB0aGlzLnNlYXJjaERpc2FibGVkLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogdGhpcy5zZWFyY2hQbGFjZWhvbGRlcixcclxuICAgICAgZGlzcGxheUZpZWxkOiB0aGlzLmRpc3BsYXlGaWVsZCxcclxuICAgICAgbXVsdGlzZWxlY3Q6IHRoaXMubXVsdGlzZWxlY3QsXHJcbiAgICAgIHNob3dUb2dnbGVBbGw6IHRoaXMuc2hvd1RvZ2dsZUFsbCxcclxuICAgICAgbW9kZWw6IHRoaXMubW9kZWwsXHJcbiAgICAgIGNvbGxlY3Rpb246IHRoaXMuY29sbGVjdGlvbixcclxuICAgICAgb3B0aW9uSWNvbjogdGhpcy5vcHRpb25JY29uLFxyXG4gICAgfSwge1xyXG4gICAgICBtb2RlbENoYW5nZTogKHZhbHVlKSA9PiB0aGlzLm9wdGlvbkNob3Nlbih2YWx1ZSksXHJcbiAgICAgIGNsb3NlUG9wdXA6ICgpID0+IHRoaXMuY2xvc2VQb3B1cCgpLFxyXG4gICAgICBrZXlEb3duOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuaGFuZGxlSW5wdXRLZXlEb3duKGV2ZW50KVxyXG4gICAgfSxcclxuICAgICAgdGhpcy5lbGVtZW50UmVmXHJcbiAgICApO1xyXG4gICAgdGhpcy5rZWVwRm9jdXNzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZU9wdGlvbkZyb21Nb2RlbChjaGlwOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XHJcbiAgICAgIGNvbnN0IGlkeDogbnVtYmVyID0gdGhpcy5tb2RlbC5maW5kSW5kZXgobSA9PiBtID09PSBjaGlwKTtcclxuICAgICAgdGhpcy5tb2RlbC5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wdGlvbkNob3NlbihvcHRpb246IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKG9wdGlvbikge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbHMgPSBvcHRpb24ubWFwKG8gPT4gb1t0aGlzLmRpc3BsYXlGaWVsZF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IG9wdGlvblt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgaWYgKHRoaXMubGFyZ2VDb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlclRleHQgPSBvcHRpb25bdGhpcy5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRNb2RlbChvcHRpb24pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlLmVtaXQob3B0aW9uKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wdXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmtlZXBGb2N1c3NlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NlbGVjdE9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmKTtcclxuICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tNb2RlbCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCAmJiB0aGlzLnNlbGVjdGVkTW9kZWwgJiYgdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IG1vZGVsOiBhbnkgPSB0aGlzLmNvbGxlY3Rpb24uZmluZChjID0+IGNbdGhpcy5kaXNwbGF5RmllbGRdID09PSB0aGlzLnNlbGVjdGVkTW9kZWwpO1xyXG4gICAgICBpZiAobW9kZWwpIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRTZWxlY3RlZE1vZGVsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgaWYgKHRoaXMubW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVscy5wdXNoKG1bdGhpcy5kaXNwbGF5RmllbGRdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxzLmxlbmd0aCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gdGhpcy5tb2RlbFt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgaWYgKHRoaXMubGFyZ2VDb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlclRleHQgPSB0aGlzLm1vZGVsW3RoaXMuZGlzcGxheUZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -11423,7 +11423,12 @@ class ListOfValuesPopupComponent {
|
|
|
11423
11423
|
this.viewModels.length = 0;
|
|
11424
11424
|
this.viewModels = this.viewModelsMain.filter(vm => {
|
|
11425
11425
|
return Object.values(vm.model).some((value) => {
|
|
11426
|
-
|
|
11426
|
+
if (!this.searchTerm || !value) {
|
|
11427
|
+
return false;
|
|
11428
|
+
}
|
|
11429
|
+
else {
|
|
11430
|
+
return value.toString().toLowerCase().includes(this.searchTerm.toLowerCase());
|
|
11431
|
+
}
|
|
11427
11432
|
});
|
|
11428
11433
|
});
|
|
11429
11434
|
}
|
|
@@ -11578,11 +11583,11 @@ class ListOfValuesComponent extends BaseInputComponent {
|
|
|
11578
11583
|
}
|
|
11579
11584
|
this.selectedModel = model;
|
|
11580
11585
|
}
|
|
11581
|
-
onModelChange(
|
|
11586
|
+
onModelChange(model) {
|
|
11582
11587
|
this.isLoading = true;
|
|
11583
11588
|
clearTimeout(this.debounceTimeout);
|
|
11584
11589
|
this.debounceTimeout = setTimeout(() => {
|
|
11585
|
-
this.applyFilter(
|
|
11590
|
+
this.applyFilter(model);
|
|
11586
11591
|
}, 300);
|
|
11587
11592
|
}
|
|
11588
11593
|
applyFilter(text) {
|
|
@@ -11613,6 +11618,9 @@ class ListOfValuesComponent extends BaseInputComponent {
|
|
|
11613
11618
|
(((_b = this.filteredCollection) === null || _b === void 0 ? void 0 : _b.length) > 0 && ((_c = this.filterText) === null || _c === void 0 ? void 0 : _c.length) > 2) ? this.openPopup() : this.closePopup();
|
|
11614
11619
|
this.isLoading = false;
|
|
11615
11620
|
this.changeDetector.detectChanges();
|
|
11621
|
+
if (this._lovPopupComponentRef) {
|
|
11622
|
+
this._lovPopupComponentRef.instance.searchTerm = text;
|
|
11623
|
+
}
|
|
11616
11624
|
});
|
|
11617
11625
|
}
|
|
11618
11626
|
handleInputKeyDown(event) {
|
|
@@ -15254,7 +15262,8 @@ class HourSchedulingExpandableComponent {
|
|
|
15254
15262
|
return split.join(':');
|
|
15255
15263
|
}
|
|
15256
15264
|
convertTZ(date, tzString) {
|
|
15257
|
-
|
|
15265
|
+
var _a;
|
|
15266
|
+
return new Date((_a = (typeof date === "string" ? new Date(date) : date)) === null || _a === void 0 ? void 0 : _a.toLocaleString("en-US", { timeZone: tzString }));
|
|
15258
15267
|
}
|
|
15259
15268
|
convertDateToEuropean(date) {
|
|
15260
15269
|
return this.convertTZ(date, 'Europe/Amsterdam');
|