@bizdoc/core 1.16.3 → 1.16.4
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/bizdoc-core.d.ts.map +1 -0
- package/esm2020/lib/admin/admin-dismiss.service.mjs +6 -6
- package/esm2020/lib/admin/admin-menu.component.mjs +82 -9
- package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +248 -0
- package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +192 -29
- package/esm2020/lib/admin/configuration-designer/designer.base.mjs +37 -25
- package/esm2020/lib/admin/configuration-designer/designer.component.mjs +152 -10
- package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +107 -10
- package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +447 -7
- package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +441 -7
- package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +25 -7
- package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +25 -7
- package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +79 -7
- package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +71 -7
- package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +98 -7
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +793 -10
- package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +52 -7
- package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +55 -10
- package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +73 -7
- package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +275 -9
- package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +96 -10
- package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +78 -7
- package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +293 -8
- package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +210 -8
- package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +74 -7
- package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +162 -8
- package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +58 -7
- package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +40 -7
- package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +70 -8
- package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +20 -7
- package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +63 -11
- package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +132 -8
- package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +101 -7
- package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +25 -7
- package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +205 -8
- package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +24 -7
- package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +22 -7
- package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +54 -7
- package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +79 -30
- package/esm2020/lib/admin/core/ace.input.mjs +35 -29
- package/esm2020/lib/admin/core/color-picker.input.mjs +89 -36
- package/esm2020/lib/admin/core/search.input.mjs +23 -13
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +90 -15
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +296 -30
- package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +63 -10
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +238 -7
- package/esm2020/lib/admin/form/designer/designer.component.mjs +492 -10
- package/esm2020/lib/admin/form/form.resolve.service.mjs +6 -6
- package/esm2020/lib/admin/form/workflow/node.component.mjs +86 -15
- package/esm2020/lib/admin/form/workflow/role-node.component.mjs +152 -13
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +219 -18
- package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +160 -13
- package/esm2020/lib/admin/patterns/patterns.component.mjs +280 -19
- package/esm2020/lib/admin/permissions/permissions.component.mjs +129 -13
- package/esm2020/lib/admin/positions/positions-popup.component.mjs +77 -13
- package/esm2020/lib/admin/positions/positions.component.mjs +605 -31
- package/esm2020/lib/admin/profiler/outofoffice.component.mjs +184 -16
- package/esm2020/lib/admin/profiler/profiler.component.mjs +268 -21
- package/esm2020/lib/admin/system.service.mjs +6 -6
- package/esm2020/lib/admin/utility-wrapper.component.mjs +9 -9
- package/esm2020/lib/admin/utility.pane.component.mjs +23 -15
- package/esm2020/lib/app.component.mjs +19 -19
- package/esm2020/lib/bizdoc.module.mjs +30 -29
- package/esm2020/lib/browse/browse-items.component.mjs +629 -40
- package/esm2020/lib/browse/browse.mobile.component.mjs +218 -13
- package/esm2020/lib/browse/browse.pane.component.mjs +214 -18
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +161 -11
- package/esm2020/lib/browse/filter/filter.component.mjs +184 -27
- package/esm2020/lib/browse/folders-menu.component.mjs +74 -11
- package/esm2020/lib/chat/chat-info.mjs +10 -10
- package/esm2020/lib/chat/chat.mobile.component.mjs +32 -11
- package/esm2020/lib/chat/chat.service.mjs +7 -7
- package/esm2020/lib/chat/contacts.component.mjs +134 -15
- package/esm2020/lib/chat/contacts.pane.component.mjs +16 -12
- package/esm2020/lib/chat/conversation.component.mjs +128 -21
- package/esm2020/lib/chat/conversation.pane.component.mjs +13 -9
- package/esm2020/lib/compose/action/action-picker.component.mjs +107 -14
- package/esm2020/lib/compose/action/action.dialog.mjs +78 -13
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +58 -12
- package/esm2020/lib/compose/action/assign-action.component.mjs +93 -10
- package/esm2020/lib/compose/action/moveto-action.component.mjs +110 -10
- package/esm2020/lib/compose/action/return-action.component.mjs +55 -7
- package/esm2020/lib/compose/attachments/attachments.component.mjs +140 -13
- package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +147 -58
- package/esm2020/lib/compose/attachments/progress-button.directive.mjs +9 -9
- package/esm2020/lib/compose/box/box.component.mjs +160 -7
- package/esm2020/lib/compose/can-deactivate-changes.service.mjs +6 -6
- package/esm2020/lib/compose/comments/comment.component.mjs +189 -26
- package/esm2020/lib/compose/comments/comments.component.mjs +111 -22
- package/esm2020/lib/compose/comments/comments.pane.component.mjs +21 -12
- package/esm2020/lib/compose/comments/edit-comment.component.mjs +16 -10
- package/esm2020/lib/compose/comments/edits.component.mjs +47 -10
- package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +37 -10
- package/esm2020/lib/compose/comments/votes.component.mjs +45 -10
- package/esm2020/lib/compose/compose-resolve.service.mjs +11 -11
- package/esm2020/lib/compose/compose.mobile.component.mjs +297 -19
- package/esm2020/lib/compose/compose.pane.component.mjs +336 -36
- package/esm2020/lib/compose/copy/copy.dialog.mjs +58 -7
- package/esm2020/lib/compose/dismiss.service.mjs +6 -6
- package/esm2020/lib/compose/document-resolver.service.mjs +6 -6
- package/esm2020/lib/compose/document.component.mjs +28 -12
- package/esm2020/lib/compose/document.mobile.component.mjs +13 -9
- package/esm2020/lib/compose/document.pane.component.mjs +13 -9
- package/esm2020/lib/compose/events/events.component.mjs +33 -9
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +40 -7
- package/esm2020/lib/compose/form.component.mjs +119 -40
- package/esm2020/lib/compose/new-menu.component.mjs +45 -9
- package/esm2020/lib/compose/privilage.directive.mjs +31 -31
- package/esm2020/lib/compose/recipient-resolver.service.mjs +6 -6
- package/esm2020/lib/compose/state.component.mjs +9 -9
- package/esm2020/lib/compose/tag/tags.component.mjs +73 -16
- package/esm2020/lib/compose/trace/flow.component.mjs +13 -13
- package/esm2020/lib/compose/trace/people.component.mjs +23 -13
- package/esm2020/lib/compose/trace/trace.base.mjs +6 -6
- package/esm2020/lib/compose/trace/trace.component.mjs +306 -11
- package/esm2020/lib/compose/trace/trace.pane.component.mjs +31 -15
- package/esm2020/lib/compose/version-compare/version-compare.component.mjs +14 -14
- package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +64 -64
- package/esm2020/lib/compose/version-compare/version.pane.component.mjs +66 -9
- package/esm2020/lib/core/NgComponentOutlet.mjs +18 -18
- package/esm2020/lib/core/account.service.mjs +7 -7
- package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +7 -7
- package/esm2020/lib/core/avatar/avatar.component.mjs +43 -16
- package/esm2020/lib/core/component-factory-resolver.mjs +6 -6
- package/esm2020/lib/core/controls/address.input.mjs +74 -45
- package/esm2020/lib/core/controls/auto-complete.input.mjs +129 -65
- package/esm2020/lib/core/controls/combination-picker-body.mjs +156 -20
- package/esm2020/lib/core/controls/combination-picker.mjs +71 -52
- package/esm2020/lib/core/controls/combination-pool.mjs +76 -20
- package/esm2020/lib/core/controls/file.input.mjs +316 -51
- package/esm2020/lib/core/controls/select.input.mjs +115 -59
- package/esm2020/lib/core/controls/time-picker.mjs +49 -25
- package/esm2020/lib/core/controls/timespan.input.mjs +59 -37
- package/esm2020/lib/core/datasource.service.mjs +7 -7
- package/esm2020/lib/core/guide/guide.component.mjs +88 -19
- package/esm2020/lib/core/guide/guide.service.mjs +10 -10
- package/esm2020/lib/core/guide/help-tip.component.mjs +36 -14
- package/esm2020/lib/core/http.interceptor.mjs +12 -12
- package/esm2020/lib/core/hub.service.mjs +9 -9
- package/esm2020/lib/core/identity/identity.component.mjs +38 -16
- package/esm2020/lib/core/info/attachment-info.service.mjs +6 -6
- package/esm2020/lib/core/info/document-info.service.mjs +6 -6
- package/esm2020/lib/core/info/location-info.component.mjs +12 -12
- package/esm2020/lib/core/info/map-info.mjs +6 -6
- package/esm2020/lib/core/layout/autocomplete.field.mjs +66 -22
- package/esm2020/lib/core/layout/checkbox.field.mjs +56 -18
- package/esm2020/lib/core/layout/checkbox.mjs +33 -19
- package/esm2020/lib/core/layout/date-range.field.mjs +47 -22
- package/esm2020/lib/core/layout/date.field.mjs +67 -23
- package/esm2020/lib/core/layout/expression.field.mjs +66 -24
- package/esm2020/lib/core/layout/file.field.mjs +64 -20
- package/esm2020/lib/core/layout/html.field.mjs +60 -18
- package/esm2020/lib/core/layout/input.base.mjs +6 -6
- package/esm2020/lib/core/layout/input.field.mjs +64 -20
- package/esm2020/lib/core/layout/layout.component.mjs +34 -26
- package/esm2020/lib/core/layout/numeric.field.mjs +72 -21
- package/esm2020/lib/core/layout/select.field.mjs +100 -33
- package/esm2020/lib/core/layout/switch.field.mjs +56 -18
- package/esm2020/lib/core/layout/textarea.field.mjs +60 -18
- package/esm2020/lib/core/layout/timespan.field.mjs +67 -22
- package/esm2020/lib/core/lottie-animation.mjs +22 -20
- package/esm2020/lib/core/mailbox.service.mjs +7 -7
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/none.component.mjs +39 -17
- package/esm2020/lib/core/pipes/action.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/calendar.pipe.mjs +10 -10
- package/esm2020/lib/core/pipes/date-format.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/daterange.pipe.mjs +13 -13
- package/esm2020/lib/core/pipes/difference.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/duration-format.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/duration.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/form.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/join.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/role.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/sort.pipe.mjs +17 -17
- package/esm2020/lib/core/pipes/state.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/time-ago.pipe.mjs +10 -10
- package/esm2020/lib/core/pipes/type-value.pipe.mjs +9 -9
- package/esm2020/lib/core/pipes/user-name.pipe.mjs +7 -7
- package/esm2020/lib/core/popup/popup.component.mjs +26 -13
- package/esm2020/lib/core/popup/popup.service.mjs +7 -7
- package/esm2020/lib/core/popup/tooltip.directive.mjs +34 -34
- package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +34 -10
- package/esm2020/lib/core/prompt/mask/mask.component.mjs +18 -10
- package/esm2020/lib/core/prompt.service.mjs +7 -7
- package/esm2020/lib/core/router.mjs +11 -11
- package/esm2020/lib/core/save-changes.dialog.mjs +43 -7
- package/esm2020/lib/core/session.service.mjs +10 -10
- package/esm2020/lib/core/slots/router.directive.mjs +29 -27
- package/esm2020/lib/core/slots/router.service.mjs +7 -7
- package/esm2020/lib/core/slots/slots.component.mjs +296 -41
- package/esm2020/lib/core/tagging/documents.component.mjs +33 -7
- package/esm2020/lib/core/tagging/edit-input.component.mjs +141 -38
- package/esm2020/lib/core/tagging/emoji.component.mjs +15 -12
- package/esm2020/lib/core/tagging/tagging-item.directive.mjs +31 -23
- package/esm2020/lib/core/tagging/tagging.component-base.mjs +14 -9
- package/esm2020/lib/core/tagging/tagging.directive.mjs +23 -21
- package/esm2020/lib/core/tagging/tagging.pipe.mjs +7 -7
- package/esm2020/lib/core/tagging/users.component.mjs +37 -7
- package/esm2020/lib/core/translate.service.mjs +7 -7
- package/esm2020/lib/core/translations.mjs +4 -1
- package/esm2020/lib/core/window-title.service.mjs +10 -10
- package/esm2020/lib/cube/accum/accum.component.mjs +41 -39
- package/esm2020/lib/cube/chart/chart.component.mjs +47 -45
- package/esm2020/lib/cube/cube-info.service.mjs +6 -6
- package/esm2020/lib/cube/cube-menu.component.mjs +70 -11
- package/esm2020/lib/cube/cube-view.component.mjs +34 -32
- package/esm2020/lib/cube/cube.service.mjs +10 -10
- package/esm2020/lib/cube/explore/document-item.component.mjs +15 -11
- package/esm2020/lib/cube/explore/explore-item.component.mjs +11 -11
- package/esm2020/lib/cube/explore/explore-items.component.mjs +167 -37
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +65 -12
- package/esm2020/lib/cube/explore/item-resolver.service.mjs +11 -11
- package/esm2020/lib/cube/explore/item.pane.component.mjs +13 -9
- package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +59 -15
- package/esm2020/lib/cube/filter/filter.component.mjs +153 -17
- package/esm2020/lib/cube/grid/grid.component.mjs +33 -31
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +39 -37
- package/esm2020/lib/cube/matrix/matrix.base.mjs +6 -6
- package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +112 -10
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +123 -12
- package/esm2020/lib/cube/matrix/popup.component.mjs +120 -16
- package/esm2020/lib/cube/matrix/table.component.mjs +178 -45
- package/esm2020/lib/cube/parallel/parallel.component.mjs +57 -28
- package/esm2020/lib/cube/pivot/pivot.component.mjs +43 -40
- package/esm2020/lib/cube/sum/sum.component.mjs +238 -32
- package/esm2020/lib/cube/view-base.mjs +6 -6
- package/esm2020/lib/cube/view.mobile.component.mjs +177 -19
- package/esm2020/lib/cube/view.pane.component.mjs +109 -15
- package/esm2020/lib/dashboard/actions/actions.widget.mjs +28 -21
- package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +17 -15
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +25 -18
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +6 -6
- package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +10 -10
- package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +17 -15
- package/esm2020/lib/dashboard/cube/documents.widget.mjs +114 -19
- package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +13 -7
- package/esm2020/lib/dashboard/dashboard.component.mjs +90 -12
- package/esm2020/lib/dashboard/dashboard.pane.component.mjs +9 -7
- package/esm2020/lib/dashboard/recents/recents.widget.mjs +164 -19
- package/esm2020/lib/dashboard/score/activity.widget.mjs +18 -13
- package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +25 -18
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +26 -19
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +143 -19
- package/esm2020/lib/dashboard/score/personal-score.widget.mjs +23 -18
- package/esm2020/lib/dashboard/widget-item.component.mjs +17 -15
- package/esm2020/lib/desktop.module.mjs +58 -57
- package/esm2020/lib/home/about/about.dialog.mjs +97 -7
- package/esm2020/lib/home/home-base.component.mjs +6 -6
- package/esm2020/lib/home/home.desktop.component.mjs +336 -16
- package/esm2020/lib/home/home.mobile.component.mjs +310 -16
- package/esm2020/lib/home/notifications/notifications.component.mjs +78 -7
- package/esm2020/lib/home/options/options.component.mjs +171 -7
- package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +40 -10
- package/esm2020/lib/home/search.service.mjs +6 -6
- package/esm2020/lib/home/sign/sign.component.mjs +32 -7
- package/esm2020/lib/home/tools.component.mjs +87 -13
- package/esm2020/lib/impersonate/impersonate.component.mjs +61 -7
- package/esm2020/lib/mobile.module.mjs +34 -33
- package/esm2020/lib/modules/chart.module.mjs +22 -21
- package/esm2020/lib/modules/circular-gauge.module.mjs +13 -12
- package/esm2020/lib/modules/datepicker.intl.mjs +6 -6
- package/esm2020/lib/modules/dayjs.module.mjs +11 -11
- package/esm2020/lib/modules/diagram.module.mjs +24 -23
- package/esm2020/lib/modules/gantt.module.mjs +13 -12
- package/esm2020/lib/modules/grid.module.mjs +16 -15
- package/esm2020/lib/modules/material.module.mjs +87 -86
- package/esm2020/lib/modules/paginator.intl.mjs +6 -6
- package/esm2020/lib/modules/pivot.module.mjs +17 -16
- package/esm2020/lib/modules/schedule.module.mjs +15 -14
- package/esm2020/lib/modules/spreadsheet.module.mjs +21 -20
- package/esm2020/lib/modules/stepper.intl.mjs +6 -6
- package/esm2020/lib/modules/texteditor.module.mjs +19 -18
- package/esm2020/lib/notifications/filter.component.mjs +22 -7
- package/esm2020/lib/notifications/notifications-table.component.mjs +214 -10
- package/esm2020/lib/notifications/notifications.mobile.component.mjs +11 -9
- package/esm2020/lib/notifications/notifications.pane.component.mjs +14 -12
- package/esm2020/lib/notifications/notifications.service.mjs +6 -6
- package/esm2020/lib/notifications/types/commented.notification.mjs +42 -15
- package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +25 -15
- package/esm2020/lib/notifications/types/escalated.notification.mjs +24 -12
- package/esm2020/lib/notifications/types/liked.notification.mjs +42 -15
- package/esm2020/lib/notifications/types/long-running-task.notification.mjs +17 -13
- package/esm2020/lib/notifications/types/notification-base.mjs +11 -9
- package/esm2020/lib/notifications/types/nudge.notification.mjs +18 -12
- package/esm2020/lib/notifications/types/state-changed.notification.mjs +18 -10
- package/esm2020/lib/notifications/types/tagged.notification.mjs +26 -14
- package/esm2020/lib/notifications/types/text.notification.mjs +14 -10
- package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +24 -15
- package/esm2020/lib/options/options.component.mjs +350 -25
- package/esm2020/lib/options/options.service.mjs +6 -6
- package/esm2020/lib/reports/arguments-component.mjs +20 -20
- package/esm2020/lib/reports/cube/documents.component.mjs +9 -9
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +77 -10
- package/esm2020/lib/reports/cube/table-documents.component.mjs +175 -13
- package/esm2020/lib/reports/cube/usage-args.component.mjs +13 -7
- package/esm2020/lib/reports/cube/usage-base.mjs +6 -6
- package/esm2020/lib/reports/cube/usage-chart.component.mjs +15 -13
- package/esm2020/lib/reports/cube/usage-pivot.component.mjs +21 -14
- package/esm2020/lib/reports/cube/usage.component.mjs +9 -9
- package/esm2020/lib/reports/report-viewer.component.mjs +36 -20
- package/esm2020/lib/reports/report.mobile.component.mjs +105 -13
- package/esm2020/lib/reports/report.pane.component.mjs +92 -15
- package/esm2020/lib/reports/reports-menu.component.mjs +40 -11
- package/esm2020/lib/reports/substitution/substitution.component.mjs +157 -10
- package/esm2020/lib/reports/table/table-view.component.mjs +74 -16
- package/esm2020/lib/reports/tasks/tasks.component.mjs +38 -10
- package/esm2020/lib/scheduler/schedule.component.mjs +110 -14
- package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +15 -9
- package/esm2020/lib/scheduler/scheduler.pane.component.mjs +19 -12
- package/esm2020/lib/shared.module.mjs +197 -196
- package/esm2020/lib/system.module.mjs +64 -62
- package/esm2020/lib/views/cube/chart.component.mjs +45 -7
- package/esm2020/lib/views/cube/cube-base.mjs +6 -6
- package/esm2020/lib/views/cube/explore.component.mjs +128 -7
- package/esm2020/lib/views/cube/matrix.component.mjs +164 -10
- package/esm2020/lib/views/cube/parallel.component.mjs +20 -7
- package/esm2020/lib/views/cube/pivot.component.mjs +20 -7
- package/esm2020/lib/views/cube/sum.component.mjs +116 -7
- package/esm2020/lib/views/cube/view.component.mjs +137 -10
- package/esm2020/lib/views/timeline/timeline.component.exp.mjs +14 -12
- package/esm2020/lib/views/view-item.component.mjs +20 -18
- package/esm2020/lib/views/views.component.mjs +31 -12
- package/esm2020/lib/views/views.mobile.component.mjs +11 -7
- package/esm2020/lib/views/views.pane.component.mjs +19 -10
- package/fesm2015/bizdoc-core.mjs +25737 -2457
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +24051 -5129
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/admin/admin-dismiss.service.d.ts +1 -0
- package/lib/admin/admin-dismiss.service.d.ts.map +1 -0
- package/lib/admin/admin-menu.component.d.ts +1 -0
- package/lib/admin/admin-menu.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts +36 -0
- package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -2
- package/lib/admin/configuration-designer/designer-element.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer.base.d.ts +25 -3
- package/lib/admin/configuration-designer/designer.base.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer.component.d.ts +1 -0
- package/lib/admin/configuration-designer/designer.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/action.component.d.ts +16 -1
- package/lib/admin/configuration-designer/elements/action.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/box-form.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/box-form.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/cube-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/cube-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/cube.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/cube.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/documents-report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/explore-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/folder.component.d.ts +13 -1
- package/lib/admin/configuration-designer/elements/folder.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/form.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/form.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/guide.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/guide.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/report.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/role.component.d.ts +3 -0
- package/lib/admin/configuration-designer/elements/role.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/rule.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/rule.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/state.component.d.ts +5 -0
- package/lib/admin/configuration-designer/elements/state.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/sum-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/type.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/type.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/usage-report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/utility.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/utility.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/widget.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/icon-picker.component.d.ts +1 -0
- package/lib/admin/configuration-designer/icon-picker.component.d.ts.map +1 -0
- package/lib/admin/core/ace.input.d.ts +1 -0
- package/lib/admin/core/ace.input.d.ts.map +1 -0
- package/lib/admin/core/color-picker.input.d.ts +1 -0
- package/lib/admin/core/color-picker.input.d.ts.map +1 -0
- package/lib/admin/core/search.input.d.ts +1 -0
- package/lib/admin/core/search.input.d.ts.map +1 -0
- package/lib/admin/diff/configuration-diff.component.d.ts +1 -0
- package/lib/admin/diff/configuration-diff.component.d.ts.map +1 -0
- package/lib/admin/document-trace/document-trace.component.d.ts +1 -0
- package/lib/admin/document-trace/document-trace.component.d.ts.map +1 -0
- package/lib/admin/document-trace/reassign.dialog.d.ts +1 -0
- package/lib/admin/document-trace/reassign.dialog.d.ts.map +1 -0
- package/lib/admin/document-trace/timeline.d.ts +1 -0
- package/lib/admin/document-trace/timeline.d.ts.map +1 -0
- package/lib/admin/document-trace/trace-element.component.d.ts +1 -0
- package/lib/admin/document-trace/trace-element.component.d.ts.map +1 -0
- package/lib/admin/form/designer/designer.component.d.ts +1 -0
- package/lib/admin/form/designer/designer.component.d.ts.map +1 -0
- package/lib/admin/form/form.resolve.service.d.ts +1 -0
- package/lib/admin/form/form.resolve.service.d.ts.map +1 -0
- package/lib/admin/form/workflow/node-ref.d.ts +1 -0
- package/lib/admin/form/workflow/node-ref.d.ts.map +1 -0
- package/lib/admin/form/workflow/node.component.d.ts +1 -0
- package/lib/admin/form/workflow/node.component.d.ts.map +1 -0
- package/lib/admin/form/workflow/role-node.component.d.ts +1 -0
- package/lib/admin/form/workflow/role-node.component.d.ts.map +1 -0
- package/lib/admin/form/workflow/workflow.component.d.ts +1 -0
- package/lib/admin/form/workflow/workflow.component.d.ts.map +1 -0
- package/lib/admin/indices/manage-cube-index.component.d.ts +1 -0
- package/lib/admin/indices/manage-cube-index.component.d.ts.map +1 -0
- package/lib/admin/patterns/patterns.component.d.ts +1 -0
- package/lib/admin/patterns/patterns.component.d.ts.map +1 -0
- package/lib/admin/permissions/permissions.component.d.ts +1 -0
- package/lib/admin/permissions/permissions.component.d.ts.map +1 -0
- package/lib/admin/positions/positions-popup.component.d.ts +1 -0
- package/lib/admin/positions/positions-popup.component.d.ts.map +1 -0
- package/lib/admin/positions/positions.component.d.ts +1 -0
- package/lib/admin/positions/positions.component.d.ts.map +1 -0
- package/lib/admin/profiler/outofoffice.component.d.ts +1 -0
- package/lib/admin/profiler/outofoffice.component.d.ts.map +1 -0
- package/lib/admin/profiler/profiler.component.d.ts +1 -0
- package/lib/admin/profiler/profiler.component.d.ts.map +1 -0
- package/lib/admin/system.service.d.ts +1 -0
- package/lib/admin/system.service.d.ts.map +1 -0
- package/lib/admin/utility-ref.d.ts +1 -0
- package/lib/admin/utility-ref.d.ts.map +1 -0
- package/lib/admin/utility-wrapper.component.d.ts +1 -0
- package/lib/admin/utility-wrapper.component.d.ts.map +1 -0
- package/lib/admin/utility.pane.component.d.ts +1 -0
- package/lib/admin/utility.pane.component.d.ts.map +1 -0
- package/lib/app.component.d.ts +1 -0
- package/lib/app.component.d.ts.map +1 -0
- package/lib/bizdoc.module.d.ts +1 -0
- package/lib/bizdoc.module.d.ts.map +1 -0
- package/lib/browse/browse-items.component.d.ts +1 -0
- package/lib/browse/browse-items.component.d.ts.map +1 -0
- package/lib/browse/browse.mobile.component.d.ts +1 -0
- package/lib/browse/browse.mobile.component.d.ts.map +1 -0
- package/lib/browse/browse.pane.component.d.ts +1 -0
- package/lib/browse/browse.pane.component.d.ts.map +1 -0
- package/lib/browse/expanded-item/expanded-item.component.d.ts +1 -0
- package/lib/browse/expanded-item/expanded-item.component.d.ts.map +1 -0
- package/lib/browse/filter/filter.component.d.ts +1 -0
- package/lib/browse/filter/filter.component.d.ts.map +1 -0
- package/lib/browse/folders-menu.component.d.ts +1 -0
- package/lib/browse/folders-menu.component.d.ts.map +1 -0
- package/lib/chat/chat-info.d.ts +1 -0
- package/lib/chat/chat-info.d.ts.map +1 -0
- package/lib/chat/chat.mobile.component.d.ts +1 -0
- package/lib/chat/chat.mobile.component.d.ts.map +1 -0
- package/lib/chat/chat.service.d.ts +1 -0
- package/lib/chat/chat.service.d.ts.map +1 -0
- package/lib/chat/contacts.component.d.ts +1 -0
- package/lib/chat/contacts.component.d.ts.map +1 -0
- package/lib/chat/contacts.pane.component.d.ts +1 -0
- package/lib/chat/contacts.pane.component.d.ts.map +1 -0
- package/lib/chat/conversation.component.d.ts +1 -0
- package/lib/chat/conversation.component.d.ts.map +1 -0
- package/lib/chat/conversation.pane.component.d.ts +1 -0
- package/lib/chat/conversation.pane.component.d.ts.map +1 -0
- package/lib/compose/action/action-picker.component.d.ts +1 -0
- package/lib/compose/action/action-picker.component.d.ts.map +1 -0
- package/lib/compose/action/action-ref.d.ts +1 -0
- package/lib/compose/action/action-ref.d.ts.map +1 -0
- package/lib/compose/action/action.base.d.ts +1 -0
- package/lib/compose/action/action.base.d.ts.map +1 -0
- package/lib/compose/action/action.dialog.d.ts +1 -0
- package/lib/compose/action/action.dialog.d.ts.map +1 -0
- package/lib/compose/action/action.pane.dialog.exp.d.ts +1 -0
- package/lib/compose/action/action.pane.dialog.exp.d.ts.map +1 -0
- package/lib/compose/action/assign-action.component.d.ts +1 -0
- package/lib/compose/action/assign-action.component.d.ts.map +1 -0
- package/lib/compose/action/moveto-action.component.d.ts +1 -0
- package/lib/compose/action/moveto-action.component.d.ts.map +1 -0
- package/lib/compose/action/return-action.component.d.ts +1 -0
- package/lib/compose/action/return-action.component.d.ts.map +1 -0
- package/lib/compose/attachments/attachments.component.d.ts +1 -0
- package/lib/compose/attachments/attachments.component.d.ts.map +1 -0
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts +1 -0
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +1 -0
- package/lib/compose/attachments/progress-button.directive.d.ts +1 -0
- package/lib/compose/attachments/progress-button.directive.d.ts.map +1 -0
- package/lib/compose/box/box.component.d.ts +1 -0
- package/lib/compose/box/box.component.d.ts.map +1 -0
- package/lib/compose/can-deactivate-changes.service.d.ts +1 -0
- package/lib/compose/can-deactivate-changes.service.d.ts.map +1 -0
- package/lib/compose/comments/comment.component.d.ts +1 -0
- package/lib/compose/comments/comment.component.d.ts.map +1 -0
- package/lib/compose/comments/comments.component.d.ts +1 -0
- package/lib/compose/comments/comments.component.d.ts.map +1 -0
- package/lib/compose/comments/comments.pane.component.d.ts +1 -0
- package/lib/compose/comments/comments.pane.component.d.ts.map +1 -0
- package/lib/compose/comments/edit-comment.component.d.ts +1 -0
- package/lib/compose/comments/edit-comment.component.d.ts.map +1 -0
- package/lib/compose/comments/edits.component.d.ts +1 -0
- package/lib/compose/comments/edits.component.d.ts.map +1 -0
- package/lib/compose/comments/quick-comment.component.exp.d.ts +1 -0
- package/lib/compose/comments/quick-comment.component.exp.d.ts.map +1 -0
- package/lib/compose/comments/votes.component.d.ts +1 -0
- package/lib/compose/comments/votes.component.d.ts.map +1 -0
- package/lib/compose/compose-resolve.service.d.ts +1 -0
- package/lib/compose/compose-resolve.service.d.ts.map +1 -0
- package/lib/compose/compose.mobile.component.d.ts +1 -0
- package/lib/compose/compose.mobile.component.d.ts.map +1 -0
- package/lib/compose/compose.pane.component.d.ts +1 -0
- package/lib/compose/compose.pane.component.d.ts.map +1 -0
- package/lib/compose/copy/copy.dialog.d.ts +1 -0
- package/lib/compose/copy/copy.dialog.d.ts.map +1 -0
- package/lib/compose/dismiss.service.d.ts +1 -0
- package/lib/compose/dismiss.service.d.ts.map +1 -0
- package/lib/compose/document-resolver.service.d.ts +1 -0
- package/lib/compose/document-resolver.service.d.ts.map +1 -0
- package/lib/compose/document.component.d.ts +1 -0
- package/lib/compose/document.component.d.ts.map +1 -0
- package/lib/compose/document.mobile.component.d.ts +1 -0
- package/lib/compose/document.mobile.component.d.ts.map +1 -0
- package/lib/compose/document.pane.component.d.ts +1 -0
- package/lib/compose/document.pane.component.d.ts.map +1 -0
- package/lib/compose/events/events.component.d.ts +1 -0
- package/lib/compose/events/events.component.d.ts.map +1 -0
- package/lib/compose/form-ref.d.ts +1 -0
- package/lib/compose/form-ref.d.ts.map +1 -0
- package/lib/compose/form-selector/form-selector.sheet.d.ts +1 -0
- package/lib/compose/form-selector/form-selector.sheet.d.ts.map +1 -0
- package/lib/compose/form.component.d.ts +1 -0
- package/lib/compose/form.component.d.ts.map +1 -0
- package/lib/compose/new-menu.component.d.ts +1 -0
- package/lib/compose/new-menu.component.d.ts.map +1 -0
- package/lib/compose/privilage.directive.d.ts +1 -0
- package/lib/compose/privilage.directive.d.ts.map +1 -0
- package/lib/compose/recipient-resolver.service.d.ts +1 -0
- package/lib/compose/recipient-resolver.service.d.ts.map +1 -0
- package/lib/compose/state.component.d.ts +1 -0
- package/lib/compose/state.component.d.ts.map +1 -0
- package/lib/compose/tag/tags.component.d.ts +1 -0
- package/lib/compose/tag/tags.component.d.ts.map +1 -0
- package/lib/compose/trace/flow.component.d.ts +1 -0
- package/lib/compose/trace/flow.component.d.ts.map +1 -0
- package/lib/compose/trace/people.component.d.ts +1 -0
- package/lib/compose/trace/people.component.d.ts.map +1 -0
- package/lib/compose/trace/trace.base.d.ts +1 -0
- package/lib/compose/trace/trace.base.d.ts.map +1 -0
- package/lib/compose/trace/trace.component.d.ts +1 -0
- package/lib/compose/trace/trace.component.d.ts.map +1 -0
- package/lib/compose/trace/trace.pane.component.d.ts +1 -0
- package/lib/compose/trace/trace.pane.component.d.ts.map +1 -0
- package/lib/compose/version-compare/version-compare.component.d.ts +1 -0
- package/lib/compose/version-compare/version-compare.component.d.ts.map +1 -0
- package/lib/compose/version-compare/version-compare.directive.d.ts +1 -0
- package/lib/compose/version-compare/version-compare.directive.d.ts.map +1 -0
- package/lib/compose/version-compare/version.pane.component.d.ts +1 -0
- package/lib/compose/version-compare/version.pane.component.d.ts.map +1 -0
- package/lib/core/NgComponentOutlet.d.ts +1 -0
- package/lib/core/NgComponentOutlet.d.ts.map +1 -0
- package/lib/core/account.service.d.ts +1 -0
- package/lib/core/account.service.d.ts.map +1 -0
- package/lib/core/animated-icon/animated-icon.directive.d.ts +1 -0
- package/lib/core/animated-icon/animated-icon.directive.d.ts.map +1 -0
- package/lib/core/animations.d.ts +1 -0
- package/lib/core/animations.d.ts.map +1 -0
- package/lib/core/authentication.d.ts +1 -0
- package/lib/core/authentication.d.ts.map +1 -0
- package/lib/core/avatar/avatar.component.d.ts +1 -0
- package/lib/core/avatar/avatar.component.d.ts.map +1 -0
- package/lib/core/base.d.ts +1 -0
- package/lib/core/base.d.ts.map +1 -0
- package/lib/core/colors.d.ts +1 -0
- package/lib/core/colors.d.ts.map +1 -0
- package/lib/core/component-factory-resolver.d.ts +1 -0
- package/lib/core/component-factory-resolver.d.ts.map +1 -0
- package/lib/core/configuration.d.ts +1 -0
- package/lib/core/configuration.d.ts.map +1 -0
- package/lib/core/controls/address.input.d.ts +1 -0
- package/lib/core/controls/address.input.d.ts.map +1 -0
- package/lib/core/controls/auto-complete.input.d.ts +1 -0
- package/lib/core/controls/auto-complete.input.d.ts.map +1 -0
- package/lib/core/controls/combination-picker-body.d.ts +1 -0
- package/lib/core/controls/combination-picker-body.d.ts.map +1 -0
- package/lib/core/controls/combination-picker.d.ts +1 -0
- package/lib/core/controls/combination-picker.d.ts.map +1 -0
- package/lib/core/controls/combination-pool.d.ts +1 -0
- package/lib/core/controls/combination-pool.d.ts.map +1 -0
- package/lib/core/controls/file.input.d.ts +1 -0
- package/lib/core/controls/file.input.d.ts.map +1 -0
- package/lib/core/controls/select.input.d.ts +1 -0
- package/lib/core/controls/select.input.d.ts.map +1 -0
- package/lib/core/controls/time-picker.d.ts +1 -0
- package/lib/core/controls/time-picker.d.ts.map +1 -0
- package/lib/core/controls/timespan.input.d.ts +1 -0
- package/lib/core/controls/timespan.input.d.ts.map +1 -0
- package/lib/core/datasource.service.d.ts +1 -0
- package/lib/core/datasource.service.d.ts.map +1 -0
- package/lib/core/decorators.d.ts +1 -0
- package/lib/core/decorators.d.ts.map +1 -0
- package/lib/core/firebase.service.d.ts +1 -0
- package/lib/core/firebase.service.d.ts.map +1 -0
- package/lib/core/functions.d.ts +1 -0
- package/lib/core/functions.d.ts.map +1 -0
- package/lib/core/guide/guide.component.d.ts +1 -0
- package/lib/core/guide/guide.component.d.ts.map +1 -0
- package/lib/core/guide/guide.service.d.ts +1 -0
- package/lib/core/guide/guide.service.d.ts.map +1 -0
- package/lib/core/guide/help-tip.component.d.ts +1 -0
- package/lib/core/guide/help-tip.component.d.ts.map +1 -0
- package/lib/core/http.interceptor.d.ts +1 -0
- package/lib/core/http.interceptor.d.ts.map +1 -0
- package/lib/core/hub.service.d.ts +1 -0
- package/lib/core/hub.service.d.ts.map +1 -0
- package/lib/core/identity/identity.component.d.ts +1 -0
- package/lib/core/identity/identity.component.d.ts.map +1 -0
- package/lib/core/info/attachment-info.service.d.ts +1 -0
- package/lib/core/info/attachment-info.service.d.ts.map +1 -0
- package/lib/core/info/document-info.service.d.ts +1 -0
- package/lib/core/info/document-info.service.d.ts.map +1 -0
- package/lib/core/info/location-info.component.d.ts +1 -0
- package/lib/core/info/location-info.component.d.ts.map +1 -0
- package/lib/core/info/map-info.d.ts +1 -0
- package/lib/core/info/map-info.d.ts.map +1 -0
- package/lib/core/layout/autocomplete.field.d.ts +1 -0
- package/lib/core/layout/autocomplete.field.d.ts.map +1 -0
- package/lib/core/layout/checkbox.d.ts +1 -0
- package/lib/core/layout/checkbox.d.ts.map +1 -0
- package/lib/core/layout/checkbox.field.d.ts +1 -0
- package/lib/core/layout/checkbox.field.d.ts.map +1 -0
- package/lib/core/layout/date-range.field.d.ts +1 -0
- package/lib/core/layout/date-range.field.d.ts.map +1 -0
- package/lib/core/layout/date.field.d.ts +1 -0
- package/lib/core/layout/date.field.d.ts.map +1 -0
- package/lib/core/layout/expression.field.d.ts +1 -0
- package/lib/core/layout/expression.field.d.ts.map +1 -0
- package/lib/core/layout/file.field.d.ts +1 -0
- package/lib/core/layout/file.field.d.ts.map +1 -0
- package/lib/core/layout/html.field.d.ts +1 -0
- package/lib/core/layout/html.field.d.ts.map +1 -0
- package/lib/core/layout/input.base.d.ts +1 -0
- package/lib/core/layout/input.base.d.ts.map +1 -0
- package/lib/core/layout/input.field.d.ts +1 -0
- package/lib/core/layout/input.field.d.ts.map +1 -0
- package/lib/core/layout/layout.component.d.ts +1 -0
- package/lib/core/layout/layout.component.d.ts.map +1 -0
- package/lib/core/layout/numeric.field.d.ts +1 -0
- package/lib/core/layout/numeric.field.d.ts.map +1 -0
- package/lib/core/layout/select.field.d.ts +1 -0
- package/lib/core/layout/select.field.d.ts.map +1 -0
- package/lib/core/layout/switch.field.d.ts +1 -0
- package/lib/core/layout/switch.field.d.ts.map +1 -0
- package/lib/core/layout/textarea.field.d.ts +1 -0
- package/lib/core/layout/textarea.field.d.ts.map +1 -0
- package/lib/core/layout/timespan.field.d.ts +1 -0
- package/lib/core/layout/timespan.field.d.ts.map +1 -0
- package/lib/core/lottie-animation.d.ts +1 -0
- package/lib/core/lottie-animation.d.ts.map +1 -0
- package/lib/core/mailbox.service.d.ts +1 -0
- package/lib/core/mailbox.service.d.ts.map +1 -0
- package/lib/core/models.d.ts +6 -4
- package/lib/core/models.d.ts.map +1 -0
- package/lib/core/none.component.d.ts +1 -0
- package/lib/core/none.component.d.ts.map +1 -0
- package/lib/core/pipes/action.pipe.d.ts +1 -0
- package/lib/core/pipes/action.pipe.d.ts.map +1 -0
- package/lib/core/pipes/calendar.pipe.d.ts +1 -0
- package/lib/core/pipes/calendar.pipe.d.ts.map +1 -0
- package/lib/core/pipes/date-format.pipe.d.ts +1 -0
- package/lib/core/pipes/date-format.pipe.d.ts.map +1 -0
- package/lib/core/pipes/daterange.pipe.d.ts +1 -0
- package/lib/core/pipes/daterange.pipe.d.ts.map +1 -0
- package/lib/core/pipes/difference.pipe.d.ts +1 -0
- package/lib/core/pipes/difference.pipe.d.ts.map +1 -0
- package/lib/core/pipes/duration-format.pipe.d.ts +1 -0
- package/lib/core/pipes/duration-format.pipe.d.ts.map +1 -0
- package/lib/core/pipes/duration.pipe.d.ts +1 -0
- package/lib/core/pipes/duration.pipe.d.ts.map +1 -0
- package/lib/core/pipes/form.pipe.d.ts +1 -0
- package/lib/core/pipes/form.pipe.d.ts.map +1 -0
- package/lib/core/pipes/join.pipe.d.ts +1 -0
- package/lib/core/pipes/join.pipe.d.ts.map +1 -0
- package/lib/core/pipes/role.pipe.d.ts +1 -0
- package/lib/core/pipes/role.pipe.d.ts.map +1 -0
- package/lib/core/pipes/sanitize-html.pipe.d.ts.map +1 -0
- package/lib/core/pipes/sort.pipe.d.ts +1 -0
- package/lib/core/pipes/sort.pipe.d.ts.map +1 -0
- package/lib/core/pipes/state.pipe.d.ts +1 -0
- package/lib/core/pipes/state.pipe.d.ts.map +1 -0
- package/lib/core/pipes/time-ago.pipe.d.ts +1 -0
- package/lib/core/pipes/time-ago.pipe.d.ts.map +1 -0
- package/lib/core/pipes/translate.pipe.d.ts.map +1 -0
- package/lib/core/pipes/type-value.pipe.d.ts +1 -0
- package/lib/core/pipes/type-value.pipe.d.ts.map +1 -0
- package/lib/core/pipes/user-name.pipe.d.ts +1 -0
- package/lib/core/pipes/user-name.pipe.d.ts.map +1 -0
- package/lib/core/popup/popup-ref.d.ts +1 -0
- package/lib/core/popup/popup-ref.d.ts.map +1 -0
- package/lib/core/popup/popup.component.d.ts +1 -0
- package/lib/core/popup/popup.component.d.ts.map +1 -0
- package/lib/core/popup/popup.service.d.ts +1 -0
- package/lib/core/popup/popup.service.d.ts.map +1 -0
- package/lib/core/popup/tooltip.directive.d.ts +1 -0
- package/lib/core/popup/tooltip.directive.d.ts.map +1 -0
- package/lib/core/prompt/ask/ask.dialog.d.ts +1 -0
- package/lib/core/prompt/ask/ask.dialog.d.ts.map +1 -0
- package/lib/core/prompt/mask/mask.component.d.ts +1 -0
- package/lib/core/prompt/mask/mask.component.d.ts.map +1 -0
- package/lib/core/prompt.service.d.ts +1 -0
- package/lib/core/prompt.service.d.ts.map +1 -0
- package/lib/core/router.d.ts +1 -0
- package/lib/core/router.d.ts.map +1 -0
- package/lib/core/save-changes.dialog.d.ts +1 -0
- package/lib/core/save-changes.dialog.d.ts.map +1 -0
- package/lib/core/session.service.d.ts +1 -0
- package/lib/core/session.service.d.ts.map +1 -0
- package/lib/core/slots/pane-ref.d.ts +1 -0
- package/lib/core/slots/pane-ref.d.ts.map +1 -0
- package/lib/core/slots/router.directive.d.ts +1 -0
- package/lib/core/slots/router.directive.d.ts.map +1 -0
- package/lib/core/slots/router.service.d.ts +1 -0
- package/lib/core/slots/router.service.d.ts.map +1 -0
- package/lib/core/slots/slots.component.d.ts +1 -0
- package/lib/core/slots/slots.component.d.ts.map +1 -0
- package/lib/core/tagging/documents.component.d.ts +1 -0
- package/lib/core/tagging/documents.component.d.ts.map +1 -0
- package/lib/core/tagging/edit-input.component.d.ts +1 -0
- package/lib/core/tagging/edit-input.component.d.ts.map +1 -0
- package/lib/core/tagging/emoji.component.d.ts +1 -0
- package/lib/core/tagging/emoji.component.d.ts.map +1 -0
- package/lib/core/tagging/tagging-item.directive.d.ts +1 -0
- package/lib/core/tagging/tagging-item.directive.d.ts.map +1 -0
- package/lib/core/tagging/tagging.component-base.d.ts +1 -0
- package/lib/core/tagging/tagging.component-base.d.ts.map +1 -0
- package/lib/core/tagging/tagging.directive.d.ts +1 -0
- package/lib/core/tagging/tagging.directive.d.ts.map +1 -0
- package/lib/core/tagging/tagging.pipe.d.ts +1 -0
- package/lib/core/tagging/tagging.pipe.d.ts.map +1 -0
- package/lib/core/tagging/users.component.d.ts +1 -0
- package/lib/core/tagging/users.component.d.ts.map +1 -0
- package/lib/core/translate.service.d.ts +1 -0
- package/lib/core/translate.service.d.ts.map +1 -0
- package/lib/core/translations.d.ts +4 -0
- package/lib/core/translations.d.ts.map +1 -0
- package/lib/core/window-title.service.d.ts +1 -0
- package/lib/core/window-title.service.d.ts.map +1 -0
- package/lib/cube/accum/accum.component.d.ts +1 -0
- package/lib/cube/accum/accum.component.d.ts.map +1 -0
- package/lib/cube/chart/chart.component.d.ts +1 -0
- package/lib/cube/chart/chart.component.d.ts.map +1 -0
- package/lib/cube/cube-info.service.d.ts +1 -0
- package/lib/cube/cube-info.service.d.ts.map +1 -0
- package/lib/cube/cube-menu.component.d.ts +1 -0
- package/lib/cube/cube-menu.component.d.ts.map +1 -0
- package/lib/cube/cube-view.component.d.ts +1 -0
- package/lib/cube/cube-view.component.d.ts.map +1 -0
- package/lib/cube/cube.service.d.ts +1 -0
- package/lib/cube/cube.service.d.ts.map +1 -0
- package/lib/cube/declarations.d.ts +1 -0
- package/lib/cube/declarations.d.ts.map +1 -0
- package/lib/cube/explore/document-item.component.d.ts +1 -0
- package/lib/cube/explore/document-item.component.d.ts.map +1 -0
- package/lib/cube/explore/explore-item.component.d.ts +1 -0
- package/lib/cube/explore/explore-item.component.d.ts.map +1 -0
- package/lib/cube/explore/explore-items.component.d.ts +1 -0
- package/lib/cube/explore/explore-items.component.d.ts.map +1 -0
- package/lib/cube/explore/explore.pane.component.d.ts +1 -0
- package/lib/cube/explore/explore.pane.component.d.ts.map +1 -0
- package/lib/cube/explore/item-resolver.service.d.ts +1 -0
- package/lib/cube/explore/item-resolver.service.d.ts.map +1 -0
- package/lib/cube/explore/item.pane.component.d.ts +1 -0
- package/lib/cube/explore/item.pane.component.d.ts.map +1 -0
- package/lib/cube/filter/filter-tags.component.exp.d.ts +1 -0
- package/lib/cube/filter/filter-tags.component.exp.d.ts.map +1 -0
- package/lib/cube/filter/filter.component.d.ts +1 -0
- package/lib/cube/filter/filter.component.d.ts.map +1 -0
- package/lib/cube/grid/grid.component.d.ts +1 -0
- package/lib/cube/grid/grid.component.d.ts.map +1 -0
- package/lib/cube/grid/spreadsheet.component.d.ts +1 -0
- package/lib/cube/grid/spreadsheet.component.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.base.d.ts +1 -0
- package/lib/cube/matrix/matrix.base.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.mobile.component.d.ts +1 -0
- package/lib/cube/matrix/matrix.mobile.component.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.pane.component.d.ts +1 -0
- package/lib/cube/matrix/matrix.pane.component.d.ts.map +1 -0
- package/lib/cube/matrix/popup.component.d.ts +1 -0
- package/lib/cube/matrix/popup.component.d.ts.map +1 -0
- package/lib/cube/matrix/table.component.d.ts +1 -0
- package/lib/cube/matrix/table.component.d.ts.map +1 -0
- package/lib/cube/parallel/item.d.ts +1 -0
- package/lib/cube/parallel/item.d.ts.map +1 -0
- package/lib/cube/parallel/parallel.component.d.ts +1 -0
- package/lib/cube/parallel/parallel.component.d.ts.map +1 -0
- package/lib/cube/pivot/pivot.component.d.ts +1 -0
- package/lib/cube/pivot/pivot.component.d.ts.map +1 -0
- package/lib/cube/sum/sum.component.d.ts +1 -0
- package/lib/cube/sum/sum.component.d.ts.map +1 -0
- package/lib/cube/view-base.d.ts +1 -0
- package/lib/cube/view-base.d.ts.map +1 -0
- package/lib/cube/view.mobile.component.d.ts +1 -0
- package/lib/cube/view.mobile.component.d.ts.map +1 -0
- package/lib/cube/view.pane.component.d.ts +1 -0
- package/lib/cube/view.pane.component.d.ts.map +1 -0
- package/lib/dashboard/actions/actions.widget.d.ts +1 -0
- package/lib/dashboard/actions/actions.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/accum-cube.widget.d.ts +1 -0
- package/lib/dashboard/cube/accum-cube.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/compare.widget.d.ts +1 -0
- package/lib/dashboard/cube/compare.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -0
- package/lib/dashboard/cube/cube-analysis.base.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-analysis.widget.d.ts +1 -0
- package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -0
- package/lib/dashboard/cube/cube-chart.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/documents.widget.d.ts +1 -0
- package/lib/dashboard/cube/documents.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/filter/filter.component.d.ts +1 -0
- package/lib/dashboard/cube/filter/filter.component.d.ts.map +1 -0
- package/lib/dashboard/dashboard.component.d.ts +1 -0
- package/lib/dashboard/dashboard.component.d.ts.map +1 -0
- package/lib/dashboard/dashboard.pane.component.d.ts +1 -0
- package/lib/dashboard/dashboard.pane.component.d.ts.map +1 -0
- package/lib/dashboard/recents/recents.widget.d.ts +1 -0
- package/lib/dashboard/recents/recents.widget.d.ts.map +1 -0
- package/lib/dashboard/score/activity.widget.d.ts +1 -0
- package/lib/dashboard/score/activity.widget.d.ts.map +1 -0
- package/lib/dashboard/score/compare-groups.widget.d.ts +1 -0
- package/lib/dashboard/score/compare-groups.widget.d.ts.map +1 -0
- package/lib/dashboard/score/peers-performance.widget.d.ts +1 -0
- package/lib/dashboard/score/peers-performance.widget.d.ts.map +1 -0
- package/lib/dashboard/score/pending-results.widget.d.ts +1 -0
- package/lib/dashboard/score/pending-results.widget.d.ts.map +1 -0
- package/lib/dashboard/score/personal-score.widget.d.ts +1 -0
- package/lib/dashboard/score/personal-score.widget.d.ts.map +1 -0
- package/lib/dashboard/widget-item.component.d.ts +1 -0
- package/lib/dashboard/widget-item.component.d.ts.map +1 -0
- package/lib/dashboard/widget-ref.d.ts +1 -0
- package/lib/dashboard/widget-ref.d.ts.map +1 -0
- package/lib/desktop.module.d.ts +1 -0
- package/lib/desktop.module.d.ts.map +1 -0
- package/lib/home/about/about.dialog.d.ts +1 -0
- package/lib/home/about/about.dialog.d.ts.map +1 -0
- package/lib/home/home-base.component.d.ts +1 -0
- package/lib/home/home-base.component.d.ts.map +1 -0
- package/lib/home/home.desktop.component.d.ts +1 -0
- package/lib/home/home.desktop.component.d.ts.map +1 -0
- package/lib/home/home.mobile.component.d.ts +1 -0
- package/lib/home/home.mobile.component.d.ts.map +1 -0
- package/lib/home/notifications/notifications.component.d.ts +1 -0
- package/lib/home/notifications/notifications.component.d.ts.map +1 -0
- package/lib/home/options/options.component.d.ts +1 -0
- package/lib/home/options/options.component.d.ts.map +1 -0
- package/lib/home/outofoffice/outofoffice.component.d.ts +1 -0
- package/lib/home/outofoffice/outofoffice.component.d.ts.map +1 -0
- package/lib/home/search.service.d.ts +1 -0
- package/lib/home/search.service.d.ts.map +1 -0
- package/lib/home/sign/sign.component.d.ts +1 -0
- package/lib/home/sign/sign.component.d.ts.map +1 -0
- package/lib/home/tools.component.d.ts +1 -0
- package/lib/home/tools.component.d.ts.map +1 -0
- package/lib/impersonate/impersonate.component.d.ts +1 -0
- package/lib/impersonate/impersonate.component.d.ts.map +1 -0
- package/lib/mobile.module.d.ts +1 -0
- package/lib/mobile.module.d.ts.map +1 -0
- package/lib/modules/chart.module.d.ts +1 -0
- package/lib/modules/chart.module.d.ts.map +1 -0
- package/lib/modules/circular-gauge.module.d.ts +1 -0
- package/lib/modules/circular-gauge.module.d.ts.map +1 -0
- package/lib/modules/date.adapter.d.ts +1 -0
- package/lib/modules/date.adapter.d.ts.map +1 -0
- package/lib/modules/datepicker.intl.d.ts +1 -0
- package/lib/modules/datepicker.intl.d.ts.map +1 -0
- package/lib/modules/dayjs.module.d.ts +1 -0
- package/lib/modules/dayjs.module.d.ts.map +1 -0
- package/lib/modules/diagram.module.d.ts +1 -0
- package/lib/modules/diagram.module.d.ts.map +1 -0
- package/lib/modules/gantt.module.d.ts +1 -0
- package/lib/modules/gantt.module.d.ts.map +1 -0
- package/lib/modules/grid.module.d.ts +1 -0
- package/lib/modules/grid.module.d.ts.map +1 -0
- package/lib/modules/material.module.d.ts +1 -0
- package/lib/modules/material.module.d.ts.map +1 -0
- package/lib/modules/paginator.intl.d.ts +1 -0
- package/lib/modules/paginator.intl.d.ts.map +1 -0
- package/lib/modules/pivot.module.d.ts +1 -0
- package/lib/modules/pivot.module.d.ts.map +1 -0
- package/lib/modules/schedule.module.d.ts +1 -0
- package/lib/modules/schedule.module.d.ts.map +1 -0
- package/lib/modules/spreadsheet.module.d.ts +1 -0
- package/lib/modules/spreadsheet.module.d.ts.map +1 -0
- package/lib/modules/stepper.intl.d.ts +1 -0
- package/lib/modules/stepper.intl.d.ts.map +1 -0
- package/lib/modules/texteditor.module.d.ts +1 -0
- package/lib/modules/texteditor.module.d.ts.map +1 -0
- package/lib/notifications/filter.component.d.ts +1 -0
- package/lib/notifications/filter.component.d.ts.map +1 -0
- package/lib/notifications/notifications-table.component.d.ts +1 -0
- package/lib/notifications/notifications-table.component.d.ts.map +1 -0
- package/lib/notifications/notifications.component-base.d.ts +1 -0
- package/lib/notifications/notifications.component-base.d.ts.map +1 -0
- package/lib/notifications/notifications.mobile.component.d.ts +1 -0
- package/lib/notifications/notifications.mobile.component.d.ts.map +1 -0
- package/lib/notifications/notifications.pane.component.d.ts +1 -0
- package/lib/notifications/notifications.pane.component.d.ts.map +1 -0
- package/lib/notifications/notifications.service.d.ts +1 -0
- package/lib/notifications/notifications.service.d.ts.map +1 -0
- package/lib/notifications/types/commented.notification.d.ts +1 -0
- package/lib/notifications/types/commented.notification.d.ts.map +1 -0
- package/lib/notifications/types/cube-anomaly.notification.d.ts +1 -0
- package/lib/notifications/types/cube-anomaly.notification.d.ts.map +1 -0
- package/lib/notifications/types/escalated.notification.d.ts +1 -0
- package/lib/notifications/types/escalated.notification.d.ts.map +1 -0
- package/lib/notifications/types/liked.notification.d.ts +1 -0
- package/lib/notifications/types/liked.notification.d.ts.map +1 -0
- package/lib/notifications/types/long-running-task.notification.d.ts +1 -0
- package/lib/notifications/types/long-running-task.notification.d.ts.map +1 -0
- package/lib/notifications/types/notification-base.d.ts +1 -0
- package/lib/notifications/types/notification-base.d.ts.map +1 -0
- package/lib/notifications/types/nudge.notification.d.ts +1 -0
- package/lib/notifications/types/nudge.notification.d.ts.map +1 -0
- package/lib/notifications/types/state-changed.notification.d.ts +1 -0
- package/lib/notifications/types/state-changed.notification.d.ts.map +1 -0
- package/lib/notifications/types/tagged.notification.d.ts +1 -0
- package/lib/notifications/types/tagged.notification.d.ts.map +1 -0
- package/lib/notifications/types/text.notification.d.ts +1 -0
- package/lib/notifications/types/text.notification.d.ts.map +1 -0
- package/lib/notifications/types/upcoming-event.notification.d.ts +1 -0
- package/lib/notifications/types/upcoming-event.notification.d.ts.map +1 -0
- package/lib/options/options.component.d.ts +1 -0
- package/lib/options/options.component.d.ts.map +1 -0
- package/lib/options/options.service.d.ts +1 -0
- package/lib/options/options.service.d.ts.map +1 -0
- package/lib/reports/arguments-component.d.ts +1 -0
- package/lib/reports/arguments-component.d.ts.map +1 -0
- package/lib/reports/cube/documents.component.d.ts +1 -0
- package/lib/reports/cube/documents.component.d.ts.map +1 -0
- package/lib/reports/cube/grid-documents.component.d.ts +1 -0
- package/lib/reports/cube/grid-documents.component.d.ts.map +1 -0
- package/lib/reports/cube/table-documents.component.d.ts +1 -0
- package/lib/reports/cube/table-documents.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-args.component.d.ts +1 -0
- package/lib/reports/cube/usage-args.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-base.d.ts +1 -0
- package/lib/reports/cube/usage-base.d.ts.map +1 -0
- package/lib/reports/cube/usage-chart.component.d.ts +1 -0
- package/lib/reports/cube/usage-chart.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-pivot.component.d.ts +1 -0
- package/lib/reports/cube/usage-pivot.component.d.ts.map +1 -0
- package/lib/reports/cube/usage.component.d.ts +1 -0
- package/lib/reports/cube/usage.component.d.ts.map +1 -0
- package/lib/reports/report-ref.d.ts +1 -0
- package/lib/reports/report-ref.d.ts.map +1 -0
- package/lib/reports/report-viewer.component.d.ts +1 -0
- package/lib/reports/report-viewer.component.d.ts.map +1 -0
- package/lib/reports/report.mobile.component.d.ts +1 -0
- package/lib/reports/report.mobile.component.d.ts.map +1 -0
- package/lib/reports/report.pane.component.d.ts +1 -0
- package/lib/reports/report.pane.component.d.ts.map +1 -0
- package/lib/reports/reports-menu.component.d.ts +1 -0
- package/lib/reports/reports-menu.component.d.ts.map +1 -0
- package/lib/reports/substitution/substitution.component.d.ts +1 -0
- package/lib/reports/substitution/substitution.component.d.ts.map +1 -0
- package/lib/reports/table/table-view.component.d.ts +1 -0
- package/lib/reports/table/table-view.component.d.ts.map +1 -0
- package/lib/reports/tasks/tasks.component.d.ts +1 -0
- package/lib/reports/tasks/tasks.component.d.ts.map +1 -0
- package/lib/routes.desktop.d.ts +1 -0
- package/lib/routes.desktop.d.ts.map +1 -0
- package/lib/routes.mobile.d.ts +1 -0
- package/lib/routes.mobile.d.ts.map +1 -0
- package/lib/scheduler/schedule.component.d.ts +1 -0
- package/lib/scheduler/schedule.component.d.ts.map +1 -0
- package/lib/scheduler/scheduler.mobile.component.d.ts +1 -0
- package/lib/scheduler/scheduler.mobile.component.d.ts.map +1 -0
- package/lib/scheduler/scheduler.pane.component.d.ts +1 -0
- package/lib/scheduler/scheduler.pane.component.d.ts.map +1 -0
- package/lib/shared.module.d.ts +1 -0
- package/lib/shared.module.d.ts.map +1 -0
- package/lib/system.module.d.ts +51 -49
- package/lib/system.module.d.ts.map +1 -0
- package/lib/views/cube/chart.component.d.ts +1 -0
- package/lib/views/cube/chart.component.d.ts.map +1 -0
- package/lib/views/cube/cube-base.d.ts +1 -0
- package/lib/views/cube/cube-base.d.ts.map +1 -0
- package/lib/views/cube/explore.component.d.ts +1 -0
- package/lib/views/cube/explore.component.d.ts.map +1 -0
- package/lib/views/cube/matrix.component.d.ts +1 -0
- package/lib/views/cube/matrix.component.d.ts.map +1 -0
- package/lib/views/cube/parallel.component.d.ts +1 -0
- package/lib/views/cube/parallel.component.d.ts.map +1 -0
- package/lib/views/cube/pivot.component.d.ts +1 -0
- package/lib/views/cube/pivot.component.d.ts.map +1 -0
- package/lib/views/cube/sum.component.d.ts +4 -3
- package/lib/views/cube/sum.component.d.ts.map +1 -0
- package/lib/views/cube/view.component.d.ts +1 -0
- package/lib/views/cube/view.component.d.ts.map +1 -0
- package/lib/views/document-view-ref.d.ts +1 -0
- package/lib/views/document-view-ref.d.ts.map +1 -0
- package/lib/views/timeline/timeline.component.exp.d.ts +1 -0
- package/lib/views/timeline/timeline.component.exp.d.ts.map +1 -0
- package/lib/views/view-item.component.d.ts +1 -0
- package/lib/views/view-item.component.d.ts.map +1 -0
- package/lib/views/views.component.d.ts +1 -0
- package/lib/views/views.component.d.ts.map +1 -0
- package/lib/views/views.mobile.component.d.ts +1 -0
- package/lib/views/views.mobile.component.d.ts.map +1 -0
- package/lib/views/views.pane.component.d.ts +1 -0
- package/lib/views/views.pane.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -0
@@ -44,6 +44,246 @@ import * as i26 from "../../core/pipes/date-format.pipe";
|
|
44
44
|
import * as i27 from "../../core/pipes/user-name.pipe";
|
45
45
|
import * as i28 from "../../core/pipes/translate.pipe";
|
46
46
|
import * as i29 from "../utility-ref";
|
47
|
+
const _c0 = ["diagram"];
|
48
|
+
const _c1 = ["args"];
|
49
|
+
const _c2 = ["search"];
|
50
|
+
function DocumentTraceComponent_div_1_div_19_div_1_ng_container_2_span_1_Template(rf, ctx) { if (rf & 1) {
|
51
|
+
i0.ɵɵelementStart(0, "span", 24);
|
52
|
+
i0.ɵɵtext(1);
|
53
|
+
i0.ɵɵpipe(2, "async");
|
54
|
+
i0.ɵɵpipe(3, "userName");
|
55
|
+
i0.ɵɵelementEnd();
|
56
|
+
} if (rf & 2) {
|
57
|
+
const date_r9 = i0.ɵɵnextContext(2).$implicit;
|
58
|
+
i0.ɵɵadvance(1);
|
59
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind1(3, 3, date_r9.userId)), " ");
|
60
|
+
} }
|
61
|
+
function DocumentTraceComponent_div_1_div_19_div_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
62
|
+
i0.ɵɵelementContainerStart(0);
|
63
|
+
i0.ɵɵtemplate(1, DocumentTraceComponent_div_1_div_19_div_1_ng_container_2_span_1_Template, 4, 5, "span", 22);
|
64
|
+
i0.ɵɵelement(2, "br");
|
65
|
+
i0.ɵɵelementStart(3, "span", 23);
|
66
|
+
i0.ɵɵtext(4);
|
67
|
+
i0.ɵɵpipe(5, "amDateFormat");
|
68
|
+
i0.ɵɵelementEnd();
|
69
|
+
i0.ɵɵelementContainerEnd();
|
70
|
+
} if (rf & 2) {
|
71
|
+
const date_r9 = i0.ɵɵnextContext().$implicit;
|
72
|
+
const ctx_r11 = i0.ɵɵnextContext(3);
|
73
|
+
i0.ɵɵadvance(1);
|
74
|
+
i0.ɵɵproperty("ngIf", ctx_r11.userId);
|
75
|
+
i0.ɵɵadvance(3);
|
76
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(5, 2, date_r9.time, "MMM Do H:mm"), " ");
|
77
|
+
} }
|
78
|
+
function DocumentTraceComponent_div_1_div_19_div_1_Template(rf, ctx) { if (rf & 1) {
|
79
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
80
|
+
i0.ɵɵelementStart(0, "div", 17);
|
81
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_1_div_19_div_1_Template_div_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r16); const date_r9 = restoredCtx.$implicit; const ctx_r15 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r15.highlightTime(date_r9.time)); });
|
82
|
+
i0.ɵɵelementStart(1, "div", 18);
|
83
|
+
i0.ɵɵtemplate(2, DocumentTraceComponent_div_1_div_19_div_1_ng_container_2_Template, 6, 5, "ng-container", 19);
|
84
|
+
i0.ɵɵelementEnd();
|
85
|
+
i0.ɵɵelementStart(3, "div", 20);
|
86
|
+
i0.ɵɵelement(4, "div", 21);
|
87
|
+
i0.ɵɵelementEnd()();
|
88
|
+
} if (rf & 2) {
|
89
|
+
const date_r9 = ctx.$implicit;
|
90
|
+
const last_r10 = ctx.last;
|
91
|
+
const ctx_r8 = i0.ɵɵnextContext(3);
|
92
|
+
const _r4 = i0.ɵɵreference(6);
|
93
|
+
i0.ɵɵclassProp("active", date_r9.time === ctx_r8.timeline.date);
|
94
|
+
i0.ɵɵadvance(2);
|
95
|
+
i0.ɵɵproperty("ngIf", !last_r10 || !ctx_r8.timeline.estimate)("ngIfElse", _r4);
|
96
|
+
} }
|
97
|
+
function DocumentTraceComponent_div_1_div_19_Template(rf, ctx) { if (rf & 1) {
|
98
|
+
i0.ɵɵelementStart(0, "div", 15);
|
99
|
+
i0.ɵɵtemplate(1, DocumentTraceComponent_div_1_div_19_div_1_Template, 5, 4, "div", 16);
|
100
|
+
i0.ɵɵelementEnd();
|
101
|
+
} if (rf & 2) {
|
102
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
103
|
+
i0.ɵɵadvance(1);
|
104
|
+
i0.ɵɵproperty("ngForOf", ctx_r6.timeline.items);
|
105
|
+
} }
|
106
|
+
function DocumentTraceComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
107
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
108
|
+
i0.ɵɵelementStart(0, "div", 5)(1, "mat-toolbar")(2, "button", 6);
|
109
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.browse()); });
|
110
|
+
i0.ɵɵpipe(3, "translate");
|
111
|
+
i0.ɵɵelementStart(4, "mat-icon", 7);
|
112
|
+
i0.ɵɵtext(5, "arrow_back");
|
113
|
+
i0.ɵɵelementEnd()();
|
114
|
+
i0.ɵɵtext(6, " | ");
|
115
|
+
i0.ɵɵelementStart(7, "button", 6);
|
116
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_1_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.pan()); });
|
117
|
+
i0.ɵɵpipe(8, "translate");
|
118
|
+
i0.ɵɵelement(9, "span", 8);
|
119
|
+
i0.ɵɵelementEnd();
|
120
|
+
i0.ɵɵelementStart(10, "button", 6);
|
121
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_1_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r18); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.cursor()); });
|
122
|
+
i0.ɵɵpipe(11, "translate");
|
123
|
+
i0.ɵɵelement(12, "span", 9);
|
124
|
+
i0.ɵɵelementEnd();
|
125
|
+
i0.ɵɵelement(13, "span", 10);
|
126
|
+
i0.ɵɵelementStart(14, "button", 6);
|
127
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_1_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r18); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.guide()); });
|
128
|
+
i0.ɵɵpipe(15, "translate");
|
129
|
+
i0.ɵɵelementStart(16, "mat-icon");
|
130
|
+
i0.ɵɵtext(17, "help_outline");
|
131
|
+
i0.ɵɵelementEnd()()();
|
132
|
+
i0.ɵɵelementStart(18, "div", 11);
|
133
|
+
i0.ɵɵtemplate(19, DocumentTraceComponent_div_1_div_19_Template, 2, 1, "div", 12);
|
134
|
+
i0.ɵɵelement(20, "div", 13, 14);
|
135
|
+
i0.ɵɵelementEnd()();
|
136
|
+
} if (rf & 2) {
|
137
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
138
|
+
i0.ɵɵadvance(2);
|
139
|
+
i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(3, 5, "Back"));
|
140
|
+
i0.ɵɵadvance(5);
|
141
|
+
i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(8, 7, "Pan"));
|
142
|
+
i0.ɵɵadvance(3);
|
143
|
+
i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(11, 9, "Cursor"));
|
144
|
+
i0.ɵɵadvance(4);
|
145
|
+
i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(15, 11, "Help"));
|
146
|
+
i0.ɵɵadvance(5);
|
147
|
+
i0.ɵɵproperty("ngIf", (ctx_r0.timeline == null ? null : ctx_r0.timeline.items.length) > 1);
|
148
|
+
} }
|
149
|
+
function DocumentTraceComponent_div_2_mat_header_cell_10_Template(rf, ctx) { if (rf & 1) {
|
150
|
+
i0.ɵɵelementStart(0, "mat-header-cell", 39);
|
151
|
+
i0.ɵɵtext(1);
|
152
|
+
i0.ɵɵpipe(2, "translate");
|
153
|
+
i0.ɵɵelementEnd();
|
154
|
+
} if (rf & 2) {
|
155
|
+
i0.ɵɵadvance(1);
|
156
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Number"));
|
157
|
+
} }
|
158
|
+
function DocumentTraceComponent_div_2_mat_cell_11_Template(rf, ctx) { if (rf & 1) {
|
159
|
+
i0.ɵɵelementStart(0, "mat-cell", 40);
|
160
|
+
i0.ɵɵtext(1);
|
161
|
+
i0.ɵɵelementEnd();
|
162
|
+
} if (rf & 2) {
|
163
|
+
const item_r30 = ctx.$implicit;
|
164
|
+
i0.ɵɵadvance(1);
|
165
|
+
i0.ɵɵtextInterpolate1(" ", item_r30.number, " ");
|
166
|
+
} }
|
167
|
+
function DocumentTraceComponent_div_2_mat_header_cell_13_Template(rf, ctx) { if (rf & 1) {
|
168
|
+
i0.ɵɵelementStart(0, "mat-header-cell", 39);
|
169
|
+
i0.ɵɵtext(1);
|
170
|
+
i0.ɵɵpipe(2, "translate");
|
171
|
+
i0.ɵɵelementEnd();
|
172
|
+
} if (rf & 2) {
|
173
|
+
i0.ɵɵadvance(1);
|
174
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Subject"));
|
175
|
+
} }
|
176
|
+
function DocumentTraceComponent_div_2_mat_cell_14_Template(rf, ctx) { if (rf & 1) {
|
177
|
+
i0.ɵɵelementStart(0, "mat-cell", 40);
|
178
|
+
i0.ɵɵtext(1);
|
179
|
+
i0.ɵɵelementEnd();
|
180
|
+
} if (rf & 2) {
|
181
|
+
const item_r31 = ctx.$implicit;
|
182
|
+
i0.ɵɵadvance(1);
|
183
|
+
i0.ɵɵtextInterpolate1(" ", item_r31.subject, " ");
|
184
|
+
} }
|
185
|
+
function DocumentTraceComponent_div_2_mat_header_cell_16_Template(rf, ctx) { if (rf & 1) {
|
186
|
+
i0.ɵɵelementStart(0, "mat-header-cell", 41);
|
187
|
+
i0.ɵɵtext(1);
|
188
|
+
i0.ɵɵpipe(2, "translate");
|
189
|
+
i0.ɵɵelementEnd();
|
190
|
+
} if (rf & 2) {
|
191
|
+
i0.ɵɵadvance(1);
|
192
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Status"));
|
193
|
+
} }
|
194
|
+
function DocumentTraceComponent_div_2_mat_cell_17_Template(rf, ctx) { if (rf & 1) {
|
195
|
+
i0.ɵɵelementStart(0, "mat-cell", 40);
|
196
|
+
i0.ɵɵelement(1, "bizdoc-status", 42);
|
197
|
+
i0.ɵɵelementEnd();
|
198
|
+
} if (rf & 2) {
|
199
|
+
const item_r32 = ctx.$implicit;
|
200
|
+
i0.ɵɵadvance(1);
|
201
|
+
i0.ɵɵproperty("stateId", item_r32.stateId);
|
202
|
+
} }
|
203
|
+
function DocumentTraceComponent_div_2_mat_header_row_18_Template(rf, ctx) { if (rf & 1) {
|
204
|
+
i0.ɵɵelement(0, "mat-header-row");
|
205
|
+
} }
|
206
|
+
function DocumentTraceComponent_div_2_mat_row_19_Template(rf, ctx) { if (rf & 1) {
|
207
|
+
const _r35 = i0.ɵɵgetCurrentView();
|
208
|
+
i0.ɵɵelementStart(0, "mat-row", 43);
|
209
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_2_mat_row_19_Template_mat_row_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r35); const item_r33 = restoredCtx.$implicit; const ctx_r34 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r34.open(item_r33)); });
|
210
|
+
i0.ɵɵelementEnd();
|
211
|
+
} }
|
212
|
+
function DocumentTraceComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
213
|
+
const _r37 = i0.ɵɵgetCurrentView();
|
214
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "mat-toolbar", 26);
|
215
|
+
i0.ɵɵelement(2, "span", 10);
|
216
|
+
i0.ɵɵelementStart(3, "button", 6);
|
217
|
+
i0.ɵɵlistener("click", function DocumentTraceComponent_div_2_Template_button_click_3_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r36.openFilter($event)); });
|
218
|
+
i0.ɵɵpipe(4, "translate");
|
219
|
+
i0.ɵɵelementStart(5, "mat-icon");
|
220
|
+
i0.ɵɵtext(6, "filter_list");
|
221
|
+
i0.ɵɵelementEnd()()();
|
222
|
+
i0.ɵɵelement(7, "mat-progress-bar", 27);
|
223
|
+
i0.ɵɵelementStart(8, "mat-table", 28);
|
224
|
+
i0.ɵɵelementContainerStart(9, 29);
|
225
|
+
i0.ɵɵtemplate(10, DocumentTraceComponent_div_2_mat_header_cell_10_Template, 3, 3, "mat-header-cell", 30);
|
226
|
+
i0.ɵɵtemplate(11, DocumentTraceComponent_div_2_mat_cell_11_Template, 2, 1, "mat-cell", 31);
|
227
|
+
i0.ɵɵelementContainerEnd();
|
228
|
+
i0.ɵɵelementContainerStart(12, 32);
|
229
|
+
i0.ɵɵtemplate(13, DocumentTraceComponent_div_2_mat_header_cell_13_Template, 3, 3, "mat-header-cell", 30);
|
230
|
+
i0.ɵɵtemplate(14, DocumentTraceComponent_div_2_mat_cell_14_Template, 2, 1, "mat-cell", 31);
|
231
|
+
i0.ɵɵelementContainerEnd();
|
232
|
+
i0.ɵɵelementContainerStart(15, 33);
|
233
|
+
i0.ɵɵtemplate(16, DocumentTraceComponent_div_2_mat_header_cell_16_Template, 3, 3, "mat-header-cell", 34);
|
234
|
+
i0.ɵɵtemplate(17, DocumentTraceComponent_div_2_mat_cell_17_Template, 2, 1, "mat-cell", 31);
|
235
|
+
i0.ɵɵelementContainerEnd();
|
236
|
+
i0.ɵɵtemplate(18, DocumentTraceComponent_div_2_mat_header_row_18_Template, 1, 0, "mat-header-row", 35);
|
237
|
+
i0.ɵɵtemplate(19, DocumentTraceComponent_div_2_mat_row_19_Template, 1, 0, "mat-row", 36);
|
238
|
+
i0.ɵɵelementEnd();
|
239
|
+
i0.ɵɵelementStart(20, "ejs-rangenavigator", 37);
|
240
|
+
i0.ɵɵlistener("changed", function DocumentTraceComponent_div_2_Template_ejs_rangenavigator_changed_20_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.rangeChanged($event)); });
|
241
|
+
i0.ɵɵelementStart(21, "e-rangenavigator-series-collection");
|
242
|
+
i0.ɵɵelement(22, "e-rangenavigator-series", 38);
|
243
|
+
i0.ɵɵelementEnd()()();
|
244
|
+
} if (rf & 2) {
|
245
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
246
|
+
i0.ɵɵadvance(3);
|
247
|
+
i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(4, 12, "Filter"));
|
248
|
+
i0.ɵɵadvance(4);
|
249
|
+
i0.ɵɵstyleProp("visibility", ctx_r1.loading ? "visible" : "hidden");
|
250
|
+
i0.ɵɵproperty("mode", ctx_r1.loading);
|
251
|
+
i0.ɵɵadvance(1);
|
252
|
+
i0.ɵɵproperty("dataSource", ctx_r1.dataSource);
|
253
|
+
i0.ɵɵadvance(10);
|
254
|
+
i0.ɵɵproperty("matHeaderRowDef", ctx_r1.displayedColumns)("matHeaderRowDefSticky", true);
|
255
|
+
i0.ɵɵadvance(1);
|
256
|
+
i0.ɵɵproperty("matRowDefColumns", ctx_r1.displayedColumns);
|
257
|
+
i0.ɵɵadvance(1);
|
258
|
+
i0.ɵɵproperty("value", ctx_r1.range)("theme", ctx_r1.theme);
|
259
|
+
i0.ɵɵadvance(2);
|
260
|
+
i0.ɵɵproperty("dataSource", ctx_r1.rangeData)("fill", ctx_r1.accent);
|
261
|
+
} }
|
262
|
+
function DocumentTraceComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
263
|
+
i0.ɵɵelementStart(0, "form", 44)(1, "mat-form-field");
|
264
|
+
i0.ɵɵelement(2, "input", 45, 46);
|
265
|
+
i0.ɵɵpipe(4, "translate");
|
266
|
+
i0.ɵɵelementStart(5, "mat-icon", 47);
|
267
|
+
i0.ɵɵtext(6, "search");
|
268
|
+
i0.ɵɵelementEnd()();
|
269
|
+
i0.ɵɵelementStart(7, "mat-form-field");
|
270
|
+
i0.ɵɵelement(8, "bizdoc-select", 48);
|
271
|
+
i0.ɵɵpipe(9, "translate");
|
272
|
+
i0.ɵɵelementEnd()();
|
273
|
+
} if (rf & 2) {
|
274
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
275
|
+
i0.ɵɵproperty("formGroup", ctx_r3.form);
|
276
|
+
i0.ɵɵadvance(2);
|
277
|
+
i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(4, 3, "Number"));
|
278
|
+
i0.ɵɵadvance(6);
|
279
|
+
i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(9, 5, "Form"));
|
280
|
+
} }
|
281
|
+
function DocumentTraceComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
282
|
+
i0.ɵɵtext(0);
|
283
|
+
i0.ɵɵpipe(1, "translate");
|
284
|
+
} if (rf & 2) {
|
285
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(1, 1, "Estimate"), "\n");
|
286
|
+
} }
|
47
287
|
const WARNNING_PATH = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z', JUMP_PATH = 'M 6,18 14.5,12 6,6 Z M 16,6 v 12 h 2 V 6 Z';
|
48
288
|
function getPorts() {
|
49
289
|
return [
|
@@ -495,38 +735,64 @@ let DocumentTraceComponent = class DocumentTraceComponent {
|
|
495
735
|
this._destroy.complete();
|
496
736
|
}
|
497
737
|
};
|
498
|
-
DocumentTraceComponent.ɵfac =
|
499
|
-
DocumentTraceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DocumentTraceComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "diagramElement", first: true, predicate: ["diagram"], descendants: true }, { propertyName: "filterArgs", first: true, predicate: ["args"], descendants: true }, { propertyName: "searchInput", first: true, predicate: ["search"], descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "rangeNavigator", first: true, predicate: RangeNavigator, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\r\n <!-- diagram -->\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n |\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <!-- timeline -->\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\" *ngIf=\"userId\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n </div>\r\n </div>\r\n <!-- browse -->\r\n <div *ngSwitchDefault fxFlex fxLayout=\"column\" fxFlexFill>\r\n <mat-toolbar fxLayout=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </mat-toolbar>\r\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- table -->\r\n <mat-table fxFlex [dataSource]=\"dataSource\" matSort>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n <!-- StateId column -->\r\n <ng-container matColumnDef=\"stateId\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\r\n (click)=\"open(item)\">\r\n </mat-row>\r\n </mat-table>\r\n <!-- range -->\r\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM-dd' background=\"transparent\"\r\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\r\n groupBy=\"Years\" intervalType='Days'\r\n (changed)='rangeChanged($event)'>\r\n <e-rangenavigator-series-collection>\r\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\r\n </e-rangenavigator-series>\r\n </e-rangenavigator-series-collection>\r\n </ejs-rangenavigator>\r\n </div>\r\n</ng-container>\r\n<!-- args -->\r\n<ng-template #args>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-row{cursor:pointer}form{margin:8px}\n"], dependencies: [{ kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i12.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i13.RangeNavigatorComponent, selector: "ejs-rangenavigator", inputs: ["allowIntervalData", "allowSnapping", "animationDuration", "background", "dataSource", "disableRangeSelector", "enableDeferredUpdate", "enableGrouping", "enablePersistence", "enableRtl", "groupBy", "height", "interval", "intervalType", "labelFormat", "labelIntersectAction", "labelPosition", "labelStyle", "locale", "logBase", "majorGridLines", "majorTickLines", "margin", "maximum", "minimum", "navigatorBorder", "navigatorStyleSettings", "periodSelectorSettings", "query", "secondaryLabelAlignment", "series", "skeleton", "skeletonType", "theme", "tickPosition", "tooltip", "useGroupingSeparator", "value", "valueType", "width", "xName", "yName"], outputs: ["beforePrint", "beforeResize", "changed", "labelRender", "load", "loaded", "resized", "selectorRender", "tooltipRender", "dataSourceChange"] }, { kind: "directive", type: i13.RangenavigatorSeriesDirective, selector: "e-rangenavigator-series-collection>e-rangenavigator-series", inputs: ["animation", "border", "dashArray", "dataSource", "fill", "opacity", "query", "type", "width", "xName", "yName"] }, { kind: "directive", type: i13.RangenavigatorSeriesCollectionDirective, selector: "ej-rangenavigator>e-rangenavigator-series-collection" }, { kind: "directive", type: i14.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i15.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i15.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i15.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i15.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i15.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i15.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i15.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i15.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i15.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i15.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i16.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i16.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i17.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i18.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i19.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i19.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i20.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i21.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i22.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i23.StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { kind: "directive", type: i24.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i25.TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i26.DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: i27.UserNamePipe, name: "userName" }, { kind: "pipe", type: i28.TranslatePipe, name: "translate" }], animations: [trigger('element', EnterExitRight)] });
|
738
|
+
DocumentTraceComponent.ɵfac = function DocumentTraceComponent_Factory(t) { return new (t || DocumentTraceComponent)(i0.ɵɵdirectiveInject(UtilityRef), i0.ɵɵdirectiveInject(i1.SystemService), i0.ɵɵdirectiveInject(i2.SessionService), i0.ɵɵdirectiveInject(i3.PaneRef), i0.ɵɵdirectiveInject(i4.PanesRouter), i0.ɵɵdirectiveInject(i5.PromptService), i0.ɵɵdirectiveInject(i6.TranslateService), i0.ɵɵdirectiveInject(i7.Popup), i0.ɵɵdirectiveInject(i8.GuideService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i9.FormBuilder)); };
|
739
|
+
DocumentTraceComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DocumentTraceComponent, selectors: [["ng-component"]], viewQuery: function DocumentTraceComponent_Query(rf, ctx) { if (rf & 1) {
|
740
|
+
i0.ɵɵviewQuery(_c0, 5);
|
741
|
+
i0.ɵɵviewQuery(_c1, 5);
|
742
|
+
i0.ɵɵviewQuery(_c2, 5);
|
743
|
+
i0.ɵɵviewQuery(MatSort, 5);
|
744
|
+
i0.ɵɵviewQuery(RangeNavigator, 5);
|
745
|
+
} if (rf & 2) {
|
746
|
+
let _t;
|
747
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.diagramElement = _t.first);
|
748
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterArgs = _t.first);
|
749
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);
|
750
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
|
751
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rangeNavigator = _t.first);
|
752
|
+
} }, hostAttrs: [1, "pane"], hostBindings: function DocumentTraceComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
753
|
+
i0.ɵɵlistener("keydown.f1", function DocumentTraceComponent_keydown_f1_HostBindingHandler($event) { return ctx.guide($event); }, false, i0.ɵɵresolveWindow);
|
754
|
+
} }, decls: 7, vars: 2, consts: [[3, "ngSwitch"], ["class", "column", "fxFlex", "", 4, "ngSwitchCase"], ["fxFlex", "", "fxLayout", "column", "fxFlexFill", "", 4, "ngSwitchDefault"], ["args", ""], ["estimate", ""], ["fxFlex", "", 1, "column"], ["mat-icon-button", "", 3, "bizdocTooltip", "click"], [1, "mat-icon-rtl-mirror"], [1, "e-icons", "sf-icon-pan"], [1, "e-icons", "sf-icon-cursor"], [1, "divider"], ["fxFlex", "", 1, "row"], ["class", "timeline", "data-help", "timeline", 4, "ngIf"], ["fxFlex", "", "dir", "ltr"], ["diagram", ""], ["data-help", "timeline", 1, "timeline"], ["class", "item", "matRipple", "", 3, "active", "click", 4, "ngFor", "ngForOf"], ["matRipple", "", 1, "item", 3, "click"], [1, "title"], [4, "ngIf", "ngIfElse"], [1, "indicator-container"], [1, "indicator"], ["class", "who", 4, "ngIf"], [1, "time"], [1, "who"], ["fxFlex", "", "fxLayout", "column", "fxFlexFill", ""], ["fxLayout", "row"], [3, "mode"], ["fxFlex", "", "matSort", "", 3, "dataSource"], ["matColumnDef", "number"], ["mat-sort-header", "", 4, "matHeaderCellDef"], ["class", "data-column", 4, "matCellDef"], ["matColumnDef", "subject"], ["matColumnDef", "stateId"], ["mat-sort-header", "stateId", 4, "matHeaderCellDef"], [4, "matHeaderRowDef", "matHeaderRowDefSticky"], [3, "click", 4, "matRowDef", "matRowDefColumns"], ["valueType", "DateTime", "labelFormat", "MMM-dd", "background", "transparent", "labelIntersectAction", "Hide", "enableGrouping", "false", "groupBy", "Years", "intervalType", "Days", 3, "value", "theme", "changed"], ["type", "Area", "xName", "date", "yName", "count", "width", "2", 3, "dataSource", "fill"], ["mat-sort-header", ""], [1, "data-column"], ["mat-sort-header", "stateId"], [3, "stateId"], [3, "click"], ["autocomplete", "off", "fxLayout", "column", 3, "formGroup"], ["matInput", "", "type", "search", "formControlName", "search", "data-help", "search", 3, "placeholder"], ["search", ""], ["matSuffix", "", 1, "mat-icon-rtl-mirror"], ["type", "forms", "formControlName", "formId", 3, "placeholder"]], template: function DocumentTraceComponent_Template(rf, ctx) { if (rf & 1) {
|
755
|
+
i0.ɵɵelementContainerStart(0, 0);
|
756
|
+
i0.ɵɵtemplate(1, DocumentTraceComponent_div_1_Template, 22, 13, "div", 1);
|
757
|
+
i0.ɵɵtemplate(2, DocumentTraceComponent_div_2_Template, 23, 14, "div", 2);
|
758
|
+
i0.ɵɵelementContainerEnd();
|
759
|
+
i0.ɵɵtemplate(3, DocumentTraceComponent_ng_template_3_Template, 10, 7, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
760
|
+
i0.ɵɵtemplate(5, DocumentTraceComponent_ng_template_5_Template, 2, 3, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
|
761
|
+
} if (rf & 2) {
|
762
|
+
i0.ɵɵproperty("ngSwitch", ctx.mode);
|
763
|
+
i0.ɵɵadvance(1);
|
764
|
+
i0.ɵɵproperty("ngSwitchCase", "diagram");
|
765
|
+
} }, dependencies: [i10.NgForOf, i10.NgIf, i10.NgSwitch, i10.NgSwitchCase, i10.NgSwitchDefault, i9.ɵNgNoValidate, i9.DefaultValueAccessor, i9.NgControlStatus, i9.NgControlStatusGroup, i9.FormGroupDirective, i9.FormControlName, i11.DefaultLayoutDirective, i11.FlexFillDirective, i11.DefaultFlexDirective, i12.Dir, i13.RangeNavigatorComponent, i13.RangenavigatorSeriesDirective, i13.RangenavigatorSeriesCollectionDirective, i14.MatRipple, i15.MatTable, i15.MatHeaderCellDef, i15.MatHeaderRowDef, i15.MatColumnDef, i15.MatCellDef, i15.MatRowDef, i15.MatHeaderCell, i15.MatCell, i15.MatHeaderRow, i15.MatRow, i16.MatSort, i16.MatSortHeader, i17.MatProgressBar, i18.MatToolbar, i19.MatFormField, i19.MatSuffix, i20.MatButton, i21.MatInput, i22.MatIcon, i23.StateDirective, i24.TooltipDirective, i25.TypeSelect, i10.AsyncPipe, i26.DateFormatPipe, i27.UserNamePipe, i28.TranslatePipe], styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex-grow:1;height:100%}[_nghost-%COMP%] .mat-row{cursor:pointer}form[_ngcontent-%COMP%]{margin:8px}"], data: { animation: [trigger('element', EnterExitRight)] } });
|
500
766
|
DocumentTraceComponent = __decorate([
|
501
767
|
BizDoc({ selector: 'bizdoc-trace-utility' })
|
502
768
|
/** workflow component*/
|
503
769
|
], DocumentTraceComponent);
|
504
770
|
export { DocumentTraceComponent };
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kb2N1bWVudC10cmFjZS9kb2N1bWVudC10cmFjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2RvY3VtZW50LXRyYWNlL2RvY3VtZW50LXRyYWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxrQkFBa0IsRUFBa0IsZUFBZSxFQUFzQyxtQkFBbUIsRUFDNUcsUUFBUSxFQUFFLE9BQU8sRUFBZ0UsWUFBWSxFQUFhLG9CQUFvQixFQUF5QyxxQkFBcUIsRUFDN0wsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQXFCLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxN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eEMsc0JBQXNCO0lBRmxDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0lBQzdDLHdCQUF3QjtHQUNYLHNCQUFzQixDQTBjbEM7U0ExY1ksc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBVGxDLFNBQVM7MkJBR0Y7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2QsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7OzBCQWdGaEQsTUFBTTsyQkFBQyxVQUFVO3lUQTNFRSxjQUFjO3NCQUFuQyxTQUFTO3VCQUFDLFNBQVM7Z0JBK0RELFVBQVU7c0JBQTVCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSSxXQUFXO3NCQUEvQixTQUFTO3VCQUFDLFFBQVE7Z0JBRUMsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPO2dCQUNTLGNBQWM7c0JBQXhDLFNBQVM7dUJBQUMsY0FBYztnQkFpRXpCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgRGlhZ3JhbUNvbnN0cmFpbnRzLCBQb2ludFBvcnRNb2RlbCwgTm9kZUNvbnN0cmFpbnRzLCBTY3JvbGxTZXR0aW5nc01vZGVsLCBTZWxlY3Rvck1vZGVsLCBTZWxlY3RvckNvbnN0cmFpbnRzLFxyXG4gIFRvb2xCYXNlLCBEaWFncmFtLCBNb3VzZUV2ZW50QXJncywgQ29ubmVjdG9yTW9kZWwsIE5vZGVNb2RlbCwgU25hcFNldHRpbmdzTW9kZWwsIERpYWdyYW1Ub29scywgVGV4dE1vZGVsLCBDb25uZWN0b3JDb25zdHJhaW50cywgSVNlbGVjdGlvbkNoYW5nZUV2ZW50QXJncywgTGF5ZXJNb2RlbCwgQ29ubmVjdGlvblBvaW50T3JpZ2luLCBMYXlvdXRNb2RlbFxyXG59IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgSUNoYW5nZWRFdmVudEFyZ3MsIFJhbmdlTmF2aWdhdG9yIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgZ2V0V2FybiB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgR3VpZGVTdGVwIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IERvY3VtZW50SW5mbywgU3lzdGVtU2VydmljZSwgUmFuZ2VJbmZvIH0gZnJvbSAnLi4vc3lzdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aWRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZ3VpZGUvZ3VpZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbm5lY3RvckRhdGEsIERpYWdyYW1JbmZvLCBNb3ZlTW9kZWwsIE5vZGVEYXRhLCBUaW1lbGluZSB9IGZyb20gJy4vdGltZWxpbmUnO1xyXG5pbXBvcnQgeyBFbnRlckV4aXRSaWdodCB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudERhdGEsIFRyYWNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vdHJhY2UtZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbmNvbnN0IFdBUk5OSU5HX1BBVEggPSAnTSAxMy43NjM3MzUsMS44NDMzNzM1IEggNi4zMDM3MzQ5IGwgLTUuMjcsNS4yNyB2IDcuNDU5OTk5NSBsIDUuMjcsNS4yNyBoIDcuNDYwMDAwMSBsIDUuMjcsLTUuMjcgViA3LjExMzM3MzUgWiBtIC0zLjczLDE0LjI5OTk5OTUgYyAtMC43MjAwMDAxLDAgLTEuMzAwMDAwMSwtMC41OCAtMS4zMDAwMDAxLC0xLjMgMCwtMC43MiAwLjU4LC0xLjMgMS4zMDAwMDAxLC0xLjMgMC43MiwwIDEuMywwLjU4IDEuMywxLjMgMCwwLjcyIC0wLjU4LDEuMyAtMS4zLDEuMyB6IG0gMSwtNC4zIEggOS4wMzM3MzQ5IFYgNS44NDMzNzM1IGggMi4wMDAwMDAxIHonLFxyXG4gIEpVTVBfUEFUSCA9ICdNIDYsMTggMTQuNSwxMiA2LDYgWiBNIDE2LDYgdiAxMiBoIDIgViA2IFonO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9ydHMoKTogUG9pbnRQb3J0TW9kZWxbXSB7XHJcbiAgcmV0dXJuIFtcclxuICAgIHsgaWQ6ICdwb3J0MScsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAsIHk6IDAuNSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDInLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLjUsIHk6IDEgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQzJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMSwgeTogMC41IH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0NCcsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAuNSwgeTogMCB9IH1cclxuICBdO1xyXG59XHJcblxyXG5jbGFzcyBJbmZvVG9vbCBleHRlbmRzIFRvb2xCYXNlIHtcclxuICBwdWJsaWMgb3ZlcnJpZGUgbW91c2VEb3duKGFyZ3M6IE1vdXNlRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBub2RlID0gdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXNbMF07XHJcbiAgICAgIHN1cGVyLm1vdXNlRG93bihhcmdzKVxyXG4gICAgICB0aGlzLnRhcC5uZXh0KG5vZGUpO1xyXG4gICAgICB0aGlzLmluQWN0aW9uID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWdyYW06IERpYWdyYW0sIHB1YmxpYyB0YXA6IFN1YmplY3Q8Tm9kZU1vZGVsPikge1xyXG4gICAgc3VwZXIoZGlhZ3JhbS5jb21tYW5kSGFuZGxlcik7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBTZWFyY2hNb2RlbCB7XHJcbiAgc2VhcmNoPzogc3RyaW5nLCBmb3JtSWQ/OiBzdHJpbmdcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtdHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LXRyYWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH0sIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdlbGVtZW50JywgRW50ZXJFeGl0UmlnaHQpXVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UtdXRpbGl0eScgfSlcclxuLyoqIHdvcmtmbG93IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFRyYWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWdyYW0nKSBkaWFncmFtRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgdGhlbWUgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgYWNjZW50ID0gdGhpcy5fc2Vzc2lvbi5nZXRBY2NlbnQoKTtcclxuICBkaWFncmFtOiBEaWFncmFtO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cDxTZWFyY2hNb2RlbD4oeyBzZWFyY2g6IG51bGwsIGZvcm1JZDogbnVsbCB9KTtcclxuICBtb2RlbDogRGlhZ3JhbUluZm87XHJcbiAgdGltZWxpbmU6IFRpbWVsaW5lO1xyXG4gIGRpYWdyYW1Db25zdHJhaW50czogRGlhZ3JhbUNvbnN0cmFpbnRzID0gRGlhZ3JhbUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBEaWFncmFtQ29uc3RyYWludHMuQnJpZGdpbmcgfFxyXG4gICAgRGlhZ3JhbUNvbnN0cmFpbnRzLkxpbmVSb3V0aW5nIHxcclxuICAgIERpYWdyYW1Db25zdHJhaW50cy5QYW4gfFxyXG4gICAgRGlhZ3JhbUNvbnN0cmFpbnRzLlpvb207XHJcbiAgZGlhZ3JhbVRvb2w6IERpYWdyYW1Ub29scyA9IERpYWdyYW1Ub29scy5TaW5nbGVTZWxlY3Q7XHJcbiAgcHVibGljIHJlYWRvbmx5IGxheW91dCA9IHtcclxuICAgIHR5cGU6ICdDb21wbGV4SGllcmFyY2hpY2FsVHJlZScsXHJcbiAgICBjb25uZWN0aW9uUG9pbnRPcmlnaW46IENvbm5lY3Rpb25Qb2ludE9yaWdpbi5EaWZmZXJlbnRQb2ludCxcclxuICAgIGhvcml6b250YWxTcGFjaW5nOiA1MCxcclxuICAgIGVuYWJsZVJvdXRpbmc6IHRydWUsXHJcbiAgICB2ZXJ0aWNhbFNwYWNpbmc6IDUwLFxyXG4gICAgaG9yaXpvbnRhbEFsaWdubWVudDogJ0NlbnRlcicsXHJcbiAgICBjb25uZWN0aW9uRGlyZWN0aW9uOiAnT3JpZW50YXRpb24nLFxyXG4gICAgb3JpZW50YXRpb246ICdUb3BUb0JvdHRvbSdcclxuICB9IGFzIExheW91dE1vZGVsO1xyXG4gIHJlYWRvbmx5IHNuYXBTZXR0aW5nczogU25hcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzY3JvbGxTZXR0aW5nczogU2Nyb2xsU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIG1pblpvb206IC41LFxyXG4gICAgbWF4Wm9vbTogMi41XHJcbiAgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9hY2NlbnRDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KDgwMCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpbWVyeUNvbG9yID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXM6IFNlbGVjdG9yTW9kZWwgPSB7XHJcbiAgICBjb25zdHJhaW50czogU2VsZWN0b3JDb25zdHJhaW50cy5Vc2VySGFuZGxlLFxyXG4gICAgdXNlckhhbmRsZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdpbmZvJyxcclxuICAgICAgICBwYXRoRGF0YTogJ00xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi02aDJ2NnptMC04aC0yVjdoMnYyeicsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgc2lkZTogJ1JpZ2h0JyxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogJ0JvdHRvbScsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgIHBhdGhDb2xvcjogdGhpcy5fcHJpbWVyeUNvbG9yLFxyXG4gICAgICAgIHNpemU6IDQwLFxyXG4gICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgcmlnaHQ6IDAgfVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0Q3VzdG9tVG9vbDogRnVuY3Rpb24gPSB0aGlzLmdldFRvb2wuYmluZCh0aGlzKTtcclxuICBub2RlOiBOb2RlTW9kZWw7XHJcbiAgcHJpdmF0ZSBfc3RhcnQ6IERhdGU7XHJcbiAgcHJpdmF0ZSBfZW5kOiBEYXRlO1xyXG4gIHByaXZhdGUgX2luZm9SZWY6IFBhbmVSZWY8VHJhY2VFbGVtZW50Q29tcG9uZW50PjtcclxuICBwdWJsaWMgZ2V0VG9vbChhY3Rpb246IHN0cmluZyk6IFRvb2xCYXNlIHtcclxuICAgIGxldCB0b29sOiBUb29sQmFzZTtcclxuICAgIGlmIChhY3Rpb24gPT09ICdpbmZvJykge1xyXG4gICAgICB0b29sID0gbmV3IEluZm9Ub29sKHRoaXMuZGlhZ3JhbSwgdGhpcy5fdGFwKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0b29sO1xyXG4gIH1cclxuICBtb2RlOiAnZGlhZ3JhbScgfCAnYnJvd3NlJyB8IG51bGwgPSAnYnJvd3NlJztcclxuICByYW5nZTogKERhdGUgfCBudW1iZXIpW107XHJcbiAgcmFuZ2VEYXRhOiBSYW5nZUluZm9bXTtcclxuICBsb2FkaW5nOiBQcm9ncmVzc0Jhck1vZGUgPSAncXVlcnknO1xyXG4gIEBWaWV3Q2hpbGQoJ2FyZ3MnKSBmaWx0ZXJBcmdzOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHNlYXJjaElucHV0OiBNYXRJbnB1dDtcclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8RG9jdW1lbnRJbmZvPjtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XHJcbiAgQFZpZXdDaGlsZChSYW5nZU5hdmlnYXRvcikgcmFuZ2VOYXZpZ2F0b3I6IFJhbmdlTmF2aWdhdG9yO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMgPSBbJ251bWJlcicsICdzdWJqZWN0JywgJ3N0YXRlSWQnXTtcclxuICBwcml2YXRlIF9oaWdoTGlnaHRlZElkczogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90YXAgPSBuZXcgU3ViamVjdDxOb2RlTW9kZWw+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGF0ZXNjaGFuZ2UgPSBuZXcgU3ViamVjdDx7IHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUgfT4oKTtcclxuICAvKiogd29ya2Zsb3cgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChVdGlsaXR5UmVmKVxyXG4gICAgcHJpdmF0ZSBfdXRpbGl0eVJlZjogVXRpbGl0eVJlZjxEaWFncmFtSW5mbywgTW92ZU1vZGVsLCBEaWFncmFtSW5mbywgbnVtYmVyPixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8RG9jdW1lbnRUcmFjZUNvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgbm93ID0gZGF5anMoKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgdGhpcy5hY2NlbnQgPSB0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpO1xyXG4gICAgICAvL3RoaXMucmFuZ2VOYXZpZ2F0b3IucmVmcmVzaCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKCkuc3Vic2NyaWJlKHIgPT4gdGhpcy5yYW5nZURhdGEgPSByKTtcclxuICAgIHRoaXMuX2RhdGVzY2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9zdGFydCA9IHIuc3RhcnQsIHRoaXMuX2VuZCA9IHIuZW5kO1xyXG4gICAgICB0aGlzLl9saXN0KCk7XHJcbiAgICB9KTtcclxuICAgIC8vbGV0IHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndHJhY2UtcmFuZ2UnKTtcclxuXHJcbiAgICB0aGlzLnJhbmdlID0gW25vdy5hZGQoLTIsICd3JykudG9EYXRlKCksXHJcbiAgICBub3cudG9EYXRlKCldO1xyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDIwMCkpLlxyXG4gICAgICBzdWJzY3JpYmUodGhpcy5fbGlzdC5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICBjb25zdCB7IGRvY3VtZW50SWQgfSA9IHA7XHJcbiAgICAgIGRvY3VtZW50SWQgJiYgdGhpcy5fb3BlbigoZG9jdW1lbnRJZCBhcyBzdHJpbmcpLmRlY29kZUlkKCkpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnJlc2l6ZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLmRpYWdyYW0/LnJlZnJlc2goKVxyXG4gICAgKTtcclxuICB9XHJcbiAgb3BlbkZpbHRlcihldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKHRoaXMuZmlsdGVyQXJncywgZXZ0LnRhcmdldCBhcyBIVE1MQnV0dG9uRWxlbWVudCkub3BlbmVkLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLnNlYXJjaElucHV0LmZvY3VzKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9saXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gJ3F1ZXJ5JztcclxuICAgIHRoaXMuX3NlcnZpY2UuZmluZEFsbCh7IC4uLnRoaXMuZm9ybS52YWx1ZSwgc3RhcnQ6IHRoaXMuX3N0YXJ0LCBlbmQ6IHRoaXMuX2VuZCB9KS5zdWJzY3JpYmUobCA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UobCk7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmFuZ2VDaGFuZ2VkKGFyZ3M6IElDaGFuZ2VkRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICAvL2xvY2FsU3RvcmFnZS5zZXRJdGVtKCd0cmFjZS1yYW5nZScsIGFyZ3MuKTtcclxuICAgIHRoaXMuX2RhdGVzY2hhbmdlLm5leHQoYXJncyBhcyBhbnkpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5mMScsIFsnJGV2ZW50J10pXHJcbiAgZ3VpZGUoZXZ0PzogRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBzdGVwczogR3VpZGVTdGVwW10gPSBbXTtcclxuICAgIGlmICh0aGlzLnRpbWVsaW5lKSB7XHJcbiAgICAgIGlmICh0aGlzLnRpbWVsaW5lLml0ZW1zLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9dGltZWxpbmVdJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RyYWNlVGltZWxpbmVIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgc2VsZWN0b3I6ICdnW2lkXj1zdGFydF0nLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RyYWNlRWxlbWVudEhlbHAnKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHN0ZXBzLnB1c2goe1xyXG4gICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2VhcmNoXScsXHJcbiAgICAgIHBvc2l0aW9uOiAnQmVsb3cnLFxyXG4gICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdUcmFjZVNlYXJjaEhlbHAnKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydCh7XHJcbiAgICAgIG5hbWU6ICd0cmFjZScsXHJcbiAgICAgIHN0ZXBzXHJcbiAgICB9KTtcclxuICAgIGV2dCAmJiBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgYnJvd3NlKCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdKTtcclxuICAgIHRoaXMuX3JvdXRlci5jb2xsYXBzZSgpO1xyXG4gICAgdGhpcy5tb2RlID0gJ2Jyb3dzZSc7XHJcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3BlbihpZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0/LmRlc3Ryb3koKTtcclxuICAgIHRoaXMubG9hZGluZyA9ICdidWZmZXInO1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5wb3B1bGF0ZShpZCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdoTGlnaHRlZElkcyA9IFtdO1xyXG4gICAgICB0aGlzLm1vZGVsID0gZTtcclxuICAgICAgdGhpcy5fdGltZWxpbmUoKTtcclxuICAgICAgdGhpcy5tb2RlID0gJ2RpYWdyYW0nO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbSA9IG5ldyBEaWFncmFtKHtcclxuICAgICAgICB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICBzbmFwU2V0dGluZ3M6IHRoaXMuc25hcFNldHRpbmdzLFxyXG4gICAgICAgIGxheW91dDogdGhpcy5sYXlvdXQsXHJcbiAgICAgICAgZ2V0Q29ubmVjdG9yRGVmYXVsdHM6IHRoaXMuY29ubkRlZmF1bHRzLFxyXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcclxuICAgICAgICB0b29sOiB0aGlzLmRpYWdyYW1Ub29sLFxyXG4gICAgICAgIGNvbnN0cmFpbnRzOiB0aGlzLmRpYWdyYW1Db25zdHJhaW50cyxcclxuICAgICAgICBnZXROb2RlRGVmYXVsdHM6IHRoaXMubm9kZURlZmF1bHRzLFxyXG4gICAgICAgIHNjcm9sbFNldHRpbmdzOiB0aGlzLnNjcm9sbFNldHRpbmdzLFxyXG4gICAgICAgIG5vZGVzOiBlLmRpYWdyYW0ubm9kZXMsXHJcbiAgICAgICAgY29ubmVjdG9yczogZS5kaWFncmFtLmNvbm5lY3RvcnMsXHJcbiAgICAgICAgc2VsZWN0aW9uQ2hhbmdlOiB0aGlzLnNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICAgIH0sIHRoaXMuZGlhZ3JhbUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24oKTtcclxuICAgICAgdGhpcy5faW5kaWNhdG9ycygpO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uZml0VG9QYWdlKCk7XHJcblxyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5vZGVEZWZhdWx0cyA9IChub2RlOiBOb2RlTW9kZWwpOiBOb2RlTW9kZWwgPT4ge1xyXG4gICAgY29uc3QgeyBpbmRpY2F0b3IsIHZpcnR1YWwgfSA9IG5vZGUuYWRkSW5mbyBhcyBOb2RlRGF0YSB8fCB7fTtcclxuXHJcbiAgICBpZiAoaW5kaWNhdG9yKSB7XHJcbiAgICAgIG5vZGUuY29uc3RyYWludHMgPSBOb2RlQ29uc3RyYWludHMuUG9pbnRlckV2ZW50cyB8IE5vZGVDb25zdHJhaW50cy5Ub29sdGlwLFxyXG4gICAgICAgIG5vZGUuc3R5bGUuc3Ryb2tlV2lkdGggPSAwLFxyXG4gICAgICAgIG5vZGUud2lkdGggPSBub2RlLmhlaWdodCA9IDE1O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9kZS5pZCAhPT0gJ3ZlcnNpb24nKSB7XHJcbiAgICAgIG5vZGUuY29uc3RyYWludHMgPSBOb2RlQ29uc3RyYWludHMuSW5Db25uZWN0IHwgTm9kZUNvbnN0cmFpbnRzLk91dENvbm5lY3QgfFxyXG4gICAgICAgIE5vZGVDb25zdHJhaW50cy5Qb2ludGVyRXZlbnRzIHwgTm9kZUNvbnN0cmFpbnRzLlNlbGVjdDtcclxuICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKG5vZGUpO1xyXG4gICAgICBub2RlLnBvcnRzID0gZ2V0UG9ydHMoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlO1xyXG4gIH1cclxuICBwdWJsaWMgY29ubkRlZmF1bHRzID0gKGNvbm5lY3RvcjogQ29ubmVjdG9yTW9kZWwpID0+IHtcclxuICAgIGNvbnN0IHsgdmlydHVhbCB9ID0gY29ubmVjdG9yLmFkZEluZm8gYXMgQ29ubmVjdG9yRGF0YSB8fCB7fTtcclxuICAgIGNvbm5lY3Rvci5jb25zdHJhaW50cyA9IENvbm5lY3RvckNvbnN0cmFpbnRzLlJlYWRPbmx5ICYgfkNvbm5lY3RvckNvbnN0cmFpbnRzLlNlbGVjdDtcclxuXHJcbiAgICB0aGlzLl9kZWNvcmF0ZUNvbm5lY3Rvcihjb25uZWN0b3IpO1xyXG4gIH1cclxuICBvcGVuKGl0ZW06IERvY3VtZW50SW5mbykge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IGRvY3VtZW50SWQ6IGl0ZW0uaWQuZW5jb2RlSWQoKSB9IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGltZWxpbmUoKSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IFtdLCBzdWJtaXNzaW9uczogRGF0ZVtdID0gW107XHJcbiAgICBsZXQgbWluRGF0ZTogRGF0ZSwgbWF4RGF0ZTogRGF0ZSwgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgICB0aGlzLm1vZGVsLmxvZy5mb3JFYWNoKGwgPT4ge1xyXG4gICAgICBjb25zdCB7IHRpbWUsIHVzZXJJZCB9ID0gbDtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdTdWJtaXQnOlxyXG4gICAgICAgICAgc3VibWlzc2lvbnMucHVzaCh0aW1lKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFpdGVtcy5maW5kKHQgPT4gdC50aW1lID09PSB0aW1lKSlcclxuICAgICAgICBpdGVtcy5wdXNoKHsgdGltZSwgdXNlcklkIH0pO1xyXG4gICAgICBpZiAoIW1pbkRhdGUgfHwgZGF5anModGltZSkuaXNCZWZvcmUobWluRGF0ZSkpIG1pbkRhdGUgPSB0aW1lO1xyXG4gICAgICBpZiAoIW1heERhdGUgfHwgZGF5anModGltZSkuaXNBZnRlcihtYXhEYXRlKSkgbWF4RGF0ZSA9IHRpbWU7XHJcbiAgICAgIGlmIChsLmVzdGltYXRlKSBlc3RpbWF0ZSA9IHRydWU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZWxpbmUgPSB7XHJcbiAgICAgIGl0ZW1zLCBtaW5EYXRlLCBtYXhEYXRlLFxyXG4gICAgICBzdWJtaXNzaW9ucywgZXN0aW1hdGVcclxuICAgIH0gYXMgYW55O1xyXG4gICAgdGhpcy5fc2NvcGUoc3VibWlzc2lvbnNbc3VibWlzc2lvbnMubGVuZ3RoIC0gMV0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Njb3BlKGRhdGU6IERhdGUpIHtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMudGltZWxpbmUuc3VibWlzc2lvbnMucmV2ZXJzZSgpLlxyXG4gICAgICBmaW5kKHMgPT4gcyA8PSBkYXRlKSxcclxuICAgICAgbmV4dERhdGUgPSB0aGlzLnRpbWVsaW5lLnN1Ym1pc3Npb25zLmZpbmQocyA9PiBzID4gZGF0ZSksXHJcbiAgICAgIGVuZERhdGUgPSBuZXh0RGF0ZSA/IG5ldyBEYXRlKG5ldyBEYXRlKG5leHREYXRlKS52YWx1ZU9mKCkgLSAxKS50b0pTT04oKSBhcyBhbnkgOiB0aGlzLnRpbWVsaW5lLm1heERhdGU7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMudGltZWxpbmUsIHtcclxuICAgICAgc3RhcnREYXRlLFxyXG4gICAgICBlbmREYXRlLFxyXG4gICAgICByZWNpcGllbnRzOiB0aGlzLm1vZGVsLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5yZWNlaXZlZCA+PSBzdGFydERhdGUgJiYgci5yZWNlaXZlZCA8PSBlbmREYXRlKSxcclxuICAgICAgbG9nOiB0aGlzLm1vZGVsLmxvZy5maWx0ZXIobCA9PiBsLnRpbWUgPj0gc3RhcnREYXRlICYmIGwudGltZSA8PSBlbmREYXRlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGljYXRvcnMoKSB7XHJcbiAgICBjb25zdCBpbmRpY2F0b3JzOiBOb2RlTW9kZWxbXSA9IFtdO1xyXG4gICAgdGhpcy5tb2RlbC5sb2cuZm9yRWFjaChsID0+IHtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdOb2RlJzpcclxuICAgICAgICAgIGlmIChsLmVycm9yKVxyXG4gICAgICAgICAgICBpbmRpY2F0b3JzLnB1c2goe1xyXG4gICAgICAgICAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnUGF0aCcsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBXQVJOTklOR19QQVRILFxyXG4gICAgICAgICAgICAgICAgYWxpZ246ICdYTWluWU1heCdcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRvb2x0aXA6IHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGwuZXJyb3IsXHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ0JvdHRvbUNlbnRlcidcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICBmaWxsOiBnZXRXYXJuKDgwMClcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGFkZEluZm86IHtcclxuICAgICAgICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBsLm5vZGVJZFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdOb2RlSnVtcCc6XHJcbiAgICAgICAgICAvL2luZGljYXRvcnMucHVzaCh7XHJcbiAgICAgICAgICAvLyAgc2hhcGU6IHtcclxuICAgICAgICAgIC8vICAgIHR5cGU6ICdQYXRoJyxcclxuICAgICAgICAgIC8vICAgIGRhdGE6IEpVTVBfUEFUSCxcclxuICAgICAgICAgIC8vICAgIGFsaWduOiAnWE1pbllNYXgnXHJcbiAgICAgICAgICAvLyAgfSxcclxuICAgICAgICAgIC8vICBzdHlsZToge1xyXG4gICAgICAgICAgLy8gICAgZmlsbDogJ2JsYWNrJ1xyXG4gICAgICAgICAgLy8gIH0sXHJcbiAgICAgICAgICAvLyAgYWRkSW5mbzoge1xyXG4gICAgICAgICAgLy8gICAgaW5kaWNhdG9yOiB0cnVlLFxyXG4gICAgICAgICAgLy8gICAgcGFyZW50SWQ6IGwubm9kZUlkXHJcbiAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgLy99KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhZ3JhbS5yZW1vdmVMYXllcignaW5kaWNhdG9ycycpO1xyXG4gICAgaW5kaWNhdG9ycy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmRpYWdyYW0uZ2V0Tm9kZU9iamVjdCgoaS5hZGRJbmZvIGFzIE5vZGVEYXRhKS5wYXJlbnRJZCk7XHJcbiAgICAgIGkub2Zmc2V0WCA9IHBhcmVudC5vZmZzZXRYICsgcGFyZW50LndpZHRoIC8gMiAtIDE1LFxyXG4gICAgICAgIGkub2Zmc2V0WSA9IHBhcmVudC5vZmZzZXRZICsgcGFyZW50LmhlaWdodCAvIDIgLSAxNTtcclxuICAgICAgdGhpcy5kaWFncmFtLmFkZChpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZExheWVyKHsgaWQ6ICdpbmRpY2F0b3JzJyB9LCBpbmRpY2F0b3JzKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGVjb3JhdGVOb2RlKG5vZGU6IE5vZGVNb2RlbCkge1xyXG4gICAgY29uc3QgbG9nID0gdGhpcy50aW1lbGluZS5sb2cuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IG5vZGUuaWQpO1xyXG5cclxuICAgIGlmIChsb2cubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0aGlzLnRpbWVsaW5lLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IG5vZGUuaWQpO1xyXG5cclxuICAgICAgbm9kZS5zdHlsZS5zdHJva2VDb2xvciA9IHRoaXMuX2FjY2VudENvbG9yO1xyXG4gICAgICBub2RlLnN0eWxlLnN0cm9rZURhc2hBcnJheSA9IGxvZy5maW5kKGwgPT4gbC5lc3RpbWF0ZSkgPyAnMyAyJyA6ICcnO1xyXG5cclxuICAgICAgbm9kZS5zdHlsZS5maWxsID0gcmVjaXBpZW50cy5maW5kKHIgPT4gci5wZW5kaW5nICYmICFyLmVzdGltYXRlKSA/IHRoaXMuX2FjY2VudENvbG9yIDogJ3doaXRlJztcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgbm9kZS5zdHlsZS5maWxsID0gJ3doaXRlJyxcclxuICAgICAgICBub2RlLnN0eWxlLnN0cm9rZUNvbG9yID0gJ2RhcmtncmF5JyxcclxuICAgICAgICBub2RlLnN0eWxlLnN0cm9rZURhc2hBcnJheSA9ICc2IDInO1xyXG4gIH1cclxuICBwcml2YXRlIF9kZWNvcmF0ZUNvbm5lY3Rvcihjb25uZWN0b3I6IENvbm5lY3Rvck1vZGVsKSB7XHJcbiAgICBjb25zdCBsb2cgPSB0aGlzLnRpbWVsaW5lLmxvZy5maWx0ZXIobCA9PiBsLnNvdXJjZUlkID09PSBjb25uZWN0b3Iuc291cmNlSUQgJiYgbC50YXJnZXRJZCA9PSBjb25uZWN0b3IudGFyZ2V0SUQpO1xyXG5cclxuICAgIGlmIChsb2cubGVuZ3RoKSB7XHJcbiAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VDb2xvciA9IGNvbm5lY3Rvci50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPSBjb25uZWN0b3IudGFyZ2V0RGVjb3JhdG9yLnN0eWxlLmZpbGwgPVxyXG4gICAgICAgIHRoaXMuX2FjY2VudENvbG9yO1xyXG4gICAgICBjb25uZWN0b3Iuc3R5bGUuc3Ryb2tlRGFzaEFycmF5ID0gbG9nLmZpbmQobCA9PiBsLmVzdGltYXRlKSA/ICczIDInIDogJyc7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VDb2xvciA9IGNvbm5lY3Rvci50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPSBjb25uZWN0b3IudGFyZ2V0RGVjb3JhdG9yLnN0eWxlLmZpbGwgPSAnZGFya2dyYXknLFxyXG4gICAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VEYXNoQXJyYXkgPSAnNiAyJztcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmVyc2lvbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5yZW1vdmVMYXllcihcclxuICAgICAgJ3ZlcnNpb24nKTtcclxuICAgIGNvbnN0IHZlcnNpb24gPSB7XHJcbiAgICAgIGlkOiAndmVyc2lvbicsXHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdGhpcy5tb2RlbC5kaWFncmFtLnZlcnNpb24pXHJcbiAgICAgIH0sXHJcbiAgICAgIG9mZnNldFk6IDUsXHJcbiAgICAgIG9mZnNldFg6IDUsXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZm9udFNpemU6IDUwLFxyXG4gICAgICAgIG9wYWNpdHk6IC4xXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbnN0cmFpbnRzOiBOb2RlQ29uc3RyYWludHMuUmVhZE9ubHlcclxuICAgIH0gYXMgVGV4dE1vZGVsO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZExheWVyKHtcclxuICAgICAgaWQ6ICd2ZXJzaW9uJyxcclxuICAgICAgb2JqZWN0czogW1xyXG4gICAgICAgIHZlcnNpb25dXHJcbiAgICB9IGFzIExheWVyTW9kZWwpO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZCh2ZXJzaW9uKTtcclxuICB9XHJcbiAgc2VsZWN0aW9uQ2hhbmdlKGV2dDogSVNlbGVjdGlvbkNoYW5nZUV2ZW50QXJncykge1xyXG4gICAgaWYgKGV2dC5zdGF0ZSAhPT0gJ0NoYW5nZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLl91bmhpZ2hsaWdodCgpO1xyXG4gICAgaWYgKGV2dC5uZXdWYWx1ZS5sZW5ndGgpIHtcclxuICAgICAgbGV0IG5vZGUgPSBldnQubmV3VmFsdWVbMF0gYXMgTm9kZU1vZGVsO1xyXG5cclxuICAgICAgY29uc3QgeyBpbmRpY2F0b3IsIHBhcmVudElkIH0gPSBub2RlLmFkZEluZm8gYXMgTm9kZURhdGEgfHwge307XHJcblxyXG4gICAgICBpZiAoaW5kaWNhdG9yKSB7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMuZGlhZ3JhbS5nZXROb2RlT2JqZWN0KHBhcmVudElkKTtcclxuICAgICAgICB0aGlzLmRpYWdyYW0uc2VsZWN0KFtub2RlXSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaWRzID0gKChub2RlIGFzIGFueSkuaW5FZGdlcykuY29uY2F0KChub2RlIGFzIGFueSkub3V0RWRnZXMpO1xyXG4gICAgICAgIGlkcy5wdXNoKG5vZGUuaWQpO1xyXG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodChpZHMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmZvUmVmKSB0aGlzLl9pbmZvUmVmLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFRyYWNlRWxlbWVudENvbXBvbmVudCwge1xyXG4gICAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgdGltZWxpbmU6IHRoaXMudGltZWxpbmUsXHJcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxyXG4gICAgICAgICAgICB1dGlsaXR5UmVmOiB0aGlzLl91dGlsaXR5UmVmLFxyXG4gICAgICAgICAgfSBhcyBFbGVtZW50RGF0YSxcclxuICAgICAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWJcclxuICAgICAgICB9KS50aGVuKChlOiBQYW5lUmVmKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9pbmZvUmVmID0gZTtcclxuICAgICAgICAgIGUuYW5pbWF0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB0aGlzLl9yb3V0ZXIuY29sbGFwc2UoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5ub2RlID0gbnVsbDtcclxuICB9XHJcbiAgcHVibGljIGhpZ2hsaWdodFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy50aW1lbGluZS5kYXRlID0gdGltZTtcclxuICAgIHRoaXMuZGlhZ3JhbS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgdGhpcy5fdW5oaWdobGlnaHQoKTtcclxuICAgIGlmICh0aW1lIDwgdGhpcy50aW1lbGluZS5zdGFydERhdGUgfHwgdGltZSA+IHRoaXMudGltZWxpbmUuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLl9zY29wZSh0aW1lKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRpYWdyYW0ubm9kZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKHRoaXMuZGlhZ3JhbS5ub2Rlc1tpXSk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kaWFncmFtLmNvbm5lY3RvcnMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVDb25uZWN0b3IodGhpcy5kaWFncmFtLmNvbm5lY3RvcnNbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlkcyA9IHRoaXMudGltZWxpbmUubG9nLmZpbHRlcihsID0+IGwubm9kZUlkICYmIGwudGltZSA9PT0gdGltZSkubWFwKGwgPT4gbC5ub2RlSWQpLlxyXG4gICAgICBmaWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSk7XHJcblxyXG4gICAgdGhpcy5faGlnaGxpZ2h0KGlkcyk7XHJcbiAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICB9XHJcblxyXG4gIHBhbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyB8IERpYWdyYW1Db25zdHJhaW50cy5QYW47XHJcbiAgICB0aGlzLmRpYWdyYW0udG9vbCA9IERpYWdyYW1Ub29scy5ab29tUGFuO1xyXG4gIH1cclxuICBjdXJzb3IoKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uY29uc3RyYWludHMgPSB0aGlzLmRpYWdyYW0uY29uc3RyYWludHMgJiB+RGlhZ3JhbUNvbnN0cmFpbnRzLlBhbjtcclxuICAgIHRoaXMuZGlhZ3JhbS50b29sID0gRGlhZ3JhbVRvb2xzLlNpbmdsZVNlbGVjdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0KGlkczogc3RyaW5nW10pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHRoaXMuZGlhZ3JhbS5nZXRPYmplY3QoaWRzW2ldKSBhcyBhbnk7XHJcbiAgICAgIGlmIChvYmouc291cmNlSUQpXHJcbiAgICAgICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID1cclxuICAgICAgICAgIG9iai50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPVxyXG4gICAgICAgICAgb2JqLnRhcmdldERlY29yYXRvci5zdHlsZS5maWxsID0gdGhpcy5fcHJpbWVyeUNvbG9yO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fcHJpbWVyeUNvbG9yO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faGlnaExpZ2h0ZWRJZHMgPSBpZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bmhpZ2hsaWdodCgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHRoaXMuX2hpZ2hMaWdodGVkSWRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHRoaXMuZGlhZ3JhbS5nZXRPYmplY3QodGhpcy5faGlnaExpZ2h0ZWRJZHNbaV0pIGFzIGFueTtcclxuICAgICAgaWYgKG9iai5zb3VyY2VJRClcclxuICAgICAgICB0aGlzLl9kZWNvcmF0ZUNvbm5lY3RvcihvYmopO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKG9iaik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWdoTGlnaHRlZElkcyA9IFtdO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPCEtLSBkaWFncmFtIC0tPlxyXG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkaWFncmFtJ1wiIGNsYXNzPVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgPG1hdC10b29sYmFyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYnJvd3NlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInQmFjaycgfCB0cmFuc2xhdGVcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+YXJyb3dfYmFjazwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIHxcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInBhbigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1BhbicgfCB0cmFuc2xhdGVcIj48c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1wYW5cIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjdXJzb3IoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDdXJzb3InIHwgdHJhbnNsYXRlXCI+PHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tY3Vyc29yXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJndWlkZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmhlbHBfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIGZ4RmxleD5cclxuICAgICAgPCEtLSB0aW1lbGluZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lXCIgKm5nSWY9XCJ0aW1lbGluZT8uaXRlbXMubGVuZ3RoID4gMVwiIGRhdGEtaGVscD1cInRpbWVsaW5lXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiB0aW1lbGluZS5pdGVtczsgbGV0IGxhc3QgPSBsYXN0XCIgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZGF0ZS50aW1lID09PSB0aW1lbGluZS5kYXRlXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJoaWdobGlnaHRUaW1lKGRhdGUudGltZSlcIiBtYXRSaXBwbGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsYXN0IHx8ICF0aW1lbGluZS5lc3RpbWF0ZTsgZWxzZSBlc3RpbWF0ZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2hvXCIgKm5nSWY9XCJ1c2VySWRcIj5cclxuICAgICAgICAgICAgICAgIHt7ZGF0ZS51c2VySWQgfCB1c2VyTmFtZSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3tkYXRlLnRpbWUgfCBhbURhdGVGb3JtYXQ6ICdNTU0gRG8gSDptbScgfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4ICNkaWFncmFtIGRpcj1cImx0clwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gYnJvd3NlIC0tPlxyXG4gIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXhGaWxsPlxyXG4gICAgPG1hdC10b29sYmFyIGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5GaWx0ZXIoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidGaWx0ZXInfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgW21vZGVdPVwibG9hZGluZ1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8IS0tIHRhYmxlIC0tPlxyXG4gICAgPG1hdC10YWJsZSBmeEZsZXggW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQ+XHJcbiAgICAgIDwhLS0gTnVtYmVyIGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJudW1iZXJcIj5cclxuICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydOdW1iZXInIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj4ge3tpdGVtLm51bWJlcn19IDwvbWF0LWNlbGw+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBTdWJqZWN0IGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdWJqZWN0XCI+XHJcbiAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3snU3ViamVjdCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0uc3ViamVjdH19IDwvbWF0LWNlbGw+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tIFN0YXRlSWQgY29sdW1uIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXRlSWRcIj5cclxuICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj1cInN0YXRlSWRcIj57eydTdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Yml6ZG9jLXN0YXR1cyBbc3RhdGVJZF09XCJpdGVtLnN0YXRlSWRcIj48L2JpemRvYy1zdGF0dXM+XHJcbiAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuKGl0ZW0pXCI+XHJcbiAgICAgIDwvbWF0LXJvdz5cclxuICAgIDwvbWF0LXRhYmxlPlxyXG4gICAgPCEtLSByYW5nZSAtLT5cclxuICAgIDxlanMtcmFuZ2VuYXZpZ2F0b3IgdmFsdWVUeXBlPSdEYXRlVGltZScgW3ZhbHVlXT1yYW5nZSBsYWJlbEZvcm1hdD0nTU1NLWRkJyBiYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwidGhlbWVcIiBsYWJlbEludGVyc2VjdEFjdGlvbj0nSGlkZScgZW5hYmxlR3JvdXBpbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwQnk9XCJZZWFyc1wiIGludGVydmFsVHlwZT0nRGF5cydcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPSdyYW5nZUNoYW5nZWQoJGV2ZW50KSc+XHJcbiAgICAgIDxlLXJhbmdlbmF2aWdhdG9yLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDxlLXJhbmdlbmF2aWdhdG9yLXNlcmllcyBbZGF0YVNvdXJjZV09J3JhbmdlRGF0YScgW2ZpbGxdPVwiYWNjZW50XCIgdHlwZT0nQXJlYScgeE5hbWU9J2RhdGUnIHlOYW1lPSdjb3VudCcgd2lkdGg9Mj5cclxuICAgICAgICA8L2UtcmFuZ2VuYXZpZ2F0b3Itc2VyaWVzPlxyXG4gICAgICA8L2UtcmFuZ2VuYXZpZ2F0b3Itc2VyaWVzLWNvbGxlY3Rpb24+XHJcbiAgICA8L2Vqcy1yYW5nZW5hdmlnYXRvcj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0gYXJncyAtLT5cclxuPG5nLXRlbXBsYXRlICNhcmdzPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwic2VhcmNoXCIgI3NlYXJjaCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBkYXRhLWhlbHA9XCJzZWFyY2hcIiBbcGxhY2Vob2xkZXJdPVwiJ051bWJlcid8dHJhbnNsYXRlXCIgLz5cclxuICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGJpemRvYy1zZWxlY3QgdHlwZT1cImZvcm1zXCIgW3BsYWNlaG9sZGVyXT1cIidGb3JtJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtSWRcIj48L2JpemRvYy1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNlc3RpbWF0ZT5cclxuICB7eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
771
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentTraceComponent, [{
|
772
|
+
type: Component,
|
773
|
+
args: [{ host: {
|
774
|
+
class: 'pane'
|
775
|
+
}, animations: [trigger('element', EnterExitRight)], template: "<ng-container [ngSwitch]=\"mode\">\r\n <!-- diagram -->\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n |\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <!-- timeline -->\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\" *ngIf=\"userId\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n </div>\r\n </div>\r\n <!-- browse -->\r\n <div *ngSwitchDefault fxFlex fxLayout=\"column\" fxFlexFill>\r\n <mat-toolbar fxLayout=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </mat-toolbar>\r\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- table -->\r\n <mat-table fxFlex [dataSource]=\"dataSource\" matSort>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n <!-- StateId column -->\r\n <ng-container matColumnDef=\"stateId\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\r\n (click)=\"open(item)\">\r\n </mat-row>\r\n </mat-table>\r\n <!-- range -->\r\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM-dd' background=\"transparent\"\r\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\r\n groupBy=\"Years\" intervalType='Days'\r\n (changed)='rangeChanged($event)'>\r\n <e-rangenavigator-series-collection>\r\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\r\n </e-rangenavigator-series>\r\n </e-rangenavigator-series-collection>\r\n </ejs-rangenavigator>\r\n </div>\r\n</ng-container>\r\n<!-- args -->\r\n<ng-template #args>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-row{cursor:pointer}form{margin:8px}\n"] }]
|
776
|
+
}], function () { return [{ type: i29.UtilityRef, decorators: [{
|
777
|
+
type: Inject,
|
778
|
+
args: [UtilityRef]
|
779
|
+
}] }, { type: i1.SystemService }, { type: i2.SessionService }, { type: i3.PaneRef }, { type: i4.PanesRouter }, { type: i5.PromptService }, { type: i6.TranslateService }, { type: i7.Popup }, { type: i8.GuideService }, { type: i0.ChangeDetectorRef }, { type: i9.FormBuilder }]; }, { diagramElement: [{
|
780
|
+
type: ViewChild,
|
781
|
+
args: ['diagram']
|
782
|
+
}], filterArgs: [{
|
783
|
+
type: ViewChild,
|
784
|
+
args: ['args']
|
785
|
+
}], searchInput: [{
|
786
|
+
type: ViewChild,
|
787
|
+
args: ['search']
|
788
|
+
}], sort: [{
|
789
|
+
type: ViewChild,
|
790
|
+
args: [MatSort]
|
791
|
+
}], rangeNavigator: [{
|
792
|
+
type: ViewChild,
|
793
|
+
args: [RangeNavigator]
|
794
|
+
}], guide: [{
|
795
|
+
type: HostListener,
|
796
|
+
args: ['window:keydown.f1', ['$event']]
|
797
|
+
}] }); })();
|
798
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kb2N1bWVudC10cmFjZS9kb2N1bWVudC10cmFjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2RvY3VtZW50LXRyYWNlL2RvY3VtZW50LXRyYWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxrQkFBa0IsRUFBa0IsZUFBZSxFQUFzQyxtQkFBbUIsRUFDNUcsUUFBUSxFQUFFLE9BQU8sRUFBZ0UsWUFBWSxFQUFhLG9CQUFvQixFQUF5QyxxQkFBcUIsRUFDN0wsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQXFCLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxN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QUFDLE1BQU07WUFDSSxXQUFXO2tCQUEvQixTQUFTO21CQUFDLFFBQVE7WUFFQyxJQUFJO2tCQUF2QixTQUFTO21CQUFDLE9BQU87WUFDUyxjQUFjO2tCQUF4QyxTQUFTO21CQUFDLGNBQWM7WUFpRXpCLEtBQUs7a0JBREosWUFBWTttQkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgRGlhZ3JhbUNvbnN0cmFpbnRzLCBQb2ludFBvcnRNb2RlbCwgTm9kZUNvbnN0cmFpbnRzLCBTY3JvbGxTZXR0aW5nc01vZGVsLCBTZWxlY3Rvck1vZGVsLCBTZWxlY3RvckNvbnN0cmFpbnRzLFxyXG4gIFRvb2xCYXNlLCBEaWFncmFtLCBNb3VzZUV2ZW50QXJncywgQ29ubmVjdG9yTW9kZWwsIE5vZGVNb2RlbCwgU25hcFNldHRpbmdzTW9kZWwsIERpYWdyYW1Ub29scywgVGV4dE1vZGVsLCBDb25uZWN0b3JDb25zdHJhaW50cywgSVNlbGVjdGlvbkNoYW5nZUV2ZW50QXJncywgTGF5ZXJNb2RlbCwgQ29ubmVjdGlvblBvaW50T3JpZ2luLCBMYXlvdXRNb2RlbFxyXG59IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgSUNoYW5nZWRFdmVudEFyZ3MsIFJhbmdlTmF2aWdhdG9yIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgZ2V0V2FybiB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgR3VpZGVTdGVwIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IERvY3VtZW50SW5mbywgU3lzdGVtU2VydmljZSwgUmFuZ2VJbmZvIH0gZnJvbSAnLi4vc3lzdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aWRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZ3VpZGUvZ3VpZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbm5lY3RvckRhdGEsIERpYWdyYW1JbmZvLCBNb3ZlTW9kZWwsIE5vZGVEYXRhLCBUaW1lbGluZSB9IGZyb20gJy4vdGltZWxpbmUnO1xyXG5pbXBvcnQgeyBFbnRlckV4aXRSaWdodCB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudERhdGEsIFRyYWNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vdHJhY2UtZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbmNvbnN0IFdBUk5OSU5HX1BBVEggPSAnTSAxMy43NjM3MzUsMS44NDMzNzM1IEggNi4zMDM3MzQ5IGwgLTUuMjcsNS4yNyB2IDcuNDU5OTk5NSBsIDUuMjcsNS4yNyBoIDcuNDYwMDAwMSBsIDUuMjcsLTUuMjcgViA3LjExMzM3MzUgWiBtIC0zLjczLDE0LjI5OTk5OTUgYyAtMC43MjAwMDAxLDAgLTEuMzAwMDAwMSwtMC41OCAtMS4zMDAwMDAxLC0xLjMgMCwtMC43MiAwLjU4LC0xLjMgMS4zMDAwMDAxLC0xLjMgMC43MiwwIDEuMywwLjU4IDEuMywxLjMgMCwwLjcyIC0wLjU4LDEuMyAtMS4zLDEuMyB6IG0gMSwtNC4zIEggOS4wMzM3MzQ5IFYgNS44NDMzNzM1IGggMi4wMDAwMDAxIHonLFxyXG4gIEpVTVBfUEFUSCA9ICdNIDYsMTggMTQuNSwxMiA2LDYgWiBNIDE2LDYgdiAxMiBoIDIgViA2IFonO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9ydHMoKTogUG9pbnRQb3J0TW9kZWxbXSB7XHJcbiAgcmV0dXJuIFtcclxuICAgIHsgaWQ6ICdwb3J0MScsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAsIHk6IDAuNSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDInLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLjUsIHk6IDEgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQzJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMSwgeTogMC41IH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0NCcsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAuNSwgeTogMCB9IH1cclxuICBdO1xyXG59XHJcblxyXG5jbGFzcyBJbmZvVG9vbCBleHRlbmRzIFRvb2xCYXNlIHtcclxuICBwdWJsaWMgb3ZlcnJpZGUgbW91c2VEb3duKGFyZ3M6IE1vdXNlRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBub2RlID0gdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXNbMF07XHJcbiAgICAgIHN1cGVyLm1vdXNlRG93bihhcmdzKVxyXG4gICAgICB0aGlzLnRhcC5uZXh0KG5vZGUpO1xyXG4gICAgICB0aGlzLmluQWN0aW9uID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWdyYW06IERpYWdyYW0sIHB1YmxpYyB0YXA6IFN1YmplY3Q8Tm9kZU1vZGVsPikge1xyXG4gICAgc3VwZXIoZGlhZ3JhbS5jb21tYW5kSGFuZGxlcik7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBTZWFyY2hNb2RlbCB7XHJcbiAgc2VhcmNoPzogc3RyaW5nLCBmb3JtSWQ/OiBzdHJpbmdcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtdHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LXRyYWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH0sIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdlbGVtZW50JywgRW50ZXJFeGl0UmlnaHQpXVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UtdXRpbGl0eScgfSlcclxuLyoqIHdvcmtmbG93IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFRyYWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWdyYW0nKSBkaWFncmFtRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgdGhlbWUgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgYWNjZW50ID0gdGhpcy5fc2Vzc2lvbi5nZXRBY2NlbnQoKTtcclxuICBkaWFncmFtOiBEaWFncmFtO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cDxTZWFyY2hNb2RlbD4oeyBzZWFyY2g6IG51bGwsIGZvcm1JZDogbnVsbCB9KTtcclxuICBtb2RlbDogRGlhZ3JhbUluZm87XHJcbiAgdGltZWxpbmU6IFRpbWVsaW5lO1xyXG4gIGRpYWdyYW1Db25zdHJhaW50czogRGlhZ3JhbUNvbnN0cmFpbnRzID0gRGlhZ3JhbUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBEaWFncmFtQ29uc3RyYWludHMuQnJpZGdpbmcgfFxyXG4gICAgRGlhZ3JhbUNvbnN0cmFpbnRzLkxpbmVSb3V0aW5nIHxcclxuICAgIERpYWdyYW1Db25zdHJhaW50cy5QYW4gfFxyXG4gICAgRGlhZ3JhbUNvbnN0cmFpbnRzLlpvb207XHJcbiAgZGlhZ3JhbVRvb2w6IERpYWdyYW1Ub29scyA9IERpYWdyYW1Ub29scy5TaW5nbGVTZWxlY3Q7XHJcbiAgcHVibGljIHJlYWRvbmx5IGxheW91dCA9IHtcclxuICAgIHR5cGU6ICdDb21wbGV4SGllcmFyY2hpY2FsVHJlZScsXHJcbiAgICBjb25uZWN0aW9uUG9pbnRPcmlnaW46IENvbm5lY3Rpb25Qb2ludE9yaWdpbi5EaWZmZXJlbnRQb2ludCxcclxuICAgIGhvcml6b250YWxTcGFjaW5nOiA1MCxcclxuICAgIGVuYWJsZVJvdXRpbmc6IHRydWUsXHJcbiAgICB2ZXJ0aWNhbFNwYWNpbmc6IDUwLFxyXG4gICAgaG9yaXpvbnRhbEFsaWdubWVudDogJ0NlbnRlcicsXHJcbiAgICBjb25uZWN0aW9uRGlyZWN0aW9uOiAnT3JpZW50YXRpb24nLFxyXG4gICAgb3JpZW50YXRpb246ICdUb3BUb0JvdHRvbSdcclxuICB9IGFzIExheW91dE1vZGVsO1xyXG4gIHJlYWRvbmx5IHNuYXBTZXR0aW5nczogU25hcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzY3JvbGxTZXR0aW5nczogU2Nyb2xsU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIG1pblpvb206IC41LFxyXG4gICAgbWF4Wm9vbTogMi41XHJcbiAgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9hY2NlbnRDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KDgwMCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpbWVyeUNvbG9yID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXM6IFNlbGVjdG9yTW9kZWwgPSB7XHJcbiAgICBjb25zdHJhaW50czogU2VsZWN0b3JDb25zdHJhaW50cy5Vc2VySGFuZGxlLFxyXG4gICAgdXNlckhhbmRsZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdpbmZvJyxcclxuICAgICAgICBwYXRoRGF0YTogJ00xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi02aDJ2NnptMC04aC0yVjdoMnYyeicsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgc2lkZTogJ1JpZ2h0JyxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogJ0JvdHRvbScsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgIHBhdGhDb2xvcjogdGhpcy5fcHJpbWVyeUNvbG9yLFxyXG4gICAgICAgIHNpemU6IDQwLFxyXG4gICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgcmlnaHQ6IDAgfVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0Q3VzdG9tVG9vbDogRnVuY3Rpb24gPSB0aGlzLmdldFRvb2wuYmluZCh0aGlzKTtcclxuICBub2RlOiBOb2RlTW9kZWw7XHJcbiAgcHJpdmF0ZSBfc3RhcnQ6IERhdGU7XHJcbiAgcHJpdmF0ZSBfZW5kOiBEYXRlO1xyXG4gIHByaXZhdGUgX2luZm9SZWY6IFBhbmVSZWY8VHJhY2VFbGVtZW50Q29tcG9uZW50PjtcclxuICBwdWJsaWMgZ2V0VG9vbChhY3Rpb246IHN0cmluZyk6IFRvb2xCYXNlIHtcclxuICAgIGxldCB0b29sOiBUb29sQmFzZTtcclxuICAgIGlmIChhY3Rpb24gPT09ICdpbmZvJykge1xyXG4gICAgICB0b29sID0gbmV3IEluZm9Ub29sKHRoaXMuZGlhZ3JhbSwgdGhpcy5fdGFwKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0b29sO1xyXG4gIH1cclxuICBtb2RlOiAnZGlhZ3JhbScgfCAnYnJvd3NlJyB8IG51bGwgPSAnYnJvd3NlJztcclxuICByYW5nZTogKERhdGUgfCBudW1iZXIpW107XHJcbiAgcmFuZ2VEYXRhOiBSYW5nZUluZm9bXTtcclxuICBsb2FkaW5nOiBQcm9ncmVzc0Jhck1vZGUgPSAncXVlcnknO1xyXG4gIEBWaWV3Q2hpbGQoJ2FyZ3MnKSBmaWx0ZXJBcmdzOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHNlYXJjaElucHV0OiBNYXRJbnB1dDtcclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8RG9jdW1lbnRJbmZvPjtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XHJcbiAgQFZpZXdDaGlsZChSYW5nZU5hdmlnYXRvcikgcmFuZ2VOYXZpZ2F0b3I6IFJhbmdlTmF2aWdhdG9yO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMgPSBbJ251bWJlcicsICdzdWJqZWN0JywgJ3N0YXRlSWQnXTtcclxuICBwcml2YXRlIF9oaWdoTGlnaHRlZElkczogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90YXAgPSBuZXcgU3ViamVjdDxOb2RlTW9kZWw+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGF0ZXNjaGFuZ2UgPSBuZXcgU3ViamVjdDx7IHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUgfT4oKTtcclxuICAvKiogd29ya2Zsb3cgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChVdGlsaXR5UmVmKVxyXG4gICAgcHJpdmF0ZSBfdXRpbGl0eVJlZjogVXRpbGl0eVJlZjxEaWFncmFtSW5mbywgTW92ZU1vZGVsLCBEaWFncmFtSW5mbywgbnVtYmVyPixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8RG9jdW1lbnRUcmFjZUNvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgbm93ID0gZGF5anMoKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgdGhpcy5hY2NlbnQgPSB0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpO1xyXG4gICAgICAvL3RoaXMucmFuZ2VOYXZpZ2F0b3IucmVmcmVzaCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKCkuc3Vic2NyaWJlKHIgPT4gdGhpcy5yYW5nZURhdGEgPSByKTtcclxuICAgIHRoaXMuX2RhdGVzY2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9zdGFydCA9IHIuc3RhcnQsIHRoaXMuX2VuZCA9IHIuZW5kO1xyXG4gICAgICB0aGlzLl9saXN0KCk7XHJcbiAgICB9KTtcclxuICAgIC8vbGV0IHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndHJhY2UtcmFuZ2UnKTtcclxuXHJcbiAgICB0aGlzLnJhbmdlID0gW25vdy5hZGQoLTIsICd3JykudG9EYXRlKCksXHJcbiAgICBub3cudG9EYXRlKCldO1xyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDIwMCkpLlxyXG4gICAgICBzdWJzY3JpYmUodGhpcy5fbGlzdC5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICBjb25zdCB7IGRvY3VtZW50SWQgfSA9IHA7XHJcbiAgICAgIGRvY3VtZW50SWQgJiYgdGhpcy5fb3BlbigoZG9jdW1lbnRJZCBhcyBzdHJpbmcpLmRlY29kZUlkKCkpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnJlc2l6ZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLmRpYWdyYW0/LnJlZnJlc2goKVxyXG4gICAgKTtcclxuICB9XHJcbiAgb3BlbkZpbHRlcihldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKHRoaXMuZmlsdGVyQXJncywgZXZ0LnRhcmdldCBhcyBIVE1MQnV0dG9uRWxlbWVudCkub3BlbmVkLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLnNlYXJjaElucHV0LmZvY3VzKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9saXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gJ3F1ZXJ5JztcclxuICAgIHRoaXMuX3NlcnZpY2UuZmluZEFsbCh7IC4uLnRoaXMuZm9ybS52YWx1ZSwgc3RhcnQ6IHRoaXMuX3N0YXJ0LCBlbmQ6IHRoaXMuX2VuZCB9KS5zdWJzY3JpYmUobCA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UobCk7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmFuZ2VDaGFuZ2VkKGFyZ3M6IElDaGFuZ2VkRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICAvL2xvY2FsU3RvcmFnZS5zZXRJdGVtKCd0cmFjZS1yYW5nZScsIGFyZ3MuKTtcclxuICAgIHRoaXMuX2RhdGVzY2hhbmdlLm5leHQoYXJncyBhcyBhbnkpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5mMScsIFsnJGV2ZW50J10pXHJcbiAgZ3VpZGUoZXZ0PzogRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBzdGVwczogR3VpZGVTdGVwW10gPSBbXTtcclxuICAgIGlmICh0aGlzLnRpbWVsaW5lKSB7XHJcbiAgICAgIGlmICh0aGlzLnRpbWVsaW5lLml0ZW1zLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9dGltZWxpbmVdJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RyYWNlVGltZWxpbmVIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgc2VsZWN0b3I6ICdnW2lkXj1zdGFydF0nLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RyYWNlRWxlbWVudEhlbHAnKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHN0ZXBzLnB1c2goe1xyXG4gICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2VhcmNoXScsXHJcbiAgICAgIHBvc2l0aW9uOiAnQmVsb3cnLFxyXG4gICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdUcmFjZVNlYXJjaEhlbHAnKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydCh7XHJcbiAgICAgIG5hbWU6ICd0cmFjZScsXHJcbiAgICAgIHN0ZXBzXHJcbiAgICB9KTtcclxuICAgIGV2dCAmJiBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgYnJvd3NlKCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdKTtcclxuICAgIHRoaXMuX3JvdXRlci5jb2xsYXBzZSgpO1xyXG4gICAgdGhpcy5tb2RlID0gJ2Jyb3dzZSc7XHJcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3BlbihpZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0/LmRlc3Ryb3koKTtcclxuICAgIHRoaXMubG9hZGluZyA9ICdidWZmZXInO1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5wb3B1bGF0ZShpZCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdoTGlnaHRlZElkcyA9IFtdO1xyXG4gICAgICB0aGlzLm1vZGVsID0gZTtcclxuICAgICAgdGhpcy5fdGltZWxpbmUoKTtcclxuICAgICAgdGhpcy5tb2RlID0gJ2RpYWdyYW0nO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbSA9IG5ldyBEaWFncmFtKHtcclxuICAgICAgICB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICBzbmFwU2V0dGluZ3M6IHRoaXMuc25hcFNldHRpbmdzLFxyXG4gICAgICAgIGxheW91dDogdGhpcy5sYXlvdXQsXHJcbiAgICAgICAgZ2V0Q29ubmVjdG9yRGVmYXVsdHM6IHRoaXMuY29ubkRlZmF1bHRzLFxyXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcclxuICAgICAgICB0b29sOiB0aGlzLmRpYWdyYW1Ub29sLFxyXG4gICAgICAgIGNvbnN0cmFpbnRzOiB0aGlzLmRpYWdyYW1Db25zdHJhaW50cyxcclxuICAgICAgICBnZXROb2RlRGVmYXVsdHM6IHRoaXMubm9kZURlZmF1bHRzLFxyXG4gICAgICAgIHNjcm9sbFNldHRpbmdzOiB0aGlzLnNjcm9sbFNldHRpbmdzLFxyXG4gICAgICAgIG5vZGVzOiBlLmRpYWdyYW0ubm9kZXMsXHJcbiAgICAgICAgY29ubmVjdG9yczogZS5kaWFncmFtLmNvbm5lY3RvcnMsXHJcbiAgICAgICAgc2VsZWN0aW9uQ2hhbmdlOiB0aGlzLnNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICAgIH0sIHRoaXMuZGlhZ3JhbUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24oKTtcclxuICAgICAgdGhpcy5faW5kaWNhdG9ycygpO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uZml0VG9QYWdlKCk7XHJcblxyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5vZGVEZWZhdWx0cyA9IChub2RlOiBOb2RlTW9kZWwpOiBOb2RlTW9kZWwgPT4ge1xyXG4gICAgY29uc3QgeyBpbmRpY2F0b3IsIHZpcnR1YWwgfSA9IG5vZGUuYWRkSW5mbyBhcyBOb2RlRGF0YSB8fCB7fTtcclxuXHJcbiAgICBpZiAoaW5kaWNhdG9yKSB7XHJcbiAgICAgIG5vZGUuY29uc3RyYWludHMgPSBOb2RlQ29uc3RyYWludHMuUG9pbnRlckV2ZW50cyB8IE5vZGVDb25zdHJhaW50cy5Ub29sdGlwLFxyXG4gICAgICAgIG5vZGUuc3R5bGUuc3Ryb2tlV2lkdGggPSAwLFxyXG4gICAgICAgIG5vZGUud2lkdGggPSBub2RlLmhlaWdodCA9IDE1O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9kZS5pZCAhPT0gJ3ZlcnNpb24nKSB7XHJcbiAgICAgIG5vZGUuY29uc3RyYWludHMgPSBOb2RlQ29uc3RyYWludHMuSW5Db25uZWN0IHwgTm9kZUNvbnN0cmFpbnRzLk91dENvbm5lY3QgfFxyXG4gICAgICAgIE5vZGVDb25zdHJhaW50cy5Qb2ludGVyRXZlbnRzIHwgTm9kZUNvbnN0cmFpbnRzLlNlbGVjdDtcclxuICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKG5vZGUpO1xyXG4gICAgICBub2RlLnBvcnRzID0gZ2V0UG9ydHMoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlO1xyXG4gIH1cclxuICBwdWJsaWMgY29ubkRlZmF1bHRzID0gKGNvbm5lY3RvcjogQ29ubmVjdG9yTW9kZWwpID0+IHtcclxuICAgIGNvbnN0IHsgdmlydHVhbCB9ID0gY29ubmVjdG9yLmFkZEluZm8gYXMgQ29ubmVjdG9yRGF0YSB8fCB7fTtcclxuICAgIGNvbm5lY3Rvci5jb25zdHJhaW50cyA9IENvbm5lY3RvckNvbnN0cmFpbnRzLlJlYWRPbmx5ICYgfkNvbm5lY3RvckNvbnN0cmFpbnRzLlNlbGVjdDtcclxuXHJcbiAgICB0aGlzLl9kZWNvcmF0ZUNvbm5lY3Rvcihjb25uZWN0b3IpO1xyXG4gIH1cclxuICBvcGVuKGl0ZW06IERvY3VtZW50SW5mbykge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IGRvY3VtZW50SWQ6IGl0ZW0uaWQuZW5jb2RlSWQoKSB9IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGltZWxpbmUoKSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IFtdLCBzdWJtaXNzaW9uczogRGF0ZVtdID0gW107XHJcbiAgICBsZXQgbWluRGF0ZTogRGF0ZSwgbWF4RGF0ZTogRGF0ZSwgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgICB0aGlzLm1vZGVsLmxvZy5mb3JFYWNoKGwgPT4ge1xyXG4gICAgICBjb25zdCB7IHRpbWUsIHVzZXJJZCB9ID0gbDtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdTdWJtaXQnOlxyXG4gICAgICAgICAgc3VibWlzc2lvbnMucHVzaCh0aW1lKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFpdGVtcy5maW5kKHQgPT4gdC50aW1lID09PSB0aW1lKSlcclxuICAgICAgICBpdGVtcy5wdXNoKHsgdGltZSwgdXNlcklkIH0pO1xyXG4gICAgICBpZiAoIW1pbkRhdGUgfHwgZGF5anModGltZSkuaXNCZWZvcmUobWluRGF0ZSkpIG1pbkRhdGUgPSB0aW1lO1xyXG4gICAgICBpZiAoIW1heERhdGUgfHwgZGF5anModGltZSkuaXNBZnRlcihtYXhEYXRlKSkgbWF4RGF0ZSA9IHRpbWU7XHJcbiAgICAgIGlmIChsLmVzdGltYXRlKSBlc3RpbWF0ZSA9IHRydWU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZWxpbmUgPSB7XHJcbiAgICAgIGl0ZW1zLCBtaW5EYXRlLCBtYXhEYXRlLFxyXG4gICAgICBzdWJtaXNzaW9ucywgZXN0aW1hdGVcclxuICAgIH0gYXMgYW55O1xyXG4gICAgdGhpcy5fc2NvcGUoc3VibWlzc2lvbnNbc3VibWlzc2lvbnMubGVuZ3RoIC0gMV0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Njb3BlKGRhdGU6IERhdGUpIHtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMudGltZWxpbmUuc3VibWlzc2lvbnMucmV2ZXJzZSgpLlxyXG4gICAgICBmaW5kKHMgPT4gcyA8PSBkYXRlKSxcclxuICAgICAgbmV4dERhdGUgPSB0aGlzLnRpbWVsaW5lLnN1Ym1pc3Npb25zLmZpbmQocyA9PiBzID4gZGF0ZSksXHJcbiAgICAgIGVuZERhdGUgPSBuZXh0RGF0ZSA/IG5ldyBEYXRlKG5ldyBEYXRlKG5leHREYXRlKS52YWx1ZU9mKCkgLSAxKS50b0pTT04oKSBhcyBhbnkgOiB0aGlzLnRpbWVsaW5lLm1heERhdGU7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMudGltZWxpbmUsIHtcclxuICAgICAgc3RhcnREYXRlLFxyXG4gICAgICBlbmREYXRlLFxyXG4gICAgICByZWNpcGllbnRzOiB0aGlzLm1vZGVsLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5yZWNlaXZlZCA+PSBzdGFydERhdGUgJiYgci5yZWNlaXZlZCA8PSBlbmREYXRlKSxcclxuICAgICAgbG9nOiB0aGlzLm1vZGVsLmxvZy5maWx0ZXIobCA9PiBsLnRpbWUgPj0gc3RhcnREYXRlICYmIGwudGltZSA8PSBlbmREYXRlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGljYXRvcnMoKSB7XHJcbiAgICBjb25zdCBpbmRpY2F0b3JzOiBOb2RlTW9kZWxbXSA9IFtdO1xyXG4gICAgdGhpcy5tb2RlbC5sb2cuZm9yRWFjaChsID0+IHtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdOb2RlJzpcclxuICAgICAgICAgIGlmIChsLmVycm9yKVxyXG4gICAgICAgICAgICBpbmRpY2F0b3JzLnB1c2goe1xyXG4gICAgICAgICAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnUGF0aCcsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBXQVJOTklOR19QQVRILFxyXG4gICAgICAgICAgICAgICAgYWxpZ246ICdYTWluWU1heCdcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRvb2x0aXA6IHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGwuZXJyb3IsXHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ0JvdHRvbUNlbnRlcidcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICBmaWxsOiBnZXRXYXJuKDgwMClcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGFkZEluZm86IHtcclxuICAgICAgICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBsLm5vZGVJZFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdOb2RlSnVtcCc6XHJcbiAgICAgICAgICAvL2luZGljYXRvcnMucHVzaCh7XHJcbiAgICAgICAgICAvLyAgc2hhcGU6IHtcclxuICAgICAgICAgIC8vICAgIHR5cGU6ICdQYXRoJyxcclxuICAgICAgICAgIC8vICAgIGRhdGE6IEpVTVBfUEFUSCxcclxuICAgICAgICAgIC8vICAgIGFsaWduOiAnWE1pbllNYXgnXHJcbiAgICAgICAgICAvLyAgfSxcclxuICAgICAgICAgIC8vICBzdHlsZToge1xyXG4gICAgICAgICAgLy8gICAgZmlsbDogJ2JsYWNrJ1xyXG4gICAgICAgICAgLy8gIH0sXHJcbiAgICAgICAgICAvLyAgYWRkSW5mbzoge1xyXG4gICAgICAgICAgLy8gICAgaW5kaWNhdG9yOiB0cnVlLFxyXG4gICAgICAgICAgLy8gICAgcGFyZW50SWQ6IGwubm9kZUlkXHJcbiAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgLy99KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhZ3JhbS5yZW1vdmVMYXllcignaW5kaWNhdG9ycycpO1xyXG4gICAgaW5kaWNhdG9ycy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmRpYWdyYW0uZ2V0Tm9kZU9iamVjdCgoaS5hZGRJbmZvIGFzIE5vZGVEYXRhKS5wYXJlbnRJZCk7XHJcbiAgICAgIGkub2Zmc2V0WCA9IHBhcmVudC5vZmZzZXRYICsgcGFyZW50LndpZHRoIC8gMiAtIDE1LFxyXG4gICAgICAgIGkub2Zmc2V0WSA9IHBhcmVudC5vZmZzZXRZICsgcGFyZW50LmhlaWdodCAvIDIgLSAxNTtcclxuICAgICAgdGhpcy5kaWFncmFtLmFkZChpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZExheWVyKHsgaWQ6ICdpbmRpY2F0b3JzJyB9LCBpbmRpY2F0b3JzKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGVjb3JhdGVOb2RlKG5vZGU6IE5vZGVNb2RlbCkge1xyXG4gICAgY29uc3QgbG9nID0gdGhpcy50aW1lbGluZS5sb2cuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IG5vZGUuaWQpO1xyXG5cclxuICAgIGlmIChsb2cubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0aGlzLnRpbWVsaW5lLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IG5vZGUuaWQpO1xyXG5cclxuICAgICAgbm9kZS5zdHlsZS5zdHJva2VDb2xvciA9IHRoaXMuX2FjY2VudENvbG9yO1xyXG4gICAgICBub2RlLnN0eWxlLnN0cm9rZURhc2hBcnJheSA9IGxvZy5maW5kKGwgPT4gbC5lc3RpbWF0ZSkgPyAnMyAyJyA6ICcnO1xyXG5cclxuICAgICAgbm9kZS5zdHlsZS5maWxsID0gcmVjaXBpZW50cy5maW5kKHIgPT4gci5wZW5kaW5nICYmICFyLmVzdGltYXRlKSA/IHRoaXMuX2FjY2VudENvbG9yIDogJ3doaXRlJztcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgbm9kZS5zdHlsZS5maWxsID0gJ3doaXRlJyxcclxuICAgICAgICBub2RlLnN0eWxlLnN0cm9rZUNvbG9yID0gJ2RhcmtncmF5JyxcclxuICAgICAgICBub2RlLnN0eWxlLnN0cm9rZURhc2hBcnJheSA9ICc2IDInO1xyXG4gIH1cclxuICBwcml2YXRlIF9kZWNvcmF0ZUNvbm5lY3Rvcihjb25uZWN0b3I6IENvbm5lY3Rvck1vZGVsKSB7XHJcbiAgICBjb25zdCBsb2cgPSB0aGlzLnRpbWVsaW5lLmxvZy5maWx0ZXIobCA9PiBsLnNvdXJjZUlkID09PSBjb25uZWN0b3Iuc291cmNlSUQgJiYgbC50YXJnZXRJZCA9PSBjb25uZWN0b3IudGFyZ2V0SUQpO1xyXG5cclxuICAgIGlmIChsb2cubGVuZ3RoKSB7XHJcbiAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VDb2xvciA9IGNvbm5lY3Rvci50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPSBjb25uZWN0b3IudGFyZ2V0RGVjb3JhdG9yLnN0eWxlLmZpbGwgPVxyXG4gICAgICAgIHRoaXMuX2FjY2VudENvbG9yO1xyXG4gICAgICBjb25uZWN0b3Iuc3R5bGUuc3Ryb2tlRGFzaEFycmF5ID0gbG9nLmZpbmQobCA9PiBsLmVzdGltYXRlKSA/ICczIDInIDogJyc7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VDb2xvciA9IGNvbm5lY3Rvci50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPSBjb25uZWN0b3IudGFyZ2V0RGVjb3JhdG9yLnN0eWxlLmZpbGwgPSAnZGFya2dyYXknLFxyXG4gICAgICAgIGNvbm5lY3Rvci5zdHlsZS5zdHJva2VEYXNoQXJyYXkgPSAnNiAyJztcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmVyc2lvbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5yZW1vdmVMYXllcihcclxuICAgICAgJ3ZlcnNpb24nKTtcclxuICAgIGNvbnN0IHZlcnNpb24gPSB7XHJcbiAgICAgIGlkOiAndmVyc2lvbicsXHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdGhpcy5tb2RlbC5kaWFncmFtLnZlcnNpb24pXHJcbiAgICAgIH0sXHJcbiAgICAgIG9mZnNldFk6IDUsXHJcbiAgICAgIG9mZnNldFg6IDUsXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZm9udFNpemU6IDUwLFxyXG4gICAgICAgIG9wYWNpdHk6IC4xXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbnN0cmFpbnRzOiBOb2RlQ29uc3RyYWludHMuUmVhZE9ubHlcclxuICAgIH0gYXMgVGV4dE1vZGVsO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZExheWVyKHtcclxuICAgICAgaWQ6ICd2ZXJzaW9uJyxcclxuICAgICAgb2JqZWN0czogW1xyXG4gICAgICAgIHZlcnNpb25dXHJcbiAgICB9IGFzIExheWVyTW9kZWwpO1xyXG4gICAgdGhpcy5kaWFncmFtLmFkZCh2ZXJzaW9uKTtcclxuICB9XHJcbiAgc2VsZWN0aW9uQ2hhbmdlKGV2dDogSVNlbGVjdGlvbkNoYW5nZUV2ZW50QXJncykge1xyXG4gICAgaWYgKGV2dC5zdGF0ZSAhPT0gJ0NoYW5nZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLl91bmhpZ2hsaWdodCgpO1xyXG4gICAgaWYgKGV2dC5uZXdWYWx1ZS5sZW5ndGgpIHtcclxuICAgICAgbGV0IG5vZGUgPSBldnQubmV3VmFsdWVbMF0gYXMgTm9kZU1vZGVsO1xyXG5cclxuICAgICAgY29uc3QgeyBpbmRpY2F0b3IsIHBhcmVudElkIH0gPSBub2RlLmFkZEluZm8gYXMgTm9kZURhdGEgfHwge307XHJcblxyXG4gICAgICBpZiAoaW5kaWNhdG9yKSB7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMuZGlhZ3JhbS5nZXROb2RlT2JqZWN0KHBhcmVudElkKTtcclxuICAgICAgICB0aGlzLmRpYWdyYW0uc2VsZWN0KFtub2RlXSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaWRzID0gKChub2RlIGFzIGFueSkuaW5FZGdlcykuY29uY2F0KChub2RlIGFzIGFueSkub3V0RWRnZXMpO1xyXG4gICAgICAgIGlkcy5wdXNoKG5vZGUuaWQpO1xyXG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodChpZHMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmZvUmVmKSB0aGlzLl9pbmZvUmVmLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFRyYWNlRWxlbWVudENvbXBvbmVudCwge1xyXG4gICAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgdGltZWxpbmU6IHRoaXMudGltZWxpbmUsXHJcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxyXG4gICAgICAgICAgICB1dGlsaXR5UmVmOiB0aGlzLl91dGlsaXR5UmVmLFxyXG4gICAgICAgICAgfSBhcyBFbGVtZW50RGF0YSxcclxuICAgICAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWJcclxuICAgICAgICB9KS50aGVuKChlOiBQYW5lUmVmKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9pbmZvUmVmID0gZTtcclxuICAgICAgICAgIGUuYW5pbWF0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB0aGlzLl9yb3V0ZXIuY29sbGFwc2UoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5ub2RlID0gbnVsbDtcclxuICB9XHJcbiAgcHVibGljIGhpZ2hsaWdodFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy50aW1lbGluZS5kYXRlID0gdGltZTtcclxuICAgIHRoaXMuZGlhZ3JhbS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgdGhpcy5fdW5oaWdobGlnaHQoKTtcclxuICAgIGlmICh0aW1lIDwgdGhpcy50aW1lbGluZS5zdGFydERhdGUgfHwgdGltZSA+IHRoaXMudGltZWxpbmUuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLl9zY29wZSh0aW1lKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRpYWdyYW0ubm9kZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKHRoaXMuZGlhZ3JhbS5ub2Rlc1tpXSk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kaWFncmFtLmNvbm5lY3RvcnMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVDb25uZWN0b3IodGhpcy5kaWFncmFtLmNvbm5lY3RvcnNbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlkcyA9IHRoaXMudGltZWxpbmUubG9nLmZpbHRlcihsID0+IGwubm9kZUlkICYmIGwudGltZSA9PT0gdGltZSkubWFwKGwgPT4gbC5ub2RlSWQpLlxyXG4gICAgICBmaWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSk7XHJcblxyXG4gICAgdGhpcy5faGlnaGxpZ2h0KGlkcyk7XHJcbiAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICB9XHJcblxyXG4gIHBhbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyB8IERpYWdyYW1Db25zdHJhaW50cy5QYW47XHJcbiAgICB0aGlzLmRpYWdyYW0udG9vbCA9IERpYWdyYW1Ub29scy5ab29tUGFuO1xyXG4gIH1cclxuICBjdXJzb3IoKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uY29uc3RyYWludHMgPSB0aGlzLmRpYWdyYW0uY29uc3RyYWludHMgJiB+RGlhZ3JhbUNvbnN0cmFpbnRzLlBhbjtcclxuICAgIHRoaXMuZGlhZ3JhbS50b29sID0gRGlhZ3JhbVRvb2xzLlNpbmdsZVNlbGVjdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0KGlkczogc3RyaW5nW10pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHRoaXMuZGlhZ3JhbS5nZXRPYmplY3QoaWRzW2ldKSBhcyBhbnk7XHJcbiAgICAgIGlmIChvYmouc291cmNlSUQpXHJcbiAgICAgICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID1cclxuICAgICAgICAgIG9iai50YXJnZXREZWNvcmF0b3Iuc3R5bGUuc3Ryb2tlQ29sb3IgPVxyXG4gICAgICAgICAgb2JqLnRhcmdldERlY29yYXRvci5zdHlsZS5maWxsID0gdGhpcy5fcHJpbWVyeUNvbG9yO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fcHJpbWVyeUNvbG9yO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faGlnaExpZ2h0ZWRJZHMgPSBpZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bmhpZ2hsaWdodCgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHRoaXMuX2hpZ2hMaWdodGVkSWRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IHRoaXMuZGlhZ3JhbS5nZXRPYmplY3QodGhpcy5faGlnaExpZ2h0ZWRJZHNbaV0pIGFzIGFueTtcclxuICAgICAgaWYgKG9iai5zb3VyY2VJRClcclxuICAgICAgICB0aGlzLl9kZWNvcmF0ZUNvbm5lY3RvcihvYmopO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVOb2RlKG9iaik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWdoTGlnaHRlZElkcyA9IFtdO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPCEtLSBkaWFncmFtIC0tPlxyXG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkaWFncmFtJ1wiIGNsYXNzPVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgPG1hdC10b29sYmFyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYnJvd3NlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInQmFjaycgfCB0cmFuc2xhdGVcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+YXJyb3dfYmFjazwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIHxcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInBhbigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1BhbicgfCB0cmFuc2xhdGVcIj48c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1wYW5cIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjdXJzb3IoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDdXJzb3InIHwgdHJhbnNsYXRlXCI+PHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tY3Vyc29yXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJndWlkZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmhlbHBfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIGZ4RmxleD5cclxuICAgICAgPCEtLSB0aW1lbGluZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lXCIgKm5nSWY9XCJ0aW1lbGluZT8uaXRlbXMubGVuZ3RoID4gMVwiIGRhdGEtaGVscD1cInRpbWVsaW5lXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiB0aW1lbGluZS5pdGVtczsgbGV0IGxhc3QgPSBsYXN0XCIgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZGF0ZS50aW1lID09PSB0aW1lbGluZS5kYXRlXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJoaWdobGlnaHRUaW1lKGRhdGUudGltZSlcIiBtYXRSaXBwbGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsYXN0IHx8ICF0aW1lbGluZS5lc3RpbWF0ZTsgZWxzZSBlc3RpbWF0ZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2hvXCIgKm5nSWY9XCJ1c2VySWRcIj5cclxuICAgICAgICAgICAgICAgIHt7ZGF0ZS51c2VySWQgfCB1c2VyTmFtZSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3tkYXRlLnRpbWUgfCBhbURhdGVGb3JtYXQ6ICdNTU0gRG8gSDptbScgfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4ICNkaWFncmFtIGRpcj1cImx0clwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gYnJvd3NlIC0tPlxyXG4gIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXhGaWxsPlxyXG4gICAgPG1hdC10b29sYmFyIGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5GaWx0ZXIoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidGaWx0ZXInfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgW21vZGVdPVwibG9hZGluZ1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8IS0tIHRhYmxlIC0tPlxyXG4gICAgPG1hdC10YWJsZSBmeEZsZXggW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQ+XHJcbiAgICAgIDwhLS0gTnVtYmVyIGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJudW1iZXJcIj5cclxuICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydOdW1iZXInIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj4ge3tpdGVtLm51bWJlcn19IDwvbWF0LWNlbGw+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBTdWJqZWN0IGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdWJqZWN0XCI+XHJcbiAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3snU3ViamVjdCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0uc3ViamVjdH19IDwvbWF0LWNlbGw+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tIFN0YXRlSWQgY29sdW1uIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXRlSWRcIj5cclxuICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj1cInN0YXRlSWRcIj57eydTdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Yml6ZG9jLXN0YXR1cyBbc3RhdGVJZF09XCJpdGVtLnN0YXRlSWRcIj48L2JpemRvYy1zdGF0dXM+XHJcbiAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuKGl0ZW0pXCI+XHJcbiAgICAgIDwvbWF0LXJvdz5cclxuICAgIDwvbWF0LXRhYmxlPlxyXG4gICAgPCEtLSByYW5nZSAtLT5cclxuICAgIDxlanMtcmFuZ2VuYXZpZ2F0b3IgdmFsdWVUeXBlPSdEYXRlVGltZScgW3ZhbHVlXT1yYW5nZSBsYWJlbEZvcm1hdD0nTU1NLWRkJyBiYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwidGhlbWVcIiBsYWJlbEludGVyc2VjdEFjdGlvbj0nSGlkZScgZW5hYmxlR3JvdXBpbmc9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwQnk9XCJZZWFyc1wiIGludGVydmFsVHlwZT0nRGF5cydcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPSdyYW5nZUNoYW5nZWQoJGV2ZW50KSc+XHJcbiAgICAgIDxlLXJhbmdlbmF2aWdhdG9yLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDxlLXJhbmdlbmF2aWdhdG9yLXNlcmllcyBbZGF0YVNvdXJjZV09J3JhbmdlRGF0YScgW2ZpbGxdPVwiYWNjZW50XCIgdHlwZT0nQXJlYScgeE5hbWU9J2RhdGUnIHlOYW1lPSdjb3VudCcgd2lkdGg9Mj5cclxuICAgICAgICA8L2UtcmFuZ2VuYXZpZ2F0b3Itc2VyaWVzPlxyXG4gICAgICA8L2UtcmFuZ2VuYXZpZ2F0b3Itc2VyaWVzLWNvbGxlY3Rpb24+XHJcbiAgICA8L2Vqcy1yYW5nZW5hdmlnYXRvcj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0gYXJncyAtLT5cclxuPG5nLXRlbXBsYXRlICNhcmdzPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwic2VhcmNoXCIgI3NlYXJjaCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBkYXRhLWhlbHA9XCJzZWFyY2hcIiBbcGxhY2Vob2xkZXJdPVwiJ051bWJlcid8dHJhbnNsYXRlXCIgLz5cclxuICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGJpemRvYy1zZWxlY3QgdHlwZT1cImZvcm1zXCIgW3BsYWNlaG9sZGVyXT1cIidGb3JtJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtSWRcIj48L2JpemRvYy1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNlc3RpbWF0ZT5cclxuICB7eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|