@mintplayer/ng-bootstrap 18.3.0 → 18.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/accordion/src/accordion/accordion.component.mjs +2 -2
- package/esm2022/accordion/src/accordion-tab/accordion-tab.component.mjs +2 -2
- package/esm2022/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +1 -2
- package/esm2022/alert/src/alert-close/alert-close.component.mjs +1 -2
- package/esm2022/calendar/src/calendar.component.mjs +2 -3
- package/esm2022/carousel/src/carousel/carousel.component.mjs +2 -3
- package/esm2022/carousel/src/carousel-image/carousel-image.directive.mjs +2 -3
- package/esm2022/carousel/src/carousel-img/carousel-img.directive.mjs +1 -2
- package/esm2022/code-snippet/src/code-snippet.component.mjs +2 -2
- package/esm2022/color-picker/components/alpha-strip/alpha-strip.component.mjs +2 -2
- package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +1 -2
- package/esm2022/color-picker/components/color-wheel/color-wheel.component.mjs +2 -2
- package/esm2022/color-picker/components/luminosity-strip/luminosity-strip.component.mjs +2 -2
- package/esm2022/color-picker/components/slider/slider.component.mjs +2 -2
- package/esm2022/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.mjs +2 -2
- package/esm2022/context-menu/src/context-menu.directive.mjs +2 -3
- package/esm2022/datatable/src/datatable/datatable.component.mjs +1 -2
- package/esm2022/datatable/src/datatable-column/datatable-column.directive.mjs +2 -2
- package/esm2022/datatable/src/row-template/row-template.directive.mjs +2 -3
- package/esm2022/dock/src/dock/dock.component.mjs +2 -2
- package/esm2022/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +2 -3
- package/esm2022/dock/src/dock-panel/dock-panel.component.mjs +2 -2
- package/esm2022/dock/src/dock-panel-header/dock-panel-header.component.mjs +2 -5
- package/esm2022/dropdown/src/dropdown/dropdown.directive.mjs +2 -2
- package/esm2022/dropdown/src/dropdown-menu/dropdown-menu.directive.mjs +2 -3
- package/esm2022/dropdown/src/dropdown-toggle/dropdown-toggle.directive.mjs +2 -3
- package/esm2022/dropdown-menu/src/dropdown-menu/dropdown-menu.component.mjs +1 -2
- package/esm2022/enhanced-paste/src/directive/enhanced-paste.directive.mjs +2 -3
- package/esm2022/file-upload/src/directive/file-upload-template.directive.mjs +2 -3
- package/esm2022/floating-labels/src/floating-label/floating-label.component.mjs +1 -2
- package/esm2022/form/src/form-control/form-control.directive.mjs +1 -2
- package/esm2022/grid/src/directives/column/column.directive.mjs +2 -2
- package/esm2022/instance-of/src/directives/instanceof-case.directive.mjs +2 -3
- package/esm2022/instance-of/src/directives/instanceof-default.directive.mjs +2 -3
- package/esm2022/let/directive/let.directive.mjs +2 -2
- package/esm2022/list-group/src/list-group/list-group.component.mjs +2 -2
- package/esm2022/markdown/src/bold/bold.pipe.mjs +1 -2
- package/esm2022/markdown/src/italic/italic.pipe.mjs +1 -2
- package/esm2022/markdown/src/strikethrough/strikethrough.pipe.mjs +1 -2
- package/esm2022/markdown/src/underline/underline.pipe.mjs +1 -2
- package/esm2022/modal/src/components/modal/modal.component.mjs +2 -2
- package/esm2022/modal/src/components/modal-host/modal-host.component.mjs +2 -3
- package/esm2022/modal/src/directives/modal/modal.directive.mjs +2 -3
- package/esm2022/modal/src/directives/modal-close/modal-close.directive.mjs +1 -2
- package/esm2022/multiselect/src/component/multiselect.component.mjs +2 -2
- package/esm2022/multiselect/src/directives/button-template/button-template.directive.mjs +2 -3
- package/esm2022/multiselect/src/directives/footer-template/footer-template.directive.mjs +2 -3
- package/esm2022/multiselect/src/directives/header-template/header-template.directive.mjs +2 -3
- package/esm2022/navbar/src/dropdown-toggle/dropdown-toggle.directive.mjs +2 -2
- package/esm2022/navbar/src/expand-button/expand-button.directive.mjs +2 -3
- package/esm2022/navbar/src/nav-link/nav-link.directive.mjs +2 -3
- package/esm2022/navbar/src/navbar/navbar.component.mjs +2 -2
- package/esm2022/navbar/src/navbar-content/navbar-content.directive.mjs +2 -2
- package/esm2022/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +2 -3
- package/esm2022/navbar/src/navbar-item/navbar-item.component.mjs +6 -4
- package/esm2022/navbar/src/navbar-nav/navbar-nav.component.mjs +1 -2
- package/esm2022/navigation-lock/src/directive/navigation-lock.directive.mjs +1 -2
- package/esm2022/offcanvas/src/components/offcanvas/offcanvas.component.mjs +2 -2
- package/esm2022/offcanvas/src/components/offcanvas-host/offcanvas-host.component.mjs +2 -3
- package/esm2022/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.mjs +1 -2
- package/esm2022/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.mjs +2 -3
- package/esm2022/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.mjs +3 -4
- package/esm2022/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +1 -2
- package/esm2022/placeholder/src/placeholder-field/placeholder-field.directive.mjs +1 -2
- package/esm2022/popover/src/component/popover.component.mjs +2 -2
- package/esm2022/popover/src/directives/popover/popover.directive.mjs +2 -3
- package/esm2022/range/src/component/range.component.mjs +2 -2
- package/esm2022/range/src/value-accessor/range-value-accessor.mjs +2 -3
- package/esm2022/resizable/src/resizable/resizable.component.mjs +2 -2
- package/esm2022/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +1 -2
- package/esm2022/scheduler/src/components/scheduler/scheduler.component.mjs +2 -5
- package/esm2022/scrollspy/src/component/scrollspy.component.mjs +2 -3
- package/esm2022/scrollspy/src/directives/scrollspy.directive.mjs +2 -2
- package/esm2022/searchbox/src/directives/enter-search-term.directive.mjs +2 -3
- package/esm2022/searchbox/src/directives/no-results.directive.mjs +2 -3
- package/esm2022/searchbox/src/directives/suggestion.directive.mjs +2 -3
- package/esm2022/searchbox/src/searchbox/searchbox.component.mjs +2 -4
- package/esm2022/select/src/component/select.component.mjs +2 -2
- package/esm2022/select/src/value-accessors/select-value-accessor.mjs +2 -3
- package/esm2022/select2/src/component/select2.component.mjs +2 -2
- package/esm2022/select2/src/directive/item-template/item-template.directive.mjs +2 -3
- package/esm2022/select2/src/directive/suggestion-template/suggestion-template.directive.mjs +2 -3
- package/esm2022/shell/src/shell/shell.component.mjs +2 -2
- package/esm2022/shell/src/shell-sidebar/shell-sidebar.directive.mjs +2 -3
- package/esm2022/signature-pad/src/component/signature-pad.component.mjs +2 -2
- package/esm2022/splitter/src/split-panel/split-panel.component.mjs +2 -2
- package/esm2022/splitter/src/splitter/splitter.component.mjs +2 -2
- package/esm2022/sticky-footer/src/sticky-footer/sticky-footer.component.mjs +2 -4
- package/esm2022/tab-control/src/tab-control/tab-control.component.mjs +2 -2
- package/esm2022/tab-control/src/tab-page/tab-page.component.mjs +2 -3
- package/esm2022/tab-control/src/tab-page-header/tab-page-header.directive.mjs +2 -2
- package/esm2022/timepicker/src/timepicker.component.mjs +2 -3
- package/esm2022/toast/src/components/toast-container/toast-container.component.mjs +1 -2
- package/esm2022/toast/src/directives/toast-close/toast-close.directive.mjs +1 -3
- package/esm2022/toast/src/services/toast/toast.service.mjs +1 -2
- package/esm2022/toggle-button/src/component/toggle-button.component.mjs +2 -2
- package/esm2022/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.mjs +2 -2
- package/esm2022/toggle-button/src/value-accessor/toggle-button-value-accessor.mjs +2 -3
- package/esm2022/tooltip/src/component/tooltip.component.mjs +2 -2
- package/esm2022/tooltip/src/directive/tooltip.directive.mjs +2 -3
- package/esm2022/treeview/src/treeview-item/treeview-item.component.mjs +1 -2
- package/esm2022/trust-html/src/trust-html.pipe.mjs +1 -2
- package/esm2022/typeahead/src/typeahead.component.mjs +2 -2
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +2 -2
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +0 -1
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +5 -2
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +16 -16
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, filter, map } from 'rxjs';
|
|
3
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/platform-browser";
|
|
6
5
|
import * as i2 from "@angular/common";
|
|
@@ -84,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
84
83
|
}], isExpanded: [{
|
|
85
84
|
type: Input
|
|
86
85
|
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2NoZWR1bGVyL3NyYy9jb21wb25lbnRzL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci9yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zY2hlZHVsZXIvc3JjL2NvbXBvbmVudHMvcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJaEUsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBUW5FLE1BQU0sT0FBTywrQkFBK0I7SUFFMUMsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQW9DbEMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBa0MsSUFBSSxDQUFDLENBQUM7UUFDOUUsZUFBVSxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUNoRSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBdENoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0I7YUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxl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YyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFJlc291cmNlR3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlc291cmNlT3JHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVzb3VyY2Utb3ItZ3JvdXAnO1xuaW1wb3J0IHsgU2NoZWR1bGVyU3RhbXBXaXRoU2xvdHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjaGVkdWxlci1zdGFtcC13aXRoLXNsb3RzJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuc2NzcyddLFxuICBcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VHcm91cFByZXNlbnRlckNvbXBvbmVudCB7XG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7XG4gICAgdGhpcy5kYXRhJCA9IHRoaXMucmVzb3VyY2VPckdyb3VwJFxuICAgICAgLnBpcGUobWFwKChyZXNvdXJjZU9yR3JvdXApID0+IHtcbiAgICAgICAgaWYgKCFyZXNvdXJjZU9yR3JvdXApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmICgnY2hpbGRyZW4nIGluIHJlc291cmNlT3JHcm91cCkge1xuICAgICAgICAgIHJldHVybiA8UmVzb3VyY2VPckdyb3VwPntcbiAgICAgICAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VPckdyb3VwXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gPFJlc291cmNlT3JHcm91cD57XG4gICAgICAgICAgICByZXNvdXJjZTogcmVzb3VyY2VPckdyb3VwLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cDogbnVsbFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pKVxuICAgICAgLnBpcGUoZmlsdGVyKChyZXNvdXJjZU9yR3JvdXApID0+ICEhcmVzb3VyY2VPckdyb3VwKSlcbiAgICAgIC5waXBlKG1hcCgocmVzb3VyY2VPckdyb3VwKSA9PiA8UmVzb3VyY2VPckdyb3VwPnJlc291cmNlT3JHcm91cCkpO1xuXG4gICAgdGhpcy5jb2xTcGFuJCA9IHRoaXMudGltZVNsb3RzJFxuICAgICAgLnBpcGUobWFwKHRpbWVTbG90cyA9PiB0aW1lU2xvdHNcbiAgICAgICAgLm1hcCh0aW1lc2xvdCA9PiB0aW1lc2xvdC5zbG90cy5sZW5ndGgpXG4gICAgICAgIC5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICsgY3VycmVudCwgMClcbiAgICAgICkpO1xuXG4gICAgaW1wb3J0KCdib290c3RyYXAtaWNvbnMvaWNvbnMvY2hldnJvbi1kb3duLnN2ZycpLnRoZW4oKGljb24pID0+IHtcbiAgICAgIHRoaXMuY2hldnJvbkRvd24gPSBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaWNvbi5kZWZhdWx0KTtcbiAgICB9KTtcbiAgICBpbXBvcnQoJ2Jvb3RzdHJhcC1pY29ucy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZycpLnRoZW4oKGljb24pID0+IHtcbiAgICAgIHRoaXMuY2hldnJvblJpZ2h0ID0gc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb24uZGVmYXVsdCk7XG4gICAgfSk7XG4gIH1cblxuICBjaGV2cm9uRG93bj86IFNhZmVIdG1sO1xuICBjaGV2cm9uUmlnaHQ/OiBTYWZlSHRtbDtcbiAgQElucHV0KCkgbGV2ZWwgPSAwO1xuICByZXNvdXJjZU9yR3JvdXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZXNvdXJjZSB8IFJlc291cmNlR3JvdXAgfCBudWxsPihudWxsKTtcbiAgdGltZVNsb3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NoZWR1bGVyU3RhbXBXaXRoU2xvdHNbXT4oW10pO1xuICBpc0V4cGFuZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBkYXRhJDogT2JzZXJ2YWJsZTxSZXNvdXJjZU9yR3JvdXA+O1xuICBjb2xTcGFuJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIC8vI3JlZ2lvbiByZXNvdXJjZU9yR3JvdXBcbiAgcHVibGljIGdldCByZXNvdXJjZU9yR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VPckdyb3VwJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHJlc291cmNlR3JvdXAodmFsdWU6IFJlc291cmNlIHwgUmVzb3VyY2VHcm91cCB8IG51bGwpIHtcbiAgICB0aGlzLnJlc291cmNlT3JHcm91cCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIHRpbWVTbG90c1xuICBwdWJsaWMgZ2V0IHRpbWVTbG90cygpIHtcbiAgICByZXR1cm4gdGhpcy50aW1lU2xvdHMkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdGltZVNsb3RzKHZhbHVlOiBTY2hlZHVsZXJTdGFtcFdpdGhTbG90c1tdKSB7XG4gICAgdGhpcy50aW1lU2xvdHMkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBpc0V4cGFuZGVkXG4gIHB1YmxpYyBnZXQgaXNFeHBhbmRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0V4cGFuZGVkJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGlzRXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHRvZ2dsZUV4cGFuZGVkKCkge1xuICAgIHRoaXMuaXNFeHBhbmRlZCQubmV4dCghdGhpcy5pc0V4cGFuZGVkJC52YWx1ZSk7XG4gIH1cblxufVxuIiwiQGlmIChkYXRhJCB8IGFzeW5jOyBhcyBkYXRhKSB7XG5cbiAgICA8IS0tIERhdGEgaXMgYSByZXNvdXJjZSBncm91cCAtLT5cbiAgICBAaWYgKGRhdGEucmVzb3VyY2VHcm91cCkge1xuICAgICAgICA8IS0tIEhlYWRlciAtLT5cbiAgICAgICAgQGlmICh0aW1lU2xvdHMkIHwgYXN5bmM7IGFzIHRpbWVTbG90cykge1xuICAgICAgICAgICAgPHRyIGNsYXNzPVwicC0wIGN1cnNvci1wb2ludGVyXCIgW3RpdGxlXT1cImRhdGEucmVzb3VyY2VHcm91cC5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIEBpZiAoY29sU3BhbiQgfCBhc3luYzsgYXMgY29sc3Bhbikge1xuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwLTIgY3Vyc29yLXBvaW50ZXJcIiBbY29sU3Bhbl09XCJjb2xzcGFuICsgMVwiIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtMiBhbGlnbi1taWRkbGUgcG9zaXRpb24tc3RpY2t5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc0V4cGFuZGVkJCB8IGFzeW5jKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY2hldnJvbkRvd25cIiBbc3R5bGUucGFkZGluZy1sZWZ0LnB4XT1cImxldmVsICogMjBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY2hldnJvblJpZ2h0XCIgW3N0eWxlLnBhZGRpbmctbGVmdC5weF09XCJsZXZlbCAqIDIwXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLnJlc291cmNlR3JvdXAuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBTdWJncm91cHMgb3IgcmVzb3VyY2VzIC0tPlxuICAgICAgICBAaWYgKGlzRXhwYW5kZWQkIHwgYXN5bmMpIHtcbiAgICAgICAgICAgIEBpZiAodGltZVNsb3RzJCB8IGFzeW5jOyBhcyB0aW1lU2xvdHMpIHtcbiAgICAgICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBkYXRhLnJlc291cmNlR3JvdXAuY2hpbGRyZW47IHRyYWNrIGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxicy1yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIgW3Jlc291cmNlR3JvdXBdPVwiY2hpbGRcIiBbdGltZVNsb3RzXT1cInRpbWVTbG90c1wiIFtsZXZlbF09XCJsZXZlbCArIDFcIj48L2JzLXJlc291cmNlLWdyb3VwLXByZXNlbnRlcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA8IS0tIERhdGEgaXMgYSByZXNvdXJjZSAtLT5cbiAgICBAaWYgKGRhdGEucmVzb3VyY2UpIHtcbiAgICAgICAgPHRyIGNsYXNzPVwicC0wIGJvcmRlcmVkXCIgW3RpdGxlXT1cImRhdGEucmVzb3VyY2UuZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInAtMCBiZy13aGl0ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTJcIj57eyBkYXRhLnJlc291cmNlLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgQGZvciAoc2xvdHMgb2YgKHRpbWVTbG90cyQgfCBhc3luYyk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2Ygc2xvdHMuc2xvdHM7IHRyYWNrIHNsb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYmctd2hpdGUgYm9yZGVyLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0ge3sgc2xvdC5zdGFydCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tOnNzJyB9fSAtLT5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgfVxufSJdfQ==
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2NoZWR1bGVyL3NyYy9jb21wb25lbnRzL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci9yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zY2hlZHVsZXIvc3JjL2NvbXBvbmVudHMvcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7QUFZaEUsTUFBTSxPQUFPLCtCQUErQjtJQUUxQyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBb0NsQyxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFrQyxJQUFJLENBQUMsQ0FBQztRQUM5RSxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQTRCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUF0Q2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjthQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNyQixPQUFPLElBQUksQ0FBQztZQUNkLENB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cnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNvdXJjZSwgUmVzb3VyY2VHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUmVzb3VyY2VPckdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXNvdXJjZS1vci1ncm91cCc7XG5pbXBvcnQgeyBTY2hlZHVsZXJTdGFtcFdpdGhTbG90cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NoZWR1bGVyLXN0YW1wLXdpdGgtc2xvdHMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUdyb3VwUHJlc2VudGVyQ29tcG9uZW50IHtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICB0aGlzLmRhdGEkID0gdGhpcy5yZXNvdXJjZU9yR3JvdXAkXG4gICAgICAucGlwZShtYXAoKHJlc291cmNlT3JHcm91cCkgPT4ge1xuICAgICAgICBpZiAoIXJlc291cmNlT3JHcm91cCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKCdjaGlsZHJlbicgaW4gcmVzb3VyY2VPckdyb3VwKSB7XG4gICAgICAgICAgcmV0dXJuIDxSZXNvdXJjZU9yR3JvdXA+e1xuICAgICAgICAgICAgcmVzb3VyY2U6IG51bGwsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZU9yR3JvdXBcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiA8UmVzb3VyY2VPckdyb3VwPntcbiAgICAgICAgICAgIHJlc291cmNlOiByZXNvdXJjZU9yR3JvdXAsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwOiBudWxsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSkpXG4gICAgICAucGlwZShmaWx0ZXIoKHJlc291cmNlT3JHcm91cCkgPT4gISFyZXNvdXJjZU9yR3JvdXApKVxuICAgICAgLnBpcGUobWFwKChyZXNvdXJjZU9yR3JvdXApID0+IDxSZXNvdXJjZU9yR3JvdXA+cmVzb3VyY2VPckdyb3VwKSk7XG5cbiAgICB0aGlzLmNvbFNwYW4kID0gdGhpcy50aW1lU2xvdHMkXG4gICAgICAucGlwZShtYXAodGltZVNsb3RzID0+IHRpbWVTbG90c1xuICAgICAgICAubWFwKHRpbWVzbG90ID0+IHRpbWVzbG90LnNsb3RzLmxlbmd0aClcbiAgICAgICAgLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKyBjdXJyZW50LCAwKVxuICAgICAgKSk7XG5cbiAgICBpbXBvcnQoJ2Jvb3RzdHJhcC1pY29ucy9pY29ucy9jaGV2cm9uLWRvd24uc3ZnJykudGhlbigoaWNvbikgPT4ge1xuICAgICAgdGhpcy5jaGV2cm9uRG93biA9IHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChpY29uLmRlZmF1bHQpO1xuICAgIH0pO1xuICAgIGltcG9ydCgnYm9vdHN0cmFwLWljb25zL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnJykudGhlbigoaWNvbikgPT4ge1xuICAgICAgdGhpcy5jaGV2cm9uUmlnaHQgPSBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaWNvbi5kZWZhdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZXZyb25Eb3duPzogU2FmZUh0bWw7XG4gIGNoZXZyb25SaWdodD86IFNhZmVIdG1sO1xuICBASW5wdXQoKSBsZXZlbCA9IDA7XG4gIHJlc291cmNlT3JHcm91cCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlc291cmNlIHwgUmVzb3VyY2VHcm91cCB8IG51bGw+KG51bGwpO1xuICB0aW1lU2xvdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY2hlZHVsZXJTdGFtcFdpdGhTbG90c1tdPihbXSk7XG4gIGlzRXhwYW5kZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGRhdGEkOiBPYnNlcnZhYmxlPFJlc291cmNlT3JHcm91cD47XG4gIGNvbFNwYW4kOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgLy8jcmVnaW9uIHJlc291cmNlT3JHcm91cFxuICBwdWJsaWMgZ2V0IHJlc291cmNlT3JHcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZU9yR3JvdXAkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgcmVzb3VyY2VHcm91cCh2YWx1ZTogUmVzb3VyY2UgfCBSZXNvdXJjZUdyb3VwIHwgbnVsbCkge1xuICAgIHRoaXMucmVzb3VyY2VPckdyb3VwJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gdGltZVNsb3RzXG4gIHB1YmxpYyBnZXQgdGltZVNsb3RzKCkge1xuICAgIHJldHVybiB0aGlzLnRpbWVTbG90cyQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCB0aW1lU2xvdHModmFsdWU6IFNjaGVkdWxlclN0YW1wV2l0aFNsb3RzW10pIHtcbiAgICB0aGlzLnRpbWVTbG90cyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGlzRXhwYW5kZWRcbiAgcHVibGljIGdldCBpc0V4cGFuZGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzRXhwYW5kZWQkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgaXNFeHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNFeHBhbmRlZCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgdGhpcy5pc0V4cGFuZGVkJC5uZXh0KCF0aGlzLmlzRXhwYW5kZWQkLnZhbHVlKTtcbiAgfVxuXG59XG4iLCJAaWYgKGRhdGEkIHwgYXN5bmM7IGFzIGRhdGEpIHtcblxuICAgIDwhLS0gRGF0YSBpcyBhIHJlc291cmNlIGdyb3VwIC0tPlxuICAgIEBpZiAoZGF0YS5yZXNvdXJjZUdyb3VwKSB7XG4gICAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgICBAaWYgKHRpbWVTbG90cyQgfCBhc3luYzsgYXMgdGltZVNsb3RzKSB7XG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJwLTAgY3Vyc29yLXBvaW50ZXJcIiBbdGl0bGVdPVwiZGF0YS5yZXNvdXJjZUdyb3VwLmRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgQGlmIChjb2xTcGFuJCB8IGFzeW5jOyBhcyBjb2xzcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInAtMiBjdXJzb3ItcG9pbnRlclwiIFtjb2xTcGFuXT1cImNvbHNwYW4gKyAxXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC0yIGFsaWduLW1pZGRsZSBwb3NpdGlvbi1zdGlja3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGlzRXhwYW5kZWQkIHwgYXN5bmMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJjaGV2cm9uRG93blwiIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwibGV2ZWwgKiAyMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJjaGV2cm9uUmlnaHRcIiBbc3R5bGUucGFkZGluZy1sZWZ0LnB4XT1cImxldmVsICogMjBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEucmVzb3VyY2VHcm91cC5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFN1Ymdyb3VwcyBvciByZXNvdXJjZXMgLS0+XG4gICAgICAgIEBpZiAoaXNFeHBhbmRlZCQgfCBhc3luYykge1xuICAgICAgICAgICAgQGlmICh0aW1lU2xvdHMkIHwgYXN5bmM7IGFzIHRpbWVTbG90cykge1xuICAgICAgICAgICAgICAgIEBmb3IgKGNoaWxkIG9mIGRhdGEucmVzb3VyY2VHcm91cC5jaGlsZHJlbjsgdHJhY2sgY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJzLXJlc291cmNlLWdyb3VwLXByZXNlbnRlciBbcmVzb3VyY2VHcm91cF09XCJjaGlsZFwiIFt0aW1lU2xvdHNdPVwidGltZVNsb3RzXCIgW2xldmVsXT1cImxldmVsICsgMVwiPjwvYnMtcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIDwhLS0gRGF0YSBpcyBhIHJlc291cmNlIC0tPlxuICAgIEBpZiAoZGF0YS5yZXNvdXJjZSkge1xuICAgICAgICA8dHIgY2xhc3M9XCJwLTAgYm9yZGVyZWRcIiBbdGl0bGVdPVwiZGF0YS5yZXNvdXJjZS5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwicC0wIGJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiPnt7IGRhdGEucmVzb3VyY2UuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICBAZm9yIChzbG90cyBvZiAodGltZVNsb3RzJCB8IGFzeW5jKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGZvciAoc2xvdCBvZiBzbG90cy5zbG90czsgdHJhY2sgc2xvdCkge1xuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJiZy13aGl0ZSBib3JkZXItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7eyBzbG90LnN0YXJ0IHwgZGF0ZTogJ2RkL01NL3l5eXkgSEg6bW06c3MnIH19IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICB9XG59Il19
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/// <reference types="../../types" />
|
|
2
|
-
import { Component, EventEmitter, HostListener, Input, Output,
|
|
2
|
+
import { Component, EventEmitter, HostListener, Input, Output, ViewChildren } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { BehaviorSubject, combineLatest, filter, map, take } from 'rxjs';
|
|
5
|
-
import { BsCalendarMonthService } from '@mintplayer/ng-bootstrap/calendar-month';
|
|
6
5
|
import { ESchedulerMode } from '../../enums/scheduler-mode';
|
|
7
6
|
import { EDragOperation } from '../../enums/drag-operation';
|
|
8
|
-
import { BsTimelineService } from '../../services/timeline/timeline.service';
|
|
9
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
7
|
import * as i0 from "@angular/core";
|
|
11
8
|
import * as i1 from "@angular/platform-browser";
|
|
12
9
|
import * as i2 from "@mintplayer/ng-bootstrap/calendar-month";
|
|
@@ -536,4 +533,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
536
533
|
type: HostListener,
|
|
537
534
|
args: ['document:mouseup', ['$event']]
|
|
538
535
|
}] } });
|
|
539
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2NoZWR1bGVyL3NyYy9jb21wb25lbnRzL3NjaGVkdWxlci9zY2hlZHVsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zY2hlZHVsZXIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGVyL3NjaGVkdWxlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBTTdFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7OztBQU9uRSxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLFNBQXVCLEVBQVUsb0JBQTRDLEVBQVUsZUFBa0M7UUFBekgsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFVLHlCQUFvQixHQUFwQixv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Z0NBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNoQyxDQUFDO3dCQUNILENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUM7b0JBQUMsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0EvZ0JVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG1oQkMzQmpDLDJrU0FxSUM7OzJGRDFHWSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsY0FBYztzSkEwTEYsZ0JBQWdCO3NCQUFyQyxZQUFZO3VCQUFDLE1BQU07Z0JBd0JILFVBQVU7c0JBQTFCLE1BQU07Z0JBSWEsSUFBSTtzQkFBdkIsS0FBSztnQkFlVyxpQkFBaUI7c0JBQWpDLE1BQU07Z0JBSWEsV0FBVztzQkFBOUIsS0FBSztnQkFLVyxxQkFBcUI7c0JBQXJDLE1BQU07Z0JBSWEsZUFBZTtzQkFBbEMsS0FBSztnQkFLVSxjQUFjO3NCQUE3QixLQUFLO2dCQU1jLFNBQVM7c0JBQTVCLEtBQUs7Z0JBZ0pOLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEyRjlDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwiLi4vLi4vdHlwZXNcIiAvPlxuXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNDYWxlbmRhck1vbnRoU2VydmljZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC9jYWxlbmRhci1tb250aCc7XG5pbXBvcnQgeyBFU2NoZWR1bGVyTW9kZSB9IGZyb20gJy4uLy4uL2VudW1zL3NjaGVkdWxlci1tb2RlJztcbmltcG9ydCB7IEVEcmFnT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvZHJhZy1vcGVyYXRpb24nO1xuaW1wb3J0IHsgRHJhZ09wZXJhdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZHJhZy1vcGVyYXRpb24nO1xuaW1wb3J0IHsgUHJldmlld0V2ZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wcmV2aWV3LWV2ZW50JztcbmltcG9ydCB7IFNjaGVkdWxlckV2ZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlZHVsZXItZXZlbnQnO1xuaW1wb3J0IHsgU2NoZWR1bGVyRXZlbnRQYXJ0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlZHVsZXItZXZlbnQtcGFydCc7XG5pbXBvcnQgeyBTY2hlZHVsZXJFdmVudFdpdGhQYXJ0cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2NoZWR1bGVyLWV2ZW50LXdpdGgtcGFydHMnO1xuaW1wb3J0IHsgVGltZVNsb3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RpbWUtc2xvdCc7XG5pbXBvcnQgeyBCc1RpbWVsaW5lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVsaW5lL3RpbWVsaW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVzb3VyY2UtZ3JvdXAnO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Jlc291cmNlJztcbmltcG9ydCB7IFNjaGVkdWxlclN0YW1wV2l0aFNsb3RzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlZHVsZXItc3RhbXAtd2l0aC1zbG90cyc7XG5pbXBvcnQgeyBXZWVrT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2Vlay1vcHRpb25zJztcbmltcG9ydCB7IFRpbWVsaW5lT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGltZWxpbmUtb3B0aW9ucyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXNjaGVkdWxlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2hlZHVsZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNTY2hlZHVsZXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLCBwcml2YXRlIGNhbGVuZGFyTW9udGhTZXJ2aWNlOiBCc0NhbGVuZGFyTW9udGhTZXJ2aWNlLCBwcml2YXRlIHRpbWVsaW5lU2VydmljZTogQnNUaW1lbGluZVNlcnZpY2UpIHtcbiAgICBjb25zdCBtb25kYXkgPSB0aGlzLmNhbGVuZGFyTW9udGhTZXJ2aWNlLmdldE1vbmRheUJlZm9yZShuZXcgRGF0ZSgpKTtcbiAgICB0aGlzLmN1cnJlbnRXZWVrT3JNb250aCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGU+KG1vbmRheSk7XG5cbiAgICB0aGlzLnNob3duRGF5cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRXZWVrT3JNb250aCQsIHRoaXMubW9kZSRdKVxuICAgICAgLnBpcGUobWFwKChbY3VycmVudERheSwgbW9kZV0pID0+IHtcbiAgICAgICAgY3VycmVudERheS5zZXRIb3VycygwKTtcbiAgICAgICAgY3VycmVudERheS5zZXRNaW51dGVzKDApO1xuICAgICAgICBjdXJyZW50RGF5LnNldFNlY29uZHMoMCk7XG4gICAgICAgIGN1cnJlbnREYXkuc2V0TWlsbGlzZWNvbmRzKDApO1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICBjYXNlIEVTY2hlZHVsZXJNb2RlLndlZWs6IHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKEFycmF5KDcpLmtleXMoKSkubWFwKCh4KSA9PiB0aGlzLmFkZERheXMoY3VycmVudERheSwgeCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEVTY2hlZHVsZXJNb2RlLnRpbWVsaW5lOiB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdERheSA9IG5ldyBEYXRlKGN1cnJlbnREYXkuZ2V0RnVsbFllYXIoKSwgY3VycmVudERheS5nZXRNb250aCgpLCAxKTtcbiAgICAgICAgICAgIGNvbnN0IGRheXNPZk1vbnRoID0gbmV3IERhdGUoY3VycmVudERheS5nZXRGdWxsWWVhcigpLCBjdXJyZW50RGF5LmdldE1vbnRoKCkgKyAxLCAwKS5nZXREYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShBcnJheShkYXlzT2ZNb250aCkua2V5cygpKS5tYXAoKHgpID0+IHRoaXMuYWRkRGF5cyhmaXJzdERheSwgeCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5kYXlzT2ZXZWVrV2l0aFRpbWVzdGFtcHMkID0gdGhpcy5zaG93bkRheXMkXG4gICAgICAucGlwZShtYXAoKHNob3duRGF5cykgPT4gKHsgc3RhcnQ6IHNob3duRGF5c1swXS5nZXRUaW1lKCksIGVuZDogc2hvd25EYXlzW3Nob3duRGF5cy5sZW5ndGggLSAxXS5nZXRUaW1lKCkgKyAyNCAqIDYwICogNjAgKiAxMDAwIH0pKSk7XG4gICAgXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5yZXNvdXJjZXMkXG4gICAgICAucGlwZShtYXAoKHJlc291cmNlc09yR3JvdXBzKSA9PiByZXNvdXJjZXNPckdyb3Vwcy5tYXAocmVzT3JHcm91cCA9PiB0aGlzLmdldFJlc291cmNlc0Zvckdyb3VwKHJlc09yR3JvdXApKSkpXG4gICAgICAucGlwZShtYXAoamFnZ2VkUmVzb3VyY2VzID0+IGphZ2dlZFJlc291cmNlcy5yZWR1Y2UoKGZsYXQsIHRvRmxhdHRlbikgPT4gZmxhdC5jb25jYXQodG9GbGF0dGVuKSwgW10pKSlcbiAgICAgIC5waXBlKG1hcChyZXNvdXJjZXMgPT4gcmVzb3VyY2VzLm1hcChyZXMgPT4gcmVzLmV2ZW50cykpKVxuICAgICAgLnBpcGUobWFwKGphZ2dlZEV2ZW50cyA9PiBqYWdnZWRFdmVudHMucmVkdWNlKChmbGF0LCB0b0ZsYXR0ZW4pID0+IGZsYXQuY29uY2F0KHRvRmxhdHRlbiksIFtdKSkpO1xuXG4gICAgICAvLyBncm91cHMucmVkdWNlKChmbGF0LCB0b0ZsYXR0ZW4pID0+IGZsYXQuY29uY2F0KHRvRmxhdHRlbi5jaGlsZHJlbiksIFtdKVxuICAgIHRoaXMuZXZlbnRQYXJ0cyQgPSB0aGlzLmV2ZW50cyQucGlwZShcbiAgICAgIG1hcCgoZXZlbnRzKSA9PiAgZXZlbnRzLm1hcCgoZXYpID0+IHRoaXMudGltZWxpbmVTZXJ2aWNlLnNwbGl0SW5QYXJ0cyhldikpKVxuICAgICk7XG5cbiAgICB0aGlzLmV2ZW50UGFydHNGb3JUaGlzV2VlayQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZGF5c09mV2Vla1dpdGhUaW1lc3RhbXBzJCxcbiAgICAgIHRoaXMuZXZlbnRQYXJ0cyRcbiAgICAgICAgLnBpcGUobWFwKGV2ZW50UGFydHMgPT4gZXZlbnRQYXJ0cy5tYXAoZXZwID0+IGV2cC5wYXJ0cykpKVxuICAgICAgICAucGlwZShtYXAoamFnZ2VkUGFydHMgPT4gIGphZ2dlZFBhcnRzLnJlZHVjZSgoZmxhdCwgdG9GbGF0dGVuKSA9PiBmbGF0LmNvbmNhdCh0b0ZsYXR0ZW4pLCBbXSkpKVxuICAgICAgXSlcbiAgICAgIC5waXBlKG1hcCgoW3N0YXJ0QW5kRW5kLCBldmVudFBhcnRzXSkgPT4ge1xuICAgICAgICByZXR1cm4gZXZlbnRQYXJ0cy5maWx0ZXIoZXZlbnRQYXJ0ID0+IHtcbiAgICAgICAgICByZXR1cm4gISgoZXZlbnRQYXJ0LmVuZC5nZXRUaW1lKCkgPD0gc3RhcnRBbmRFbmQuc3RhcnQpIHx8IChldmVudFBhcnQuc3RhcnQuZ2V0VGltZSgpID49IHN0YXJ0QW5kRW5kLmVuZCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pKTtcblxuICAgIHRoaXMucHJldmlld0V2ZW50UGFydHMkID0gdGhpcy5wcmV2aWV3RXZlbnQkLnBpcGUoXG4gICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRpbWVsaW5lU2VydmljZS5zcGxpdEluUGFydHMoZXZlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnByZXZpZXdFdmVudFBhcnRzRm9yVGhpc1dlZWskID0gY29tYmluZUxhdGVzdChbdGhpcy5kYXlzT2ZXZWVrV2l0aFRpbWVzdGFtcHMkLCB0aGlzLnByZXZpZXdFdmVudFBhcnRzJF0pXG4gICAgICAucGlwZShtYXAoKFtzdGFydEFuZEVuZCwgcHJldmlld0V2ZW50UGFydHNdKSA9PiB7XG4gICAgICAgIGlmIChwcmV2aWV3RXZlbnRQYXJ0cykge1xuICAgICAgICAgIHJldHVybiBwcmV2aWV3RXZlbnRQYXJ0cy5wYXJ0cy5maWx0ZXIoZXZlbnRQYXJ0ID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhKChldmVudFBhcnQuZW5kLmdldFRpbWUoKSA8PSBzdGFydEFuZEVuZC5zdGFydCkgfHwgKGV2ZW50UGFydC5zdGFydC5nZXRUaW1lKCkgPj0gc3RhcnRBbmRFbmQuZW5kKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICB0aGlzLnRpbWVsaW5lZEV2ZW50UGFydHNGb3JUaGlzV2VlayQgPSB0aGlzLmV2ZW50UGFydHNGb3JUaGlzV2VlayRcbiAgICAgIC5waXBlKG1hcChldmVudFBhcnRzID0+IHtcbiAgICAgICAgLy8gV2UnbGwgb25seSB1c2UgdGhlIGV2ZW50cyBmb3IgdGhpcyB3ZWVrXG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IGV2ZW50UGFydHMubWFwKGVwID0+IGVwLmV2ZW50KVxuICAgICAgICAgIC5maWx0ZXIoKGUsIGksIGxpc3QpID0+IGxpc3QuaW5kZXhPZihlKSA9PT0gaSlcbiAgICAgICAgICAuZmlsdGVyKChlKSA9PiAhIWUpXG4gICAgICAgICAgLm1hcCgoZSkgPT4gPFNjaGVkdWxlckV2ZW50PmUpO1xuICAgICAgICBjb25zdCB0aW1lbGluZSA9IHRoaXMudGltZWxpbmVTZXJ2aWNlLmdldFRpbWVsaW5lKGV2ZW50cyk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGltZWxpbmUubWFwKHRyYWNrID0+IHRyYWNrLmV2ZW50cy5tYXAoZXYgPT4gKHsgZXZlbnQ6IGV2LCBpbmRleDogdHJhY2suaW5kZXggfSkpKVxuICAgICAgICAgIC5yZWR1Y2UoKGZsYXQsIHRvRmxhdHRlbikgPT4gZmxhdC5jb25jYXQodG9GbGF0dGVuKSwgW10pXG4gICAgICAgICAgLm1hcCgoZXZpKSA9PiBldmVudFBhcnRzLmZpbHRlcihwID0+IHAuZXZlbnQgPT09IGV2aS5ldmVudCkubWFwKHAgPT4gKHsgcGFydDogcCwgaW5kZXg6IGV2aS5pbmRleCB9KSkpXG4gICAgICAgICAgLnJlZHVjZSgoZmxhdCwgdG9GbGF0dGVuKSA9PiBmbGF0LmNvbmNhdCh0b0ZsYXR0ZW4pLCBbXSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0b3RhbDogdGltZWxpbmUubGVuZ3RoLFxuICAgICAgICAgIHBhcnRzOiByZXN1bHRcbiAgICAgICAgfTtcbiAgICAgIH0pKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubW9kZSQsIHRoaXMuc2hvd25EYXlzJCwgdGhpcy50aW1lU2xvdER1cmF0aW9uJF0pXG4gICAgICAucGlwZShmaWx0ZXIoKFttb2RlLCBzaG93bkRheXMsIGR1cmF0aW9uXSkgPT4gbW9kZSAhPT0gbnVsbCkpXG4gICAgICAucGlwZShtYXAoKFttb2RlLCBzaG93bkRheXMsIGR1cmF0aW9uXSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICBjYXNlIEVTY2hlZHVsZXJNb2RlLndlZWs6IHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVTbG90c1BlckRheSA9IE1hdGguZmxvb3IoKDYwICogNjAgKiAyNCkgLyBkdXJhdGlvbik7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShBcnJheSh0aW1lU2xvdHNQZXJEYXkpLmtleXMoKSkubWFwKChpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0aW1lc2xvdEZvck1vbmRheSA9IHRoaXMuY3JlYXRlVGltZXNsb3Qoc2hvd25EYXlzWzBdLCBpbmRleCwgZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAgIHJldHVybiA8U2NoZWR1bGVyU3RhbXBXaXRoU2xvdHM+e1xuICAgICAgICAgICAgICAgIHNsb3RzOiBzaG93bkRheXMubWFwKChkYXkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoZGF5KTtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0LnNldEhvdXJzKHRpbWVzbG90Rm9yTW9uZGF5LnN0YXJ0LmdldEhvdXJzKCkpO1xuICAgICAgICAgICAgICAgICAgc3RhcnQuc2V0TWludXRlcyh0aW1lc2xvdEZvck1vbmRheS5zdGFydC5nZXRNaW51dGVzKCkpO1xuICAgICAgICAgICAgICAgICAgc3RhcnQuc2V0U2Vjb25kcyh0aW1lc2xvdEZvck1vbmRheS5zdGFydC5nZXRTZWNvbmRzKCkpO1xuICAgICAgICAgICAgICAgICAgc3RhcnQuc2V0TWlsbGlzZWNvbmRzKHRpbWVzbG90Rm9yTW9uZGF5LnN0YXJ0LmdldE1pbGxpc2Vjb25kcygpKTtcbiAgICAgIFxuICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gbmV3IERhdGUoZGF5KTtcbiAgICAgICAgICAgICAgICAgIGVuZC5zZXRIb3Vycyh0aW1lc2xvdEZvck1vbmRheS5lbmQuZ2V0SG91cnMoKSk7XG4gICAgICAgICAgICAgICAgICBlbmQuc2V0TWludXRlcyh0aW1lc2xvdEZvck1vbmRheS5lbmQuZ2V0TWludXRlcygpKTtcbiAgICAgICAgICAgICAgICAgIGVuZC5zZXRTZWNvbmRzKHRpbWVzbG90Rm9yTW9uZGF5LmVuZC5nZXRTZWNvbmRzKCkpO1xuICAgICAgICAgICAgICAgICAgZW5kLnNldE1pbGxpc2Vjb25kcyh0aW1lc2xvdEZvck1vbmRheS5lbmQuZ2V0TWlsbGlzZWNvbmRzKCkpO1xuICAgICAgICAgICAgICAgICAgZW5kLnNldERhdGUoZW5kLmdldERhdGUoKSArIHRpbWVzbG90Rm9yTW9uZGF5LmVuZC5nZXREYXRlKCkgLSB0aW1lc2xvdEZvck1vbmRheS5zdGFydC5nZXREYXRlKCkpO1xuICAgICAgXG4gICAgICAgICAgICAgICAgICByZXR1cm4gPFRpbWVTbG90Pnsgc3RhcnQsIGVuZCB9O1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YW1wOiB0aW1lc2xvdEZvck1vbmRheS5zdGFydFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgRVNjaGVkdWxlck1vZGUudGltZWxpbmU6IHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsVGltZXNsb3RzID0gKDI0ICogNjAgKiA2MCkgLyBkdXJhdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBzaG93bkRheXMubWFwKChkYXkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIDxTY2hlZHVsZXJTdGFtcFdpdGhTbG90cz57XG4gICAgICAgICAgICAgICAgc2xvdHM6IEFycmF5LmZyb20oQXJyYXkodG90YWxUaW1lc2xvdHMpLmtleXMoKSlcbiAgICAgICAgICAgICAgICAgIC5tYXAoKGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRpbWVzbG90KGRheSwgaW5kZXgsIGR1cmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YW1wOiBkYXlcbiAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0aHJvdyAnVW5rbm93biB2YWx1ZSBmb3IgTW9kZTogJyArIG1vZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoKHRpbWVzbG90cykgPT4ge1xuICAgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UncmUgbm90IHVzaW5nIGFuIG9ic2VydmFibGUgaGVyZSwgYnV0IHBlcnNpc3QgdGhlIHRpbWVzbG90cyBpbiBhIEJlaGF2aW9yU3ViamVjdC5cbiAgICAgICAgdGhpcy50aW1lU2xvdHMkLm5leHQodGltZXNsb3RzKTtcbiAgICAgIH0pO1xuICAgIFxuICAgIHRoaXMud2Vla09wdGlvbnMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKHdlZWtPcHRpb25zID0+IHRoaXMud2Vla09wdGlvbnNDaGFuZ2UuZW1pdCh3ZWVrT3B0aW9ucykpO1xuICAgIHRoaXMudGltZWxpbmVPcHRpb25zJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSh0aW1lbGluZU9wdGlvbnMgPT4gdGhpcy50aW1lbGluZU9wdGlvbnNDaGFuZ2UuZW1pdCh0aW1lbGluZU9wdGlvbnMpKTtcblxuICAgIC8vIGNvbWJpbmVMYXRlc3QoW3RoaXMubW9kZSQsIHRoaXMuc2NhbGUkXSlcbiAgICAvLyAgIC5waXBlKGZpbHRlcigoW21vZGUsIHNjYWxlXSkgPT4gbW9kZSA9PT0gRVNjaGVkdWxlck1vZGUudGltZWxpbmUpKVxuXG4gICAgaW1wb3J0KCdib290c3RyYXAtaWNvbnMvaWNvbnMvY2hldnJvbi1sZWZ0LnN2ZycpLnRoZW4oKGljb24pID0+IHtcbiAgICAgIHRoaXMuY2hldnJvbkxlZnQgPSBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaWNvbi5kZWZhdWx0KTtcbiAgICB9KTtcbiAgICBpbXBvcnQoJ2Jvb3RzdHJhcC1pY29ucy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZycpLnRoZW4oKGljb24pID0+IHtcbiAgICAgIHRoaXMuY2hldnJvblJpZ2h0ID0gc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb24uZGVmYXVsdCk7XG4gICAgfSk7XG4gIH1cblxuICBjaGV2cm9uTGVmdD86IFNhZmVIdG1sO1xuICBjaGV2cm9uUmlnaHQ/OiBTYWZlSHRtbDtcbiAgcmVzb3VyY2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8KFJlc291cmNlIHwgUmVzb3VyY2VHcm91cClbXT4oW10pO1xuICBldmVudHMkOiBPYnNlcnZhYmxlPFNjaGVkdWxlckV2ZW50W10+O1xuICBldmVudFBhcnRzJDogT2JzZXJ2YWJsZTxTY2hlZHVsZXJFdmVudFdpdGhQYXJ0c1tdPjtcbiAgZXZlbnRQYXJ0c0ZvclRoaXNXZWVrJDogT2JzZXJ2YWJsZTxTY2hlZHVsZXJFdmVudFBhcnRbXT47XG4gIHRpbWVsaW5lZEV2ZW50UGFydHNGb3JUaGlzV2VlayQ6IE9ic2VydmFibGU8eyB0b3RhbDogbnVtYmVyLCBwYXJ0czogeyBwYXJ0OiBTY2hlZHVsZXJFdmVudFBhcnQsIGluZGV4OiBudW1iZXJ9W10gfT47XG4gIHdlZWtPcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2Vla09wdGlvbnM+KHsgdW5pdEhlaWdodDogMzAgfSk7XG4gIHRpbWVsaW5lT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRpbWVsaW5lT3B0aW9ucz4oeyB1bml0V2lkdGg6IDUwIH0pO1xuICBcbiAgcHJldmlld0V2ZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJldmlld0V2ZW50IHwgbnVsbD4obnVsbCk7XG4gIHByZXZpZXdFdmVudFBhcnRzJDogT2JzZXJ2YWJsZTxTY2hlZHVsZXJFdmVudFdpdGhQYXJ0cyB8IG51bGw+O1xuICBwcmV2aWV3RXZlbnRQYXJ0c0ZvclRoaXNXZWVrJDogT2JzZXJ2YWJsZTxTY2hlZHVsZXJFdmVudFBhcnRbXT47XG4gIFxuICBjdXJyZW50V2Vla09yTW9udGgkOiBCZWhhdmlvclN1YmplY3Q8RGF0ZT47XG4gIHNob3duRGF5cyQ6IE9ic2VydmFibGU8RGF0ZVtdPjtcbiAgZGF5c09mV2Vla1dpdGhUaW1lc3RhbXBzJDogT2JzZXJ2YWJsZTx7c3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXJ9PjtcbiAgdGltZVNsb3REdXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMTgwMCk7XG4gIHRpbWVTbG90cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjaGVkdWxlclN0YW1wV2l0aFNsb3RzW10+KFtdKTtcbiAgbW91c2VTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaG92ZXJlZFRpbWVTbG90JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGltZVNsb3QgfCBudWxsPihudWxsKTtcbiAgaG92ZXJlZEV2ZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NoZWR1bGVyRXZlbnQgfCBudWxsPihudWxsKTtcbiAgcmVzb3VyY2VHcm91cFByZXNlbnRlckNvdW50ZXIgPSAxO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ3Nsb3QnKSB0aW1lU2xvdEVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcblxuICBjcmVhdGVUaW1lc2xvdChkYXRlOiBEYXRlLCBpbmRleDogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyKSB7XG4gICAgY29uc3QgdGltZVNsb3RTdGFydCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIHRpbWVTbG90U3RhcnQuc2V0VGltZSgrdGltZVNsb3RTdGFydC5nZXRUaW1lKCkgKyBpbmRleCAqIGR1cmF0aW9uICogMTAwMCk7XG4gICAgY29uc3QgdGltZVNsb3RFbmQgPSBuZXcgRGF0ZSh0aW1lU2xvdFN0YXJ0KTtcbiAgICB0aW1lU2xvdEVuZC5zZXRUaW1lKCt0aW1lU2xvdEVuZC5nZXRUaW1lKCkgKyBkdXJhdGlvbiAqIDEwMDApO1xuXG4gICAgcmV0dXJuIDxUaW1lU2xvdD57IHN0YXJ0OiB0aW1lU2xvdFN0YXJ0LCBlbmQ6IHRpbWVTbG90RW5kIH07XG4gIH1cblxuICBnZXRSZXNvdXJjZXNGb3JHcm91cChyZXNvdXJjZU9yR3JvdXA6IFJlc291cmNlIHwgUmVzb3VyY2VHcm91cCkgOiBSZXNvdXJjZVtdIHtcbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiByZXNvdXJjZU9yR3JvdXApIHtcbiAgICAgIHJldHVybiByZXNvdXJjZU9yR3JvdXAuY2hpbGRyZW5cbiAgICAgICAgLm1hcCgoY2hpbGQpID0+IHRoaXMuZ2V0UmVzb3VyY2VzRm9yR3JvdXAoY2hpbGQpKVxuICAgICAgICAucmVkdWNlKChmbGF0LCB0b0ZsYXR0ZW4pID0+IGZsYXQuY29uY2F0KHRvRmxhdHRlbiksIFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtyZXNvdXJjZU9yR3JvdXBdO1xuICAgIH1cbiAgfVxuXG4gIC8vI3JlZ2lvbiBNb2RlXG4gIG1vZGVzID0gRVNjaGVkdWxlck1vZGU7XG4gIG1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFU2NoZWR1bGVyTW9kZT4oRVNjaGVkdWxlck1vZGUud2Vlayk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RVNjaGVkdWxlck1vZGU+KCk7XG4gIHB1YmxpYyBnZXQgbW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IG1vZGUodmFsdWU6IEVTY2hlZHVsZXJNb2RlKSB7XG4gICAgdGhpcy5tb2RlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8gLy8jcmVnaW9uIFNjYWxlXG4gIC8vIHNjYWxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NoZWR1bGVyU2NhbGU+KGF2YWlsYWJsZVNjYWxlc1s0XSk7XG4gIC8vIEBPdXRwdXQoKSBwdWJsaWMgc2NhbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNjaGVkdWxlclNjYWxlPigpO1xuICAvLyBwdWJsaWMgZ2V0IHNjYWxlKCkge1xuICAvLyAgIHJldHVybiB0aGlzLnNjYWxlJC52YWx1ZTtcbiAgLy8gfVxuICAvLyBASW5wdXQoKSBwdWJsaWMgc2V0IHNjYWxlKHZhbHVlOiBTY2hlZHVsZXJTY2FsZSkge1xuICAvLyAgIHRoaXMuc2NhbGUkLm5leHQodmFsdWUpO1xuICAvLyB9XG4gIC8vIC8vI2VuZHJlZ2lvblxuICAvLyNyZWdpb24gV2Vla09wdGlvbnNcbiAgQE91dHB1dCgpIHB1YmxpYyB3ZWVrT3B0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8V2Vla09wdGlvbnM+KCk7XG4gIHB1YmxpYyBnZXQgd2Vla09wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMud2Vla09wdGlvbnMkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2Vla09wdGlvbnModmFsdWU6IFdlZWtPcHRpb25zKSB7XG4gICAgdGhpcy53ZWVrT3B0aW9ucyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBUaW1lbGluZU9wdGlvbnNcbiAgQE91dHB1dCgpIHB1YmxpYyB0aW1lbGluZU9wdGlvbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbWVsaW5lT3B0aW9ucz4oKTtcbiAgcHVibGljIGdldCB0aW1lbGluZU9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudGltZWxpbmVPcHRpb25zJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRpbWVsaW5lT3B0aW9ucyh2YWx1ZTogVGltZWxpbmVPcHRpb25zKSB7XG4gICAgdGhpcy50aW1lbGluZU9wdGlvbnMkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICAvLyNyZWdpb24gbWF4SW5uZXJIZWlnaHRcbiAgQElucHV0KCkgcHVibGljIG1heElubmVySGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBSZXNvdXJjZXNcbiAgcHVibGljIGdldCByZXNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHJlc291cmNlcyh2YWx1ZTogKFJlc291cmNlIHwgUmVzb3VyY2VHcm91cClbXSkge1xuICAgIHRoaXMucmVzb3VyY2VzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBwcml2YXRlIGFkZERheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldERhdGUocmVzdWx0LmdldERhdGUoKSArIGRheXMpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBvblByZXZpb3VzV2Vla09yTW9udGgoKSB7XG4gICAgdGhpcy5vbkNoYW5nZVdlZWtPck1vbnRoKGZhbHNlKTtcbiAgfVxuXG4gIG9uTmV4dFdlZWtPck1vbnRoKCkge1xuICAgIHRoaXMub25DaGFuZ2VXZWVrT3JNb250aCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VXZWVrT3JNb250aChuZXh0OiBib29sZWFuKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jdXJyZW50V2Vla09yTW9udGgkLCB0aGlzLm1vZGUkXSlcbiAgICAgIC5waXBlKG1hcCgoW2N1cnJlbnRXZWVrT3JNb250aCwgbW9kZV0pID0+IHtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgY2FzZSBFU2NoZWR1bGVyTW9kZS53ZWVrOiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGREYXlzKGN1cnJlbnRXZWVrT3JNb250aCwgKG5leHQgPyA3IDogLTcpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBFU2NoZWR1bGVyTW9kZS50aW1lbGluZToge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGN1cnJlbnRXZWVrT3JNb250aC5nZXRGdWxsWWVhcigpLCBjdXJyZW50V2Vla09yTW9udGguZ2V0TW9udGgoKSArIChuZXh0ID8gMSA6IC0xKSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHcpID0+IHRoaXMuY3VycmVudFdlZWtPck1vbnRoJC5uZXh0KHcpKTtcbiAgfVxuXG4gIG9uSG92ZXJFdmVudChldjogU2NoZWR1bGVyRXZlbnQgfCBudWxsKSB7XG4gICAgdGhpcy5ob3ZlcmVkRXZlbnQkLm5leHQoZXYpO1xuICB9XG5cbiAgb25MZWF2ZUV2ZW50KGV2OiBTY2hlZHVsZXJFdmVudCB8IG51bGwpIHtcbiAgICB0aGlzLmhvdmVyZWRFdmVudCQubmV4dChudWxsKTtcbiAgfVxuXG4gIG9wZXJhdGlvbjogRHJhZ09wZXJhdGlvbiB8IG51bGwgPSBudWxsO1xuICBkcmFnU3RhcnRUaW1lc2xvdDogVGltZVNsb3QgfCBudWxsID0gbnVsbDtcbiAgb25DcmVhdGVFdmVudChldjogTW91c2VFdmVudCwgc2xvdDogVGltZVNsb3QpIHtcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMubW91c2VTdGF0ZSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRyYWdTdGFydFRpbWVzbG90ID0gc2xvdDtcbiAgICB0aGlzLm9wZXJhdGlvbiA9IHtcbiAgICAgIG9wZXJhdGlvbjogRURyYWdPcGVyYXRpb24uY3JlYXRlRXZlbnQsXG4gICAgICBldmVudDoge1xuICAgICAgICBzdGFydDogc2xvdC5zdGFydCxcbiAgICAgICAgZW5kOiBzbG90LmVuZCxcbiAgICAgICAgY29sb3I6ICcjRjAwJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUZXN0IGV2ZW50JyxcbiAgICAgIH0sXG4gICAgICBtZXRhOiBudWxsLFxuICAgIH07XG4gICAgdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQoeyBzdGFydDogc2xvdC5zdGFydCwgZW5kOiBzbG90LmVuZCB9KTtcbiAgfVxuXG4gIHJhbmRvbUNvbG9yKCkge1xuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAxMjg7XG4gICAgcmV0dXJuICcjJyArIHRoaXMucmFuZG9tQ2hhbm5lbChicmlnaHRuZXNzKSArIHRoaXMucmFuZG9tQ2hhbm5lbChicmlnaHRuZXNzKSArIHRoaXMucmFuZG9tQ2hhbm5lbChicmlnaHRuZXNzKTtcbiAgfVxuICByYW5kb21DaGFubmVsKGJyaWdodG5lc3M6IG51bWJlcil7XG4gICAgY29uc3QgciA9IDI1NS1icmlnaHRuZXNzO1xuICAgIGNvbnN0IG4gPSAwfCgoTWF0aC5yYW5kb20oKSAqIHIpICsgYnJpZ2h0bmVzcyk7XG4gICAgY29uc3QgcyA9IG4udG9TdHJpbmcoMTYpO1xuICAgIHJldHVybiAocy5sZW5ndGg9PTEpID8gJzAnK3MgOiBzO1xuICB9XG5cbiAgb25TdGFydERyYWdFdmVudChldmVudFBhcnQ6IFNjaGVkdWxlckV2ZW50UGFydCwgZXY6IE1vdXNlRXZlbnQpIHtcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaG92ZXJlZFRpbWVTbG90JC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaG92ZXJlZFRpbWVTbG90KSA9PiB7XG4gICAgICBpZiAoZXZlbnRQYXJ0LmV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QgPSBob3ZlcmVkVGltZVNsb3Q7XG4gICAgICAgIHRoaXMub3BlcmF0aW9uID0ge1xuICAgICAgICAgIG9wZXJhdGlvbjogRURyYWdPcGVyYXRpb24ubW92ZUV2ZW50LFxuICAgICAgICAgIGV2ZW50OiBldmVudFBhcnQuZXZlbnQsXG4gICAgICAgICAgbWV0YTogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQoeyBzdGFydDogZXZlbnRQYXJ0LmV2ZW50LnN0YXJ0LCBlbmQ6IGV2ZW50UGFydC5ldmVudC5lbmQgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblN0YXJ0UmVzaXplRXZlbnQoZXZlbnQ6IFNjaGVkdWxlckV2ZW50IHwgbnVsbCwgcG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHN3aXRjaCAocG9zaXRpb24pIHtcbiAgICAgICAgY2FzZSAndG9wJzoge1xuICAgICAgICAgIHRoaXMub3BlcmF0aW9uID0ge1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBFRHJhZ09wZXJhdGlvbi5yZXNpemVFdmVudCxcbiAgICAgICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgICAgIG1ldGE6IHsgcG9zaXRpb24gfSxcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQoeyBzdGFydDogZXZlbnQuc3RhcnQsIGVuZDogZXZlbnQuZW5kIH0pO1xuICAgICAgICB9IGJyZWFrO1xuICAgICAgICBjYXNlICdib3R0b20nOiB7XG4gICAgICAgICAgdGhpcy5vcGVyYXRpb24gPSB7XG4gICAgICAgICAgICBvcGVyYXRpb246IEVEcmFnT3BlcmF0aW9uLnJlc2l6ZUV2ZW50LFxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgbWV0YTogeyBwb3NpdGlvbiB9LFxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCQubmV4dCh7IHN0YXJ0OiBldmVudC5zdGFydCwgZW5kOiBldmVudC5lbmQgfSk7XG4gICAgICAgIH0gYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIGhvdmVyZWRUaW1lc2xvdCRcbiAgcHJpdmF0ZSBnZXRIb3ZlcmVkVGltZXNsb3QoZXY6IE1vdXNlRXZlbnQsIHRpbWVTbG90czogU2NoZWR1bGVyU3RhbXBXaXRoU2xvdHNbXSkge1xuICAgIGNvbnN0IGhvdmVyZWRTbG90cyA9IHRoaXMudGltZVNsb3RFbGVtZW50cy5maWx0ZXIoKGVsKSA9PiB7XG4gICAgICBjb25zdCByY3QgPSBlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHJjdC5sZWZ0IDw9IGV2LnggJiYgZXYueCA8PSByY3QucmlnaHQgJiYgcmN0LnRvcCA8PSBldi55ICYmIGV2LnkgPD0gcmN0LmJvdHRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghaG92ZXJlZFNsb3RzIHx8IGhvdmVyZWRTbG90cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNsb3RFbGVtZW50ID0gaG92ZXJlZFNsb3RzWzBdLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBzdHJSb3cgPSBzbG90RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcm93Jyk7XG4gICAgaWYgKCFzdHJSb3cpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByb3cgPSBwYXJzZUludChzdHJSb3cpO1xuXG4gICAgY29uc3Qgc3RyQ29sdW1uID0gc2xvdEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWNvbHVtbicpO1xuICAgIGlmICghc3RyQ29sdW1uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY29sdW1uID0gcGFyc2VJbnQoc3RyQ29sdW1uKTtcblxuICAgIGNvbnN0IHNsb3QgPSB0aW1lU2xvdHNbcm93XS5zbG90c1tjb2x1bW5dO1xuICAgIHJldHVybiBzbG90O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZW1vdmUoZXY6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLnRpbWVTbG90cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHRpbWVTbG90cykgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuZ2V0SG92ZXJlZFRpbWVzbG90KGV2LCB0aW1lU2xvdHMpO1xuICAgICAgdGhpcy5ob3ZlcmVkVGltZVNsb3QkLm5leHQoaG92ZXJlZCk7XG5cbiAgICAgIGlmICh0aGlzLm9wZXJhdGlvbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMub3BlcmF0aW9uLm9wZXJhdGlvbikge1xuICAgICAgICAgIGNhc2UgRURyYWdPcGVyYXRpb24uY3JlYXRlRXZlbnQ6IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbi5ldmVudCAmJiB0aGlzLmRyYWdTdGFydFRpbWVzbG90ICYmIGhvdmVyZWQgJiYgKHRoaXMub3BlcmF0aW9uLmV2ZW50LmVuZC5nZXRUaW1lKCkgIT0gaG92ZXJlZC5lbmQuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5kcmFnU3RhcnRUaW1lc2xvdC5zdGFydC5nZXRUaW1lKCkgPT09IGhvdmVyZWQuc3RhcnQuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgLy8gMSBzbG90XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kcmFnU3RhcnRUaW1lc2xvdC5zdGFydC5nZXRUaW1lKCkgPCBob3ZlcmVkLnN0YXJ0LmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgIC8vIERyYWcgZG93blxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0V2ZW50JFxuICAgICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChldikgPT4gISFldiAmJiAhIXRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QpKVxuICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKChldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXYgJiYgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCkge1xuICAgICAgICAgICAgICAgICAgICAgIGV2LnN0YXJ0ID0gdGhpcy5kcmFnU3RhcnRUaW1lc2xvdC5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICBldi5lbmQgPSBob3ZlcmVkLmVuZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXY7XG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldikgPT4gdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQoZXYpKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRyYWdTdGFydFRpbWVzbG90LnN0YXJ0LmdldFRpbWUoKSA+IGhvdmVyZWQuc3RhcnQuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgLy8gRHJhZyB1cFxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0V2ZW50JFxuICAgICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChldikgPT4gISFldiAmJiAhIXRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QpKVxuICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKChldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXYgJiYgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCkge1xuICAgICAgICAgICAgICAgICAgICAgIGV2LnN0YXJ0ID0gaG92ZXJlZC5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICBldi5lbmQgPSB0aGlzLmRyYWdTdGFydFRpbWVzbG90LmVuZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXY7XG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldikgPT4gdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQoZXYpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgICAgY2FzZSBFRHJhZ09wZXJhdGlvbi5tb3ZlRXZlbnQ6IHtcbiAgICAgICAgICAgIGlmIChob3ZlcmVkICYmIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChldikgPT4gISFldiAmJiAhIXRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QpKVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgoZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChldiAmJiB0aGlzLmRyYWdTdGFydFRpbWVzbG90KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9ICA8UHJldmlld0V2ZW50PntcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydDogbmV3IERhdGUoZXYuc3RhcnQuZ2V0VGltZSgpICsgaG92ZXJlZC5zdGFydC5nZXRUaW1lKCkgLSB0aGlzLmRyYWdTdGFydFRpbWVzbG90LnN0YXJ0LmdldFRpbWUoKSksXG4gICAgICAgICAgICAgICAgICAgICAgZW5kOiBuZXcgRGF0ZShldi5lbmQuZ2V0VGltZSgpICsgaG92ZXJlZC5zdGFydC5nZXRUaW1lKCkgLSB0aGlzLmRyYWdTdGFydFRpbWVzbG90LnN0YXJ0LmdldFRpbWUoKSlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QgPSBob3ZlcmVkO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXY7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV2ID0+IHRoaXMucHJldmlld0V2ZW50JC5uZXh0KGV2KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlIEVEcmFnT3BlcmF0aW9uLnJlc2l6ZUV2ZW50OiB7XG4gICAgICAgICAgICBpZiAoaG92ZXJlZCkge1xuICAgICAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCRcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGV2KSA9PiAhIWV2KSlcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKGV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZXYgJiYgdGhpcy5vcGVyYXRpb24gJiYgdGhpcy5vcGVyYXRpb24uZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uLm1ldGEucG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXYuc3RhcnQgPSBob3ZlcmVkLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgIGV2LmVuZCA9IHRoaXMub3BlcmF0aW9uLmV2ZW50LmVuZDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wZXJhdGlvbi5tZXRhLnBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgICAgICAgICAgIGV2LnN0YXJ0ID0gdGhpcy5vcGVyYXRpb24uZXZlbnQuc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgZXYuZW5kID0gaG92ZXJlZC5lbmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBldjtcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLnByZXZpZXdFdmVudCQubmV4dChldikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0pO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnLCBbJyRldmVudCddKVxuICBvbk1vdXNlVXAoZXY6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5vcGVyYXRpb24pIHtcbiAgICAgIHN3aXRjaCAodGhpcy5vcGVyYXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgRURyYWdPcGVyYXRpb24uY3JlYXRlRXZlbnQ6IHtcbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnByZXZpZXdFdmVudCRdKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2aWV3RXZlbnRdKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChwcmV2aWV3RXZlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMkLm5leHQoW1xuICAgICAgICAgICAgICAgICAgLi4udGhpcy5yZXNvdXJjZXMkLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgPFJlc291cmNlPntcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOZXcgcmVzb3VyY2UgZ3JvdXAnLFxuICAgICAgICAgICAgICAgICAgICBldmVudHM6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHByZXZpZXdFdmVudC5zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHByZXZpZXdFdmVudC5lbmQsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoaXMucmFuZG9tQ29sb3IoKSxcbiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldyBldmVudCdcbiAgICAgICAgICAgICAgICAgICAgfV1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCQubmV4dChudWxsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gYnJlYWs7XG4gICAgICAgIGNhc2UgRURyYWdPcGVyYXRpb24ubW92ZUV2ZW50OlxuICAgICAgICBjYXNlIEVEcmFnT3BlcmF0aW9uLnJlc2l6ZUV2ZW50OiB7XG4gICAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIoKGV2KSA9PiAhIWV2KSlcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwcmV2aWV3RXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uICYmIHRoaXMub3BlcmF0aW9uLmV2ZW50ICYmIHByZXZpZXdFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlcmF0aW9uLmV2ZW50LnN0YXJ0ID0gcHJldmlld0V2ZW50LnN0YXJ0O1xuICAgICAgICAgICAgICAgIHRoaXMub3BlcmF0aW9uLmV2ZW50LmVuZCA9IHByZXZpZXdFdmVudC5lbmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVyYXRpb24gPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzJC5uZXh0KHRoaXMucmVzb3VyY2VzJC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQobnVsbCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHN3aXRjaCAobW9kZSQgfCBhc3luYykge1xuICAgIEBjYXNlIChtb2Rlcy53ZWVrKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gdy0xMDAgb3ZlcmZsb3cteS1hdXRvIG1iLTAgd2Vlay1zY2hlZHVsZVwiIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cIm51bGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGNhbGVuZGFyLWxlZnQganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgZmxleC1zdGFydFwiIChjbGljayk9XCJvblByZXZpb3VzV2Vla09yTW9udGgoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY2hldnJvbkxlZnRcIiBjbGFzcz1cInB4LTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgZmxleC1lbmRcIiAoY2xpY2spPVwib25OZXh0V2Vla09yTW9udGgoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY2hldnJvblJpZ2h0XCIgY2xhc3M9XCJweC0wXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgKHNob3duRGF5cyQgfCBhc3luYyk7IHRyYWNrIGRheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIGNhbGVuZGFyLWhlYWQtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1ibG9jayBjb2wtZm9ybS1sYWJlbCB0ZXh0LWNlbnRlciB0ZXh0LW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBkYXkgfCBkYXRlOiAnZGQtTU0nIH19PC9zcGFuPjxzcGFuIGNsYXNzPVwiZC1ub25lIGQtbGctaW5saW5lLWJsb2NrXCI+LXt7IGRheSB8IGRhdGU6ICd5eXl5JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYm9keVwiIFtzdHlsZS5oZWlnaHQucHhdPVwibWF4SW5uZXJIZWlnaHRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHRpbWVTbG90cyQgfCBhc3luYzsgYXMgcm93KSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh3ZWVrT3B0aW9ucyQgfCBhc3luYzsgYXMgd2Vla09wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWVzbG90cyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yICh0aW1lc2xvdHMgb2Ygcm93OyB0cmFjayB0aW1lc2xvdHM7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgcC0wIHRpbWVzbG90XCIgW3N0eWxlLmhlaWdodC5weF09XCJ3ZWVrT3B0aW9ucy51bml0SGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItY2VsbCBjYWxlbmRhci1sZWZ0IGFsaWduLXRvcCBweC0yIHB5LTBcIj57eyB0aW1lc2xvdHMuc2xvdHNbMF0uc3RhcnQgfCBkYXRlOiAnSEg6bW06c3MnIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzbG90IG9mIHRpbWVzbG90cy5zbG90czsgdHJhY2sgc2xvdC5zdGFydDsgbGV0IGogPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItY2VsbCBmbGV4LWdyb3ctMVwiICNzbG90IChtb3VzZWRvd24pPVwib25DcmVhdGVFdmVudCgkZXZlbnQsIHNsb3QpXCIgW2F0dHIuZGF0YS1yb3ddPVwiaVwiIFthdHRyLmRhdGEtY29sdW1uXT1cImpcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBFdmVudHMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0aW1lU2xvdER1cmF0aW9uJCB8IGFzeW5jOyBhcyB0aW1lU2xvdER1cmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodGltZWxpbmVkRXZlbnRQYXJ0c0ZvclRoaXNXZWVrJCB8IGFzeW5jOyBhcyBwYXJ0RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXZlbnRQYXJ0IG9mIHBhcnREYXRhLnBhcnRzOyB0cmFjayBldmVudFBhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQgcC0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCIoZXZlbnRQYXJ0LnBhcnQgfCBic1NlY29uZHNUb2RheU9mZnNldCkgLyB0aW1lU2xvdER1cmF0aW9uICogd2Vla09wdGlvbnMudW5pdEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiKGV2ZW50UGFydC5wYXJ0IHwgYnNTZWNvbmRzVGltZXNwYW4pIC8gdGltZVNsb3REdXJhdGlvbiAqIHdlZWtPcHRpb25zLnVuaXRIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdF09XCInY2FsYyg5MHB4ICsgKCgxMDAlIC0gOTBweCkgLyA3ICogJyArICgoZXZlbnRQYXJ0LnBhcnQgfCBkYXlPZldlZWspIC0gMSkgKyAnKSknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1pbm5lclwiIFtjbGFzcy5ob3Zlcl09XCIoaG92ZXJlZEV2ZW50JCB8IGFzeW5jKSA9PT0gZXZlbnRQYXJ0LnBhcnQuZXZlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cIidjYWxjKDEwMCUgLyAnICsgcGFydERhdGEudG90YWwgKyAnKSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCIoZXZlbnRQYXJ0LnBhcnQgfCBic1NlY29uZHNUaW1lc3BhbikgLyB0aW1lU2xvdER1cmF0aW9uICogd2Vla09wdGlvbnMudW5pdEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWFyZ2luLWxlZnRdPVwiJ2NhbGMoMTAwJSAvICcgKyBwYXJ0RGF0YS50b3RhbCArICcgKiAnICsgZXZlbnRQYXJ0LmluZGV4ICsgJyknXCI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGV2ZW50UGFydC5wYXJ0LnN0YXJ0ID09PSBldmVudFBhcnQucGFydC5ldmVudD8uc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcmVzaXplIHRvcFwiIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6ZUV2ZW50KGV2ZW50UGFydC5wYXJ0LmV2ZW50LCAndG9wJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1ib3JkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZXZlbnRQYXJ0LnBhcnQuZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25TdGFydERyYWdFdmVudChldmVudFBhcnQucGFydCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uSG92ZXJFdmVudChldmVudFBhcnQucGFydC5ldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbkxlYXZlRXZlbnQoZXZlbnRQYXJ0LnBhcnQuZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1iZ1wiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImV2ZW50UGFydC5wYXJ0LmV2ZW50LmNvbG9yXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1sYWJlbFwiPnt7IGV2ZW50UGFydC5wYXJ0LmV2ZW50LmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGV2ZW50UGFydC5wYXJ0LmVuZCA9PT0gZXZlbnRQYXJ0LnBhcnQuZXZlbnQ/LmVuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1yZXNpemUgYm90dG9tXCIgKG1vdXNlZG93bik9XCJvblN0YXJ0UmVzaXplRXZlbnQoZXZlbnRQYXJ0LnBhcnQuZXZlbnQsICdib3R0b20nKVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHByZXZpZXdFdmVudFBhcnRzRm9yVGhpc1dlZWskIHwgYXN5bmM7IGFzIHByZXZpZXdQYXJ0RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXZlbnRQYXJ0IG9mIHByZXZpZXdQYXJ0RGF0YTsgdHJhY2sgZXZlbnRQYXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50IHByZXZpZXcgcC0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCIoZXZlbnRQYXJ0IHwgYnNTZWNvbmRzVG9kYXlPZmZzZXQpIC8gdGltZVNsb3REdXJhdGlvbiAqIHdlZWtPcHRpb25zLnVuaXRIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIihldmVudFBhcnQgfCBic1NlY29uZHNUaW1lc3BhbikgLyB0aW1lU2xvdER1cmF0aW9uICogd2Vla09wdGlvbnMudW5pdEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIidjYWxjKDkwcHggKyAoKDEwMCUgLSA5MHB4KSAvIDcgKiAnICsgKChldmVudFBhcnQgfCBkYXlPZldlZWspIC0gMSkgKyAnKSknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1pbm5lciB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIihldmVudFBhcnQgfCBic1NlY29uZHNUaW1lc3BhbikgLyB0aW1lU2xvdER1cmF0aW9uICogd2Vla09wdGlvbnMudW5pdEhlaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAY2FzZSAobW9kZXMudGltZWxpbmUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbi0xMDAgb3ZlcmZsb3cteS1hdXRvIG1iLTAgYmctd2hpdGUgdGltZWxpbmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gZmxleC1zdGFydFwiIChjbGljayk9XCJvblByZXZpb3VzV2Vla09yTW9udGgoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImNoZXZyb25MZWZ0XCIgY2xhc3M9XCJweC0wXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBoMyBweS0yIG1iLTAgdGV4dC1jZW50ZXJcIj57eyBjdXJyZW50V2Vla09yTW9udGgkIHwgYXN5bmMgfCBkYXRlOiAnTU1NTSB5eXl5JyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gZmxleC1zdGFydFwiIChjbGljayk9XCJvbk5leHRXZWVrT3JNb250aCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY2hldnJvblJpZ2h0XCIgY2xhc3M9XCJweC0wXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ib2R5IHRhYmxlLXJlc3BvbnNpdmUgb3ZlcmZsb3cteC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgbWItMFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRpbWVTbG90cyQgfCBhc3luYzsgYXMgdGltZVNsb3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZGF5IG9mIHRpbWVTbG90czsgdHJhY2sgZGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImRheS5zbG90cy5sZW5ndGhcIiBjbGFzcz1cInRleHQtY2VudGVyIHB4LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tc3RpY2t5IGRheS1sYWJlbFwiPnt7IGRheS5zdGFtcCB8IGRhdGU6ICdkIEVFJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodGltZWxpbmVPcHRpb25zJCB8IGFzeW5jOyBhcyB0aW1lbGluZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZGF5IG9mIHRpbWVTbG90czsgdHJhY2sgZGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzbG90IG9mIGRheS5zbG90czsgdHJhY2sgc2xvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWJsb2NrIHAtMCB0ZXh0LWNlbnRlclwiIFtzdHlsZS53aWR0aC5weF09XCJ0aW1lbGluZU9wdGlvbnMudW5pdFdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzbG90LnN0YXJ0IHwgZGF0ZTogJ0hIOm1tJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChncm91cCBvZiAocmVzb3VyY2VzJCB8IGFzeW5jKTsgdHJhY2sgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnMtcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyIFtyZXNvdXJjZUdyb3VwXT1cImdyb3VwXCIgW3RpbWVTbG90c109XCJ0aW1lU2xvdHNcIj48L2JzLXJlc291cmNlLWdyb3VwLXByZXNlbnRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxufSJdfQ==
|
|
536
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2NoZWR1bGVyL3NyYy9jb21wb25lbnRzL3NjaGVkdWxlci9zY2hlZHVsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zY2hlZHVsZXIvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGVyL3NjaGVkdWxlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7QUFvQjVELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFBb0IsU0FBdUIsRUFBVSxvQkFBNEMsRUFBVSxlQUFrQztRQUF6SCxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF3QjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQStKN0ksZUFBVSxHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUtuRSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFB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Q0FBQyxDQUFDLENBQUM7b0JBQ1AsQ0FBQztvQkFBQyxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQS9nQlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsbWhCQzNCakMsMmtTQXFJQzs7MkZEMUdZLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxjQUFjO3NKQTBMRixnQkFBZ0I7c0JBQXJDLFlBQVk7dUJBQUMsTUFBTTtnQkF3QkgsVUFBVTtzQkFBMUIsTUFBTTtnQkFJYSxJQUFJO3NCQUF2QixLQUFLO2dCQWVXLGlCQUFpQjtzQkFBakMsTUFBTTtnQkFJYSxXQUFXO3NCQUE5QixLQUFLO2dCQUtXLHFCQUFxQjtzQkFBckMsTUFBTTtnQkFJYSxlQUFlO3NCQUFsQyxLQUFLO2dCQUtVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBTWMsU0FBUztzQkFBNUIsS0FBSztnQkFnSk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJGOUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCIuLi8uLi90eXBlc1wiIC8+XG5cbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc0NhbGVuZGFyTW9udGhTZXJ2aWNlIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwL2NhbGVuZGFyLW1vbnRoJztcbmltcG9ydCB7IEVTY2hlZHVsZXJNb2RlIH0gZnJvbSAnLi4vLi4vZW51bXMvc2NoZWR1bGVyLW1vZGUnO1xuaW1wb3J0IHsgRURyYWdPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy9kcmFnLW9wZXJhdGlvbic7XG5pbXBvcnQgeyBEcmFnT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kcmFnLW9wZXJhdGlvbic7XG5pbXBvcnQgeyBQcmV2aWV3RXZlbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3ByZXZpZXctZXZlbnQnO1xuaW1wb3J0IHsgU2NoZWR1bGVyRXZlbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjaGVkdWxlci1ldmVudCc7XG5pbXBvcnQgeyBTY2hlZHVsZXJFdmVudFBhcnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjaGVkdWxlci1ldmVudC1wYXJ0JztcbmltcG9ydCB7IFNjaGVkdWxlckV2ZW50V2l0aFBhcnRzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlZHVsZXItZXZlbnQtd2l0aC1wYXJ0cyc7XG5pbXBvcnQgeyBUaW1lU2xvdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGltZS1zbG90JztcbmltcG9ydCB7IEJzVGltZWxpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGltZWxpbmUvdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXNvdXJjZS1ncm91cCc7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVzb3VyY2UnO1xuaW1wb3J0IHsgU2NoZWR1bGVyU3RhbXBXaXRoU2xvdHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjaGVkdWxlci1zdGFtcC13aXRoLXNsb3RzJztcbmltcG9ydCB7IFdlZWtPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93ZWVrLW9wdGlvbnMnO1xuaW1wb3J0IHsgVGltZWxpbmVPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90aW1lbGluZS1vcHRpb25zJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtc2NoZWR1bGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjaGVkdWxlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCc1NjaGVkdWxlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHByaXZhdGUgY2FsZW5kYXJNb250aFNlcnZpY2U6IEJzQ2FsZW5kYXJNb250aFNlcnZpY2UsIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlOiBCc1RpbWVsaW5lU2VydmljZSkge1xuICAgIGNvbnN0IG1vbmRheSA9IHRoaXMuY2FsZW5kYXJNb250aFNlcnZpY2UuZ2V0TW9uZGF5QmVmb3JlKG5ldyBEYXRlKCkpO1xuICAgIHRoaXMuY3VycmVudFdlZWtPck1vbnRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obW9uZGF5KTtcblxuICAgIHRoaXMuc2hvd25EYXlzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFdlZWtPck1vbnRoJCwgdGhpcy5tb2RlJF0pXG4gICAgICAucGlwZShtYXAoKFtjdXJyZW50RGF5LCBtb2RlXSkgPT4ge1xuICAgICAgICBjdXJyZW50RGF5LnNldEhvdXJzKDApO1xuICAgICAgICBjdXJyZW50RGF5LnNldE1pbnV0ZXMoMCk7XG4gICAgICAgIGN1cnJlbnREYXkuc2V0U2Vjb25kcygwKTtcbiAgICAgICAgY3VycmVudERheS5zZXRNaWxsaXNlY29uZHMoMCk7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgIGNhc2UgRVNjaGVkdWxlck1vZGUud2Vlazoge1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oQXJyYXkoNykua2V5cygpKS5tYXAoKHgpID0+IHRoaXMuYWRkRGF5cyhjdXJyZW50RGF5LCB4KSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgRVNjaGVkdWxlck1vZGUudGltZWxpbmU6IHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUoY3VycmVudERheS5nZXRGdWxsWWVhcigpLCBjdXJyZW50RGF5LmdldE1vbnRoKCksIDEpO1xuICAgICAgICAgICAgY29uc3QgZGF5c09mTW9udGggPSBuZXcgRGF0ZShjdXJyZW50RGF5LmdldEZ1bGxZZWFyKCksIGN1cnJlbnREYXkuZ2V0TW9udGgoKSArIDEsIDApLmdldERhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKEFycmF5KGRheXNPZk1vbnRoKS5rZXlzKCkpLm1hcCgoeCkgPT4gdGhpcy5hZGREYXlzKGZpcnN0RGF5LCB4KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmRheXNPZldlZWtXaXRoVGltZXN0YW1wcyQgPSB0aGlzLnNob3duRGF5cyRcbiAgICAgIC5waXBlKG1hcCgoc2hvd25EYXlzKSA9PiAoeyBzdGFydDogc2hvd25EYXlzWzBdLmdldFRpbWUoKSwgZW5kOiBzaG93bkRheXNbc2hvd25EYXlzLmxlbmd0aCAtIDFdLmdldFRpbWUoKSArIDI0ICogNjAgKiA2MCAqIDEwMDAgfSkpKTtcbiAgICBcbiAgICB0aGlzLmV2ZW50cyQgPSB0aGlzLnJlc291cmNlcyRcbiAgICAgIC5waXBlKG1hcCgocmVzb3VyY2VzT3JHcm91cHMpID0+IHJlc291cmNlc09yR3JvdXBzLm1hcChyZXNPckdyb3VwID0+IHRoaXMuZ2V0UmVzb3VyY2VzRm9yR3JvdXAocmVzT3JHcm91cCkpKSlcbiAgICAgIC5waXBlKG1hcChqYWdnZWRSZXNvdXJjZXMgPT4gamFnZ2VkUmVzb3VyY2VzLnJlZHVjZSgoZmxhdCwgdG9GbGF0dGVuKSA9PiBmbGF0LmNvbmNhdCh0b0ZsYXR0ZW4pLCBbXSkpKVxuICAgICAgLnBpcGUobWFwKHJlc291cmNlcyA9PiByZXNvdXJjZXMubWFwKHJlcyA9PiByZXMuZXZlbnRzKSkpXG4gICAgICAucGlwZShtYXAoamFnZ2VkRXZlbnRzID0+IGphZ2dlZEV2ZW50cy5yZWR1Y2UoKGZsYXQsIHRvRmxhdHRlbikgPT4gZmxhdC5jb25jYXQodG9GbGF0dGVuKSwgW10pKSk7XG5cbiAgICAgIC8vIGdyb3Vwcy5yZWR1Y2UoKGZsYXQsIHRvRmxhdHRlbikgPT4gZmxhdC5jb25jYXQodG9GbGF0dGVuLmNoaWxkcmVuKSwgW10pXG4gICAgdGhpcy5ldmVudFBhcnRzJCA9IHRoaXMuZXZlbnRzJC5waXBlKFxuICAgICAgbWFwKChldmVudHMpID0+ICBldmVudHMubWFwKChldikgPT4gdGhpcy50aW1lbGluZVNlcnZpY2Uuc3BsaXRJblBhcnRzKGV2KSkpXG4gICAgKTtcblxuICAgIHRoaXMuZXZlbnRQYXJ0c0ZvclRoaXNXZWVrJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5kYXlzT2ZXZWVrV2l0aFRpbWVzdGFtcHMkLFxuICAgICAgdGhpcy5ldmVudFBhcnRzJFxuICAgICAgICAucGlwZShtYXAoZXZlbnRQYXJ0cyA9PiBldmVudFBhcnRzLm1hcChldnAgPT4gZXZwLnBhcnRzKSkpXG4gICAgICAgIC5waXBlKG1hcChqYWdnZWRQYXJ0cyA9PiAgamFnZ2VkUGFydHMucmVkdWNlKChmbGF0LCB0b0ZsYXR0ZW4pID0+IGZsYXQuY29uY2F0KHRvRmxhdHRlbiksIFtdKSkpXG4gICAgICBdKVxuICAgICAgLnBpcGUobWFwKChbc3RhcnRBbmRFbmQsIGV2ZW50UGFydHNdKSA9PiB7XG4gICAgICAgIHJldHVybiBldmVudFBhcnRzLmZpbHRlcihldmVudFBhcnQgPT4ge1xuICAgICAgICAgIHJldHVybiAhKChldmVudFBhcnQuZW5kLmdldFRpbWUoKSA8PSBzdGFydEFuZEVuZC5zdGFydCkgfHwgKGV2ZW50UGFydC5zdGFydC5nZXRUaW1lKCkgPj0gc3RhcnRBbmRFbmQuZW5kKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSkpO1xuXG4gICAgdGhpcy5wcmV2aWV3RXZlbnRQYXJ0cyQgPSB0aGlzLnByZXZpZXdFdmVudCQucGlwZShcbiAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNwbGl0SW5QYXJ0cyhldmVudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMucHJldmlld0V2ZW50UGFydHNGb3JUaGlzV2VlayQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRheXNPZldlZWtXaXRoVGltZXN0YW1wcyQsIHRoaXMucHJldmlld0V2ZW50UGFydHMkXSlcbiAgICAgIC5waXBlKG1hcCgoW3N0YXJ0QW5kRW5kLCBwcmV2aWV3RXZlbnRQYXJ0c10pID0+IHtcbiAgICAgICAgaWYgKHByZXZpZXdFdmVudFBhcnRzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZpZXdFdmVudFBhcnRzLnBhcnRzLmZpbHRlcihldmVudFBhcnQgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEoKGV2ZW50UGFydC5lbmQuZ2V0VGltZSgpIDw9IHN0YXJ0QW5kRW5kLnN0YXJ0KSB8fCAoZXZlbnRQYXJ0LnN0YXJ0LmdldFRpbWUoKSA+PSBzdGFydEFuZEVuZC5lbmQpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgIH0pKTtcblxuICAgIHRoaXMudGltZWxpbmVkRXZlbnRQYXJ0c0ZvclRoaXNXZWVrJCA9IHRoaXMuZXZlbnRQYXJ0c0ZvclRoaXNXZWVrJFxuICAgICAgLnBpcGUobWFwKGV2ZW50UGFydHMgPT4ge1xuICAgICAgICAvLyBXZSdsbCBvbmx5IHVzZSB0aGUgZXZlbnRzIGZvciB0aGlzIHdlZWtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gZXZlbnRQYXJ0cy5tYXAoZXAgPT4gZXAuZXZlbnQpXG4gICAgICAgICAgLmZpbHRlcigoZSwgaSwgbGlzdCkgPT4gbGlzdC5pbmRleE9mKGUpID09PSBpKVxuICAgICAgICAgIC5maWx0ZXIoKGUpID0+ICEhZSlcbiAgICAgICAgICAubWFwKChlKSA9PiA8U2NoZWR1bGVyRXZlbnQ+ZSk7XG4gICAgICAgIGNvbnN0IHRpbWVsaW5lID0gdGhpcy50aW1lbGluZVNlcnZpY2UuZ2V0VGltZWxpbmUoZXZlbnRzKTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aW1lbGluZS5tYXAodHJhY2sgPT4gdHJhY2suZXZlbnRzLm1hcChldiA9PiAoeyBldmVudDogZXYsIGluZGV4OiB0cmFjay5pbmRleCB9KSkpXG4gICAgICAgICAgLnJlZHVjZSgoZmxhdCwgdG9GbGF0dGVuKSA9PiBmbGF0LmNvbmNhdCh0b0ZsYXR0ZW4pLCBbXSlcbiAgICAgICAgICAubWFwKChldmkpID0+IGV2ZW50UGFydHMuZmlsdGVyKHAgPT4gcC5ldmVudCA9PT0gZXZpLmV2ZW50KS5tYXAocCA9PiAoeyBwYXJ0OiBwLCBpbmRleDogZXZpLmluZGV4IH0pKSlcbiAgICAgICAgICAucmVkdWNlKChmbGF0LCB0b0ZsYXR0ZW4pID0+IGZsYXQuY29uY2F0KHRvRmxhdHRlbiksIFtdKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRvdGFsOiB0aW1lbGluZS5sZW5ndGgsXG4gICAgICAgICAgcGFydHM6IHJlc3VsdFxuICAgICAgICB9O1xuICAgICAgfSkpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5tb2RlJCwgdGhpcy5zaG93bkRheXMkLCB0aGlzLnRpbWVTbG90RHVyYXRpb24kXSlcbiAgICAgIC5waXBlKGZpbHRlcigoW21vZGUsIHNob3duRGF5cywgZHVyYXRpb25dKSA9PiBtb2RlICE9PSBudWxsKSlcbiAgICAgIC5waXBlKG1hcCgoW21vZGUsIHNob3duRGF5cywgZHVyYXRpb25dKSA9PiB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgIGNhc2UgRVNjaGVkdWxlck1vZGUud2Vlazoge1xuICAgICAgICAgICAgY29uc3QgdGltZVNsb3RzUGVyRGF5ID0gTWF0aC5mbG9vcigoNjAgKiA2MCAqIDI0KSAvIGR1cmF0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKEFycmF5KHRpbWVTbG90c1BlckRheSkua2V5cygpKS5tYXAoKGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHRpbWVzbG90Rm9yTW9uZGF5ID0gdGhpcy5jcmVhdGVUaW1lc2xvdChzaG93bkRheXNbMF0sIGluZGV4LCBkdXJhdGlvbik7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIDxTY2hlZHVsZXJTdGFtcFdpdGhTbG90cz57XG4gICAgICAgICAgICAgICAgc2xvdHM6IHNob3duRGF5cy5tYXAoKGRheSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShkYXkpO1xuICAgICAgICAgICAgICAgICAgc3RhcnQuc2V0SG91cnModGltZXNsb3RGb3JNb25kYXkuc3RhcnQuZ2V0SG91cnMoKSk7XG4gICAgICAgICAgICAgICAgICBzdGFydC5zZXRNaW51dGVzKHRpbWVzbG90Rm9yTW9uZGF5LnN0YXJ0LmdldE1pbnV0ZXMoKSk7XG4gICAgICAgICAgICAgICAgICBzdGFydC5zZXRTZWNvbmRzKHRpbWVzbG90Rm9yTW9uZGF5LnN0YXJ0LmdldFNlY29uZHMoKSk7XG4gICAgICAgICAgICAgICAgICBzdGFydC5zZXRNaWxsaXNlY29uZHModGltZXNsb3RGb3JNb25kYXkuc3RhcnQuZ2V0TWlsbGlzZWNvbmRzKCkpO1xuICAgICAgXG4gICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZShkYXkpO1xuICAgICAgICAgICAgICAgICAgZW5kLnNldEhvdXJzKHRpbWVzbG90Rm9yTW9uZGF5LmVuZC5nZXRIb3VycygpKTtcbiAgICAgICAgICAgICAgICAgIGVuZC5zZXRNaW51dGVzKHRpbWVzbG90Rm9yTW9uZGF5LmVuZC5nZXRNaW51dGVzKCkpO1xuICAgICAgICAgICAgICAgICAgZW5kLnNldFNlY29uZHModGltZXNsb3RGb3JNb25kYXkuZW5kLmdldFNlY29uZHMoKSk7XG4gICAgICAgICAgICAgICAgICBlbmQuc2V0TWlsbGlzZWNvbmRzKHRpbWVzbG90Rm9yTW9uZGF5LmVuZC5nZXRNaWxsaXNlY29uZHMoKSk7XG4gICAgICAgICAgICAgICAgICBlbmQuc2V0RGF0ZShlbmQuZ2V0RGF0ZSgpICsgdGltZXNsb3RGb3JNb25kYXkuZW5kLmdldERhdGUoKSAtIHRpbWVzbG90Rm9yTW9uZGF5LnN0YXJ0LmdldERhdGUoKSk7XG4gICAgICBcbiAgICAgICAgICAgICAgICAgIHJldHVybiA8VGltZVNsb3Q+eyBzdGFydCwgZW5kIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3RhbXA6IHRpbWVzbG90Rm9yTW9uZGF5LnN0YXJ0XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBFU2NoZWR1bGVyTW9kZS50aW1lbGluZToge1xuICAgICAgICAgICAgY29uc3QgdG90YWxUaW1lc2xvdHMgPSAoMjQgKiA2MCAqIDYwKSAvIGR1cmF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHNob3duRGF5cy5tYXAoKGRheSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gPFNjaGVkdWxlclN0YW1wV2l0aFNsb3RzPntcbiAgICAgICAgICAgICAgICBzbG90czogQXJyYXkuZnJvbShBcnJheSh0b3RhbFRpbWVzbG90cykua2V5cygpKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGltZXNsb3QoZGF5LCBpbmRleCwgZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3RhbXA6IGRheVxuICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRocm93ICdVbmtub3duIHZhbHVlIGZvciBNb2RlOiAnICsgbW9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKVxuICAgICAgLnN1YnNjcmliZSgodGltZXNsb3RzKSA9PiB7XG4gICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB3ZSdyZSBub3QgdXNpbmcgYW4gb2JzZXJ2YWJsZSBoZXJlLCBidXQgcGVyc2lzdCB0aGUgdGltZXNsb3RzIGluIGEgQmVoYXZpb3JTdWJqZWN0LlxuICAgICAgICB0aGlzLnRpbWVTbG90cyQubmV4dCh0aW1lc2xvdHMpO1xuICAgICAgfSk7XG4gICAgXG4gICAgdGhpcy53ZWVrT3B0aW9ucyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUod2Vla09wdGlvbnMgPT4gdGhpcy53ZWVrT3B0aW9uc0NoYW5nZS5lbWl0KHdlZWtPcHRpb25zKSk7XG4gICAgdGhpcy50aW1lbGluZU9wdGlvbnMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKHRpbWVsaW5lT3B0aW9ucyA9PiB0aGlzLnRpbWVsaW5lT3B0aW9uc0NoYW5nZS5lbWl0KHRpbWVsaW5lT3B0aW9ucykpO1xuXG4gICAgLy8gY29tYmluZUxhdGVzdChbdGhpcy5tb2RlJCwgdGhpcy5zY2FsZSRdKVxuICAgIC8vICAgLnBpcGUoZmlsdGVyKChbbW9kZSwgc2NhbGVdKSA9PiBtb2RlID09PSBFU2NoZWR1bGVyTW9kZS50aW1lbGluZSkpXG5cbiAgICBpbXBvcnQoJ2Jvb3RzdHJhcC1pY29ucy9pY29ucy9jaGV2cm9uLWxlZnQuc3ZnJykudGhlbigoaWNvbikgPT4ge1xuICAgICAgdGhpcy5jaGV2cm9uTGVmdCA9IHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChpY29uLmRlZmF1bHQpO1xuICAgIH0pO1xuICAgIGltcG9ydCgnYm9vdHN0cmFwLWljb25zL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnJykudGhlbigoaWNvbikgPT4ge1xuICAgICAgdGhpcy5jaGV2cm9uUmlnaHQgPSBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaWNvbi5kZWZhdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZXZyb25MZWZ0PzogU2FmZUh0bWw7XG4gIGNoZXZyb25SaWdodD86IFNhZmVIdG1sO1xuICByZXNvdXJjZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwoUmVzb3VyY2UgfCBSZXNvdXJjZUdyb3VwKVtdPihbXSk7XG4gIGV2ZW50cyQ6IE9ic2VydmFibGU8U2NoZWR1bGVyRXZlbnRbXT47XG4gIGV2ZW50UGFydHMkOiBPYnNlcnZhYmxlPFNjaGVkdWxlckV2ZW50V2l0aFBhcnRzW10+O1xuICBldmVudFBhcnRzRm9yVGhpc1dlZWskOiBPYnNlcnZhYmxlPFNjaGVkdWxlckV2ZW50UGFydFtdPjtcbiAgdGltZWxpbmVkRXZlbnRQYXJ0c0ZvclRoaXNXZWVrJDogT2JzZXJ2YWJsZTx7IHRvdGFsOiBudW1iZXIsIHBhcnRzOiB7IHBhcnQ6IFNjaGVkdWxlckV2ZW50UGFydCwgaW5kZXg6IG51bWJlcn1bXSB9PjtcbiAgd2Vla09wdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXZWVrT3B0aW9ucz4oeyB1bml0SGVpZ2h0OiAzMCB9KTtcbiAgdGltZWxpbmVPcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGltZWxpbmVPcHRpb25zPih7IHVuaXRXaWR0aDogNTAgfSk7XG4gIFxuICBwcmV2aWV3RXZlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQcmV2aWV3RXZlbnQgfCBudWxsPihudWxsKTtcbiAgcHJldmlld0V2ZW50UGFydHMkOiBPYnNlcnZhYmxlPFNjaGVkdWxlckV2ZW50V2l0aFBhcnRzIHwgbnVsbD47XG4gIHByZXZpZXdFdmVudFBhcnRzRm9yVGhpc1dlZWskOiBPYnNlcnZhYmxlPFNjaGVkdWxlckV2ZW50UGFydFtdPjtcbiAgXG4gIGN1cnJlbnRXZWVrT3JNb250aCQ6IEJlaGF2aW9yU3ViamVjdDxEYXRlPjtcbiAgc2hvd25EYXlzJDogT2JzZXJ2YWJsZTxEYXRlW10+O1xuICBkYXlzT2ZXZWVrV2l0aFRpbWVzdGFtcHMkOiBPYnNlcnZhYmxlPHtzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcn0+O1xuICB0aW1lU2xvdER1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxODAwKTtcbiAgdGltZVNsb3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NoZWR1bGVyU3RhbXBXaXRoU2xvdHNbXT4oW10pO1xuICBtb3VzZVN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBob3ZlcmVkVGltZVNsb3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaW1lU2xvdCB8IG51bGw+KG51bGwpO1xuICBob3ZlcmVkRXZlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY2hlZHVsZXJFdmVudCB8IG51bGw+KG51bGwpO1xuICByZXNvdXJjZUdyb3VwUHJlc2VudGVyQ291bnRlciA9IDE7XG5cbiAgQFZpZXdDaGlsZHJlbignc2xvdCcpIHRpbWVTbG90RWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+O1xuXG4gIGNyZWF0ZVRpbWVzbG90KGRhdGU6IERhdGUsIGluZGV4OiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCB0aW1lU2xvdFN0YXJ0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgdGltZVNsb3RTdGFydC5zZXRUaW1lKCt0aW1lU2xvdFN0YXJ0LmdldFRpbWUoKSArIGluZGV4ICogZHVyYXRpb24gKiAxMDAwKTtcbiAgICBjb25zdCB0aW1lU2xvdEVuZCA9IG5ldyBEYXRlKHRpbWVTbG90U3RhcnQpO1xuICAgIHRpbWVTbG90RW5kLnNldFRpbWUoK3RpbWVTbG90RW5kLmdldFRpbWUoKSArIGR1cmF0aW9uICogMTAwMCk7XG5cbiAgICByZXR1cm4gPFRpbWVTbG90Pnsgc3RhcnQ6IHRpbWVTbG90U3RhcnQsIGVuZDogdGltZVNsb3RFbmQgfTtcbiAgfVxuXG4gIGdldFJlc291cmNlc0Zvckdyb3VwKHJlc291cmNlT3JHcm91cDogUmVzb3VyY2UgfCBSZXNvdXJjZUdyb3VwKSA6IFJlc291cmNlW10ge1xuICAgIGlmICgnY2hpbGRyZW4nIGluIHJlc291cmNlT3JHcm91cCkge1xuICAgICAgcmV0dXJuIHJlc291cmNlT3JHcm91cC5jaGlsZHJlblxuICAgICAgICAubWFwKChjaGlsZCkgPT4gdGhpcy5nZXRSZXNvdXJjZXNGb3JHcm91cChjaGlsZCkpXG4gICAgICAgIC5yZWR1Y2UoKGZsYXQsIHRvRmxhdHRlbikgPT4gZmxhdC5jb25jYXQodG9GbGF0dGVuKSwgW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3Jlc291cmNlT3JHcm91cF07XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIE1vZGVcbiAgbW9kZXMgPSBFU2NoZWR1bGVyTW9kZTtcbiAgbW9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVTY2hlZHVsZXJNb2RlPihFU2NoZWR1bGVyTW9kZS53ZWVrKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFU2NoZWR1bGVyTW9kZT4oKTtcbiAgcHVibGljIGdldCBtb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbW9kZSh2YWx1ZTogRVNjaGVkdWxlck1vZGUpIHtcbiAgICB0aGlzLm1vZGUkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICAvLyAvLyNyZWdpb24gU2NhbGVcbiAgLy8gc2NhbGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY2hlZHVsZXJTY2FsZT4oYXZhaWxhYmxlU2NhbGVzWzRdKTtcbiAgLy8gQE91dHB1dCgpIHB1YmxpYyBzY2FsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2NoZWR1bGVyU2NhbGU+KCk7XG4gIC8vIHB1YmxpYyBnZXQgc2NhbGUoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuc2NhbGUkLnZhbHVlO1xuICAvLyB9XG4gIC8vIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2NhbGUodmFsdWU6IFNjaGVkdWxlclNjYWxlKSB7XG4gIC8vICAgdGhpcy5zY2FsZSQubmV4dCh2YWx1ZSk7XG4gIC8vIH1cbiAgLy8gLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBXZWVrT3B0aW9uc1xuICBAT3V0cHV0KCkgcHVibGljIHdlZWtPcHRpb25zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxXZWVrT3B0aW9ucz4oKTtcbiAgcHVibGljIGdldCB3ZWVrT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy53ZWVrT3B0aW9ucyQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCB3ZWVrT3B0aW9ucyh2YWx1ZTogV2Vla09wdGlvbnMpIHtcbiAgICB0aGlzLndlZWtPcHRpb25zJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIFRpbWVsaW5lT3B0aW9uc1xuICBAT3V0cHV0KCkgcHVibGljIHRpbWVsaW5lT3B0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGltZWxpbmVPcHRpb25zPigpO1xuICBwdWJsaWMgZ2V0IHRpbWVsaW5lT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50aW1lbGluZU9wdGlvbnMkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdGltZWxpbmVPcHRpb25zKHZhbHVlOiBUaW1lbGluZU9wdGlvbnMpIHtcbiAgICB0aGlzLnRpbWVsaW5lT3B0aW9ucyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBtYXhJbm5lckhlaWdodFxuICBASW5wdXQoKSBwdWJsaWMgbWF4SW5uZXJIZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIFJlc291cmNlc1xuICBwdWJsaWMgZ2V0IHJlc291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgcmVzb3VyY2VzKHZhbHVlOiAoUmVzb3VyY2UgfCBSZXNvdXJjZUdyb3VwKVtdKSB7XG4gICAgdGhpcy5yZXNvdXJjZXMkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHByaXZhdGUgYWRkRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgZGF5cyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9uUHJldmlvdXNXZWVrT3JNb250aCgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlV2Vla09yTW9udGgoZmFsc2UpO1xuICB9XG5cbiAgb25OZXh0V2Vla09yTW9udGgoKSB7XG4gICAgdGhpcy5vbkNoYW5nZVdlZWtPck1vbnRoKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZVdlZWtPck1vbnRoKG5leHQ6IGJvb2xlYW4pIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRXZWVrT3JNb250aCQsIHRoaXMubW9kZSRdKVxuICAgICAgLnBpcGUobWFwKChbY3VycmVudFdlZWtPck1vbnRoLCBtb2RlXSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICBjYXNlIEVTY2hlZHVsZXJNb2RlLndlZWs6IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZERheXMoY3VycmVudFdlZWtPck1vbnRoLCAobmV4dCA/IDcgOiAtNykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEVTY2hlZHVsZXJNb2RlLnRpbWVsaW5lOiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoY3VycmVudFdlZWtPck1vbnRoLmdldEZ1bGxZZWFyKCksIGN1cnJlbnRXZWVrT3JNb250aC5nZXRNb250aCgpICsgKG5leHQgPyAxIDogLTEpLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pLCB0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgodykgPT4gdGhpcy5jdXJyZW50V2Vla09yTW9udGgkLm5leHQodykpO1xuICB9XG5cbiAgb25Ib3ZlckV2ZW50KGV2OiBTY2hlZHVsZXJFdmVudCB8IG51bGwpIHtcbiAgICB0aGlzLmhvdmVyZWRFdmVudCQubmV4dChldik7XG4gIH1cblxuICBvbkxlYXZlRXZlbnQoZXY6IFNjaGVkdWxlckV2ZW50IHwgbnVsbCkge1xuICAgIHRoaXMuaG92ZXJlZEV2ZW50JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgb3BlcmF0aW9uOiBEcmFnT3BlcmF0aW9uIHwgbnVsbCA9IG51bGw7XG4gIGRyYWdTdGFydFRpbWVzbG90OiBUaW1lU2xvdCB8IG51bGwgPSBudWxsO1xuICBvbkNyZWF0ZUV2ZW50KGV2OiBNb3VzZUV2ZW50LCBzbG90OiBUaW1lU2xvdCkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5tb3VzZVN0YXRlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QgPSBzbG90O1xuICAgIHRoaXMub3BlcmF0aW9uID0ge1xuICAgICAgb3BlcmF0aW9uOiBFRHJhZ09wZXJhdGlvbi5jcmVhdGVFdmVudCxcbiAgICAgIGV2ZW50OiB7XG4gICAgICAgIHN0YXJ0OiBzbG90LnN0YXJ0LFxuICAgICAgICBlbmQ6IHNsb3QuZW5kLFxuICAgICAgICBjb2xvcjogJyNGMDAnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1Rlc3QgZXZlbnQnLFxuICAgICAgfSxcbiAgICAgIG1ldGE6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLnByZXZpZXdFdmVudCQubmV4dCh7IHN0YXJ0OiBzbG90LnN0YXJ0LCBlbmQ6IHNsb3QuZW5kIH0pO1xuICB9XG5cbiAgcmFuZG9tQ29sb3IoKSB7XG4gICAgY29uc3QgYnJpZ2h0bmVzcyA9IDEyODtcbiAgICByZXR1cm4gJyMnICsgdGhpcy5yYW5kb21DaGFubmVsKGJyaWdodG5lc3MpICsgdGhpcy5yYW5kb21DaGFubmVsKGJyaWdodG5lc3MpICsgdGhpcy5yYW5kb21DaGFubmVsKGJyaWdodG5lc3MpO1xuICB9XG4gIHJhbmRvbUNoYW5uZWwoYnJpZ2h0bmVzczogbnVtYmVyKXtcbiAgICBjb25zdCByID0gMjU1LWJyaWdodG5lc3M7XG4gICAgY29uc3QgbiA9IDB8KChNYXRoLnJhbmRvbSgpICogcikgKyBicmlnaHRuZXNzKTtcbiAgICBjb25zdCBzID0gbi50b1N0cmluZygxNik7XG4gICAgcmV0dXJuIChzLmxlbmd0aD09MSkgPyAnMCcrcyA6IHM7XG4gIH1cblxuICBvblN0YXJ0RHJhZ0V2ZW50KGV2ZW50UGFydDogU2NoZWR1bGVyRXZlbnRQYXJ0LCBldjogTW91c2VFdmVudCkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5ob3ZlcmVkVGltZVNsb3QkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChob3ZlcmVkVGltZVNsb3QpID0+IHtcbiAgICAgIGlmIChldmVudFBhcnQuZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCA9IGhvdmVyZWRUaW1lU2xvdDtcbiAgICAgICAgdGhpcy5vcGVyYXRpb24gPSB7XG4gICAgICAgICAgb3BlcmF0aW9uOiBFRHJhZ09wZXJhdGlvbi5tb3ZlRXZlbnQsXG4gICAgICAgICAgZXZlbnQ6IGV2ZW50UGFydC5ldmVudCxcbiAgICAgICAgICBtZXRhOiBudWxsLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByZXZpZXdFdmVudCQubmV4dCh7IHN0YXJ0OiBldmVudFBhcnQuZXZlbnQuc3RhcnQsIGVuZDogZXZlbnRQYXJ0LmV2ZW50LmVuZCB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uU3RhcnRSZXNpemVFdmVudChldmVudDogU2NoZWR1bGVyRXZlbnQgfCBudWxsLCBwb3NpdGlvbjogJ3RvcCcgfCAnYm90dG9tJykge1xuICAgIGlmIChldmVudCkge1xuICAgICAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgICAgICBjYXNlICd0b3AnOiB7XG4gICAgICAgICAgdGhpcy5vcGVyYXRpb24gPSB7XG4gICAgICAgICAgICBvcGVyYXRpb246IEVEcmFnT3BlcmF0aW9uLnJlc2l6ZUV2ZW50LFxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgbWV0YTogeyBwb3NpdGlvbiB9LFxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCQubmV4dCh7IHN0YXJ0OiBldmVudC5zdGFydCwgZW5kOiBldmVudC5lbmQgfSk7XG4gICAgICAgIH0gYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6IHtcbiAgICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogRURyYWdPcGVyYXRpb24ucmVzaXplRXZlbnQsXG4gICAgICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgICAgICBtZXRhOiB7IHBvc2l0aW9uIH0sXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucHJldmlld0V2ZW50JC5uZXh0KHsgc3RhcnQ6IGV2ZW50LnN0YXJ0LCBlbmQ6IGV2ZW50LmVuZCB9KTtcbiAgICAgICAgfSBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyNyZWdpb24gaG92ZXJlZFRpbWVzbG90JFxuICBwcml2YXRlIGdldEhvdmVyZWRUaW1lc2xvdChldjogTW91c2VFdmVudCwgdGltZVNsb3RzOiBTY2hlZHVsZXJTdGFtcFdpdGhTbG90c1tdKSB7XG4gICAgY29uc3QgaG92ZXJlZFNsb3RzID0gdGhpcy50aW1lU2xvdEVsZW1lbnRzLmZpbHRlcigoZWwpID0+IHtcbiAgICAgIGNvbnN0IHJjdCA9IGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmN0LmxlZnQgPD0gZXYueCAmJiBldi54IDw9IHJjdC5yaWdodCAmJiByY3QudG9wIDw9IGV2LnkgJiYgZXYueSA8PSByY3QuYm90dG9tKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFob3ZlcmVkU2xvdHMgfHwgaG92ZXJlZFNsb3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc2xvdEVsZW1lbnQgPSBob3ZlcmVkU2xvdHNbMF0ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHN0clJvdyA9IHNsb3RFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1yb3cnKTtcbiAgICBpZiAoIXN0clJvdykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJvdyA9IHBhcnNlSW50KHN0clJvdyk7XG5cbiAgICBjb25zdCBzdHJDb2x1bW4gPSBzbG90RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY29sdW1uJyk7XG4gICAgaWYgKCFzdHJDb2x1bW4pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW4gPSBwYXJzZUludChzdHJDb2x1bW4pO1xuXG4gICAgY29uc3Qgc2xvdCA9IHRpbWVTbG90c1tyb3ddLnNsb3RzW2NvbHVtbl07XG4gICAgcmV0dXJuIHNsb3Q7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxuICBvbk1vdXNlbW92ZShldjogTW91c2VFdmVudCkge1xuICAgIHRoaXMudGltZVNsb3RzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodGltZVNsb3RzKSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkID0gdGhpcy5nZXRIb3ZlcmVkVGltZXNsb3QoZXYsIHRpbWVTbG90cyk7XG4gICAgICB0aGlzLmhvdmVyZWRUaW1lU2xvdCQubmV4dChob3ZlcmVkKTtcblxuICAgICAgaWYgKHRoaXMub3BlcmF0aW9uKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5vcGVyYXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgY2FzZSBFRHJhZ09wZXJhdGlvbi5jcmVhdGVFdmVudDoge1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uLmV2ZW50ICYmIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QgJiYgaG92ZXJlZCAmJiAodGhpcy5vcGVyYXRpb24uZXZlbnQuZW5kLmdldFRpbWUoKSAhPSBob3ZlcmVkLmVuZC5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmRyYWdTdGFydFRpbWVzbG90LnN0YXJ0LmdldFRpbWUoKSA9PT0gaG92ZXJlZC5zdGFydC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAvLyAxIHNsb3RcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRyYWdTdGFydFRpbWVzbG90LnN0YXJ0LmdldFRpbWUoKSA8IGhvdmVyZWQuc3RhcnQuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgLy8gRHJhZyBkb3duXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkXG4gICAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGV2KSA9PiAhIWV2ICYmICEhdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCkpXG4gICAgICAgICAgICAgICAgICAucGlwZShtYXAoKGV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldiAmJiB0aGlzLmRyYWdTdGFydFRpbWVzbG90KSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXYuc3RhcnQgPSB0aGlzLmRyYWdTdGFydFRpbWVzbG90LnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgIGV2LmVuZCA9IGhvdmVyZWQuZW5kO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldjtcbiAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLnByZXZpZXdFdmVudCQubmV4dChldikpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3Quc3RhcnQuZ2V0VGltZSgpID4gaG92ZXJlZC5zdGFydC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAvLyBEcmFnIHVwXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3RXZlbnQkXG4gICAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGV2KSA9PiAhIWV2ICYmICEhdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCkpXG4gICAgICAgICAgICAgICAgICAucGlwZShtYXAoKGV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldiAmJiB0aGlzLmRyYWdTdGFydFRpbWVzbG90KSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXYuc3RhcnQgPSBob3ZlcmVkLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgIGV2LmVuZCA9IHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QuZW5kO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldjtcbiAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLnByZXZpZXdFdmVudCQubmV4dChldikpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlIEVEcmFnT3BlcmF0aW9uLm1vdmVFdmVudDoge1xuICAgICAgICAgICAgaWYgKGhvdmVyZWQgJiYgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCkge1xuICAgICAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCRcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGV2KSA9PiAhIWV2ICYmICEhdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCkpXG4gICAgICAgICAgICAgICAgLnBpcGUobWFwKChldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGV2ICYmIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gIDxQcmV2aWV3RXZlbnQ+e1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBuZXcgRGF0ZShldi5zdGFydC5nZXRUaW1lKCkgKyBob3ZlcmVkLnN0YXJ0LmdldFRpbWUoKSAtIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3Quc3RhcnQuZ2V0VGltZSgpKSxcbiAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG5ldyBEYXRlKGV2LmVuZC5nZXRUaW1lKCkgKyBob3ZlcmVkLnN0YXJ0LmdldFRpbWUoKSAtIHRoaXMuZHJhZ1N0YXJ0VGltZXNsb3Quc3RhcnQuZ2V0VGltZSgpKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCA9IGhvdmVyZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZXYgPT4gdGhpcy5wcmV2aWV3RXZlbnQkLm5leHQoZXYpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgRURyYWdPcGVyYXRpb24ucmVzaXplRXZlbnQ6IHtcbiAgICAgICAgICAgIGlmIChob3ZlcmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJldmlld0V2ZW50JFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigoZXYpID0+ICEhZXYpKVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgoZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChldiAmJiB0aGlzLm9wZXJhdGlvbiAmJiB0aGlzLm9wZXJhdGlvbi5ldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcGVyYXRpb24ubWV0YS5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICBldi5zdGFydCA9IGhvdmVyZWQuc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgZXYuZW5kID0gdGhpcy5vcGVyYXRpb24uZXZlbnQuZW5kO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3BlcmF0aW9uLm1ldGEucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXYuc3RhcnQgPSB0aGlzLm9wZXJhdGlvbi5ldmVudC5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICBldi5lbmQgPSBob3ZlcmVkLmVuZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2O1xuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXYpID0+IHRoaXMucHJldmlld0V2ZW50JC5uZXh0KGV2KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VVcChldjogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLm9wZXJhdGlvbikge1xuICAgICAgc3dpdGNoICh0aGlzLm9wZXJhdGlvbi5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBFRHJhZ09wZXJhdGlvbi5jcmVhdGVFdmVudDoge1xuICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucHJldmlld0V2ZW50JF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3ByZXZpZXdFdmVudF0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHByZXZpZXdFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlcmF0aW9uID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdTdGFydFRpbWVzbG90ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc291cmNlcyQubmV4dChbXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLnJlc291cmNlcyQudmFsdWUsXG4gICAgICAgICAgICAgICAgICA8UmVzb3VyY2U+e1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05ldyByZXNvdXJjZSBncm91cCcsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50czogW3tcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydDogcHJldmlld0V2ZW50LnN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgIGVuZDogcHJldmlld0V2ZW50LmVuZCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5yYW5kb21Db2xvcigpLFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmV3IGV2ZW50J1xuICAgICAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0V2ZW50JC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBicmVhaztcbiAgICAgICAgY2FzZSBFRHJhZ09wZXJhdGlvbi5tb3ZlRXZlbnQ6XG4gICAgICAgIGNhc2UgRURyYWdPcGVyYXRpb24ucmVzaXplRXZlbnQ6IHtcbiAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCRcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigoZXYpID0+ICEhZXYpKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHByZXZpZXdFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5vcGVyYXRpb24gJiYgdGhpcy5vcGVyYXRpb24uZXZlbnQgJiYgcHJldmlld0V2ZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVyYXRpb24uZXZlbnQuc3RhcnQgPSBwcmV2aWV3RXZlbnQuc3RhcnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVyYXRpb24uZXZlbnQuZW5kID0gcHJldmlld0V2ZW50LmVuZDtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lc2xvdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMkLm5leHQodGhpcy5yZXNvdXJjZXMkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXdFdmVudCQubmV4dChudWxsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAc3dpdGNoIChtb2RlJCB8IGFzeW5jKSB7XG4gICAgQGNhc2UgKG1vZGVzLndlZWspIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB3LTEwMCBvdmVyZmxvdy15LWF1dG8gbWItMCB3ZWVrLXNjaGVkdWxlXCIgW3N0eWxlLm1heC1oZWlnaHQucHhdPVwibnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggY2FsZW5kYXItbGVmdCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBmbGV4LXN0YXJ0XCIgKGNsaWNrKT1cIm9uUHJldmlvdXNXZWVrT3JNb250aCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJjaGV2cm9uTGVmdFwiIGNsYXNzPVwicHgtMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBmbGV4LWVuZFwiIChjbGljayk9XCJvbk5leHRXZWVrT3JNb250aCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJjaGV2cm9uUmlnaHRcIiBjbGFzcz1cInB4LTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGRheSBvZiAoc2hvd25EYXlzJCB8IGFzeW5jKTsgdHJhY2sgZGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgY2FsZW5kYXItaGVhZC1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWJsb2NrIGNvbC1mb3JtLWxhYmVsIHRleHQtY2VudGVyIHRleHQtbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGRheSB8IGRhdGU6ICdkZC1NTScgfX08L3NwYW4+PHNwYW4gY2xhc3M9XCJkLW5vbmUgZC1sZy1pbmxpbmUtYmxvY2tcIj4te3sgZGF5IHwgZGF0ZTogJ3l5eXknIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ib2R5XCIgW3N0eWxlLmhlaWdodC5weF09XCJtYXhJbm5lckhlaWdodFwiPlxuICAgICAgICAgICAgICAgIEBpZiAodGltZVNsb3RzJCB8IGFzeW5jOyBhcyByb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHdlZWtPcHRpb25zJCB8IGFzeW5jOyBhcyB3ZWVrT3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGltZXNsb3RzIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHRpbWVzbG90cyBvZiByb3c7IHRyYWNrIHRpbWVzbG90czsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBwLTAgdGltZXNsb3RcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIndlZWtPcHRpb25zLnVuaXRIZWlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jZWxsIGNhbGVuZGFyLWxlZnQgYWxpZ24tdG9wIHB4LTIgcHktMFwiPnt7IHRpbWVzbG90cy5zbG90c1swXS5zdGFydCB8IGRhdGU6ICdISDptbTpzcycgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgdGltZXNsb3RzLnNsb3RzOyB0cmFjayBzbG90LnN0YXJ0OyBsZXQgaiA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jZWxsIGZsZXgtZ3Jvdy0xXCIgI3Nsb3QgKG1vdXNlZG93bik9XCJvbkNyZWF0ZUV2ZW50KCRldmVudCwgc2xvdClcIiBbYXR0ci5kYXRhLXJvd109XCJpXCIgW2F0dHIuZGF0YS1jb2x1bW5dPVwialwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEV2ZW50cyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRpbWVTbG90RHVyYXRpb24kIHwgYXN5bmM7IGFzIHRpbWVTbG90RHVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0aW1lbGluZWRFdmVudFBhcnRzRm9yVGhpc1dlZWskIHwgYXN5bmM7IGFzIHBhcnREYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChldmVudFBhcnQgb2YgcGFydERhdGEucGFydHM7IHRyYWNrIGV2ZW50UGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudCBwLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudG9wLnB4XT1cIihldmVudFBhcnQucGFydCB8IGJzU2Vjb25kc1RvZGF5T2Zmc2V0KSAvIHRpbWVTbG90RHVyYXRpb24gKiB3ZWVrT3B0aW9ucy51bml0SGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCIoZXZlbnRQYXJ0LnBhcnQgfCBic1NlY29uZHNUaW1lc3BhbikgLyB0aW1lU2xvdER1cmF0aW9uICogd2Vla09wdGlvbnMudW5pdEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIidjYWxjKDkwcHggKyAoKDEwMCUgLSA5MHB4KSAvIDcgKiAnICsgKChldmVudFBhcnQucGFydCB8IGRheU9mV2VlaykgLSAxKSArICcpKSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWlubmVyXCIgW2NsYXNzLmhvdmVyXT1cIihob3ZlcmVkRXZlbnQkIHwgYXN5bmMpID09PSBldmVudFBhcnQucGFydC5ldmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiJ2NhbGMoMTAwJSAvICcgKyBwYXJ0RGF0YS50b3RhbCArICcpJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIihldmVudFBhcnQucGFydCB8IGJzU2Vjb25kc1RpbWVzcGFuKSAvIHRpbWVTbG90RHVyYXRpb24gKiB3ZWVrT3B0aW9ucy51bml0SGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdF09XCInY2FsYygxMDAlIC8gJyArIHBhcnREYXRhLnRvdGFsICsgJyAqICcgKyBldmVudFBhcnQuaW5kZXggKyAnKSdcIj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZXZlbnRQYXJ0LnBhcnQuc3RhcnQgPT09IGV2ZW50UGFydC5wYXJ0LmV2ZW50Py5zdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1yZXNpemUgdG9wXCIgKG1vdXNlZG93bik9XCJvblN0YXJ0UmVzaXplRXZlbnQoZXZlbnRQYXJ0LnBhcnQuZXZlbnQsICd0b3AnKVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWJvcmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChldmVudFBhcnQucGFydC5ldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblN0YXJ0RHJhZ0V2ZW50KGV2ZW50UGFydC5wYXJ0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Ib3ZlckV2ZW50KGV2ZW50UGFydC5wYXJ0LmV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTGVhdmVFdmVudChldmVudFBhcnQucGFydC5ldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWJnXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZXZlbnRQYXJ0LnBhcnQuZXZlbnQuY29sb3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWxhYmVsXCI+e3sgZXZlbnRQYXJ0LnBhcnQuZXZlbnQuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZXZlbnRQYXJ0LnBhcnQuZW5kID09PSBldmVudFBhcnQucGFydC5ldmVudD8uZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXJlc2l6ZSBib3R0b21cIiAobW91c2Vkb3duKT1cIm9uU3RhcnRSZXNpemVFdmVudChldmVudFBhcnQucGFydC5ldmVudCwgJ2JvdHRvbScpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocHJldmlld0V2ZW50UGFydHNGb3JUaGlzV2VlayQgfCBhc3luYzsgYXMgcHJldmlld1BhcnREYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChldmVudFBhcnQgb2YgcHJldmlld1BhcnREYXRhOyB0cmFjayBldmVudFBhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQgcHJldmlldyBwLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudG9wLnB4XT1cIihldmVudFBhcnQgfCBic1NlY29uZHNUb2RheU9mZnNldCkgLyB0aW1lU2xvdER1cmF0aW9uICogd2Vla09wdGlvbnMudW5pdEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiKGV2ZW50UGFydCB8IGJzU2Vjb25kc1RpbWVzcGFuKSAvIHRpbWVTbG90RHVyYXRpb24gKiB3ZWVrT3B0aW9ucy51bml0SGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiJ2NhbGMoOTBweCArICgoMTAwJSAtIDkwcHgpIC8gNyAqICcgKyAoKGV2ZW50UGFydCB8IGRheU9mV2VlaykgLSAxKSArICcpKSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWlubmVyIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiKGV2ZW50UGFydCB8IGJzU2Vjb25kc1RpbWVzcGFuKSAvIHRpbWVTbG90RHVyYXRpb24gKiB3ZWVrT3B0aW9ucy51bml0SGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBjYXNlIChtb2Rlcy50aW1lbGluZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uLTEwMCBvdmVyZmxvdy15LWF1dG8gbWItMCBiZy13aGl0ZSB0aW1lbGluZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWQgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBmbGV4LXN0YXJ0XCIgKGNsaWNrKT1cIm9uUHJldmlvdXNXZWVrT3JNb250aCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY2hldnJvbkxlZnRcIiBjbGFzcz1cInB4LTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIGgzIHB5LTIgbWItMCB0ZXh0LWNlbnRlclwiPnt7IGN1cnJlbnRXZWVrT3JNb250aCQgfCBhc3luYyB8IGRhdGU6ICdNTU1NIHl5eXknIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBmbGV4LXN0YXJ0XCIgKGNsaWNrKT1cIm9uTmV4dFdlZWtPck1vbnRoKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJjaGV2cm9uUmlnaHRcIiBjbGFzcz1cInB4LTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJvZHkgdGFibGUtcmVzcG9uc2l2ZSBvdmVyZmxvdy14LWF1dG9cIj5cbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBtYi0wXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGltZVNsb3RzJCB8IGFzeW5jOyBhcyB0aW1lU2xvdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgdGltZVNsb3RzOyB0cmFjayBkYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiZGF5LnNsb3RzLmxlbmd0aFwiIGNsYXNzPVwidGV4dC1jZW50ZXIgcHgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1zdGlja3kgZGF5LWxhYmVsXCI+e3sgZGF5LnN0YW1wIHwgZGF0ZTogJ2QgRUUnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0aW1lbGluZU9wdGlvbnMkIHwgYXN5bmM7IGFzIHRpbWVsaW5lT3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgdGltZVNsb3RzOyB0cmFjayBkYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgZGF5LnNsb3RzOyB0cmFjayBzbG90KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtYmxvY2sgcC0wIHRleHQtY2VudGVyXCIgW3N0eWxlLndpZHRoLnB4XT1cInRpbWVsaW5lT3B0aW9ucy51bml0V2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNsb3Quc3RhcnQgfCBkYXRlOiAnSEg6bW0nIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGdyb3VwIG9mIChyZXNvdXJjZXMkIHwgYXN5bmMpOyB0cmFjayBncm91cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicy1yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIgW3Jlc291cmNlR3JvdXBdPVwiZ3JvdXBcIiBbdGltZVNsb3RzXT1cInRpbWVTbG90c1wiPjwvYnMtcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG59Il19
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Component, ContentChildren, HostListener, Inject,
|
|
2
|
+
import { Component, ContentChildren, HostListener, Inject, ViewChildren } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, combineLatest, filter, take } from 'rxjs';
|
|
4
|
-
import { BsScrollOffsetService } from '../services/scroll-offset/scroll-offset.service';
|
|
5
4
|
import { BsScrollspyDirective } from '../directives/scrollspy.directive';
|
|
6
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
@@ -83,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
83
82
|
type: HostListener,
|
|
84
83
|
args: ['window:scroll', ['$event']]
|
|
85
84
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2Nyb2xsc3B5L3NyYy9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2Nyb2xsc3B5L3NyYy9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQW1DLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBcUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9KLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQU9oRSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsbUJBQTBDLEVBQ2hDLFFBQWEsRUFDdkIsSUFBWTtRQUZaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFFMUMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVdkLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBTTNELG9CQUFlLEdBQWdDLElBQUksQ0FBQztRQWpCbEQsSUFBSSxDQUFDLEdBQUcsR0FBYSxRQUFRLENBQUM7UUFDOUIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFB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QUMsQ0FBQztZQUM5RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDOzhHQXZFVSxvQkFBb0IsdURBSXJCLFFBQVE7a0dBSlAsb0JBQW9CLG1KQW1CZCxvQkFBb0Isc0lDL0J2QyxzbUJBYU07OzJGRERPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxjQUFjOzswQkFRckIsTUFBTTsyQkFBQyxRQUFROzhEQWU0QyxVQUFVO3NCQUF2RSxlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDcEMsT0FBTztzQkFBOUIsWUFBWTt1QkFBQyxRQUFRO2dCQWN0QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBOZ1pvbmUsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNTY3JvbGxPZmZzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2Nyb2xsLW9mZnNldC9zY3JvbGwtb2Zmc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQnNTY3JvbGxzcHlEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3Njcm9sbHNweS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1zY3JvbGxzcHknLFxuICB0ZW1wbGF0ZVVybDogJy4vc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsc3B5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNTY3JvbGxzcHlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjcm9sbE9mZnNldFNlcnZpY2U6IEJzU2Nyb2xsT2Zmc2V0U2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55LFxuICAgIHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgdGhpcy5kb2MgPSA8RG9jdW1lbnQ+ZG9jdW1lbnQ7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy52aWV3SW5pdCQsIHRoaXMuY29udGVudEluaXQkXSlcbiAgICAgIC5waXBlKGZpbHRlcigoW3ZpZXdJbml0LCBjb250ZW50SW5pdF0pID0+IHZpZXdJbml0ICYmIGNvbnRlbnRJbml0KSwgdGFrZSgxKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIHRoaXMuc2V0QWN0aXZlRGlyZWN0aXZlKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9DdXJyZW50SW5TcHkoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2aWV3SW5pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBjb250ZW50SW5pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBAQ29udGVudENoaWxkcmVuKEJzU2Nyb2xsc3B5RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGRpcmVjdGl2ZXMhOiBRdWVyeUxpc3Q8QnNTY3JvbGxzcHlEaXJlY3RpdmU+O1xuICBAVmlld0NoaWxkcmVuKCdhbmNob3InKSBhbmNob3JzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50Pj47XG5cbiAgZG9jOiBEb2N1bWVudDtcbiAgYWN0aXZlRGlyZWN0aXZlOiBCc1Njcm9sbHNweURpcmVjdGl2ZSB8IG51bGwgPSBudWxsO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnZpZXdJbml0JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY29udGVudEluaXQkLm5leHQodHJ1ZSk7XG4gIH1cbiAgXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICB0aGlzLnNldEFjdGl2ZURpcmVjdGl2ZSgpO1xuICAgIHRoaXMuc2Nyb2xsVG9DdXJyZW50SW5TcHkoKTtcbiAgfVxuXG4gIHNldEFjdGl2ZURpcmVjdGl2ZSgpIHtcbiAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5zY3JvbGxPZmZzZXRTZXJ2aWNlLmdldFNjcm9sbE9mZnNldCgpWzFdO1xuICAgIGNvbnN0IGRpcnMgPSB0aGlzLmRpcmVjdGl2ZXMuZmlsdGVyKChkKSA9PiBkLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55IDwgb2Zmc2V0WSk7XG5cbiAgICBpZiAodGhpcy5kaXJlY3RpdmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoZGlycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gdGhpcy5kaXJlY3RpdmVzLmdldCgwKSA/PyBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IGRpcnNbZGlycy5sZW5ndGggLSAxXTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxUb0N1cnJlbnRJblNweSgpIHtcbiAgICBpZiAoKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSAmJiAod2luZG93LmlubmVyV2lkdGggPj0gNzY4KSkge1xuICAgICAgaWYgKHRoaXMuYWN0aXZlRGlyZWN0aXZlKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5kaXJlY3RpdmVzLnRvQXJyYXkoKS5maW5kSW5kZXgoKHYsIGkpID0+IHYgPT09IHRoaXMuYWN0aXZlRGlyZWN0aXZlKTtcbiAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5hbmNob3JzLmdldChpbmRleCk7XG4gICAgICAgIGlmIChhbmNob3IgJiYgYW5jaG9yLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgIGFuY2hvci5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIHNjcm9sbFRvSGVhZGVyKGRpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IGhlYWRlciA9IGRpcmVjdGl2ZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5zY3JvbGxPZmZzZXRTZXJ2aWNlLmdldFNjcm9sbE9mZnNldCgpWzFdO1xuICAgICAgY29uc3QgeSA9IGhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWSAtIG9mZnNldFkgKyAxO1xuICAgICAgd2luZG93LnNjcm9sbFRvKHt0b3A6IHksIGJlaGF2aW9yOiAnc21vb3RoJ30pO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic3B5XCI+XG4gICAgPHVsIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxuICAgICAgICBAZm9yIChkaXIgb2YgZGlyZWN0aXZlczsgdHJhY2sgZGlyOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxzcGFuIFthdHRyLmRhdGEtaW5kZXhdPVwiaVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbY2xhc3NdPVwiJ25hdicgKyBkaXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRhZ05hbWVcIiBbY2xhc3MuZnctYm9sZF09XCJhY3RpdmVEaXJlY3RpdmU/LmVsZW1lbnQgPT09IGRpci5lbGVtZW50XCIgKGNsaWNrKT1cInNjcm9sbFRvSGVhZGVyKGRpcilcIiBbdGl0bGVdPVwiZGlyLmVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudFwiICNhbmNob3I+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgPC91bD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class BsScrollspyDirective {
|
|
4
4
|
constructor(element) {
|
|
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
13
13
|
selector: '[bsScrollspy]'
|
|
14
14
|
}]
|
|
15
15
|
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2Nyb2xsc3B5L3NyYy9kaXJlY3RpdmVzL3Njcm9sbHNweS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFLdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFZLE9BQW1CO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7OEdBSlUsb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1Njcm9sbHNweV0nXG59KVxuZXhwb3J0IGNsYXNzIEJzU2Nyb2xsc3B5RGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgfVxuXG4gIGVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbn1cbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Directive
|
|
2
|
-
import { BsSearchboxComponent } from '../searchbox/searchbox.component';
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
import * as i1 from "../searchbox/searchbox.component";
|
|
5
4
|
export class BsEnterSearchTermTemplateDirective {
|
|
@@ -15,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
15
14
|
selector: '[bsEnterSearchTermTemplate]',
|
|
16
15
|
}]
|
|
17
16
|
}], ctorParameters: () => [{ type: i1.BsSearchboxComponent }, { type: i0.TemplateRef }] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXItc2VhcmNoLXRlcm0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zZWFyY2hib3gvc3JjL2RpcmVjdGl2ZXMvZW50ZXItc2VhcmNoLXRlcm0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQU92RCxNQUFNLE9BQU8sa0NBQWtDO0lBQzdDLFlBQVksU0FBcUMsRUFBRSxRQUF3QjtRQUN6RSxTQUFTLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDO0lBQy9DLENBQUM7OEdBSFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBSDlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIYXNJZCB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC9oYXMtaWQnO1xuaW1wb3J0IHsgQnNTZWFyY2hib3hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic0VudGVyU2VhcmNoVGVybVRlbXBsYXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIEJzRW50ZXJTZWFyY2hUZXJtVGVtcGxhdGVEaXJlY3RpdmU8VCBleHRlbmRzIEhhc0lkPFU+LCBVPiB7XG4gIGNvbnN0cnVjdG9yKHNlYXJjaGJveDogQnNTZWFyY2hib3hDb21wb25lbnQ8VCwgVT4sIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPikge1xuICAgIHNlYXJjaGJveC5lbnRlclNlYXJjaHRlcm1UZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Directive
|
|
2
|
-
import { BsSearchboxComponent } from '../searchbox/searchbox.component';
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
import * as i1 from "../searchbox/searchbox.component";
|
|
5
4
|
export class BsNoResultsTemplateDirective {
|
|
@@ -15,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
15
14
|
selector: '[bsNoResultsTemplate]',
|
|
16
15
|
}]
|
|
17
16
|
}], ctorParameters: () => [{ type: i1.BsSearchboxComponent }, { type: i0.TemplateRef }] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVzdWx0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NlYXJjaGJveC9zcmMvZGlyZWN0aXZlcy9uby1yZXN1bHRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkQsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUFZLFNBQXFDLEVBQUUsUUFBd0I7UUFDekUsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztJQUN6QyxDQUFDOzhHQUhVLDRCQUE0QjtrR0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSGFzSWQgfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAvaGFzLWlkJztcbmltcG9ydCB7IEJzU2VhcmNoYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNOb1Jlc3VsdHNUZW1wbGF0ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBCc05vUmVzdWx0c1RlbXBsYXRlRGlyZWN0aXZlPFQgZXh0ZW5kcyBIYXNJZDxVPiwgVT4ge1xuICBjb25zdHJ1Y3RvcihzZWFyY2hib3g6IEJzU2VhcmNoYm94Q29tcG9uZW50PFQsIFU+LCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4pIHtcbiAgICBzZWFyY2hib3gubm9SZXN1bHRzVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Directive, Input
|
|
2
|
-
import { BsSearchboxComponent } from '../searchbox/searchbox.component';
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
import * as i1 from "../searchbox/searchbox.component";
|
|
5
4
|
export class BsSuggestionTemplateDirective {
|
|
@@ -30,4 +29,4 @@ export class BsSuggestionTemplateContext {
|
|
|
30
29
|
this.searchbox = null;
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NlYXJjaGJveC9zcmMvZGlyZWN0aXZlcy9zdWdnZXN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7O0FBTzlELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBb0IsU0FBeUMsRUFBRSxRQUE0RDtRQUF2RyxjQUFTLEdBQVQsU0FBUyxDQUFnQztRQUMzRCxTQUFTLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEdBQTRDLEVBQzVDLEdBQVE7UUFFUixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFhLHNCQUFzQixDQUFDLEtBQWM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7OEdBZFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7bUhBYWMsc0JBQXNCO3NCQUFsQyxLQUFLOztBQUtSLE1BQU0sT0FBTywyQkFBMkI7SUFBeEM7UUFDUyxjQUFTLEdBQVUsSUFBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBbUMsSUFBSyxDQUFDO0lBQzNELENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIYXNJZCB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC9oYXMtaWQnO1xuaW1wb3J0IHsgQnNTZWFyY2hib3hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1N1Z2dlc3Rpb25UZW1wbGF0ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBCc1N1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZTxURGF0YSBleHRlbmRzIEhhc0lkPFU+LCBVPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VhcmNoYm94OiBCc1NlYXJjaGJveENvbXBvbmVudDxURGF0YSwgVT4sIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxCc1N1Z2dlc3Rpb25UZW1wbGF0ZUNvbnRleHQ8VERhdGEsIFU+Pikge1xuICAgIHNlYXJjaGJveC5zdWdnZXN0aW9uVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuICBcbiAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFREYXRhIGV4dGVuZHMgSGFzSWQ8VT4sIFU+KFxuICAgIGRpcjogQnNTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmU8VERhdGEsIFU+LFxuICAgIGN0eDogYW55XG4gICk6IGN0eCBpcyBCc1N1Z2dlc3Rpb25UZW1wbGF0ZUNvbnRleHQ8RXhjbHVkZTxURGF0YSwgZmFsc2UgfCAwIHwgJycgfCBudWxsIHwgdW5kZWZpbmVkPiwgVT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGJzU3VnZ2VzdGlvblRlbXBsYXRlT2YodmFsdWU6IFREYXRhW10pIHtcbiAgICB0aGlzLnNlYXJjaGJveC5zdWdnZXN0aW9ucyA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCc1N1Z2dlc3Rpb25UZW1wbGF0ZUNvbnRleHQ8VERhdGEgZXh0ZW5kcyBIYXNJZDxVPiwgVT4ge1xuICBwdWJsaWMgJGltcGxpY2l0OiBURGF0YSA9IG51bGwhO1xuICBwdWJsaWMgc2VhcmNoYm94OiBCc1NlYXJjaGJveENvbXBvbmVudDxURGF0YSwgVT4gPSBudWxsITtcbn0iXX0=
|