@coreui/angular-pro 5.0.0-alpha.9 → 5.0.0-next.17
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/README.md +1 -1
- package/esm2022/lib/accordion/accordion/accordion.component.mjs +23 -17
- package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
- package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/accordion/accordion.service.mjs +4 -4
- package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
- package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
- package/esm2022/lib/alert/alert.component.mjs +32 -40
- package/esm2022/lib/alert/alert.module.mjs +4 -4
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/backdrop/backdrop.service.mjs +4 -4
- package/esm2022/lib/badge/badge.component.mjs +3 -3
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +9 -8
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +6 -6
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/lib/button/button-close.directive.mjs +3 -3
- package/esm2022/lib/button/button.directive.mjs +3 -3
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/button-group/button-group.module.mjs +4 -4
- package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar.component.mjs +6 -6
- package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +7 -12
- package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +6 -6
- package/esm2022/lib/calendar/calendar.module.mjs +4 -4
- package/esm2022/lib/calendar/calendar.service.mjs +4 -4
- package/esm2022/lib/calendar/calendar.utils.mjs +1 -1
- package/esm2022/lib/callout/callout.component.mjs +3 -3
- package/esm2022/lib/callout/callout.module.mjs +4 -4
- package/esm2022/lib/card/card-body.component.mjs +3 -3
- package/esm2022/lib/card/card-footer.component.mjs +3 -3
- package/esm2022/lib/card/card-group.component.mjs +3 -3
- package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
- package/esm2022/lib/card/card-header.component.mjs +3 -3
- package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
- package/esm2022/lib/card/card-img.directive.mjs +3 -3
- package/esm2022/lib/card/card-link.directive.mjs +3 -3
- package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
- package/esm2022/lib/card/card-text.directive.mjs +3 -3
- package/esm2022/lib/card/card-title.directive.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +3 -3
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel/carousel.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +5 -6
- package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +5 -6
- package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +9 -10
- package/esm2022/lib/carousel/carousel-state.mjs +4 -4
- package/esm2022/lib/carousel/carousel.config.mjs +3 -3
- package/esm2022/lib/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel.service.mjs +3 -3
- package/esm2022/lib/collapse/collapse.directive.mjs +32 -42
- package/esm2022/lib/collapse/collapse.module.mjs +4 -4
- package/esm2022/lib/date-picker/date-picker.component.mjs +8 -10
- package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
- package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +8 -10
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +30 -38
- package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
- package/esm2022/lib/element-cover/element-cover.component.mjs +6 -6
- package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
- package/esm2022/lib/footer/footer.component.mjs +3 -3
- package/esm2022/lib/footer/footer.module.mjs +4 -4
- package/esm2022/lib/form/form/form.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check-input.directive.mjs +12 -10
- package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
- package/esm2022/lib/form/form-control/form-control.directive.mjs +4 -4
- package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
- package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
- package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
- package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
- package/esm2022/lib/form/form.module.mjs +4 -4
- package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
- package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
- package/esm2022/lib/grid/col.component.mjs +3 -3
- package/esm2022/lib/grid/col.directive.mjs +4 -4
- package/esm2022/lib/grid/container.component.mjs +3 -3
- package/esm2022/lib/grid/grid.module.mjs +4 -4
- package/esm2022/lib/grid/gutter.directive.mjs +4 -4
- package/esm2022/lib/grid/row.component.mjs +3 -3
- package/esm2022/lib/grid/row.directive.mjs +4 -4
- package/esm2022/lib/header/header/header.component.mjs +3 -3
- package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
- package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
- package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
- package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +4 -4
- package/esm2022/lib/header/header.module.mjs +4 -4
- package/esm2022/lib/image/img.directive.mjs +3 -3
- package/esm2022/lib/image/img.module.mjs +4 -4
- package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.module.mjs +4 -4
- package/esm2022/lib/loading-button/loading-button.component.mjs +17 -23
- package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
- package/esm2022/lib/modal/modal/modal.component.mjs +4 -4
- package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
- package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/modal/modal.service.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +65 -33
- package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +10 -9
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +8 -14
- package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
- package/esm2022/lib/nav/nav-item.component.mjs +3 -3
- package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
- package/esm2022/lib/nav/nav.component.mjs +3 -3
- package/esm2022/lib/nav/nav.module.mjs +4 -4
- package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
- package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +4 -4
- package/esm2022/lib/navbar/navbar.component.mjs +4 -4
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.directive.mjs +4 -4
- package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
- package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.directive.mjs +13 -20
- package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
- package/esm2022/lib/popover/popover/popover.component.mjs +4 -4
- package/esm2022/lib/popover/popover.directive.mjs +4 -4
- package/esm2022/lib/popover/popover.module.mjs +4 -4
- package/esm2022/lib/progress/progress-bar.component.mjs +21 -94
- package/esm2022/lib/progress/progress-bar.directive.mjs +112 -0
- package/esm2022/lib/progress/progress-stacked.component.mjs +19 -0
- package/esm2022/lib/progress/progress.component.mjs +24 -27
- package/esm2022/lib/progress/progress.module.mjs +19 -9
- package/esm2022/lib/progress/progress.type.mjs +1 -1
- package/esm2022/lib/progress/public_api.mjs +3 -1
- package/esm2022/lib/services/class-toggle.service.mjs +4 -4
- package/esm2022/lib/services/color-mode.service.mjs +32 -38
- package/esm2022/lib/services/in-memory-storage.service.mjs +3 -3
- package/esm2022/lib/services/intersection.service.mjs +4 -4
- package/esm2022/lib/services/listeners.service.mjs +4 -4
- package/esm2022/lib/services/local-storage.service.mjs +13 -9
- package/esm2022/lib/services/public_api.mjs +1 -1
- package/esm2022/lib/shared/html-attr.directive.mjs +4 -4
- package/esm2022/lib/shared/shared.module.mjs +4 -4
- package/esm2022/lib/shared/template-id.directive.mjs +3 -3
- package/esm2022/lib/shared/theme.directive.mjs +6 -5
- package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +36 -48
- package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +21 -22
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +10 -15
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +7 -7
- package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
- package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +22 -26
- package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +8 -11
- package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +6 -6
- package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +9 -14
- package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +5 -7
- package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table.type.mjs +1 -1
- package/esm2022/lib/smart-table/smart-table.utils.mjs +1 -1
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/table/table-active.directive.mjs +3 -3
- package/esm2022/lib/table/table-color.directive.mjs +3 -3
- package/esm2022/lib/table/table.directive.mjs +4 -4
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +9 -9
- package/esm2022/lib/tabs/tab-content-ref.directive.mjs +14 -11
- package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +7 -8
- package/esm2022/lib/tabs/tab.service.mjs +3 -3
- package/esm2022/lib/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +14 -13
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +14 -13
- package/esm2022/lib/time-picker/time-picker.component.mjs +7 -9
- package/esm2022/lib/time-picker/time-picker.module.mjs +6 -8
- package/esm2022/lib/time-picker/time.utils.mjs +1 -1
- package/esm2022/lib/toast/toast/toast.component.mjs +13 -11
- package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
- package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
- package/esm2022/lib/toast/toast-header/toast-header.component.mjs +5 -6
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
- package/esm2022/lib/toast/toaster/toaster.component.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster.service.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/lib/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/utilities/align.directive.mjs +3 -3
- package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/border.directive.mjs +4 -4
- package/esm2022/lib/utilities/rounded.directive.mjs +4 -4
- package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +4 -4
- package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/utilities.module.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +6 -6
- package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +6 -6
- package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +7 -7
- package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +6 -6
- package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +6 -6
- package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +6 -6
- package/esm2022/lib/widget/widget.module.mjs +4 -4
- package/fesm2022/coreui-angular-pro.mjs +1305 -1271
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/accordion/accordion/accordion.component.d.ts +4 -6
- package/lib/alert/alert.component.d.ts +8 -12
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +1 -0
- package/lib/carousel/carousel-item/carousel-item.component.d.ts +1 -2
- package/lib/collapse/collapse.directive.d.ts +13 -13
- package/lib/dropdown/dropdown/dropdown.component.d.ts +8 -12
- package/lib/form/form-check/form-check-input.directive.d.ts +4 -3
- package/lib/loading-button/loading-button.component.d.ts +4 -5
- package/lib/multi-select/multi-select/multi-select.component.d.ts +6 -3
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +3 -1
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +2 -5
- package/lib/placeholder/placeholder.directive.d.ts +3 -7
- package/lib/progress/progress-bar.component.d.ts +4 -50
- package/lib/progress/progress-bar.directive.d.ts +58 -0
- package/lib/progress/progress-stacked.component.d.ts +7 -0
- package/lib/progress/progress.component.d.ts +9 -16
- package/lib/progress/progress.module.d.ts +3 -1
- package/lib/progress/progress.type.d.ts +12 -13
- package/lib/progress/public_api.d.ts +3 -1
- package/lib/services/color-mode.service.d.ts +8 -5
- package/lib/services/local-storage.service.d.ts +1 -2
- package/lib/services/public_api.d.ts +1 -1
- package/lib/sidebar/sidebar/sidebar.component.d.ts +13 -11
- package/lib/smart-pagination/smart-pagination.component.d.ts +4 -8
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +1 -0
- package/lib/smart-table/smart-table.type.d.ts +3 -2
- package/lib/smart-table/smart-table.utils.d.ts +1 -1
- package/lib/tabs/tab-content/tab-content.component.d.ts +1 -0
- package/lib/tabs/tab-content-ref.directive.d.ts +4 -2
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +2 -0
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +2 -0
- package/lib/toast/toast/toast.component.d.ts +3 -2
- package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +9 -10
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { booleanAttribute, Component, ContentChildren, DestroyRef, ElementRef, EventEmitter, forwardRef, HostListener, inject, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
3
|
-
import { NgClass,
|
|
3
|
+
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { filter, tap } from 'rxjs/operators';
|
|
6
6
|
import { convert12hTo24h, convert24hTo12h, convertTimeToDate, getAmPm, getDayPeriods, getListOfHours, getListOfMinutes, getListOfSeconds, isHour12, isValidTime } from './time.utils';
|
|
@@ -429,21 +429,19 @@ export class TimePickerComponent {
|
|
|
429
429
|
}), takeUntilDestroyed(this.#destroyRef))
|
|
430
430
|
.subscribe();
|
|
431
431
|
}
|
|
432
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
433
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
432
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
433
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: TimePickerComponent, isStandalone: true, selector: "c-time-picker", inputs: { cleaner: ["cleaner", "cleaner", booleanAttribute], dateTimeFormatOptions: "dateTimeFormatOptions", disabled: ["disabled", "disabled", booleanAttribute], filterHours: "filterHours", filterMinutes: "filterMinutes", filterSeconds: "filterSeconds", indicator: ["indicator", "indicator", booleanAttribute], inputReadOnly: ["inputReadOnly", "inputReadOnly", booleanAttribute], locale: "locale", placeholder: "placeholder", seconds: ["seconds", "seconds", booleanAttribute], size: "size", time: "time", variant: "variant", valid: "valid", visible: ["visible", "visible", booleanAttribute] }, outputs: { timeChange: "timeChange" }, host: { listeners: { "blur": "onBlur()" } }, providers: [
|
|
434
434
|
{
|
|
435
435
|
provide: NG_VALUE_ACCESSOR,
|
|
436
436
|
useExisting: forwardRef(() => TimePickerComponent),
|
|
437
437
|
multi: true
|
|
438
438
|
}
|
|
439
|
-
], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }], exportAs: ["cTimePicker"], usesOnChanges: true, ngImport: i0, template: "
|
|
439
|
+
], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }], exportAs: ["cTimePicker"], usesOnChanges: true, ngImport: i0, template: "@if (variant === 'select') {\n <div class=\"date-picker-timepickers\">\n <div class=\"picker time-picker\">\n <div [formGroup]=\"selectTime\" [ngClass]=\"timePickerClasses\" class=\"time-picker-body\">\n <span class=\"time-picker-inline-icon\"></span>\n <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectHours\">\n @for (hour of listOfHours12; track trackByHour; let i = $index) {\n <option [attr.disabled]=\"hour.disabled || null\" [ngValue]=\"hour.value\">\n {{ hour.label }}\n </option>\n }\n </select>\n {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectMinutes\">\n @for (minute of listOfMinutes; track trackByHour; let i = $index) {\n <option [attr.disabled]=\"minute.disabled || null\" [ngValue]=\"minute.value\">\n {{ minute.label }}\n </option>\n }\n </select>\n @if (seconds) {\n {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectSeconds\">\n @for (second of listOfSeconds; track trackByHour; let i = $index) {\n <option [attr.disabled]=\"second.disabled || null\" [ngValue]=\"second.value\">\n {{ second.label }}\n </option>\n }\n </select>\n }\n @if (hour12) {\n <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectDayPeriod\">\n @for (dayPeriod of dayPeriods; track dayPeriod) {\n <option [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">\n {{ dayPeriod.label }}\n </option>\n }\n </select>\n }\n </div>\n </div>\n </div>\n}\n@if (variant === 'roll') {\n <c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" [ngClass]=\"timePickerClasses\" [visible]=\"visible\">\n <div [caret]=\"false\" cDropdownToggle class=\"time-picker-input-group\">\n <input (blur)=\"handleBlur($event);\"\n (change)=\"handleTimeInputChange($event)\"\n (focus)=\"handleFocus($event)\"\n [attr.disabled]=\"disabled ?? dropdown.visible ? '' : null\"\n [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"timeInput\"\n [placeholder]=\"placeholder\"\n [readonly]=\"inputReadOnly ?? null\"\n class=\"time-picker-input\"\n >\n @if (indicator) {\n <div class=\"time-picker-indicator\"></div>\n }\n @if (cleaner && time && !disabled) {\n <div (click)=\"!disabled && handleClear($event)\" class=\"time-picker-cleaner\" role=\"button\"></div>\n }\n </div>\n <div #dropdownMenu=\"cDropdownMenu\" cDropdownMenu class=\"time-picker-dropdown py-0\">\n <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'hour')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfHours12\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"hour\"\n role=\"listbox\"\n />\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'minute')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfMinutes\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"minute\"\n role=\"listbox\"\n />\n @if (seconds) {\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'second')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfSeconds\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"second\"\n role=\"listbox\"\n />\n }\n @if (hour12) {\n <c-time-picker-roll-am-pm\n (selectedChange)=\"handleSelectDayPeriodChange($event)\"\n [disabled]=\"disabled\"\n [elements]=\"dayPeriods\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"dayPeriod\"\n role=\"listbox\"\n />\n }\n </div>\n @if (templates?.timePickerFooter) {\n <div class=\"time-picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.timePickerFooter; context: {$implicit: dropdown}\" />\n </div>\n }\n </div>\n </c-dropdown>\n}\n", styles: [".disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: FormSelectDirective, selector: "select[cSelect]", inputs: ["sizing", "valid"] }, { kind: "component", type: TimePickerRollColComponent, selector: "c-time-picker-roll-col", inputs: ["disabled", "elements", "onClick", "selected", "refresh"], outputs: ["selectedChange"], exportAs: ["cTimePickerRollCol"] }, { kind: "component", type: TimePickerRollAmPmComponent, selector: "c-time-picker-roll-am-pm", inputs: ["disabled", "elements", "onClick", "selected", "refresh"], outputs: ["selectedChange"] }] }); }
|
|
440
440
|
}
|
|
441
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
441
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
442
442
|
type: Component,
|
|
443
443
|
args: [{ selector: 'c-time-picker', exportAs: 'cTimePicker', standalone: true, imports: [
|
|
444
444
|
NgClass,
|
|
445
|
-
NgIf,
|
|
446
|
-
NgForOf,
|
|
447
445
|
NgTemplateOutlet,
|
|
448
446
|
ReactiveFormsModule,
|
|
449
447
|
DropdownComponent,
|
|
@@ -461,7 +459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
461
459
|
useExisting: forwardRef(() => TimePickerComponent),
|
|
462
460
|
multi: true
|
|
463
461
|
}
|
|
464
|
-
], template: "
|
|
462
|
+
], template: "@if (variant === 'select') {\n <div class=\"date-picker-timepickers\">\n <div class=\"picker time-picker\">\n <div [formGroup]=\"selectTime\" [ngClass]=\"timePickerClasses\" class=\"time-picker-body\">\n <span class=\"time-picker-inline-icon\"></span>\n <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectHours\">\n @for (hour of listOfHours12; track trackByHour; let i = $index) {\n <option [attr.disabled]=\"hour.disabled || null\" [ngValue]=\"hour.value\">\n {{ hour.label }}\n </option>\n }\n </select>\n {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectMinutes\">\n @for (minute of listOfMinutes; track trackByHour; let i = $index) {\n <option [attr.disabled]=\"minute.disabled || null\" [ngValue]=\"minute.value\">\n {{ minute.label }}\n </option>\n }\n </select>\n @if (seconds) {\n {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectSeconds\">\n @for (second of listOfSeconds; track trackByHour; let i = $index) {\n <option [attr.disabled]=\"second.disabled || null\" [ngValue]=\"second.value\">\n {{ second.label }}\n </option>\n }\n </select>\n }\n @if (hour12) {\n <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectDayPeriod\">\n @for (dayPeriod of dayPeriods; track dayPeriod) {\n <option [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">\n {{ dayPeriod.label }}\n </option>\n }\n </select>\n }\n </div>\n </div>\n </div>\n}\n@if (variant === 'roll') {\n <c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" [ngClass]=\"timePickerClasses\" [visible]=\"visible\">\n <div [caret]=\"false\" cDropdownToggle class=\"time-picker-input-group\">\n <input (blur)=\"handleBlur($event);\"\n (change)=\"handleTimeInputChange($event)\"\n (focus)=\"handleFocus($event)\"\n [attr.disabled]=\"disabled ?? dropdown.visible ? '' : null\"\n [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"timeInput\"\n [placeholder]=\"placeholder\"\n [readonly]=\"inputReadOnly ?? null\"\n class=\"time-picker-input\"\n >\n @if (indicator) {\n <div class=\"time-picker-indicator\"></div>\n }\n @if (cleaner && time && !disabled) {\n <div (click)=\"!disabled && handleClear($event)\" class=\"time-picker-cleaner\" role=\"button\"></div>\n }\n </div>\n <div #dropdownMenu=\"cDropdownMenu\" cDropdownMenu class=\"time-picker-dropdown py-0\">\n <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'hour')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfHours12\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"hour\"\n role=\"listbox\"\n />\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'minute')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfMinutes\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"minute\"\n role=\"listbox\"\n />\n @if (seconds) {\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'second')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfSeconds\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"second\"\n role=\"listbox\"\n />\n }\n @if (hour12) {\n <c-time-picker-roll-am-pm\n (selectedChange)=\"handleSelectDayPeriodChange($event)\"\n [disabled]=\"disabled\"\n [elements]=\"dayPeriods\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"dayPeriod\"\n role=\"listbox\"\n />\n }\n </div>\n @if (templates?.timePickerFooter) {\n <div class=\"time-picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.timePickerFooter; context: {$implicit: dropdown}\" />\n </div>\n }\n </div>\n </c-dropdown>\n}\n", styles: [".disabled{pointer-events:none}\n"] }]
|
|
465
463
|
}], ctorParameters: () => [], propDecorators: { cleaner: [{
|
|
466
464
|
type: Input,
|
|
467
465
|
args: [{ transform: booleanAttribute }]
|
|
@@ -512,4 +510,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
512
510
|
type: ContentChildren,
|
|
513
511
|
args: [TemplateIdDirective, { descendants: true }]
|
|
514
512
|
}] } });
|
|
515
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsaUJBQWlCLEVBR2pCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFdBQVcsRUFFWixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEcs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QyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixVQUFVO3NCQUFuQixNQUFNO2dCQUVlLE1BQU07c0JBQTNCLFlBQVk7dUJBQUMsTUFBTTtnQkFJZ0MsV0FBVztzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSWxELGdCQUFnQjtzQkFEZixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgY29udmVydDEyaFRvMjRoLFxuICBjb252ZXJ0MjRoVG8xMmgsXG4gIGNvbnZlcnRUaW1lVG9EYXRlLFxuICBEYXRlVGltZUZvcm1hdE9wdGlvbnMsXG4gIERheVBlcmlvZCxcbiAgZ2V0QW1QbSxcbiAgZ2V0RGF5UGVyaW9kcyxcbiAgZ2V0TGlzdE9mSG91cnMsXG4gIGdldExpc3RPZk1pbnV0ZXMsXG4gIGdldExpc3RPZlNlY29uZHMsXG4gIGlzSG91cjEyLFxuICBpc1ZhbGlkVGltZSxcbiAgSVRpbWVWYWx1ZVxufSBmcm9tICcuL3RpbWUudXRpbHMnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIERyb3Bkb3duTWVudURpcmVjdGl2ZSwgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybVNlbGVjdERpcmVjdGl2ZSwgSW5wdXRHcm91cENvbXBvbmVudCwgSW5wdXRHcm91cFRleHREaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtJztcbmltcG9ydCB7IFRlbXBsYXRlSWREaXJlY3RpdmUgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgVGltZVBpY2tlclJvbGxDb2xDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLXJvbGwtY29sL3RpbWUtcGlja2VyLXJvbGwtY29sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyUm9sbEFtUG1Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLXJvbGwtY29sL3RpbWUtcGlja2VyLXJvbGwtYW0tcG0uY29tcG9uZW50JztcblxuLy8gdG9kbzogRm9jdXMgbWFuYWdlbWVudFxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjVGltZVBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUsXG4gICAgRHJvcGRvd25NZW51RGlyZWN0aXZlLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlLFxuICAgIEZvcm1TZWxlY3REaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cENvbXBvbmVudCxcbiAgICBJbnB1dEdyb3VwVGV4dERpcmVjdGl2ZSxcbiAgICBUaW1lUGlja2VyUm9sbENvbENvbXBvbmVudCxcbiAgICBUaW1lUGlja2VyUm9sbEFtUG1Db21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaW1lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuXG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBjbGVhbmVyIGJ1dHRvbi5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgY2xlYW5lcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNldHMgRGF0ZVRpbWUgZm9ybWF0IG9wdGlvbnMgaW5jbHVkaW5nIHRpbWVab25lXG4gICAqIEB0eXBlIERhdGVUaW1lRm9ybWF0T3B0aW9uc1xuICAgKiBAZGVmYXVsdCB7fVxuICAgKiBAbm90ZSBUaGUgZGF0ZSBvYmplY3QgZG9lc24ndCBzdG9yZSB0aW1lWm9uZSwgaXQga2VlcHMgdGhlIGxvY2FsIHRpbWV6b25lIG9mIHRoZSBicm93c2VyLCByZWdhcmRsZXNzIGlmIHlvdSBwYXJzZWQgVVRDIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgZGF0ZVRpbWVGb3JtYXRPcHRpb25zOiBEYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7fTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBkaXNhYmxlZCBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBhdmFpbGFibGUgaG91cnMgdG8gcGljay5cbiAgICogQHR5cGUgKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgZmlsdGVySG91cnM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogRmlsdGVyIGF2YWlsYWJsZSBtaW51dGVzIHRvIHBpY2suXG4gICAqIEB0eXBlICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIGZpbHRlck1pbnV0ZXM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogRmlsdGVyIGF2YWlsYWJsZSBzZWNvbmRzIHRvIHBpY2suXG4gICAqIEB0eXBlICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIGZpbHRlclNlY29uZHM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBpbnB1dCBpbmRpY2F0b3IuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluZGljYXRvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgcmVhZG9ubHkgc3RhdGUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpbnB1dFJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlZmF1bHQgbG9jYWxlIGZvciBjb21wb25lbnRzLiBJZiBub3Qgc2V0LCBpdCBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgYnJvd3Nlci5cbiAgICogQHR5cGUgc3RyaW5nXG4gICAqIEBkZWZhdWx0IGRlZmF1bHRcbiAgICovXG4gIEBJbnB1dCgpIGxvY2FsZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgc2hvcnQgaGludCB2aXNpYmxlIGluIHRpbWUgaW5wdXQuXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnU2VsZWN0IHRpbWUnXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCB0aW1lJztcblxuICAvKipcbiAgICogVG9nZ2xlIHNlY29uZHMgdmlzaWJpbGl0eS5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNlY29uZHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2l6ZSB0aGUgY29tcG9uZW50IHNtYWxsIG9yIGxhcmdlLlxuICAgKiBAdHlwZSAnc20nIHwgJ2xnJyB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIHNpemU/OiAnc20nIHwgJ2xnJztcblxuICAvKipcbiAgICogSW5pdGlhbCBzZWxlY3RlZCB0aW1lLlxuICAgKiBAdHlwZSBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IG51bWJlclxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB0aW1lKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIGlzVmFsaWRUaW1lKHZhbHVlKSkge1xuICAgICAgY29uc3QgdGltZSA9IGNvbnZlcnRUaW1lVG9EYXRlKHZhbHVlKTtcbiAgICAgIGlmICghdGltZSkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmRheVBlcmlvZCA9IGdldEFtUG0odGltZSwgdGhpcy5sb2NhbGUpO1xuICAgICAgaWYgKHRoaXMuX3RpbWU/LmdldFRpbWUoKSAhPT0gdGltZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgdGhpcy5fdGltZSA9IG5ldyBEYXRlKHRpbWUuZ2V0VGltZSgpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhclRpbWUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdGltZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdGltZTtcbiAgfVxuXG4gIHByaXZhdGUgX3RpbWU/OiBEYXRlO1xuICBwcml2YXRlIF90aW1lSW50ZXJuYWw/OiBEYXRlO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRpbWUgcGlja2VyIHZhcmlhbnQgdG8gYSByb2xsIG9yIHNlbGVjdC5cbiAgICogQHR5cGUgJ3JvbGwnIHwgJ3NlbGVjdCdcbiAgICogQGRlZmF1bHQgJ3JvbGwnXG4gICAqL1xuICBASW5wdXQoKSB2YXJpYW50OiAncm9sbCcgfCAnc2VsZWN0JyA9ICdyb2xsJztcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc3VhbCB2YWxpZGF0aW9uIGZlZWRiYWNrLlxuICAgKiBAdHlwZSBib29sZWFuIHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgdmFsaWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgZHJvcGRvd24gdGltZXBpY2tlciBtZW51IGNvbXBvbmVudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgdGltZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgdW5kZWZpbmVkPihmYWxzZSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGRyb3Bkb3duUmVmITogRWxlbWVudFJlZjtcblxuICB0ZW1wbGF0ZXM6IGFueSA9IHt9O1xuICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlSWREaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgY29udGVudFRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZUlkRGlyZWN0aXZlPjtcblxuICBsaXN0T2ZIb3VycyE6IElUaW1lVmFsdWVbXTtcbiAgbGlzdE9mSG91cnMxMiE6IElUaW1lVmFsdWVbXTtcbiAgbGlzdE9mTWludXRlcyE6IElUaW1lVmFsdWVbXTtcbiAgbGlzdE9mU2Vjb25kcyE6IElUaW1lVmFsdWVbXTtcbiAgaG91cjEyOiBib29sZWFuID0gaXNIb3VyMTIodGhpcy5sb2NhbGUpO1xuICBkYXlQZXJpb2RzID0gW1xuICAgIHsgdmFsdWU6ICdhbScsIGxhYmVsOiAnYW0nIH0sXG4gICAgeyB2YWx1ZTogJ3BtJywgbGFiZWw6ICdwbScgfVxuICBdO1xuXG4gIGdldExpc3RPZkhvdXJzMTIoKTogSVRpbWVWYWx1ZVtdIHtcbiAgICBjb25zdCBsaXN0T2ZIb3VyczEyID0gdGhpcy5ob3VyMTIgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RPZkhvdXJzPy5maWx0ZXIoKGl0ZW0pID0+IChpdGVtLmRheVBlcmlvZCAmJiBpdGVtLmRheVBlcmlvZCA9PT0gdGhpcy5kYXlQZXJpb2QpIHx8ICFpdGVtLmRheVBlcmlvZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxpc3RPZkhvdXJzO1xuICAgIGlmICh0aGlzLmhvdXIxMikge1xuICAgICAgbGlzdE9mSG91cnMxMi5wdXNoKDxJVGltZVZhbHVlPmxpc3RPZkhvdXJzMTIuc2hpZnQoKSk7XG4gICAgfVxuICAgIHJldHVybiBsaXN0T2ZIb3VyczEyO1xuICB9XG5cbiAgc2V0IHRpbWVJbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRpbWVJbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fdGltZUlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB0aW1lSW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aW1lSW5wdXRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3RpbWVJbnB1dFZhbHVlOiBzdHJpbmcgPVxuICAgIHRoaXMudGltZT8udG9Mb2NhbGVUaW1lU3RyaW5nKHRoaXMubG9jYWxlLCB7IHRpbWVTdHlsZTogdGhpcy5zZWNvbmRzID8gJ21lZGl1bScgOiAnc2hvcnQnIH0pID8/XG4gICAgJyc7XG5cbiAgZ2V0IHRpbWVQaWNrZXJDbGFzc2VzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAndGltZS1waWNrZXInOiB0cnVlLFxuICAgICAgW2B0aW1lLXBpY2tlci0ke3RoaXMuc2l6ZX1gXTogISF0aGlzLnNpemUsXG4gICAgICAnZm9ybS1jb250cm9sJzogdGhpcy52YXJpYW50ID09PSAnc2VsZWN0JyAmJiB0aGlzLnZhbGlkICE9PSB1bmRlZmluZWQsXG4gICAgICAnaXMtdmFsaWQnOiB0aGlzLnZhbGlkID09PSB0cnVlLFxuICAgICAgJ2lzLWludmFsaWQnOiB0aGlzLnZhbGlkID09PSBmYWxzZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXG4gICAgfTtcbiAgfVxuXG4gIHNlbGVjdFRpbWUgPSBuZXcgRm9ybUdyb3VwPHtcbiAgICBzZWxlY3RIb3VyczogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgc2VsZWN0TWludXRlczogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgc2VsZWN0U2Vjb25kcz86IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+O1xuICAgIHNlbGVjdERheVBlcmlvZD86IEZvcm1Db250cm9sPCdhbScgfCAncG0nIHwgbnVsbD47XG4gIH0+KFxuICAgIHtcbiAgICAgIHNlbGVjdEhvdXJzOiBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHsgdmFsdWU6IHRoaXMuaG91ciwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSxcbiAgICAgICAgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KHRoaXMuaG91cjEyID8gMTEgOiAyMyldIH1cbiAgICAgICksXG4gICAgICBzZWxlY3RNaW51dGVzOiBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHsgdmFsdWU6IHRoaXMubWludXRlLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LFxuICAgICAgICB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoNTkpXSB9XG4gICAgICApLFxuICAgICAgc2VsZWN0U2Vjb25kczogbmV3IEZvcm1Db250cm9sKFxuICAgICAgICB7IHZhbHVlOiB0aGlzLnNlY29uZCwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSxcbiAgICAgICAgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDU5KV0gfVxuICAgICAgKSxcbiAgICAgIHNlbGVjdERheVBlcmlvZDogbmV3IEZvcm1Db250cm9sKFxuICAgICAgICB7IHZhbHVlOiB0aGlzLmRheVBlcmlvZCwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgKVxuICAgIH0sXG4gICAgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfVxuICApO1xuXG4gIHRpbWVJbnB1dCA9IG5ldyBGb3JtQ29udHJvbChcbiAgICB7XG4gICAgICB2YWx1ZTogdGhpcy50aW1lSW5wdXRWYWx1ZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXG4gICAgfSxcbiAgICB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XG4gICk7XG5cbiAgc2V0IGhvdXIodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9ob3VyICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9ob3VyID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGhvdXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faG91cjtcbiAgfVxuXG4gIHByaXZhdGUgX2hvdXIgPSAtMTtcblxuICBzZXQgbWludXRlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbWludXRlICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9taW51dGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgbWludXRlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbnV0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX21pbnV0ZSA9IC0xO1xuXG4gIHNldCBzZWNvbmQodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9zZWNvbmQgIT09IHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NlY29uZCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzZWNvbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2Vjb25kID0gLTE7XG5cbiAgc2V0IGRheVBlcmlvZCh2YWx1ZSkge1xuICAgIGlmICh0aGlzLl9kYXlQZXJpb2QgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9kYXlQZXJpb2QgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLmxpc3RPZkhvdXJzKSB7XG4gICAgICAgIHRoaXMubGlzdE9mSG91cnMxMiA9IHRoaXMuZ2V0TGlzdE9mSG91cnMxMigpO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXRjaFNlbGVjdFRpbWVWYWx1ZXMoKTtcbiAgICB9XG4gICAgLy8gdGhpcy5saXN0T2ZIb3VyczEyID0gdGhpcy5ob3VyMTJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubGlzdE9mSG91cnM/LmZpbHRlcihcbiAgICAvLyAgICAgKGl0ZW0pID0+IChpdGVtLmRheVBlcmlvZCAmJiBpdGVtLmRheVBlcmlvZCA9PT0gdmFsdWUpIHx8ICFpdGVtLmRheVBlcmlvZFxuICAgIC8vICAgKVxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5saXN0T2ZIb3VycztcbiAgICAvLyB0aGlzLnBhdGNoU2VsZWN0VGltZVZhbHVlcygpO1xuICB9XG5cbiAgZ2V0IGRheVBlcmlvZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF5UGVyaW9kO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF5UGVyaW9kOiBEYXlQZXJpb2QgPSAnYW0nO1xuXG4gIHNldFRpbWUoKSB7XG4gICAgdGhpcy5faG91ciA9IHRoaXMuX2hvdXIgPCAwID8gMCA6IHRoaXMuX2hvdXI7XG4gICAgdGhpcy5fbWludXRlID0gdGhpcy5fbWludXRlIDwgMCA/IDAgOiB0aGlzLl9taW51dGU7XG4gICAgdGhpcy5fc2Vjb25kID0gdGhpcy5fc2Vjb25kIDwgMCA/IDAgOiB0aGlzLl9zZWNvbmQ7XG5cbiAgICBjb25zdCB0aW1lID0gbmV3IERhdGUodGhpcy5fdGltZT8uZ2V0VGltZSgpIHx8IG5ldyBEYXRlKCkpO1xuICAgIHRpbWUuc2V0SG91cnModGhpcy5ob3VyLCB0aGlzLm1pbnV0ZSwgdGhpcy5zZWNvbmQsIDApO1xuICAgIHRoaXMudGltZSA9IHRpbWU7XG4gICAgdGhpcy5lbWl0VGltZSh0aW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclRpbWUoKSB7XG4gICAgaWYgKHRoaXMudGltZSkge1xuICAgICAgdGhpcy5fdGltZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZW1pdFRpbWUodW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhpcy5faG91ciA9IC0xO1xuICAgIHRoaXMuX21pbnV0ZSA9IC0xO1xuICAgIHRoaXMuX3NlY29uZCA9IC0xO1xuICAgIHRoaXMuZGF5UGVyaW9kID0gJ2FtJztcbiAgICB0aGlzLnBhdGNoU2VsZWN0VGltZVZhbHVlcygpO1xuICAgIHRoaXMudGltZUlucHV0VmFsdWUgPSAnJztcbiAgfVxuXG4gIGVtaXRUaW1lKHRpbWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB0aW1lVmFsdWUgPSAhIXRpbWUgJiYgaXNWYWxpZFRpbWUodGltZSkgPyBuZXcgRGF0ZSh0aW1lLmdldFRpbWUoKSkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuX3RpbWVJbnRlcm5hbD8uZ2V0VGltZSgpICE9PSB0aW1lVmFsdWU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy50aW1lQ2hhbmdlLmVtaXQodGltZVZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGltZVZhbHVlKTtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl90aW1lSW50ZXJuYWwgPSB0aW1lVmFsdWU7XG4gICAgfVxuICAgIHRoaXMudGltZUlucHV0VmFsdWUgPVxuICAgICAgdGhpcy50aW1lPy50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgdGltZVN0eWxlOiB0aGlzLnNlY29uZHMgPyAnbWVkaXVtJyA6ICdzaG9ydCdcbiAgICAgIH0pID8/ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaW1lTGlzdHMoKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcbiAgICB0aGlzLnNldENoYW5nZUhhbmRsZXJzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3RpbWUnXSkge1xuICAgICAgaWYgKCFjaGFuZ2VzWyd0aW1lJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RpbWVJbnRlcm5hbD8uZ2V0VGltZSgpICE9PSBjaGFuZ2VzWyd0aW1lJ10uY3VycmVudFZhbHVlPy5nZXRUaW1lKCkpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlcy5mb3JFYWNoKChjaGlsZDogVGVtcGxhdGVJZERpcmVjdGl2ZSkgPT4ge1xuICAgICAgICB0aGlzLnRlbXBsYXRlc1tjaGlsZC5pZF0gPSBjaGlsZC50ZW1wbGF0ZVJlZjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0VGltZUxpc3RzKCkge1xuICAgIHRoaXMuZGF5UGVyaW9kcyA9IGdldERheVBlcmlvZHModGhpcy5sb2NhbGUsIHRoaXMuZGF0ZVRpbWVGb3JtYXRPcHRpb25zKTtcbiAgICB0aGlzLmhvdXIxMiA9IGlzSG91cjEyKHRoaXMubG9jYWxlKTtcbiAgICB0aGlzLmxpc3RPZkhvdXJzID0gdGhpcy5saXN0T2ZUaW1lU2VnbWVudHMoZ2V0TGlzdE9mSG91cnMsIHRoaXMuZmlsdGVySG91cnMpO1xuICAgIHRoaXMubGlzdE9mTWludXRlcyA9IHRoaXMubGlzdE9mVGltZVNlZ21lbnRzKGdldExpc3RPZk1pbnV0ZXMsIHRoaXMuZmlsdGVyTWludXRlcyk7XG4gICAgdGhpcy5saXN0T2ZTZWNvbmRzID0gdGhpcy5saXN0T2ZUaW1lU2VnbWVudHMoZ2V0TGlzdE9mU2Vjb25kcywgdGhpcy5maWx0ZXJTZWNvbmRzKTtcbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnc2VsZWN0Jykge1xuICAgICAgY29uc3QgdW5kZWZTZWdtZW50ID0geyB2YWx1ZTogLTEsIGxhYmVsOiAnIC0tJywgZGlzYWJsZWQ6IHRydWUgfTtcbiAgICAgIHRoaXMubGlzdE9mSG91cnMudW5zaGlmdCh7IC4uLnVuZGVmU2VnbWVudCB9KTtcbiAgICAgIHRoaXMubGlzdE9mTWludXRlcy51bnNoaWZ0KHsgLi4udW5kZWZTZWdtZW50IH0pO1xuICAgICAgdGhpcy5saXN0T2ZTZWNvbmRzLnVuc2hpZnQoeyAuLi51bmRlZlNlZ21lbnQgfSk7XG4gICAgfVxuICAgIHRoaXMubGlzdE9mSG91cnMxMiA9IHRoaXMuZ2V0TGlzdE9mSG91cnMxMigpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0VGltZSh0aW1lID0gdGhpcy50aW1lKSB7XG4gICAgaWYgKCEhdGltZSAmJiBpc1ZhbGlkVGltZSh0aW1lKSkge1xuICAgICAgY29uc3QgaG91ciA9IHRpbWUuZ2V0SG91cnMoKSA/PyAwO1xuICAgICAgY29uc3QgbWludXRlID0gdGltZS5nZXRNaW51dGVzKCkgPz8gMDtcbiAgICAgIGNvbnN0IHNlY29uZCA9IHRoaXMuc2Vjb25kcyA/IHRpbWUuZ2V0U2Vjb25kcygpID8/IDAgOiAwO1xuXG4gICAgICBjb25zdCBjbG9zZXN0U2Vjb25kID0gdGhpcy5jbG9zZXN0VGltZSh0aGlzLmxpc3RPZlNlY29uZHMsIHNlY29uZCk7XG4gICAgICBjb25zdCBjbG9zZXN0TWludXRlID0gdGhpcy5jbG9zZXN0VGltZSh0aGlzLmxpc3RPZk1pbnV0ZXMsIG1pbnV0ZSk7XG4gICAgICBjb25zdCBjbG9zZXN0SG91ciA9IHRoaXMuY2xvc2VzdFRpbWUodGhpcy5saXN0T2ZIb3VycywgaG91cik7XG5cbiAgICAgIHRoaXMuc2Vjb25kID0gdGhpcy5zZWNvbmRzID8gY2xvc2VzdFNlY29uZC52YWx1ZSA6IDA7XG4gICAgICB0aGlzLm1pbnV0ZSA9IGNsb3Nlc3RNaW51dGUudmFsdWU7XG4gICAgICB0aGlzLmhvdXIgPSBjbG9zZXN0SG91ci52YWx1ZTtcbiAgICAgIHRoaXMuc2V0VGltZSgpO1xuICAgICAgdGhpcy5wYXRjaFNlbGVjdFRpbWVWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZXN0VGltZSh0aW1lQXJyYXk6IElUaW1lVmFsdWVbXSwgdGltZVNlZ21lbnQ6IG51bWJlcikge1xuICAgIGxldCBhcnJheSA9IHRpbWVBcnJheSA/PyBbeyB2YWx1ZTogMCwgbGFiZWw6ICcwMCcgfV07XG4gICAgaWYgKHRoaXMudGltZSkge1xuICAgICAgYXJyYXkgPSB0aW1lQXJyYXkuZmlsdGVyKChlbCkgPT4gZWwudmFsdWUgPj0gMCk7XG4gICAgICBhcnJheSA9IGFycmF5Lmxlbmd0aCA/IGFycmF5IDogdGltZUFycmF5O1xuICAgIH1cbiAgICByZXR1cm4gYXJyYXkucmVkdWNlKChhOiBJVGltZVZhbHVlLCBiOiBJVGltZVZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4gTWF0aC5hYnMoYi52YWx1ZSAtIHRpbWVTZWdtZW50KSA8IE1hdGguYWJzKGEudmFsdWUgLSB0aW1lU2VnbWVudCkgPyBiIDogYTtcbiAgICB9KTtcbiAgfVxuXG4gIGxpc3RPZlRpbWVTZWdtZW50cyhcbiAgICBnZXRMaXN0T2ZUaW1lU2VnbWVudHM6IChcbiAgICAgIGxvY2FsZTogc3RyaW5nLFxuICAgICAgZGF0ZVRpbWVGb3JtYXRPcHRpb25zOiBEYXRlVGltZUZvcm1hdE9wdGlvbnNcbiAgICApID0+IElUaW1lVmFsdWVbXSxcbiAgICBmaWx0ZXJUaW1lU2VnbWVudHM6ICgodGltZVNlZ21lbnRWYWx1ZTogbnVtYmVyKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZFxuICApIHtcbiAgICBjb25zdCBsaXN0ID0gZ2V0TGlzdE9mVGltZVNlZ21lbnRzKHRoaXMubG9jYWxlLCB0aGlzLmRhdGVUaW1lRm9ybWF0T3B0aW9ucykuZmlsdGVyKFxuICAgICAgKHNlZ21lbnQ6IElUaW1lVmFsdWUpID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBmaWx0ZXJUaW1lU2VnbWVudHMgPT09ICdmdW5jdGlvbicgPyBmaWx0ZXJUaW1lU2VnbWVudHMoc2VnbWVudC52YWx1ZSkgOiB0cnVlO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIGxpc3QubGVuZ3RoXG4gICAgICAgICAgID8gbGlzdFxuICAgICAgICAgICA6IGdldExpc3RPZlRpbWVTZWdtZW50cyh0aGlzLmxvY2FsZSwgdGhpcy5kYXRlVGltZUZvcm1hdE9wdGlvbnMpLnNsaWNlKDAsIDEpO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0RGF5UGVyaW9kQ2hhbmdlKGRheVBlcmlvZDogRGF5UGVyaW9kKSB7XG4gICAgaWYgKGRheVBlcmlvZCAhPT0gdGhpcy5kYXlQZXJpb2QpIHtcbiAgICAgIGNvbnN0IGhycyA9IHRoaXMudGltZT8uZ2V0SG91cnMoKSA/PyAodGhpcy5ob3VyIDwgMCA/IDAgOiB0aGlzLmhvdXIpO1xuICAgICAgY29uc3QgaG91ciA9IGhycyA+IDEyID8gY29udmVydDI0aFRvMTJoKGhycykgOiBjb252ZXJ0MTJoVG8yNGgoZGF5UGVyaW9kLCBocnMpO1xuICAgICAgdGhpcy5ob3VyID0gdGhpcy5jbG9zZXN0VGltZSh0aGlzLmxpc3RPZkhvdXJzLCBob3VyKS52YWx1ZTtcbiAgICAgIGlmIChob3VyID49IDApIHtcbiAgICAgICAgdGhpcy5zZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWxlY3RUaW1lQ2hhbmdlKHZhbHVlOiBudW1iZXIsIHNlZ21lbnQ6ICdob3VyJyB8ICdtaW51dGUnIHwgJ3NlY29uZCcpIHtcbiAgICB0aGlzW3NlZ21lbnRdID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlID49IDApIHtcbiAgICAgIHRoaXMuc2V0VGltZSgpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcbiAgfVxuXG4gIHBhdGNoU2VsZWN0VGltZVZhbHVlcygpIHtcbiAgICBjb25zdCBkYXlQZXJpb2QgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3REYXlQZXJpb2QnKT8udmFsdWU7XG4gICAgaWYgKHRoaXMuZGF5UGVyaW9kICE9PSBkYXlQZXJpb2QpIHtcbiAgICAgIHRoaXMuc2VsZWN0VGltZS5wYXRjaFZhbHVlKHtcbiAgICAgICAgc2VsZWN0RGF5UGVyaW9kOiB0aGlzLmRheVBlcmlvZCA/PyAnYW0nXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgaG91cnMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RIb3VycycpPy52YWx1ZTtcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5zZWxlY3RUaW1lLmdldCgnc2VsZWN0TWludXRlcycpPy52YWx1ZTtcbiAgICBjb25zdCBzZWNvbmRzID0gdGhpcy5zZWxlY3RUaW1lLmdldCgnc2VsZWN0U2Vjb25kcycpPy52YWx1ZTtcbiAgICBjb25zdCBnb1VwZGF0ZSA9XG4gICAgICAodGhpcy5zZWNvbmQgPCAwICYmIHRoaXMubWludXRlIDwgMCkgfHxcbiAgICAgICh0aGlzLmhvdXIgPj0gMCAmJiB0aGlzLm1pbnV0ZSA+PSAwICYmIHRoaXMuc2Vjb25kID49IDApO1xuICAgIGNvbnN0IHRpbWVDaGFuZ2VkID0gdGhpcy5ob3VyICE9PSBob3VycyB8fCB0aGlzLm1pbnV0ZSAhPT0gbWludXRlcyB8fCB0aGlzLnNlY29uZCAhPT0gc2Vjb25kcztcbiAgICBpZiAoZ29VcGRhdGUgJiYgdGltZUNoYW5nZWQpIHtcbiAgICAgIGlmICh0aGlzLmhvdXIgIT09IGhvdXJzKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0VGltZS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBzZWxlY3RIb3VyczogdGhpcy5ob3VyID8/IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5taW51dGUgIT09IG1pbnV0ZXMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHNlbGVjdE1pbnV0ZXM6IHRoaXMubWludXRlID8/IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWNvbmQgIT09IHNlY29uZHMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHNlbGVjdFNlY29uZHM6IHRoaXMuc2Vjb25kID8/IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeUhvdXIoaW5kZXg6IG51bWJlciwgaG91cjogSVRpbWVWYWx1ZSkge1xuICAgIHJldHVybiBob3VyO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAodmFsdWU6IERhdGUgfCB1bmRlZmluZWQpID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBoYW5kbGVUaW1lSW5wdXRDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICRldmVudC50YXJnZXQ/LnZhbHVlO1xuICAgIGlmICghdmFsdWUgfHwgIWlzVmFsaWRUaW1lKHZhbHVlKSkge1xuICAgICAgdGhpcy5jbGVhclRpbWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGltZSA9IGNvbnZlcnRUaW1lVG9EYXRlKHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUodGltZSA/PyBuZXcgRGF0ZShEYXRlLm5vdygpKSk7XG4gIH1cblxuICBoYW5kbGVDbGVhcigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmNsZWFyVGltZSgpO1xuICB9XG5cbiAgaGFuZGxlQmx1cigkZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRyb3Bkb3duUmVmPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9uQmx1cigpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBoYW5kbGVGb2N1cygkZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRyb3Bkb3duUmVmPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XG4gIH1cblxuICBzZXRDaGFuZ2VIYW5kbGVycygpIHtcblxuICAgIGlmICh0aGlzLnZhcmlhbnQgIT09ICdzZWxlY3QnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RUaW1lLmdldCgnc2VsZWN0SG91cnMnKT8udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdFRpbWVDaGFuZ2UoPG51bWJlcj52YWx1ZSwgJ2hvdXInKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZWxlY3RUaW1lLmdldCgnc2VsZWN0TWludXRlcycpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0VGltZUNoYW5nZSg8bnVtYmVyPnZhbHVlLCAnbWludXRlJyk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc2VsZWN0VGltZS5nZXQoJ3NlbGVjdFNlY29uZHMnKT8udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc2Vjb25kcyksXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RUaW1lQ2hhbmdlKDxudW1iZXI+dmFsdWUsICdzZWNvbmQnKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZWxlY3RUaW1lLmdldCgnc2VsZWN0RGF5UGVyaW9kJyk/LnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmhvdXIxMiksXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoPERheVBlcmlvZD52YWx1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInZhcmlhbnQ9PT0nc2VsZWN0J1wiIGNsYXNzPVwiZGF0ZS1waWNrZXItdGltZXBpY2tlcnNcIj5cbiAgPGRpdiBjbGFzcz1cInBpY2tlciB0aW1lLXBpY2tlclwiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJzZWxlY3RUaW1lXCIgW25nQ2xhc3NdPVwidGltZVBpY2tlckNsYXNzZXNcIiBjbGFzcz1cInRpbWUtcGlja2VyLWJvZHlcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1waWNrZXItaW5saW5lLWljb25cIj48L3NwYW4+XG4gICAgICA8c2VsZWN0IChibHVyKT1cIm9uQmx1cigpXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiIFtzaXppbmddPVwic2l6ZSA/PyAnJ1wiXG4gICAgICAgICAgICAgIGNTZWxlY3QgY2xhc3M9XCJ0aW1lLXBpY2tlci1pbmxpbmUtc2VsZWN0IG1zLTBcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RIb3Vyc1wiPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBob3VyIG9mIGxpc3RPZkhvdXJzMTI7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlIb3VyXCIgW2F0dHIuZGlzYWJsZWRdPVwiaG91ci5kaXNhYmxlZCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJob3VyLnZhbHVlXCI+e3tob3VyLmxhYmVsfX08L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgICAge3snIDonfX08c2VsZWN0IChibHVyKT1cIm9uQmx1cigpXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiIFtzaXppbmddPVwic2l6ZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgY1NlbGVjdCBjbGFzcz1cInRpbWUtcGlja2VyLWlubGluZS1zZWxlY3QgbXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdE1pbnV0ZXNcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG1pbnV0ZSBvZiBsaXN0T2ZNaW51dGVzIDsgdHJhY2tCeTogdHJhY2tCeUhvdXJcIiBbYXR0ci5kaXNhYmxlZF09XCJtaW51dGUuZGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm1pbnV0ZS52YWx1ZVwiPnt7bWludXRlLmxhYmVsfX08L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWNvbmRzXCI+XG4gICAgICAgIHt7JyA6J319PHNlbGVjdCAoYmx1cik9XCJvbkJsdXIoKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBbc2l6aW5nXT1cInNpemUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY1NlbGVjdCBjbGFzcz1cInRpbWUtcGlja2VyLWlubGluZS1zZWxlY3QgbXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdFNlY29uZHNcIj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2Vjb25kIG9mIGxpc3RPZlNlY29uZHM7IHRyYWNrQnk6IHRyYWNrQnlIb3VyXCIgW2F0dHIuZGlzYWJsZWRdPVwic2Vjb25kLmRpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInNlY29uZC52YWx1ZVwiPnt7c2Vjb25kLmxhYmVsfX08L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJob3VyMTJcIj5cbiAgICAgICAgPHNlbGVjdCAoYmx1cik9XCJvbkJsdXIoKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBbc2l6aW5nXT1cInNpemUgPz8gJydcIlxuICAgICAgICAgICAgICAgIGNTZWxlY3QgY2xhc3M9XCJ0aW1lLXBpY2tlci1pbmxpbmUtc2VsZWN0IG1zLTBcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3REYXlQZXJpb2RcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBkYXlQZXJpb2Qgb2YgZGF5UGVyaW9kc1wiIFtuZ1ZhbHVlXT1cImRheVBlcmlvZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtcGlja2VyLXJvbGwtY2VsbFwiPnt7ZGF5UGVyaW9kLmxhYmVsfX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48Yy1kcm9wZG93biAjZHJvcGRvd249XCJjRHJvcGRvd25cIiAqbmdJZj1cInZhcmlhbnQ9PT0ncm9sbCdcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIFtuZ0NsYXNzXT1cInRpbWVQaWNrZXJDbGFzc2VzXCJcbiAgICAgICAgICAgIFt2aXNpYmxlXT1cInZpc2libGVcIj5cbiAgPGRpdiBbY2FyZXRdPVwiZmFsc2VcIiBjRHJvcGRvd25Ub2dnbGUgY2xhc3M9XCJ0aW1lLXBpY2tlci1pbnB1dC1ncm91cFwiPlxuICAgIDxpbnB1dCAoYmx1cik9XCJoYW5kbGVCbHVyKCRldmVudCk7XCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVUaW1lSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJoYW5kbGVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPz8gZHJvcGRvd24udmlzaWJsZSA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgIFthdHRyLnBhdHRlcm5dPVwiaG91cjEyID8gJygoKDBbMS05XSl8KDFbMC0yXSkpOihbMC01XSkoWzAtOV0pXFxcXHMoQXxQKU0pJyA6ICcoWzAxXT9bMC05XXwyWzAtM10pOlswLTVdWzAtOV0nXCJcbiAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGltZUlucHV0XCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZE9ubHkgPz8gbnVsbFwiXG4gICAgICAgICAgIGNsYXNzPVwidGltZS1waWNrZXItaW5wdXRcIlxuICAgID5cbiAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yXCIgY2xhc3M9XCJ0aW1lLXBpY2tlci1pbmRpY2F0b3JcIj48L2Rpdj5cbiAgICA8ZGl2IChjbGljayk9XCIhZGlzYWJsZWQgJiYgaGFuZGxlQ2xlYXIoJGV2ZW50KVwiICpuZ0lmPVwiY2xlYW5lciAmJiB0aW1lICYmICFkaXNhYmxlZFwiIGNsYXNzPVwidGltZS1waWNrZXItY2xlYW5lclwiXG4gICAgICAgICByb2xlPVwiYnV0dG9uXCI+PC9kaXY+XG5cbiAgPC9kaXY+XG4gIDxkaXYgI2Ryb3Bkb3duTWVudT1cImNEcm9wZG93bk1lbnVcIiBjRHJvcGRvd25NZW51IGNsYXNzPVwidGltZS1waWNrZXItZHJvcGRvd24gcHktMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1ib2R5IHRpbWUtcGlja2VyLXJvbGxcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cbiAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3RUaW1lQ2hhbmdlKCRldmVudCwgJ2hvdXInKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtlbGVtZW50c109XCJsaXN0T2ZIb3VyczEyXCJcbiAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiaG91clwiXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgID5cbiAgICAgIDwvYy10aW1lLXBpY2tlci1yb2xsLWNvbD5cbiAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3RUaW1lQ2hhbmdlKCRldmVudCwgJ21pbnV0ZScpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2VsZW1lbnRzXT1cImxpc3RPZk1pbnV0ZXNcIlxuICAgICAgICBbcmVmcmVzaF09XCJkcm9wZG93bk1lbnUudmlzaWJsZVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJtaW51dGVcIlxuICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICA+XG4gICAgICA8L2MtdGltZS1waWNrZXItcm9sbC1jb2w+XG4gICAgICA8Yy10aW1lLXBpY2tlci1yb2xsLWNvbFxuICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0VGltZUNoYW5nZSgkZXZlbnQsICdzZWNvbmQnKVwiXG4gICAgICAgICpuZ0lmPVwic2Vjb25kc1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtlbGVtZW50c109XCJsaXN0T2ZTZWNvbmRzXCJcbiAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwic2Vjb25kXCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgPlxuICAgICAgPC9jLXRpbWUtcGlja2VyLXJvbGwtY29sPlxuICAgICAgPGMtdGltZS1waWNrZXItcm9sbC1hbS1wbVxuICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0RGF5UGVyaW9kQ2hhbmdlKCRldmVudClcIiAqbmdJZj1cImhvdXIxMlwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtlbGVtZW50c109XCJkYXlQZXJpb2RzXCJcbiAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiZGF5UGVyaW9kXCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgPlxuICAgICAgPC9jLXRpbWUtcGlja2VyLXJvbGwtYW0tcG0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlcz8udGltZVBpY2tlckZvb3RlclwiIGNsYXNzPVwidGltZS1waWNrZXItZm9vdGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzPy50aW1lUGlja2VyRm9vdGVyOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkcm9wZG93bn1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2MtZHJvcGRvd24+XG4iXX0=
|
|
513
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGlCQUFpQixFQUdqQixPQUFPLEVBQ1AsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixXQUFXLEVBRVosTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFB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LGdCQUFnQixFQUFFO2dCQU9FLGFBQWE7c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTzdCLE1BQU07c0JBQWQsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9rQyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU83QixJQUFJO3NCQUFaLEtBQUs7Z0JBUUYsSUFBSTtzQkFEUCxLQUFLO2dCQTZCRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9rQyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixVQUFVO3NCQUFuQixNQUFNO2dCQUVlLE1BQU07c0JBQTNCLFlBQVk7dUJBQUMsTUFBTTtnQkFJZ0MsV0FBVztzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSWxELGdCQUFnQjtzQkFEZixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgY29udmVydDEyaFRvMjRoLFxuICBjb252ZXJ0MjRoVG8xMmgsXG4gIGNvbnZlcnRUaW1lVG9EYXRlLFxuICBEYXRlVGltZUZvcm1hdE9wdGlvbnMsXG4gIERheVBlcmlvZCxcbiAgZ2V0QW1QbSxcbiAgZ2V0RGF5UGVyaW9kcyxcbiAgZ2V0TGlzdE9mSG91cnMsXG4gIGdldExpc3RPZk1pbnV0ZXMsXG4gIGdldExpc3RPZlNlY29uZHMsXG4gIGlzSG91cjEyLFxuICBpc1ZhbGlkVGltZSxcbiAgSVRpbWVWYWx1ZVxufSBmcm9tICcuL3RpbWUudXRpbHMnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIERyb3Bkb3duTWVudURpcmVjdGl2ZSwgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybVNlbGVjdERpcmVjdGl2ZSwgSW5wdXRHcm91cENvbXBvbmVudCwgSW5wdXRHcm91cFRleHREaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtJztcbmltcG9ydCB7IFRlbXBsYXRlSWREaXJlY3RpdmUgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgVGltZVBpY2tlclJvbGxDb2xDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLXJvbGwtY29sL3RpbWUtcGlja2VyLXJvbGwtY29sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyUm9sbEFtUG1Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLXJvbGwtY29sL3RpbWUtcGlja2VyLXJvbGwtYW0tcG0uY29tcG9uZW50JztcblxuLy8gdG9kbzogRm9jdXMgbWFuYWdlbWVudFxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjVGltZVBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSxcbiAgICBEcm9wZG93bk1lbnVEaXJlY3RpdmUsXG4gICAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgRm9ybVNlbGVjdERpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwQ29tcG9uZW50LFxuICAgIElucHV0R3JvdXBUZXh0RGlyZWN0aXZlLFxuICAgIFRpbWVQaWNrZXJSb2xsQ29sQ29tcG9uZW50LFxuICAgIFRpbWVQaWNrZXJSb2xsQW1QbUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdmlzaWJpbGl0eSBvciBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIGNsZWFuZXIgYnV0dG9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjbGVhbmVyOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2V0cyBEYXRlVGltZSBmb3JtYXQgb3B0aW9ucyBpbmNsdWRpbmcgdGltZVpvbmVcbiAgICogQHR5cGUgRGF0ZVRpbWVGb3JtYXRPcHRpb25zXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqIEBub3RlIFRoZSBkYXRlIG9iamVjdCBkb2Vzbid0IHN0b3JlIHRpbWVab25lLCBpdCBrZWVwcyB0aGUgbG9jYWwgdGltZXpvbmUgb2YgdGhlIGJyb3dzZXIsIHJlZ2FyZGxlc3MgaWYgeW91IHBhcnNlZCBVVEMgZGF0ZXMuXG4gICAqL1xuICBASW5wdXQoKSBkYXRlVGltZUZvcm1hdE9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHt9O1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGRpc2FibGVkIHN0YXRlIGZvciB0aGUgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRmlsdGVyIGF2YWlsYWJsZSBob3VycyB0byBwaWNrLlxuICAgKiBAdHlwZSAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSBmaWx0ZXJIb3Vycz86ICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYXZhaWxhYmxlIG1pbnV0ZXMgdG8gcGljay5cbiAgICogQHR5cGUgKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgZmlsdGVyTWludXRlcz86ICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYXZhaWxhYmxlIHNlY29uZHMgdG8gcGljay5cbiAgICogQHR5cGUgKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgZmlsdGVyU2Vjb25kcz86ICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdmlzaWJpbGl0eSBvciBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGluZGljYXRvci5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaW5kaWNhdG9yOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSByZWFkb25seSBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlucHV0UmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgKi9cbiAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBzaG9ydCBoaW50IHZpc2libGUgaW4gdGltZSBpbnB1dC5cbiAgICogQHR5cGUgc3RyaW5nXG4gICAqIEBkZWZhdWx0ICdTZWxlY3QgdGltZSdcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWN0IHRpbWUnO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgc2Vjb25kcyB2aXNpYmlsaXR5LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2Vjb25kczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwgb3IgbGFyZ2UuXG4gICAqIEB0eXBlICdzbScgfCAnbGcnIHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIHRpbWUuXG4gICAqIEB0eXBlIERhdGUgfCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHRpbWUodmFsdWU6IERhdGUgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgJiYgaXNWYWxpZFRpbWUodmFsdWUpKSB7XG4gICAgICBjb25zdCB0aW1lID0gY29udmVydFRpbWVUb0RhdGUodmFsdWUpO1xuICAgICAgaWYgKCF0aW1lKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGF5UGVyaW9kID0gZ2V0QW1QbSh0aW1lLCB0aGlzLmxvY2FsZSk7XG4gICAgICBpZiAodGhpcy5fdGltZT8uZ2V0VGltZSgpICE9PSB0aW1lLmdldFRpbWUoKSkge1xuICAgICAgICB0aGlzLl90aW1lID0gbmV3IERhdGUodGltZS5nZXRUaW1lKCkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyVGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0aW1lKCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90aW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGltZT86IERhdGU7XG4gIHByaXZhdGUgX3RpbWVJbnRlcm5hbD86IERhdGU7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdGltZSBwaWNrZXIgdmFyaWFudCB0byBhIHJvbGwgb3Igc2VsZWN0LlxuICAgKiBAdHlwZSAncm9sbCcgfCAnc2VsZWN0J1xuICAgKiBAZGVmYXVsdCAncm9sbCdcbiAgICovXG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdyb2xsJyB8ICdzZWxlY3QnID0gJ3JvbGwnO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdmlzdWFsIHZhbGlkYXRpb24gZmVlZGJhY2suXG4gICAqIEB0eXBlIGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSB2YWxpZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBkcm9wZG93biB0aW1lcGlja2VyIG1lbnUgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB0aW1lQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KGZhbHNlKTtcblxuICBASG9zdExpc3RlbmVyKCdibHVyJykgb25CbHVyKCkge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBAVmlld0NoaWxkKERyb3Bkb3duQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZHJvcGRvd25SZWYhOiBFbGVtZW50UmVmO1xuXG4gIHRlbXBsYXRlczogYW55ID0ge307XG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVJZERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBjb250ZW50VGVtcGxhdGVzITogUXVlcnlMaXN0PFRlbXBsYXRlSWREaXJlY3RpdmU+O1xuXG4gIGxpc3RPZkhvdXJzITogSVRpbWVWYWx1ZVtdO1xuICBsaXN0T2ZIb3VyczEyITogSVRpbWVWYWx1ZVtdO1xuICBsaXN0T2ZNaW51dGVzITogSVRpbWVWYWx1ZVtdO1xuICBsaXN0T2ZTZWNvbmRzITogSVRpbWVWYWx1ZVtdO1xuICBob3VyMTI6IGJvb2xlYW4gPSBpc0hvdXIxMih0aGlzLmxvY2FsZSk7XG4gIGRheVBlcmlvZHMgPSBbXG4gICAgeyB2YWx1ZTogJ2FtJywgbGFiZWw6ICdhbScgfSxcbiAgICB7IHZhbHVlOiAncG0nLCBsYWJlbDogJ3BtJyB9XG4gIF07XG5cbiAgZ2V0TGlzdE9mSG91cnMxMigpOiBJVGltZVZhbHVlW10ge1xuICAgIGNvbnN0IGxpc3RPZkhvdXJzMTIgPSB0aGlzLmhvdXIxMiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdE9mSG91cnM/LmZpbHRlcigoaXRlbSkgPT4gKGl0ZW0uZGF5UGVyaW9kICYmIGl0ZW0uZGF5UGVyaW9kID09PSB0aGlzLmRheVBlcmlvZCkgfHwgIWl0ZW0uZGF5UGVyaW9kKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMubGlzdE9mSG91cnM7XG4gICAgaWYgKHRoaXMuaG91cjEyKSB7XG4gICAgICBsaXN0T2ZIb3VyczEyLnB1c2goPElUaW1lVmFsdWU+bGlzdE9mSG91cnMxMi5zaGlmdCgpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3RPZkhvdXJzMTI7XG4gIH1cblxuICBzZXQgdGltZUlucHV0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGltZUlucHV0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLl90aW1lSW5wdXRWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHRpbWVJbnB1dFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpbWVJbnB1dFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGltZUlucHV0VmFsdWU6IHN0cmluZyA9XG4gICAgdGhpcy50aW1lPy50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHsgdGltZVN0eWxlOiB0aGlzLnNlY29uZHMgPyAnbWVkaXVtJyA6ICdzaG9ydCcgfSkgPz9cbiAgICAnJztcblxuICBnZXQgdGltZVBpY2tlckNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICd0aW1lLXBpY2tlcic6IHRydWUsXG4gICAgICBbYHRpbWUtcGlja2VyLSR7dGhpcy5zaXplfWBdOiAhIXRoaXMuc2l6ZSxcbiAgICAgICdmb3JtLWNvbnRyb2wnOiB0aGlzLnZhcmlhbnQgPT09ICdzZWxlY3QnICYmIHRoaXMudmFsaWQgIT09IHVuZGVmaW5lZCxcbiAgICAgICdpcy12YWxpZCc6IHRoaXMudmFsaWQgPT09IHRydWUsXG4gICAgICAnaXMtaW52YWxpZCc6IHRoaXMudmFsaWQgPT09IGZhbHNlLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgc2VsZWN0VGltZSA9IG5ldyBGb3JtR3JvdXA8e1xuICAgIHNlbGVjdEhvdXJzOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPjtcbiAgICBzZWxlY3RNaW51dGVzOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPjtcbiAgICBzZWxlY3RTZWNvbmRzPzogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgc2VsZWN0RGF5UGVyaW9kPzogRm9ybUNvbnRyb2w8J2FtJyB8ICdwbScgfCBudWxsPjtcbiAgfT4oXG4gICAge1xuICAgICAgc2VsZWN0SG91cnM6IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgeyB2YWx1ZTogdGhpcy5ob3VyLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LFxuICAgICAgICB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgodGhpcy5ob3VyMTIgPyAxMSA6IDIzKV0gfVxuICAgICAgKSxcbiAgICAgIHNlbGVjdE1pbnV0ZXM6IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgeyB2YWx1ZTogdGhpcy5taW51dGUsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0sXG4gICAgICAgIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCg1OSldIH1cbiAgICAgICksXG4gICAgICBzZWxlY3RTZWNvbmRzOiBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHsgdmFsdWU6IHRoaXMuc2Vjb25kLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LFxuICAgICAgICB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoNTkpXSB9XG4gICAgICApLFxuICAgICAgc2VsZWN0RGF5UGVyaW9kOiBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHsgdmFsdWU6IHRoaXMuZGF5UGVyaW9kLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LFxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICApXG4gICAgfSxcbiAgICB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XG4gICk7XG5cbiAgdGltZUlucHV0ID0gbmV3IEZvcm1Db250cm9sKFxuICAgIHtcbiAgICAgIHZhbHVlOiB0aGlzLnRpbWVJbnB1dFZhbHVlLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcbiAgICB9LFxuICAgIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1cbiAgKTtcblxuICBzZXQgaG91cih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2hvdXIgIT09IHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2hvdXIgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgaG91cigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9ob3VyO1xuICB9XG5cbiAgcHJpdmF0ZSBfaG91ciA9IC0xO1xuXG4gIHNldCBtaW51dGUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9taW51dGUgIT09IHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX21pbnV0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtaW51dGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWludXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWludXRlID0gLTE7XG5cbiAgc2V0IHNlY29uZCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX3NlY29uZCAhPT0gdmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2Vjb25kID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlY29uZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWNvbmQ7XG4gIH1cblxuICBwcml2YXRlIF9zZWNvbmQgPSAtMTtcblxuICBzZXQgZGF5UGVyaW9kKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuX2RheVBlcmlvZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2RheVBlcmlvZCA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMubGlzdE9mSG91cnMpIHtcbiAgICAgICAgdGhpcy5saXN0T2ZIb3VyczEyID0gdGhpcy5nZXRMaXN0T2ZIb3VyczEyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhdGNoU2VsZWN0VGltZVZhbHVlcygpO1xuICAgIH1cbiAgICAvLyB0aGlzLmxpc3RPZkhvdXJzMTIgPSB0aGlzLmhvdXIxMlxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5saXN0T2ZIb3Vycz8uZmlsdGVyKFxuICAgIC8vICAgICAoaXRlbSkgPT4gKGl0ZW0uZGF5UGVyaW9kICYmIGl0ZW0uZGF5UGVyaW9kID09PSB2YWx1ZSkgfHwgIWl0ZW0uZGF5UGVyaW9kXG4gICAgLy8gICApXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxpc3RPZkhvdXJzO1xuICAgIC8vIHRoaXMucGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCk7XG4gIH1cblxuICBnZXQgZGF5UGVyaW9kKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXlQZXJpb2Q7XG4gIH1cblxuICBwcml2YXRlIF9kYXlQZXJpb2Q6IERheVBlcmlvZCA9ICdhbSc7XG5cbiAgc2V0VGltZSgpIHtcbiAgICB0aGlzLl9ob3VyID0gdGhpcy5faG91ciA8IDAgPyAwIDogdGhpcy5faG91cjtcbiAgICB0aGlzLl9taW51dGUgPSB0aGlzLl9taW51dGUgPCAwID8gMCA6IHRoaXMuX21pbnV0ZTtcbiAgICB0aGlzLl9zZWNvbmQgPSB0aGlzLl9zZWNvbmQgPCAwID8gMCA6IHRoaXMuX3NlY29uZDtcblxuICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSh0aGlzLl90aW1lPy5nZXRUaW1lKCkgfHwgbmV3IERhdGUoKSk7XG4gICAgdGltZS5zZXRIb3Vycyh0aGlzLmhvdXIsIHRoaXMubWludXRlLCB0aGlzLnNlY29uZCwgMCk7XG4gICAgdGhpcy50aW1lID0gdGltZTtcbiAgICB0aGlzLmVtaXRUaW1lKHRpbWUpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyVGltZSgpIHtcbiAgICBpZiAodGhpcy50aW1lKSB7XG4gICAgICB0aGlzLl90aW1lID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lbWl0VGltZSh1bmRlZmluZWQpO1xuICAgIH1cbiAgICB0aGlzLl9ob3VyID0gLTE7XG4gICAgdGhpcy5fbWludXRlID0gLTE7XG4gICAgdGhpcy5fc2Vjb25kID0gLTE7XG4gICAgdGhpcy5kYXlQZXJpb2QgPSAnYW0nO1xuICAgIHRoaXMucGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCk7XG4gICAgdGhpcy50aW1lSW5wdXRWYWx1ZSA9ICcnO1xuICB9XG5cbiAgZW1pdFRpbWUodGltZTogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHRpbWVWYWx1ZSA9ICEhdGltZSAmJiBpc1ZhbGlkVGltZSh0aW1lKSA/IG5ldyBEYXRlKHRpbWUuZ2V0VGltZSgpKSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5fdGltZUludGVybmFsPy5nZXRUaW1lKCkgIT09IHRpbWVWYWx1ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLnRpbWVDaGFuZ2UuZW1pdCh0aW1lVmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aW1lVmFsdWUpO1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX3RpbWVJbnRlcm5hbCA9IHRpbWVWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy50aW1lSW5wdXRWYWx1ZSA9XG4gICAgICB0aGlzLnRpbWU/LnRvTG9jYWxlVGltZVN0cmluZyh0aGlzLmxvY2FsZSwge1xuICAgICAgICB0aW1lU3R5bGU6IHRoaXMuc2Vjb25kcyA/ICdtZWRpdW0nIDogJ3Nob3J0J1xuICAgICAgfSkgPz8gJyc7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFRpbWVMaXN0cygpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICAgIHRoaXMuc2V0Q2hhbmdlSGFuZGxlcnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndGltZSddKSB7XG4gICAgICBpZiAoIWNoYW5nZXNbJ3RpbWUnXS5maXJzdENoYW5nZSkge1xuICAgICAgICBpZiAodGhpcy5fdGltZUludGVybmFsPy5nZXRUaW1lKCkgIT09IGNoYW5nZXNbJ3RpbWUnXS5jdXJyZW50VmFsdWU/LmdldFRpbWUoKSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVzLmZvckVhY2goKGNoaWxkOiBUZW1wbGF0ZUlkRGlyZWN0aXZlKSA9PiB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzW2NoaWxkLmlkXSA9IGNoaWxkLnRlbXBsYXRlUmVmO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRUaW1lTGlzdHMoKSB7XG4gICAgdGhpcy5kYXlQZXJpb2RzID0gZ2V0RGF5UGVyaW9kcyh0aGlzLmxvY2FsZSwgdGhpcy5kYXRlVGltZUZvcm1hdE9wdGlvbnMpO1xuICAgIHRoaXMuaG91cjEyID0gaXNIb3VyMTIodGhpcy5sb2NhbGUpO1xuICAgIHRoaXMubGlzdE9mSG91cnMgPSB0aGlzLmxpc3RPZlRpbWVTZWdtZW50cyhnZXRMaXN0T2ZIb3VycywgdGhpcy5maWx0ZXJIb3Vycyk7XG4gICAgdGhpcy5saXN0T2ZNaW51dGVzID0gdGhpcy5saXN0T2ZUaW1lU2VnbWVudHMoZ2V0TGlzdE9mTWludXRlcywgdGhpcy5maWx0ZXJNaW51dGVzKTtcbiAgICB0aGlzLmxpc3RPZlNlY29uZHMgPSB0aGlzLmxpc3RPZlRpbWVTZWdtZW50cyhnZXRMaXN0T2ZTZWNvbmRzLCB0aGlzLmZpbHRlclNlY29uZHMpO1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdzZWxlY3QnKSB7XG4gICAgICBjb25zdCB1bmRlZlNlZ21lbnQgPSB7IHZhbHVlOiAtMSwgbGFiZWw6ICcgLS0nLCBkaXNhYmxlZDogdHJ1ZSB9O1xuICAgICAgdGhpcy5saXN0T2ZIb3Vycy51bnNoaWZ0KHsgLi4udW5kZWZTZWdtZW50IH0pO1xuICAgICAgdGhpcy5saXN0T2ZNaW51dGVzLnVuc2hpZnQoeyAuLi51bmRlZlNlZ21lbnQgfSk7XG4gICAgICB0aGlzLmxpc3RPZlNlY29uZHMudW5zaGlmdCh7IC4uLnVuZGVmU2VnbWVudCB9KTtcbiAgICB9XG4gICAgdGhpcy5saXN0T2ZIb3VyczEyID0gdGhpcy5nZXRMaXN0T2ZIb3VyczEyKCk7XG4gIH1cblxuICB1cGRhdGVTZWxlY3RUaW1lKHRpbWUgPSB0aGlzLnRpbWUpIHtcbiAgICBpZiAoISF0aW1lICYmIGlzVmFsaWRUaW1lKHRpbWUpKSB7XG4gICAgICBjb25zdCBob3VyID0gdGltZS5nZXRIb3VycygpID8/IDA7XG4gICAgICBjb25zdCBtaW51dGUgPSB0aW1lLmdldE1pbnV0ZXMoKSA/PyAwO1xuICAgICAgY29uc3Qgc2Vjb25kID0gdGhpcy5zZWNvbmRzID8gdGltZS5nZXRTZWNvbmRzKCkgPz8gMCA6IDA7XG5cbiAgICAgIGNvbnN0IGNsb3Nlc3RTZWNvbmQgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mU2Vjb25kcywgc2Vjb25kKTtcbiAgICAgIGNvbnN0IGNsb3Nlc3RNaW51dGUgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mTWludXRlcywgbWludXRlKTtcbiAgICAgIGNvbnN0IGNsb3Nlc3RIb3VyID0gdGhpcy5jbG9zZXN0VGltZSh0aGlzLmxpc3RPZkhvdXJzLCBob3VyKTtcblxuICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLnNlY29uZHMgPyBjbG9zZXN0U2Vjb25kLnZhbHVlIDogMDtcbiAgICAgIHRoaXMubWludXRlID0gY2xvc2VzdE1pbnV0ZS52YWx1ZTtcbiAgICAgIHRoaXMuaG91ciA9IGNsb3Nlc3RIb3VyLnZhbHVlO1xuICAgICAgdGhpcy5zZXRUaW1lKCk7XG4gICAgICB0aGlzLnBhdGNoU2VsZWN0VGltZVZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3Nlc3RUaW1lKHRpbWVBcnJheTogSVRpbWVWYWx1ZVtdLCB0aW1lU2VnbWVudDogbnVtYmVyKSB7XG4gICAgbGV0IGFycmF5ID0gdGltZUFycmF5ID8/IFt7IHZhbHVlOiAwLCBsYWJlbDogJzAwJyB9XTtcbiAgICBpZiAodGhpcy50aW1lKSB7XG4gICAgICBhcnJheSA9IHRpbWVBcnJheS5maWx0ZXIoKGVsKSA9PiBlbC52YWx1ZSA+PSAwKTtcbiAgICAgIGFycmF5ID0gYXJyYXkubGVuZ3RoID8gYXJyYXkgOiB0aW1lQXJyYXk7XG4gICAgfVxuICAgIHJldHVybiBhcnJheS5yZWR1Y2UoKGE6IElUaW1lVmFsdWUsIGI6IElUaW1lVmFsdWUpID0+IHtcbiAgICAgIHJldHVybiBNYXRoLmFicyhiLnZhbHVlIC0gdGltZVNlZ21lbnQpIDwgTWF0aC5hYnMoYS52YWx1ZSAtIHRpbWVTZWdtZW50KSA/IGIgOiBhO1xuICAgIH0pO1xuICB9XG5cbiAgbGlzdE9mVGltZVNlZ21lbnRzKFxuICAgIGdldExpc3RPZlRpbWVTZWdtZW50czogKFxuICAgICAgbG9jYWxlOiBzdHJpbmcsXG4gICAgICBkYXRlVGltZUZvcm1hdE9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9uc1xuICAgICkgPT4gSVRpbWVWYWx1ZVtdLFxuICAgIGZpbHRlclRpbWVTZWdtZW50czogKCh0aW1lU2VnbWVudFZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW4pIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIGNvbnN0IGxpc3QgPSBnZXRMaXN0T2ZUaW1lU2VnbWVudHModGhpcy5sb2NhbGUsIHRoaXMuZGF0ZVRpbWVGb3JtYXRPcHRpb25zKS5maWx0ZXIoXG4gICAgICAoc2VnbWVudDogSVRpbWVWYWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGZpbHRlclRpbWVTZWdtZW50cyA9PT0gJ2Z1bmN0aW9uJyA/IGZpbHRlclRpbWVTZWdtZW50cyhzZWdtZW50LnZhbHVlKSA6IHRydWU7XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gbGlzdC5sZW5ndGhcbiAgICAgICAgICAgPyBsaXN0XG4gICAgICAgICAgIDogZ2V0TGlzdE9mVGltZVNlZ21lbnRzKHRoaXMubG9jYWxlLCB0aGlzLmRhdGVUaW1lRm9ybWF0T3B0aW9ucykuc2xpY2UoMCwgMSk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoZGF5UGVyaW9kOiBEYXlQZXJpb2QpIHtcbiAgICBpZiAoZGF5UGVyaW9kICE9PSB0aGlzLmRheVBlcmlvZCkge1xuICAgICAgY29uc3QgaHJzID0gdGhpcy50aW1lPy5nZXRIb3VycygpID8/ICh0aGlzLmhvdXIgPCAwID8gMCA6IHRoaXMuaG91cik7XG4gICAgICBjb25zdCBob3VyID0gaHJzID4gMTIgPyBjb252ZXJ0MjRoVG8xMmgoaHJzKSA6IGNvbnZlcnQxMmhUbzI0aChkYXlQZXJpb2QsIGhycyk7XG4gICAgICB0aGlzLmhvdXIgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mSG91cnMsIGhvdXIpLnZhbHVlO1xuICAgICAgaWYgKGhvdXIgPj0gMCkge1xuICAgICAgICB0aGlzLnNldFRpbWUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNlbGVjdFRpbWVDaGFuZ2UodmFsdWU6IG51bWJlciwgc2VnbWVudDogJ2hvdXInIHwgJ21pbnV0ZScgfCAnc2Vjb25kJykge1xuICAgIHRoaXNbc2VnbWVudF0gPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUgPj0gMCkge1xuICAgICAgdGhpcy5zZXRUaW1lKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICB9XG5cbiAgcGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCkge1xuICAgIGNvbnN0IGRheVBlcmlvZCA9IHRoaXMuc2VsZWN0VGltZS5nZXQoJ3NlbGVjdERheVBlcmlvZCcpPy52YWx1ZTtcbiAgICBpZiAodGhpcy5kYXlQZXJpb2QgIT09IGRheVBlcmlvZCkge1xuICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICBzZWxlY3REYXlQZXJpb2Q6IHRoaXMuZGF5UGVyaW9kID8/ICdhbSdcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBob3VycyA9IHRoaXMuc2VsZWN0VGltZS5nZXQoJ3NlbGVjdEhvdXJzJyk/LnZhbHVlO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RNaW51dGVzJyk/LnZhbHVlO1xuICAgIGNvbnN0IHNlY29uZHMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RTZWNvbmRzJyk/LnZhbHVlO1xuICAgIGNvbnN0IGdvVXBkYXRlID1cbiAgICAgICh0aGlzLnNlY29uZCA8IDAgJiYgdGhpcy5taW51dGUgPCAwKSB8fFxuICAgICAgKHRoaXMuaG91ciA+PSAwICYmIHRoaXMubWludXRlID49IDAgJiYgdGhpcy5zZWNvbmQgPj0gMCk7XG4gICAgY29uc3QgdGltZUNoYW5nZWQgPSB0aGlzLmhvdXIgIT09IGhvdXJzIHx8IHRoaXMubWludXRlICE9PSBtaW51dGVzIHx8IHRoaXMuc2Vjb25kICE9PSBzZWNvbmRzO1xuICAgIGlmIChnb1VwZGF0ZSAmJiB0aW1lQ2hhbmdlZCkge1xuICAgICAgaWYgKHRoaXMuaG91ciAhPT0gaG91cnMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHNlbGVjdEhvdXJzOiB0aGlzLmhvdXIgPz8gMFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1pbnV0ZSAhPT0gbWludXRlcykge1xuICAgICAgICB0aGlzLnNlbGVjdFRpbWUucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgc2VsZWN0TWludXRlczogdGhpcy5taW51dGUgPz8gMFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnNlY29uZCAhPT0gc2Vjb25kcykge1xuICAgICAgICB0aGlzLnNlbGVjdFRpbWUucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgc2VsZWN0U2Vjb25kczogdGhpcy5zZWNvbmQgPz8gMFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFja0J5SG91cihpbmRleDogbnVtYmVyLCBob3VyOiBJVGltZVZhbHVlKSB7XG4gICAgcmV0dXJuIGhvdXI7XG4gIH1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCkgPT4ge307XG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudGltZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIGhhbmRsZVRpbWVJbnB1dENoYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gJGV2ZW50LnRhcmdldD8udmFsdWU7XG4gICAgaWYgKCF2YWx1ZSB8fCAhaXNWYWxpZFRpbWUodmFsdWUpKSB7XG4gICAgICB0aGlzLmNsZWFyVGltZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0aW1lID0gY29udmVydFRpbWVUb0RhdGUodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSh0aW1lID8/IG5ldyBEYXRlKERhdGUubm93KCkpKTtcbiAgfVxuXG4gIGhhbmRsZUNsZWFyKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuY2xlYXJUaW1lKCk7XG4gIH1cblxuICBoYW5kbGVCbHVyKCRldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZHJvcGRvd25SZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub25CbHVyKCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKCRldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZHJvcGRvd25SZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtcbiAgfVxuXG4gIHNldENoYW5nZUhhbmRsZXJzKCkge1xuXG4gICAgaWYgKHRoaXMudmFyaWFudCAhPT0gJ3NlbGVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RIb3VycycpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0VGltZUNoYW5nZSg8bnVtYmVyPnZhbHVlLCAnaG91cicpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RNaW51dGVzJyk/LnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RUaW1lQ2hhbmdlKDxudW1iZXI+dmFsdWUsICdtaW51dGUnKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZWxlY3RUaW1lLmdldCgnc2VsZWN0U2Vjb25kcycpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zZWNvbmRzKSxcbiAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdFRpbWVDaGFuZ2UoPG51bWJlcj52YWx1ZSwgJ3NlY29uZCcpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3REYXlQZXJpb2QnKT8udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaG91cjEyKSxcbiAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdERheVBlcmlvZENoYW5nZSg8RGF5UGVyaW9kPnZhbHVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCJAaWYgKHZhcmlhbnQgPT09ICdzZWxlY3QnKSB7XG4gIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci10aW1lcGlja2Vyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwaWNrZXIgdGltZS1waWNrZXJcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJzZWxlY3RUaW1lXCIgW25nQ2xhc3NdPVwidGltZVBpY2tlckNsYXNzZXNcIiBjbGFzcz1cInRpbWUtcGlja2VyLWJvZHlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lLXBpY2tlci1pbmxpbmUtaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPHNlbGVjdCAoYmx1cik9XCJvbkJsdXIoKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBbc2l6aW5nXT1cInNpemUgPz8gJydcIlxuICAgICAgICAgICAgICAgIGNTZWxlY3QgY2xhc3M9XCJ0aW1lLXBpY2tlci1pbmxpbmUtc2VsZWN0IG1zLTBcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RIb3Vyc1wiPlxuICAgICAgICAgIEBmb3IgKGhvdXIgb2YgbGlzdE9mSG91cnMxMjsgdHJhY2sgdHJhY2tCeUhvdXI7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8b3B0aW9uIFthdHRyLmRpc2FibGVkXT1cImhvdXIuZGlzYWJsZWQgfHwgbnVsbFwiIFtuZ1ZhbHVlXT1cImhvdXIudmFsdWVcIj5cbiAgICAgICAgICAgICAge3sgaG91ci5sYWJlbCB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAge3sgJyA6JyB9fTxzZWxlY3QgKGJsdXIpPVwib25CbHVyKClcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCIgW3NpemluZ109XCJzaXplID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY1NlbGVjdCBjbGFzcz1cInRpbWUtcGlja2VyLWlubGluZS1zZWxlY3QgbXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdE1pbnV0ZXNcIj5cbiAgICAgICAgQGZvciAobWludXRlIG9mIGxpc3RPZk1pbnV0ZXM7IHRyYWNrIHRyYWNrQnlIb3VyOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgIDxvcHRpb24gW2F0dHIuZGlzYWJsZWRdPVwibWludXRlLmRpc2FibGVkIHx8IG51bGxcIiBbbmdWYWx1ZV09XCJtaW51dGUudmFsdWVcIj5cbiAgICAgICAgICAgIHt7IG1pbnV0ZS5sYWJlbCB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L3NlbGVjdD5cbiAgICAgICAgQGlmIChzZWNvbmRzKSB7XG4gICAgICAgICAge3sgJyA6JyB9fTxzZWxlY3QgKGJsdXIpPVwib25CbHVyKClcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCIgW3NpemluZ109XCJzaXplID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjU2VsZWN0IGNsYXNzPVwidGltZS1waWNrZXItaW5saW5lLXNlbGVjdCBtcy0wXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0U2Vjb25kc1wiPlxuICAgICAgICAgICAgQGZvciAoc2Vjb25kIG9mIGxpc3RPZlNlY29uZHM7IHRyYWNrIHRyYWNrQnlIb3VyOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICA8b3B0aW9uIFthdHRyLmRpc2FibGVkXT1cInNlY29uZC5kaXNhYmxlZCB8fCBudWxsXCIgW25nVmFsdWVdPVwic2Vjb25kLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAge3sgc2Vjb25kLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaG91cjEyKSB7XG4gICAgICAgICAgPHNlbGVjdCAoYmx1cik9XCJvbkJsdXIoKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBbc2l6aW5nXT1cInNpemUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgY1NlbGVjdCBjbGFzcz1cInRpbWUtcGlja2VyLWlubGluZS1zZWxlY3QgbXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdERheVBlcmlvZFwiPlxuICAgICAgICAgICAgQGZvciAoZGF5UGVyaW9kIG9mIGRheVBlcmlvZHM7IHRyYWNrIGRheVBlcmlvZCkge1xuICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImRheVBlcmlvZC52YWx1ZVwiIGNsYXNzPVwidGltZS1waWNrZXItcm9sbC1jZWxsXCI+XG4gICAgICAgICAgICAgICAge3sgZGF5UGVyaW9kLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5AaWYgKHZhcmlhbnQgPT09ICdyb2xsJykge1xuICA8Yy1kcm9wZG93biAjZHJvcGRvd249XCJjRHJvcGRvd25cIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIFtuZ0NsYXNzXT1cInRpbWVQaWNrZXJDbGFzc2VzXCIgW3Zpc2libGVdPVwidmlzaWJsZVwiPlxuICAgIDxkaXYgW2NhcmV0XT1cImZhbHNlXCIgY0Ryb3Bkb3duVG9nZ2xlIGNsYXNzPVwidGltZS1waWNrZXItaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCAoYmx1cik9XCJoYW5kbGVCbHVyKCRldmVudCk7XCJcbiAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVRpbWVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoZm9jdXMpPVwiaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPz8gZHJvcGRvd24udmlzaWJsZSA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIucGF0dGVybl09XCJob3VyMTIgPyAnKCgoMFsxLTldKXwoMVswLTJdKSk6KFswLTVdKShbMC05XSlcXFxccyhBfFApTSknIDogJyhbMDFdP1swLTldfDJbMC0zXSk6WzAtNV1bMC05XSdcIlxuICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGltZUlucHV0XCJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJpbnB1dFJlYWRPbmx5ID8/IG51bGxcIlxuICAgICAgICAgICAgIGNsYXNzPVwidGltZS1waWNrZXItaW5wdXRcIlxuICAgICAgPlxuICAgICAgQGlmIChpbmRpY2F0b3IpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWluZGljYXRvclwiPjwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChjbGVhbmVyICYmIHRpbWUgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cIiFkaXNhYmxlZCAmJiBoYW5kbGVDbGVhcigkZXZlbnQpXCIgY2xhc3M9XCJ0aW1lLXBpY2tlci1jbGVhbmVyXCIgcm9sZT1cImJ1dHRvblwiPjwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgI2Ryb3Bkb3duTWVudT1cImNEcm9wZG93bk1lbnVcIiBjRHJvcGRvd25NZW51IGNsYXNzPVwidGltZS1waWNrZXItZHJvcGRvd24gcHktMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWJvZHkgdGltZS1waWNrZXItcm9sbFwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuICAgICAgICA8Yy10aW1lLXBpY2tlci1yb2xsLWNvbFxuICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3RUaW1lQ2hhbmdlKCRldmVudCwgJ2hvdXInKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbZWxlbWVudHNdPVwibGlzdE9mSG91cnMxMlwiXG4gICAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJob3VyXCJcbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXG4gICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImhhbmRsZVNlbGVjdFRpbWVDaGFuZ2UoJGV2ZW50LCAnbWludXRlJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW2VsZW1lbnRzXT1cImxpc3RPZk1pbnV0ZXNcIlxuICAgICAgICAgIFtyZWZyZXNoXT1cImRyb3Bkb3duTWVudS52aXNpYmxlXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwibWludXRlXCJcbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAoc2Vjb25kcykge1xuICAgICAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXG4gICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0VGltZUNoYW5nZSgkZXZlbnQsICdzZWNvbmQnKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2VsZW1lbnRzXT1cImxpc3RPZlNlY29uZHNcIlxuICAgICAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlY29uZFwiXG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGhvdXIxMikge1xuICAgICAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtYW0tcG1cbiAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2VsZW1lbnRzXT1cImRheVBlcmlvZHNcIlxuICAgICAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cImRheVBlcmlvZFwiXG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKHRlbXBsYXRlcz8udGltZVBpY2tlckZvb3Rlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXItZm9vdGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcz8udGltZVBpY2tlckZvb3RlcjsgY29udGV4dDogeyRpbXBsaWNpdDogZHJvcGRvd259XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvYy1kcm9wZG93bj5cbn1cbiJdfQ==
|
|
@@ -9,8 +9,8 @@ import { DayPeriodElementDirective, TimePickerRollAmPmComponent } from './time-p
|
|
|
9
9
|
import { TimePickerComponent } from './time-picker.component';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class TimePickerModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: TimePickerModule, imports: [CommonModule,
|
|
14
14
|
ReactiveFormsModule,
|
|
15
15
|
FormModule,
|
|
16
16
|
ButtonModule,
|
|
@@ -20,16 +20,14 @@ export class TimePickerModule {
|
|
|
20
20
|
TimePickerComponent,
|
|
21
21
|
TimePickerRollAmPmComponent,
|
|
22
22
|
TimePickerRollColComponent], exports: [TimePickerComponent] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
23
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePickerModule, imports: [CommonModule,
|
|
24
24
|
ReactiveFormsModule,
|
|
25
25
|
FormModule,
|
|
26
26
|
ButtonModule,
|
|
27
27
|
DropdownModule,
|
|
28
|
-
TimePickerComponent
|
|
29
|
-
TimePickerRollAmPmComponent,
|
|
30
|
-
TimePickerRollColComponent] }); }
|
|
28
|
+
TimePickerComponent] }); }
|
|
31
29
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePickerModule, decorators: [{
|
|
33
31
|
type: NgModule,
|
|
34
32
|
args: [{
|
|
35
33
|
declarations: [],
|
|
@@ -48,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
48
46
|
exports: [TimePickerComponent]
|
|
49
47
|
}]
|
|
50
48
|
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDakksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBa0I5RCxNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixZQWJ6QixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLFVBQVU7WUFDVixZQUFZO1lBQ1osY0FBYztZQUNkLHlCQUF5QjtZQUN6QixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQiwwQkFBMEIsYUFFbEIsbUJBQW1COytHQUVsQixnQkFBZ0IsWUFiekIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixVQUFVO1lBQ1YsWUFBWTtZQUNaLGNBQWM7WUFHZCxtQkFBbUI7OzJGQU1WLGdCQUFnQjtrQkFoQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQiwwQkFBMEI7cUJBQzNCO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Nb2R1bGUgfSBmcm9tICcuLi9mb3JtJztcblxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnLi4vZHJvcGRvd24nO1xuaW1wb3J0IHsgVGltZUVsZW1lbnREaXJlY3RpdmUsIFRpbWVQaWNrZXJSb2xsQ29sQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci1yb2xsLWNvbC90aW1lLXBpY2tlci1yb2xsLWNvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF5UGVyaW9kRWxlbWVudERpcmVjdGl2ZSwgVGltZVBpY2tlclJvbGxBbVBtQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci1yb2xsLWNvbC90aW1lLXBpY2tlci1yb2xsLWFtLXBtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgRGF5UGVyaW9kRWxlbWVudERpcmVjdGl2ZSxcbiAgICBUaW1lRWxlbWVudERpcmVjdGl2ZSxcbiAgICBUaW1lUGlja2VyQ29tcG9uZW50LFxuICAgIFRpbWVQaWNrZXJSb2xsQW1QbUNvbXBvbmVudCxcbiAgICBUaW1lUGlja2VyUm9sbENvbENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbVGltZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlck1vZHVsZSB7fVxuIl19
|