@bizdoc/core 3.2.1 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
- package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +15 -15
- package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/designer.base.mjs +9 -9
- package/esm2022/lib/admin/architecture/designer.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/action.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/control.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/node.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/policy.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/rule.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/source.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/state.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/utility.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
- package/esm2022/lib/admin/core/ace.input.mjs +3 -3
- package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
- package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
- package/esm2022/lib/admin/core/search.input.mjs +3 -3
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
- package/esm2022/lib/admin/document-trace/trace-element.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/box-designer.component.mjs +6 -6
- package/esm2022/lib/admin/form/designer/design-control.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
- package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +30 -28
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
- package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
- package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
- package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
- package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +3 -3
- package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -3
- package/esm2022/lib/admin/system.service.mjs +3 -3
- package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
- package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
- package/esm2022/lib/app.component.mjs +6 -6
- package/esm2022/lib/bizdoc.module.mjs +4 -4
- package/esm2022/lib/browse/browse-items.component.mjs +3 -3
- package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
- package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
- package/esm2022/lib/browse/filter/filter.component.mjs +3 -3
- package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
- package/esm2022/lib/chat/chat-info.mjs +3 -3
- package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
- package/esm2022/lib/chat/chat.service.mjs +3 -3
- package/esm2022/lib/chat/contacts.component.mjs +6 -6
- package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
- package/esm2022/lib/chat/conversation.component.mjs +3 -3
- package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
- package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
- package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
- package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
- package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
- package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
- package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
- package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
- package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
- package/esm2022/lib/compose/box/box.component.mjs +3 -3
- package/esm2022/lib/compose/box/control.component.mjs +3 -3
- package/esm2022/lib/compose/box/row.component.mjs +3 -3
- package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
- package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
- package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
- package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
- package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
- package/esm2022/lib/compose/comments/edits.component.mjs +3 -3
- package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
- package/esm2022/lib/compose/comments/votes.component.mjs +3 -3
- package/esm2022/lib/compose/compose-resolve.service.mjs +3 -3
- package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
- package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
- package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
- package/esm2022/lib/compose/dismiss.service.mjs +3 -3
- package/esm2022/lib/compose/document-resolve.service.mjs +3 -3
- package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
- package/esm2022/lib/compose/document.component.mjs +3 -3
- package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
- package/esm2022/lib/compose/document.pane.component.mjs +3 -3
- package/esm2022/lib/compose/events/events.component.mjs +3 -3
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
- package/esm2022/lib/compose/form.component.mjs +3 -3
- package/esm2022/lib/compose/new-menu.component.mjs +3 -3
- package/esm2022/lib/compose/overlay.component.exp.mjs +3 -3
- package/esm2022/lib/compose/privilage.directive.mjs +6 -6
- package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
- package/esm2022/lib/compose/state.component.mjs +3 -3
- package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
- package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
- package/esm2022/lib/compose/trace/people.component.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.component.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
- package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
- package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
- package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -3
- package/esm2022/lib/core/account.service.mjs +3 -3
- package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
- package/esm2022/lib/core/authentication.mjs +1 -4
- package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/core/checkbox.mjs +3 -3
- package/esm2022/lib/core/colors.mjs +1 -1
- package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
- package/esm2022/lib/core/configuration.mjs +1 -1
- package/esm2022/lib/core/datasource.service.mjs +3 -3
- package/esm2022/lib/core/document-factory.service.mjs +3 -3
- package/esm2022/lib/core/fields/address.designer.mjs +3 -3
- package/esm2022/lib/core/fields/address.field.mjs +3 -3
- package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
- package/esm2022/lib/core/fields/axes-picker.designer.mjs +3 -3
- package/esm2022/lib/core/fields/axes-picker.field.mjs +3 -3
- package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
- package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
- package/esm2022/lib/core/fields/checklist.designer.mjs +3 -3
- package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
- package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
- package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
- package/esm2022/lib/core/fields/date.designer.mjs +3 -3
- package/esm2022/lib/core/fields/date.field.mjs +3 -3
- package/esm2022/lib/core/fields/expression.field.mjs +6 -6
- package/esm2022/lib/core/fields/file.designer.mjs +3 -3
- package/esm2022/lib/core/fields/file.field.mjs +3 -3
- package/esm2022/lib/core/fields/html.designer.mjs +3 -3
- package/esm2022/lib/core/fields/html.field.mjs +3 -3
- package/esm2022/lib/core/fields/input.designer.mjs +3 -3
- package/esm2022/lib/core/fields/input.field.mjs +3 -3
- package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
- package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
- package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
- package/esm2022/lib/core/fields/options.base.mjs +6 -6
- package/esm2022/lib/core/fields/options.component.mjs +3 -3
- package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
- package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
- package/esm2022/lib/core/fields/select.designer.mjs +3 -3
- package/esm2022/lib/core/fields/select.field.mjs +3 -3
- package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
- package/esm2022/lib/core/fields/signature.field.mjs +3 -3
- package/esm2022/lib/core/fields/switch.field.mjs +3 -3
- package/esm2022/lib/core/fields/tags.designer.mjs +3 -3
- package/esm2022/lib/core/fields/tags.field.mjs +3 -3
- package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
- package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
- package/esm2022/lib/core/fields/time.designer.mjs +3 -3
- package/esm2022/lib/core/fields/time.field.mjs +3 -3
- package/esm2022/lib/core/fields/timespan.field.mjs +6 -6
- package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
- package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
- package/esm2022/lib/core/guide/guide.component.mjs +3 -3
- package/esm2022/lib/core/guide/guide.service.mjs +3 -3
- package/esm2022/lib/core/guide/help-tip.component.mjs +3 -3
- package/esm2022/lib/core/http.interceptor.mjs +3 -3
- package/esm2022/lib/core/hub.service.mjs +3 -3
- package/esm2022/lib/core/identity/identity.component.mjs +3 -3
- package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
- package/esm2022/lib/core/info/document-info.service.mjs +3 -3
- package/esm2022/lib/core/info/location-info.component.mjs +3 -3
- package/esm2022/lib/core/info/map-info.mjs +3 -3
- package/esm2022/lib/core/inputs/address.input.mjs +3 -3
- package/esm2022/lib/core/inputs/auto-complete.input.mjs +3 -3
- package/esm2022/lib/core/inputs/combination-picker-body.mjs +5 -5
- package/esm2022/lib/core/inputs/combination-picker.mjs +4 -4
- package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
- package/esm2022/lib/core/inputs/file.input.mjs +3 -3
- package/esm2022/lib/core/inputs/select.input.mjs +3 -3
- package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
- package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
- package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
- package/esm2022/lib/core/layout.component.mjs +3 -3
- package/esm2022/lib/core/lottie-animation.exp.mjs +3 -3
- package/esm2022/lib/core/mailbox.service.mjs +3 -3
- package/esm2022/lib/core/none.component.mjs +3 -3
- package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
- package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/filter.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/sort.pipe.mjs +6 -6
- package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/time-ago.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/to-now.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
- package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
- package/esm2022/lib/core/popup/popup.component.mjs +3 -3
- package/esm2022/lib/core/popup/popup.service.mjs +3 -3
- package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
- package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +3 -3
- package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
- package/esm2022/lib/core/prompt.service.mjs +3 -3
- package/esm2022/lib/core/router.mjs +6 -6
- package/esm2022/lib/core/save-changes.dialog.mjs +3 -3
- package/esm2022/lib/core/session.service.mjs +33 -31
- package/esm2022/lib/core/slots/router.directive.mjs +3 -3
- package/esm2022/lib/core/slots/router.service.mjs +3 -3
- package/esm2022/lib/core/slots/slots.component.mjs +3 -3
- package/esm2022/lib/core/sticky-toolbar.exp.mjs +3 -3
- package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
- package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
- package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
- package/esm2022/lib/core/tagging/users.component.mjs +3 -3
- package/esm2022/lib/core/translate.service.mjs +3 -3
- package/esm2022/lib/core/virtual-tabs.component.exp.mjs +6 -6
- package/esm2022/lib/core/window-title.service.mjs +3 -3
- package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
- package/esm2022/lib/cube/chart/chart.component.mjs +3 -3
- package/esm2022/lib/cube/cube-info.service.mjs +3 -3
- package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
- package/esm2022/lib/cube/cube-view.component.mjs +3 -3
- package/esm2022/lib/cube/cube.service.mjs +3 -3
- package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
- package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
- package/esm2022/lib/cube/explore/explore-items.component.mjs +3 -3
- package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
- package/esm2022/lib/cube/explore/item-resolver.service.mjs +6 -6
- package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
- package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
- package/esm2022/lib/cube/filter/filter.component.mjs +3 -3
- package/esm2022/lib/cube/grid/grid.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/matrix.base.mjs +3 -3
- package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/table.component.mjs +3 -3
- package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
- package/esm2022/lib/cube/pivot/pivot.component.mjs +3 -3
- package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +3 -3
- package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +3 -3
- package/esm2022/lib/cube/sum/sum.component.mjs +3 -3
- package/esm2022/lib/cube/view-base.mjs +3 -3
- package/esm2022/lib/cube/view.mobile.component.mjs +3 -3
- package/esm2022/lib/cube/view.pane.component.mjs +3 -3
- package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
- package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
- package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
- package/esm2022/lib/dashboard/recents/recents.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/activity.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
- package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
- package/esm2022/lib/designer.module.mjs +4 -4
- package/esm2022/lib/desktop.module.mjs +4 -4
- package/esm2022/lib/home/about/about.dialog.mjs +3 -3
- package/esm2022/lib/home/home-base.component.mjs +3 -3
- package/esm2022/lib/home/home.desktop.component.mjs +6 -6
- package/esm2022/lib/home/home.mobile.component.mjs +3 -3
- package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
- package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
- package/esm2022/lib/home/sign/sign.component.mjs +7 -7
- package/esm2022/lib/impersonate/impersonate.component.mjs +3 -3
- package/esm2022/lib/mobile.module.mjs +4 -4
- package/esm2022/lib/modules/chart.module.mjs +4 -4
- package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
- package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
- package/esm2022/lib/modules/dayjs.module.mjs +4 -4
- package/esm2022/lib/modules/diagram.module.mjs +4 -4
- package/esm2022/lib/modules/gantt.module.mjs +4 -4
- package/esm2022/lib/modules/grid.module.mjs +4 -4
- package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
- package/esm2022/lib/modules/material.module.mjs +4 -4
- package/esm2022/lib/modules/paginator.intl.mjs +3 -3
- package/esm2022/lib/modules/pivot.module.mjs +4 -4
- package/esm2022/lib/modules/schedule.module.mjs +4 -4
- package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
- package/esm2022/lib/modules/stepper.intl.mjs +3 -3
- package/esm2022/lib/modules/texteditor.module.mjs +4 -4
- package/esm2022/lib/notifications/filter.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.service.mjs +3 -3
- package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
- package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
- package/esm2022/lib/options/options.component.mjs +3 -3
- package/esm2022/lib/options/options.desktop.component.mjs +3 -3
- package/esm2022/lib/options/options.mobile.component.mjs +3 -3
- package/esm2022/lib/reports/arguments-component.mjs +3 -3
- package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
- package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
- package/esm2022/lib/reports/cube/performance-hilo.component.mjs +3 -3
- package/esm2022/lib/reports/cube/performance-wind.component.mjs +3 -3
- package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-base.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-chart.component.mjs +5 -5
- package/esm2022/lib/reports/cube/usage-pivot.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
- package/esm2022/lib/reports/report-viewer.component.mjs +3 -3
- package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
- package/esm2022/lib/reports/report.pane.component.mjs +3 -3
- package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
- package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
- package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
- package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
- package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
- package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
- package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -3
- package/esm2022/lib/search/cube.component.mjs +3 -3
- package/esm2022/lib/search/document.component.mjs +3 -3
- package/esm2022/lib/search/guide.component.mjs +3 -3
- package/esm2022/lib/search/path.component.mjs +3 -3
- package/esm2022/lib/search/search.service.mjs +3 -3
- package/esm2022/lib/shared.module.mjs +7 -7
- package/esm2022/lib/system.module.mjs +4 -4
- package/esm2022/lib/views/cube/chart.component.mjs +3 -3
- package/esm2022/lib/views/cube/cube-base.mjs +3 -3
- package/esm2022/lib/views/cube/explore.component.mjs +3 -3
- package/esm2022/lib/views/cube/matrix.component.mjs +3 -3
- package/esm2022/lib/views/cube/parallel.component.mjs +3 -3
- package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
- package/esm2022/lib/views/cube/sum.component.mjs +3 -3
- package/esm2022/lib/views/cube/view.component.mjs +3 -3
- package/esm2022/lib/views/timeline/timeline.component.mjs +3 -3
- package/esm2022/lib/views/view-item.component.mjs +3 -3
- package/esm2022/lib/views/views.component.mjs +3 -3
- package/esm2022/lib/views/views.mobile.component.mjs +3 -3
- package/esm2022/lib/views/views.pane.component.mjs +3 -3
- package/fesm2022/bizdoc-core.mjs +1315 -1315
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/form/designer/box-designer.component.d.ts +2 -2
- package/lib/admin/form/workflow/workflow.component.d.ts +6 -9
- package/lib/admin/system.service.d.ts +3 -3
- package/lib/core/authentication.d.ts +2 -2
- package/lib/core/avatar/avatar.component.d.ts +0 -1
- package/lib/core/colors.d.ts +1 -0
- package/lib/core/configuration.d.ts +3 -2
- package/lib/core/inputs/address.input.d.ts +0 -1
- package/lib/core/session.service.d.ts +2 -2
- package/lib/core/slots/pane-ref.d.ts +2 -2
- package/lib/core/slots/router.service.d.ts +2 -2
- package/lib/reports/cube/usage-chart.component.d.ts +1 -1
- package/package.json +16 -16
@@ -13,10 +13,10 @@ export class TranslatePipe {
|
|
13
13
|
constructor(translate) {
|
14
14
|
this.translate = translate;
|
15
15
|
}
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: TranslatePipe, name: "translate" }); }
|
18
18
|
}
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TranslatePipe, decorators: [{
|
20
20
|
type: Pipe,
|
21
21
|
args: [{ name: 'translate' }]
|
22
22
|
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
@@ -32,10 +32,10 @@ export class L18nPipe {
|
|
32
32
|
constructor(translate) {
|
33
33
|
this.translate = translate;
|
34
34
|
}
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
36
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: L18nPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
36
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: L18nPipe, name: "l18n" }); }
|
37
37
|
}
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: L18nPipe, decorators: [{
|
39
39
|
type: Pipe,
|
40
40
|
args: [{ name: 'l18n' }]
|
41
41
|
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
@@ -48,10 +48,10 @@ export class TranslateDirective {
|
|
48
48
|
ngOnInit() {
|
49
49
|
this._elementRef.nativeElement.innerHTML = this._translate.get(this._elementRef.nativeElement.innerText);
|
50
50
|
}
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
52
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TranslateDirective, deps: [{ token: i0.ElementRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
52
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: TranslateDirective, selector: "[l18n]", ngImport: i0 }); }
|
53
53
|
}
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TranslateDirective, decorators: [{
|
55
55
|
type: Directive,
|
56
56
|
args: [{ selector: '[l18n]' }]
|
57
57
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.TranslateService }] });
|
@@ -30,10 +30,10 @@ export class TypeValuePipe {
|
|
30
30
|
this._translate = _translate;
|
31
31
|
this._ds = _ds;
|
32
32
|
}
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
34
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TypeValuePipe, deps: [{ token: i1.TranslateService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
34
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: TypeValuePipe, name: "typeValue" }); }
|
35
35
|
}
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TypeValuePipe, decorators: [{
|
37
37
|
type: Pipe,
|
38
38
|
args: [{
|
39
39
|
name: 'typeValue',
|
@@ -11,10 +11,10 @@ export class UserNamePipe {
|
|
11
11
|
constructor(_accounts) {
|
12
12
|
this._accounts = _accounts;
|
13
13
|
}
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
15
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: UserNamePipe, deps: [{ token: i1.AccountService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
15
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: UserNamePipe, name: "userName" }); }
|
16
16
|
}
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: UserNamePipe, decorators: [{
|
18
18
|
type: Pipe,
|
19
19
|
args: [{ name: 'userName' }]
|
20
20
|
}], ctorParameters: () => [{ type: i1.AccountService }] });
|
@@ -20,10 +20,10 @@ export class PopupComponent {
|
|
20
20
|
}
|
21
21
|
this._ref._opened.next(this._instance);
|
22
22
|
}
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PopupComponent, deps: [{ token: POPUP_DATA }, { token: i1.PopupRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: PopupComponent, selector: "bizdoc-popup", viewQueries: [{ propertyName: "_container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div class=\"popup-content\">\r\n <ng-container #container></ng-container>\r\n</div>\r\n<div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n</div>\r\n" }); }
|
25
25
|
}
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PopupComponent, decorators: [{
|
27
27
|
type: Component,
|
28
28
|
args: [{ selector: 'bizdoc-popup', template: "<div class=\"popup-content\">\r\n <ng-container #container></ng-container>\r\n</div>\r\n<div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n</div>\r\n" }]
|
29
29
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
@@ -148,10 +148,10 @@ export class Popup {
|
|
148
148
|
backdrop !== false && oRef.backdropClick().subscribe(() => disposeOnBackdrop !== false && pRef._closed.next(null));
|
149
149
|
return pRef;
|
150
150
|
}
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
152
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: Popup, deps: [{ token: i1.Overlay }, { token: i2.SessionService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
152
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: Popup, providedIn: 'root' }); }
|
153
153
|
}
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: Popup, decorators: [{
|
155
155
|
type: Injectable,
|
156
156
|
args: [{ providedIn: 'root' }]
|
157
157
|
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i2.SessionService }, { type: i0.Injector }] });
|
@@ -6,10 +6,10 @@ export class TooltipComponent {
|
|
6
6
|
constructor(data, element) {
|
7
7
|
element.nativeElement.innerHTML = data;
|
8
8
|
}
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TooltipComponent, deps: [{ token: POPUP_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TooltipComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
|
11
11
|
}
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TooltipComponent, decorators: [{
|
13
13
|
type: Component,
|
14
14
|
args: [{ template: '' }]
|
15
15
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
@@ -53,10 +53,10 @@ export class TooltipDirective {
|
|
53
53
|
_click() {
|
54
54
|
this._ref && this.close();
|
55
55
|
}
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
57
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i1.Popup }], target: i0.ɵɵFactoryTarget.Directive }); }
|
57
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: { content: ["bizdocTooltip", "content"], template: ["bizdocTooltipTemplate", "template"], context: ["bizdocTooltipContext", "context"], position: ["bizdocTooltipPosition", "position"], duration: ["bizdocTooltipDuration", "duration"], disabled: ["bizdocTooltipDisabled", "disabled"] }, ngImport: i0 }); }
|
58
58
|
}
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TooltipDirective, decorators: [{
|
60
60
|
type: Directive,
|
61
61
|
args: [{ selector: '[bizdocTooltip]' }]
|
62
62
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Popup }], propDecorators: { content: [{
|
@@ -16,10 +16,10 @@ export class AskDialog {
|
|
16
16
|
color: data.color || 'primary'
|
17
17
|
});
|
18
18
|
}
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AskDialog, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: AskDialog, selector: "bizdoc-ask", ngImport: i0, template: "<h2 mat-dialog-title>{{title}}</h2>\r\n<mat-dialog-content class=\"mat-body\">{{content}}</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" [color]=\"color\">{{ok}}</button>\r\n <button mat-button mat-dialog-close>{{cancel}}</button>\r\n</mat-dialog-actions>\r\n", dependencies: [{ kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
21
21
|
}
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AskDialog, decorators: [{
|
23
23
|
type: Component,
|
24
24
|
args: [{ selector: 'bizdoc-ask', template: "<h2 mat-dialog-title>{{title}}</h2>\r\n<mat-dialog-content class=\"mat-body\">{{content}}</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" [color]=\"color\">{{ok}}</button>\r\n <button mat-button mat-dialog-close>{{cancel}}</button>\r\n</mat-dialog-actions>\r\n" }]
|
25
25
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
@@ -8,10 +8,10 @@ export class MaskComponent {
|
|
8
8
|
constructor(resource) {
|
9
9
|
this.resource = resource;
|
10
10
|
}
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MaskComponent, deps: [{ token: MASK_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MaskComponent, selector: "bizdoc-mask", ngImport: i0, template: "<h1 class=\"mat-display-2\">{{resource|translate}}</h1>\r\n", styles: [":host{position:absolute;inset:0;background-color:#fff;padding:2em;opacity:.8;display:flex;flex-direction:row;place-content:center center;align-items:center}\n"], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
13
13
|
}
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MaskComponent, decorators: [{
|
15
15
|
type: Component,
|
16
16
|
args: [{ selector: 'bizdoc-mask', template: "<h1 class=\"mat-display-2\">{{resource|translate}}</h1>\r\n", styles: [":host{position:absolute;inset:0;background-color:#fff;padding:2em;opacity:.8;display:flex;flex-direction:row;place-content:center center;align-items:center}\n"] }]
|
17
17
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
@@ -78,10 +78,10 @@ export class PromptService {
|
|
78
78
|
oRef.backdropClick().subscribe(() => oRef.dispose());
|
79
79
|
return oRef;
|
80
80
|
}
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
82
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PromptService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }, { token: i0.Injector }, { token: i3.Overlay }, { token: i4.TranslateService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
82
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PromptService, providedIn: 'root' }); }
|
83
83
|
}
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PromptService, decorators: [{
|
85
85
|
type: Injectable,
|
86
86
|
args: [{ providedIn: 'root' }]
|
87
87
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.MatSnackBar }, { type: i0.Injector }, { type: i3.Overlay }, { type: i4.TranslateService }, { type: i5.SessionService }] });
|
@@ -13,10 +13,10 @@ export class PaneRouter extends RouterImpl {
|
|
13
13
|
navigate(commands, extra) {
|
14
14
|
return this._router.navigate(commands, extra);
|
15
15
|
}
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
17
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PaneRouter, deps: [{ token: i1.PanesRouter }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
17
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PaneRouter }); }
|
18
18
|
}
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PaneRouter, decorators: [{
|
20
20
|
type: Injectable
|
21
21
|
}], ctorParameters: () => [{ type: i1.PanesRouter }] });
|
22
22
|
/** mobile */
|
@@ -28,10 +28,10 @@ export class NgRouter extends RouterImpl {
|
|
28
28
|
navigate(commands, extra) {
|
29
29
|
return this._router.navigate(commands, extra);
|
30
30
|
}
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgRouter, deps: [{ token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgRouter }); }
|
33
33
|
}
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgRouter, decorators: [{
|
35
35
|
type: Injectable
|
36
36
|
}], ctorParameters: () => [{ type: i2.Router }] });
|
37
37
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvcmUvcm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJM0MsTUFBTSxPQUFnQixVQUFVO0NBRS9CO0FBQ0QsY0FBYztBQUVkLE1BQU0sT0FBTyxVQUFXLFNBQVEsVUFBVTtJQUN4QyxZQUNVLE9BQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBRkEsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUc5QixDQUFDO0lBQ0QsUUFBUSxDQUFDLFFBQWtCLEVBQUUsS0FBVztRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQVJVLFVBQVU7a0hBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVTs7QUFXWCxhQUFhO0FBRWIsTUFBTSxPQUFPLFFBQVMsU0FBUSxVQUFVO0lBQ3RDLFlBQ1UsT0FBZTtRQUV2QixLQUFLLEVBQUUsQ0FBQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFHekIsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFrQixFQUFFLEtBQVc7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FSVSxRQUFRO2tIQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRHBCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gXCIuL3Nsb3RzL3JvdXRlci5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUm91dGVySW1wbCB7XHJcbiAgYWJzdHJhY3QgbmF2aWdhdGUoY29tbWFuZHM6IChzdHJpbmcgfCBudW1iZXIpW10sIGV4dHJhPzogYW55KTogUHJvbWlzZTxhbnk+O1xyXG59XHJcbi8qKiBkZXNrdG9wICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBhbmVSb3V0ZXIgZXh0ZW5kcyBSb3V0ZXJJbXBsIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIG5hdmlnYXRlKGNvbW1hbmRzOiBzdHJpbmdbXSwgZXh0cmE/OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIGV4dHJhKTtcclxuICB9XHJcbn1cclxuLyoqIG1vYmlsZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOZ1JvdXRlciBleHRlbmRzIFJvdXRlckltcGwge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIG5hdmlnYXRlKGNvbW1hbmRzOiBzdHJpbmdbXSwgZXh0cmE/OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIGV4dHJhKTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -8,10 +8,10 @@ export class SaveChangesDialog {
|
|
8
8
|
ngOnInit() {
|
9
9
|
playAudio('alert_error-03');
|
10
10
|
}
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SaveChangesDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: SaveChangesDialog, selector: "ng-component", ngImport: i0, template: " <h2 mat-dialog-title>\r\n {{'SaveChanges' | translate}}\r\n </h2>\r\n <mat-dialog-content>\r\n <p class=\"mat-body\">\r\n {{'SaveChangesAsk' | translate}}\r\n </p>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=true color=\"primary\" cdkFocusInitial>{{'Save'|translate}}</button>\r\n <button mat-button mat-dialog-close color=\"warn\">{{'DiscardChanges'|translate}}</button>\r\n <button mat-button [mat-dialog-close]=\"false\">{{'ContinueEditing'|translate}}</button>\r\n </mat-dialog-actions>\r\n", dependencies: [{ kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
13
13
|
}
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SaveChangesDialog, decorators: [{
|
15
15
|
type: Component,
|
16
16
|
args: [{ template: " <h2 mat-dialog-title>\r\n {{'SaveChanges' | translate}}\r\n </h2>\r\n <mat-dialog-content>\r\n <p class=\"mat-body\">\r\n {{'SaveChangesAsk' | translate}}\r\n </p>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=true color=\"primary\" cdkFocusInitial>{{'Save'|translate}}</button>\r\n <button mat-button mat-dialog-close color=\"warn\">{{'DiscardChanges'|translate}}</button>\r\n <button mat-button [mat-dialog-close]=\"false\">{{'ContinueEditing'|translate}}</button>\r\n </mat-dialog-actions>\r\n" }]
|
17
17
|
}] });
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Injectable, Inject } from '@angular/core';
|
2
2
|
import { Loader } from "@googlemaps/js-api-loader";
|
3
|
-
import { Subject,
|
3
|
+
import { Subject, Observable, firstValueFrom } from 'rxjs';
|
4
4
|
import { tap, map } from 'rxjs/operators';
|
5
5
|
import { HubConnectionState } from '@microsoft/signalr';
|
6
6
|
import dayjs from 'dayjs';
|
@@ -55,24 +55,20 @@ export class SessionService {
|
|
55
55
|
get profile() { return this._profile; }
|
56
56
|
get gender() { return this.profile.byId ? this._profile.byGender : this._profile.gender; }
|
57
57
|
get accentPalette() {
|
58
|
-
|
59
|
-
return this._constructpalette(palette);
|
58
|
+
return this._accentpalette;
|
60
59
|
}
|
61
|
-
_constructpalette(
|
60
|
+
_constructpalette(color) {
|
61
|
+
const palette = MATERIAL_PALETTES[color];
|
62
62
|
return [palette['100'], palette['300'], palette['500'], palette['700'], palette['900'],
|
63
63
|
palette['200'], palette['400'], palette['600'], palette['800'], palette['hex'],
|
64
64
|
palette['a100'], palette['a400'], palette['a200'], palette['a700']];
|
65
65
|
}
|
66
66
|
get primeryPalette() {
|
67
|
-
|
68
|
-
return this._constructpalette(palette);
|
67
|
+
return this._primarypalette;
|
69
68
|
}
|
70
69
|
getAccent(mode = 500) {
|
71
70
|
return MATERIAL_PALETTES[this.theme.accent][mode];
|
72
71
|
}
|
73
|
-
getGrey(mode = 500) {
|
74
|
-
return MATERIAL_PALETTES['grey'][mode];
|
75
|
-
}
|
76
72
|
getPrimery(mode = 500) {
|
77
73
|
return MATERIAL_PALETTES[this.theme.primary][mode];
|
78
74
|
}
|
@@ -86,7 +82,7 @@ export class SessionService {
|
|
86
82
|
}
|
87
83
|
set theme(value) {
|
88
84
|
this._theme = value;
|
89
|
-
this._changeTheme(value).
|
85
|
+
this._changeTheme(value).then(() => this._themeChange.next(value));
|
90
86
|
localStorage.setItem('theme', value.name);
|
91
87
|
}
|
92
88
|
get ok() { return this.profile !== undefined; }
|
@@ -164,18 +160,18 @@ export class SessionService {
|
|
164
160
|
this._profile = profile;
|
165
161
|
observe.next();
|
166
162
|
this._loaded.next();
|
167
|
-
this._profile = profile;
|
168
163
|
};
|
169
164
|
this._http.get('/api/account/refresh').subscribe({
|
170
165
|
next: r => {
|
171
|
-
if (!this._profile)
|
172
|
-
this._changeTheme(this.theme).
|
166
|
+
if (!this._profile) // 1st time
|
167
|
+
this._changeTheme(this.theme).
|
168
|
+
then(() => complete(r));
|
173
169
|
else
|
174
170
|
complete(r);
|
175
171
|
this._hub.state !== HubConnectionState.Connected && this._hub.start();
|
176
172
|
this._firebase.state !== FirebaseState.Activated &&
|
177
173
|
this._firebase.activate();
|
178
|
-
}, error: observe.error
|
174
|
+
}, error: observe.error.bind(this)
|
179
175
|
});
|
180
176
|
});
|
181
177
|
}
|
@@ -245,19 +241,25 @@ export class SessionService {
|
|
245
241
|
* @param theme
|
246
242
|
*/
|
247
243
|
_changeTheme(theme) {
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
244
|
+
return new Promise((resolve) => {
|
245
|
+
this._accentpalette = this._constructpalette(this.theme.accent);
|
246
|
+
this._primarypalette = this._constructpalette(this.theme.primary);
|
247
|
+
let style = document.getElementById('bizdoc-theme');
|
248
|
+
// remove
|
249
|
+
if (style)
|
250
|
+
document.body.removeChild(style);
|
251
|
+
if (theme.name === this.Themes[0].name)
|
252
|
+
resolve();
|
253
|
+
else {
|
254
|
+
style = document.createElement('link');
|
255
|
+
style.id = 'bizdoc-theme';
|
256
|
+
style.type = 'text/css';
|
257
|
+
style.rel = 'stylesheet';
|
258
|
+
style.href = `/assets/themes/${theme.name}.min.css`;
|
259
|
+
document.body.append(style);
|
260
|
+
style.onload = () => resolve();
|
261
|
+
}
|
262
|
+
});
|
261
263
|
}
|
262
264
|
_loadServiceWorker() {
|
263
265
|
window.addEventListener('load', function () {
|
@@ -276,14 +278,14 @@ export class SessionService {
|
|
276
278
|
const maps = loader.importLibrary('maps');
|
277
279
|
return maps;
|
278
280
|
}
|
279
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
280
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
281
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SessionService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: i2.CookieService }, { token: i3.HubService }, { token: i4.MatIconRegistry }, { token: i5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
282
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SessionService, providedIn: 'root' }); }
|
281
283
|
}
|
282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
284
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SessionService, decorators: [{
|
283
285
|
type: Injectable,
|
284
286
|
args: [{ providedIn: 'root' }]
|
285
287
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
286
288
|
type: Inject,
|
287
289
|
args: [BIZDOC_CONFIG]
|
288
290
|
}] }, { type: i1.HttpClient }, { type: i2.CookieService }, { type: i3.HubService }, { type: i4.MatIconRegistry }, { type: i5.DomSanitizer }] });
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUEyQyxNQUFNLHVCQUF1QixDQUFDO0FBRS9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBRzdDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBOEI7SUFDeEQsTUFBTSxFQUFFLE9BQU87SUFDZixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLDQ4Q0FBNDhDLEVBQzc5QyxTQUFTLEdBQUcsbS9DQUFtL0MsRUFDLy9DLGVBQWUsR0FBRyx3M0NBQXczQyxFQUMxNEMsUUFBUSxHQUFHLDAxRUFBMDFFLENBQUM7QUFFeDJFLE1BQU0sTUFBTSxHQUFZO0lBQ3RCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVB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MUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU9uQixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IExvYWRlciB9IGZyb20gXCJAZ29vZ2xlbWFwcy9qcy1hcGktbG9hZGVyXCJcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBCSVpET0NfQ09ORklHLCBCaXpEb2NDb25maWcsIEdvb2dsZU1hcHNTZXR0aW5ncywgVGhlbWUgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBQcm9maWxlLCBVc2VySW5mbywgQXZhaWxhYmlsaXR5U3RhdGUsIE9wdGlvbnMsIEdlbmRlciB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlyZWJhc2VTZXJ2aWNlLCBGaXJlYmFzZVN0YXRlIH0gZnJvbSAnLi9maXJlYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4vaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNQVRFUklBTF9QQUxFVFRFUyB9IGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2RlIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYVEVOVElPTl9JQ09OUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAneGxzeCc6ICdleGNlbCcsXHJcbiAgJ2RvY3gnOiAnd29yZCcsXHJcbiAgJ3BwdHgnOiAncG93ZXJwb2ludCcsXHJcbiAgJ3BkZic6ICdwZGYnXHJcbn07XHJcblxyXG5jb25zdCBFWENFTF9JQ09OID0gJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNjQgNjRcIj48cGF0aCBkPVwiTTM4LDhIMTkuMzMzNUEyLjMzMzczLDIuMzMzNzMsMCwwLDAsMTcsMTAuMzMzNVYyMEgzOFpcIiBmaWxsPVwiIzIxYTM2NlwiLz48cGF0aCBkPVwiTTU2LjY2NjUsOEgzOFYyMEg1OVYxMC4zMzM1QTIuMzMzNzMsMi4zMzM3MywwLDAsMCw1Ni42NjY1LDhaXCIgZmlsbD1cIiMzM2M0ODFcIi8+PHJlY3QgeD1cIjM4XCIgeT1cIjMyXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIiMxMDdjNDFcIi8+PHBhdGggZD1cIk0zOCw0NFYzMkgxN1Y1My42NjY1QTIuMzMzNzMsMi4zMzM3MywwLDAsMCwxOS4zMzM1LDU2aDM3LjMzM0EyLjMzMzczLDIuMzMzNzMsMCwwLDAsNTksNTMuNjY2NVY0NFpcIiBmaWxsPVwiIzE4NWMzN1wiLz48cmVjdCB4PVwiMTdcIiB5PVwiMjBcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwiIzEwN2M0MVwiLz48cmVjdCB4PVwiMzhcIiB5PVwiMjBcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwiIzIxYTM2NlwiLz48cGF0aCBkPVwiTTMzLDIwLjMzMDA4VjQ2LjY2OTkyYTEuNzM0NDQsMS43MzQ0NCwwLDAsMS0uMDQuMzk5OUEyLjMxMzc4LDIuMzEzNzgsMCwwLDEsMzAuNjY5OTIsNDlIMTdWMThIMzAuNjY5OTJBMi4zMjYsMi4zMjYsMCwwLDEsMzMsMjAuMzMwMDhaXCIgb3BhY2l0eT1cIjAuMlwiLz48cGF0aCBkPVwiTTM0LDIwLjMzMDA4VjQ0LjY2OTkyQTMuMzYxNzEsMy4zNjE3MSwwLDAsMSwzMC42Njk5Miw0OEgxN1YxN0gzMC42Njk5MkEzLjM0MTc3LDMuMzQxNzcsMCwwLDEsMzQsMjAuMzMwMDhaXCIgb3BhY2l0eT1cIjAuMVwiLz48cGF0aCBkPVwiTTMzLDIwLjMzMDA4VjQ0LjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMwLjY2OTkyLDQ3SDE3VjE4SDMwLjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMzLDIwLjMzMDA4WlwiIG9wYWNpdHk9XCIwLjJcIi8+PHBhdGggZD1cIk0zMiwyMC4zMzAwOFY0NC42Njk5MkEyLjMyNiwyLjMyNiwwLDAsMSwyOS42Njk5Miw0N0gxN1YxOEgyOS42Njk5MkEyLjMyNiwyLjMyNiwwLDAsMSwzMiwyMC4zMzAwOFpcIiBvcGFjaXR5PVwiMC4xXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjE4LjAwMDAyXCIgd2lkdGg9XCIyNy45OTk5NlwiIGhlaWdodD1cIjI3Ljk5OTk2XCIgcng9XCIyLjMzMzMzXCIgZmlsbD1cIiMxMDdjNDFcIi8+PHBhdGggZD1cIk0xMS4yMjU2LDM5LjU4MzVsNC45MDc1OS03LjYwNDY1LTQuNDk1MS03LjU2MjM1aDMuNjE3MjRsMi40NTM3OSw0LjgzMzU2cS4zMzgzOS42ODc2My40NjUzOCwxLjAyNTk0aC4wMzE3M3EuMjQzMTgtLjU0OTg0LjUwNzY4LTEuMDY4MjVsMi42MjMtNC43OTEyNUgyNC42NThsLTQuNjExNDUsNy41Miw0LjcyNzc5LDcuNjQ3SDIxLjI0MTc0TDE4LjQwNzE4LDM0LjI3NGE0LjQzMjU1LDQuNDMyNTUsMCwwLDEtLjMzODQ1LS43MDg2NGgtLjA0MjMxYTMuMzQ1LDMuMzQ1LDAsMCwxLS4zMjc4OC42ODc0OUwxNC43NzkzNywzOS41ODM1WlwiIGZpbGw9XCIjZmZmXCIvPjwvc3ZnPicsXHJcbiAgV09SRF9JQ09OID0gJzxzdmcgdmlld0JveD1cIjAgMCA1NjAgNDAwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxnIGZpbGwtcnVsZT1cIm5vbnplcm9cIj48cGF0aCBkPVwibTM4MC44MjkgMTAzLjc1M2gtMTQ2LjY1OWMtNS4wMjggMC05LjE2NSA0LjEzNy05LjE2NSA5LjE2NXYzOC45NTlsODIuNDk4IDI0LjA2MiA4Mi40OTctMjQuMDYydi0zOC45NTljMC01LjAyOC00LjEzNy05LjE2NS05LjE2NC05LjE2NXpcIiBmaWxsPVwiIzQxYTVlZVwiLz48cGF0aCBkPVwibTM4OS45OTMgMTUxLjg3N2gtMTY0Ljk5NHY0OC4xMjNsODIuNDk3IDI0LjA2MiA4Mi40OTctMjQuMDYyelwiIGZpbGw9XCIjMmI3Y2QzXCIvPjxwYXRoIGQ9XCJtMzg5Ljk5MyAyMDBoLTE2NC45OTR2NDguMTI0bDgyLjQ5NyAyNC4wNjEgODIuNDk3LTI0LjA2MXpcIiBmaWxsPVwiIzE4NWFiZFwiLz48cGF0aCBkPVwibTM4OS45OTMgMjQ4LjEyNGgtMTY0Ljk5NHYzOC45NTljMCA1LjAyNyA0LjEzNiA5LjE2NCA5LjE2MyA5LjE2NGgxNDYuNjZjNS4wMjcgMCA5LjE2NC00LjEzNyA5LjE2NC05LjE2NHpcIiBmaWxsPVwiIzEwM2Y5MVwiLz48cGF0aCBkPVwibTI4NC41ODIgMTM4LjEyN2gtNTkuNTgzdjEzMC42MjFoNTkuNTgzYzUuMDIyLS4wMTUgOS4xNDktNC4xNDMgOS4xNjQtOS4xNjR2LTExMi4yODZjLS4wMTUtNS4wMjEtNC4xNDItOS4xNDktOS4xNjQtOS4xNjR6XCIgZmlsbC1vcGFjaXR5PVwiLjA5ODAzOVwiLz48cGF0aCBkPVwibTI3Ny43MDggMTQ1LjAwMmgtNTIuNzA5djEzMC42MjFoNTIuNzA5YzUuMDIxLS4wMTUgOS4xNDktNC4xNDMgOS4xNjMtOS4xNjV2LTExMi4yODVjLS4wMTQtNS4wMjEtNC4xNDItOS4xNDktOS4xNjMtOS4xNjR6bTAgMGgtNTIuNzA5djExNi44NzFoNTIuNzA5YzUuMDIxLS4wMTUgOS4xNDktNC4xNDMgOS4xNjMtOS4xNjR2LTk4LjUzNmMtLjAxNC01LjAyMS00LjE0Mi05LjE0OS05LjE2My05LjE2NHptLTYuODc1IDBoLTQ1LjgzNHYxMTYuODcxaDQ1LjgzNGM1LjAyMS0uMDE1IDkuMTQ5LTQuMTQzIDkuMTYzLTkuMTY0di05OC41MzZjLS4wMTQtNS4wMjEtNC4xNDItOS4xNDktOS4xNjMtOS4xNjR6XCIgZmlsbC1vcGFjaXR5PVwiLjJcIi8+PHBhdGggZD1cIm0xNzkuMTY0IDE0NS4wMDJoOTEuNjYxYzUuMDI4IDAgOS4xNjUgNC4xMzYgOS4xNjUgOS4xNjR2OTEuNjYyYzAgNS4wMjctNC4xMzcgOS4xNjMtOS4xNjUgOS4xNjNoLTkxLjY2MWMtNS4wMjcgMC05LjE2NC00LjEzNi05LjE2NC05LjE2M3YtOTEuNjYyYzAtNS4wMjggNC4xMzctOS4xNjQgOS4xNjQtOS4xNjR6XCIgZmlsbD1cIiMxODVhYmRcIi8+PHBhdGggZD1cIm0yNTIuMTU0IDIzNC4zNzRoLTEyLjM3NWwtMTQuNDM3LTQ3LjQzNi0xNS4xMjUgNDcuNDM2aC0xMi4zNzRsLTEzLjc1LTY4Ljc0OGgxMi4zNzVsOS42MjQgNDguMTIzIDE0LjQzOC00Ni43NDhoMTAuMzEybDEzLjc1IDQ2Ljc0OCA5LjYyNC00OC4xMjNoMTEuNjg3elwiIGZpbGw9XCIjZmZmXCIvPjwvZz48cGF0aCBkPVwibTE3MCA5MC4wMDRoMjE5Ljk5M3YyMTkuOTkzaC0yMTkuOTkzelwiIGZpbGw9XCJub25lXCIvPjwvc3ZnPicsXHJcbiAgUE9XRVJQT0lOVF9JQ09OID0gJzxzdmcgdmlld0JveD1cIi0wLjEyOTc5MzcyNjk4MDc3Nzg1IDAgMzIuMTUyMzg5MzAxMTc2NzU0IDMyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjUwMFwiIGhlaWdodD1cIjI0NzhcIj48cGF0aCBkPVwiTTE4IDJBMTQuMDQxIDE0LjA0MSAwIDAgMCA0IDE2bDE3LjczNyAzLjczN3pcIiBmaWxsPVwiI2VkNmM0N1wiLz48cGF0aCBkPVwiTTE4IDJhMTQuMDQxIDE0LjA0MSAwIDAgMSAxNCAxNGwtNyA0Ljc1OEwxOCAxNnpcIiBmaWxsPVwiI2ZmOGY2YlwiLz48cGF0aCBkPVwiTTE4IDMwYTE0LjA0MSAxNC4wNDEgMCAwIDAgMTQtMTRINGExNC4wNDEgMTQuMDQxIDAgMCAwIDE0IDE0elwiIGZpbGw9XCIjZDM1MjMwXCIvPjxwYXRoIGQ9XCJNMTYuNjY2IDdoLTkuMzZhMTMuOTE0IDEzLjkxNCAwIDAgMCAuOTMgMTloOC40M0ExLjMzNyAxLjMzNyAwIDAgMCAxOCAyNC42NjdWOC4zMzNBMS4zMzcgMS4zMzcgMCAwIDAgMTYuNjY2IDd6XCIgb3BhY2l0eT1cIi4xXCIvPjxwYXRoIGQ9XCJNMTUuNjY2IDhINi41NGExMy45MDYgMTMuOTA2IDAgMCAwIDIuODQ1IDE5aDYuMjgyQTEuMzM3IDEuMzM3IDAgMCAwIDE3IDI1LjY2N1Y5LjMzM0ExLjMzNyAxLjMzNyAwIDAgMCAxNS42NjYgOHpcIiBvcGFjaXR5PVwiLjJcIi8+PHBhdGggZD1cIk0xNS42NjYgOEg2LjU0YTEzLjg5IDEzLjg5IDAgMCAwIC43NjYgMTdoOC4zNjFBMS4zMzcgMS4zMzcgMCAwIDAgMTcgMjMuNjY3VjkuMzMzQTEuMzM3IDEuMzM3IDAgMCAwIDE1LjY2NiA4elwiIG9wYWNpdHk9XCIuMlwiLz48cGF0aCBkPVwiTTE0LjY2NiA4SDYuNTRhMTMuODkgMTMuODkgMCAwIDAgLjc2NiAxN2g3LjM2MUExLjMzNyAxLjMzNyAwIDAgMCAxNiAyMy42NjdWOS4zMzNBMS4zMzcgMS4zMzcgMCAwIDAgMTQuNjY2IDh6XCIgb3BhY2l0eT1cIi4yXCIvPjxwYXRoIGQ9XCJNMS4zMzMgOGgxMy4zMzRBMS4zMzMgMS4zMzMgMCAwIDEgMTYgOS4zMzN2MTMuMzM0QTEuMzMzIDEuMzMzIDAgMCAxIDE0LjY2NyAyNEgxLjMzM0ExLjMzMyAxLjMzMyAwIDAgMSAwIDIyLjY2N1Y5LjMzM0ExLjMzMyAxLjMzMyAwIDAgMSAxLjMzMyA4elwiIGZpbGw9XCIjYzQzZTFjXCIvPjxwYXRoIGQ9XCJNNy45OTcgMTFhNC4xNjggNC4xNjggMCAwIDEgMi43NTUuODA1IDIuODc4IDIuODc4IDAgMCAxIC45NTYgMi4zMzEgMi43MjYgMi43MjYgMCAwIDEtLjQ3MyAxLjU4OCAzLjE2NCAzLjE2NCAwIDAgMS0xLjM0NCAxLjE4NiA0LjU3IDQuNTcgMCAwIDEtMi4wMi40MjRoLTEuOTFWMjFINFYxMXpNNS45NiAxNS42ODNoMS42ODdhMi4xOTQgMi4xOTQgMCAwIDAgMS40OTItLjQ0NCAxLjEwNyAxLjEwNyAwIDAgMCAuNTA0LTEuMDI2cTAtMS42NTktMS45MzMtMS42NTlINS45NnpcIiBmaWxsPVwiI2Y5ZjdmN1wiLz48cGF0aCBkPVwiTTAgMGgzMnYzMkgwelwiIGZpbGw9XCJub25lXCIvPjwvc3ZnPicsXHJcbiAgUERGX0lDT04gPSAnPHN2ZyB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCAxNCAxNlwiIHhtbDpzcGFjZT1cInByZXNlcnZlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxnIHRyYW5zZm9ybT1cIm1hdHJpeCguMDQ1ODkgMCAwIC4wNDU4OSAtLjY2ODc3IC0uNzMzNzkpXCI+PHBvbHlnb24gcG9pbnRzPVwiNTEuNzkxIDM1Ni42NSA1MS43OTEgMjMuOTkgMjA0LjUgMjMuOTkgMjgyLjY1IDEwMi4wNyAyODIuNjUgMzU2LjY1XCIgZmlsbD1cIiNmZmZcIiBzdHJva2Utd2lkdGg9XCIyMTIuNjVcIi8+PHBhdGggZD1cIm0yMDEuMTkgMzEuOTkgNzMuNDYgNzMuMzkzdjI0My4yNmgtMjE0Ljg2di0zMTYuNjZoMTQxLjRtNi42MjMtMTZoLTE2NC4wMnYzNDguNjZoMjQ2Ljg1di0yNjUuOXpcIiBzdHJva2Utd2lkdGg9XCIyMS43OTFcIi8+PC9nPjxnIHRyYW5zZm9ybT1cIm1hdHJpeCguMDQ1ODkgMCAwIC4wNDU4OSAtLjY2ODc3IC0uNzMzNzkpXCI+PHBvbHlnb24gcG9pbnRzPVwiMjgyLjY1IDM1Ni42NSA1MS43OTEgMzU2LjY1IDUxLjc5MSAyMy45OSAyMDQuNSAyMy45OSAyMDYuMzEgMjUuOCAyMDYuMzEgMTAwLjMzIDI4MC45IDEwMC4zMyAyODIuNjUgMTAyLjA3XCIgZmlsbD1cIiNmZmZcIiBzdHJva2Utd2lkdGg9XCIyMTIuNjVcIi8+PHBhdGggZD1cIm0xOTguMzEgMzEuOTl2NzYuMzM3aDc2LjMzN3YyNDAuMzJoLTIxNC44NnYtMzE2LjY2aDEzOC41Mm05LjUtMTZoLTE2NC4wMnYzNDguNjZoMjQ2Ljg1di0yNjUuOWwtNi40My02LjQyNGgtNjkuOTA3di02OS44NDJ6XCIgc3Ryb2tlLXdpZHRoPVwiMjEuNzkxXCIvPjwvZz48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiIHN0cm9rZS13aWR0aD1cIjIxLjc5MVwiPjxwb2x5Z29uIHBvaW50cz1cIjI1OC4zMSA4Ny43NSAyMTkuNjQgODcuNzUgMjE5LjY0IDQ4LjY2NyAyNTguMzEgODYuMzhcIi8+XHRcdDxwYXRoIGQ9XCJtMjI3LjY0IDY3LjY0NiAxMi40MSAxMi4xMDRoLTEyLjQxdi0xMi4xMDRtLTUuMDAyLTI3LjIyOWgtMTAuOTk4djU1LjMzM2g1NC42NjZ2LTEyLjc0MnpcIi8+PC9nPjxnIHRyYW5zZm9ybT1cIm1hdHJpeCguMDQ1ODkgMCAwIC4wNDU4OSAtLjY2ODc3IC0uNzMzNzkpXCIgZmlsbD1cIiNlZDFjMjRcIiBzdHJva2Utd2lkdGg9XCIyMTIuNjVcIj48cG9seWdvbiBwb2ludHM9XCIzMTEuODkgMjg0LjQ5IDIyLjU0NCAyODQuNDkgMjIuNTQ0IDE2Ny42OCAzNy4yOTEgMTUyLjk0IDM3LjI5MSAxNzEuNDkgMjk3LjE1IDE3MS40OSAyOTcuMTUgMTUyLjk0IDMxMS44OSAxNjcuNjhcIi8+PHBhdGggZD1cIm0zMDMuNjUgMTY4LjYzIDEuNzQ3IDEuNzQ3djEwNy42MmgtMjc2LjM1di0xMDcuNjJsMS43NDctMS43NDd2OS4zNjJoMjcyLjg1di05LjM2Mm0tMTIuOTk5LTMxLjM4NXYyNy43NDdoLTI0Ni44NnYtMjcuNzQ3bC0yNy43NDcgMjcuNzQ3djEyNmgzMDIuMzV2LTEyNnpcIi8+PC9nPjxyZWN0IHg9XCIxLjcyMTlcIiB5PVwiNy45NTQ0XCIgd2lkdGg9XCIxMC42ODRcIiBoZWlnaHQ9XCI0LjAzMDdcIiBmaWxsPVwibm9uZVwiLz48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgMS43MjE5IDExLjczMylcIiBmaWxsPVwiI2ZmZlwiIHN0cm9rZS13aWR0aD1cIjIxLjc5MVwiIGFyaWEtbGFiZWw9XCJQREZcIj48cGF0aCBkPVwibTkuMjE2IDB2LTgzLjJoMzAuNDY0cTYuNzg0IDAgMTIuOTI4IDEuNDA4IDYuMTQ0IDEuMjggMTAuNzUyIDQuNjA4IDQuNjA4IDMuMiA3LjI5NiA4LjU3NiAyLjgxNiA1LjI0OCAyLjgxNiAxMy4wNTYgMCA3LjY4LTIuODE2IDEzLjE4NC0yLjY4OCA1LjUwNC03LjI5NiA5LjA4OC00LjYwOCAzLjQ1Ni0xMC42MjQgNS4yNDgtNi4wMTYgMS42NjQtMTIuNTQ0IDEuNjY0aC04Ljk2djI2LjM2OHptMjIuMDE2LTQzLjc3Nmg3LjkzNnE2LjUyOCAwIDkuNi0zLjA3MiAzLjItMy4wNzIgMy4yLTguNzA0dC0zLjQ1Ni03LjkzNi05Ljg1Ni0yLjMwNGgtNy40MjR6XCIvPjxwYXRoIGQ9XCJtODcuMDQgMHYtODMuMmgyNC41NzZxOS40NzIgMCAxNy4yOCAyLjMwNCA3LjkzNiAyLjMwNCAxMy41NjggNy4yOTZ0OC43MDQgMTIuOHEzLjIgNy44MDggMy4yIDE4LjgxNnQtMy4wNzIgMTguOTQ0LTguNzA0IDEzLjA1NnEtNS41MDQgNS4xMi0xMy4xODQgNy41NTItNy41NTIgMi40MzItMTYuNTEyIDIuNDMyem0yMi4wMTYtMTcuNjY0aDEuMjhxNC40OCAwIDguNDQ4LTEuMDI0IDMuOTY4LTEuMTUyIDYuNzg0LTMuODQgMi45NDQtMi42ODggNC42MDgtNy40MjR0MS42NjQtMTIuMDMyLTEuNjY0LTExLjkwNC00LjYwOC03LjE2OHEtMi44MTYtMi41Ni02Ljc4NC0zLjQ1Ni0zLjk2OC0xLjAyNC04LjQ0OC0xLjAyNGgtMS4yOHpcIi8+PHBhdGggZD1cIm0xNjkuMjIgMHYtODMuMmg1NC4yNzJ2MTguNDMyaC0zMi4yNTZ2MTUuODcyaDI3LjY0OHYxOC40MzJoLTI3LjY0OHYzMC40NjR6XCIvPjwvZz48L3N2Zz4nO1xyXG5cclxuY29uc3QgVEhFTUVTOiBUaGVtZVtdID0gW1xyXG4gIHsgbmFtZTogJ2RlZmF1bHQnLCBwcmltYXJ5OiAncHVycGxlJywgY29sb3I6ICdwdXJwbGUnLCBhY2NlbnQ6ICdhbWJlcicsIHRpdGxlOiAnUHVycGxlVGhlbWUnIH0sXHJcbiAgeyBuYW1lOiAnaW5kaWdvJywgcHJpbWFyeTogJ2luZGlnbycsIGNvbG9yOiAnIzNmNTFiNScsIGFjY2VudDogJ3BpbmsnLCB0aXRsZTogJ0luZGlnb1RoZW1lJyB9LFxyXG4gIHsgbmFtZTogJ2dyZWVuJywgcHJpbWFyeTogJ2dyZWVuJywgY29sb3I6ICcjNENBRjUwJywgYWNjZW50OiAnYW1iZXInLCB0aXRsZTogJ0dyZWVuVGhlbWUnIH0sXHJcbiAgeyBuYW1lOiAnZGFyaycsIHByaW1hcnk6ICdkZWVwUHVycGxlJywgY29sb3I6ICcjNDA0MDQxJywgYWNjZW50OiAnYW1iZXInLCBkYXJrOiB0cnVlLCB0aXRsZTogJ0RlZXBUaGVtZScgfSxcclxuICB7IG5hbWU6ICdicm93bicsIHByaW1hcnk6ICdicm93bicsIGNvbG9yOiAnIzc5NTU0OCcsIGFjY2VudDogJ2dyZXknLCB0aXRsZTogJ0dyYXlUaGVtZScgfV07XHJcblxyXG5jb25zdCBTVVBQT1JURURfTEFOR1VBR0VTID0gWydlbicsICdoZScsICdkZScsICdhcicsICdydSddLFxyXG4gIFJUTF9MQU5HVUFMR0VTID0gWydoZScsICdhciddO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNlc3Npb25Qcm92aWRlckZhY3RvcnkocHJvdmlkZXI6IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgcmV0dXJuICgpID0+IHByb3ZpZGVyLnByZXBhcmUoKTtcclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25TZXJ2aWNlIHtcclxuICBwcmVwYXJlKCkge1xyXG4gICAgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IpICYmIHRoaXMuX2xvYWRTZXJ2aWNlV29ya2VyKCk7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLm1hcHMgPyB0aGlzLl9sb2FkR29vZ2xlTWFwcygpIDogUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IFRoZW1lczogVGhlbWVbXSA9IHRoaXMuX2NvbmZpZy50aGVtZXMgfHwgVEhFTUVTO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfY29va2llczogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZXhjZWwnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoRVhDRUxfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCd3b3JkJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFdPUkRfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwb3dlcnBvaW50Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBPV0VSUE9JTlRfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwZGYnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUERGX0lDT04pKTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZUNoYW5nZSA9IG5ldyBTdWJqZWN0PFRoZW1lPigpO1xyXG4gIHJlYWRvbmx5IGxvYWRlZCA9IHRoaXMuX2xvYWRlZC5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB0aGVtZUNoYW5nZSA9IHRoaXMuX3RoZW1lQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgX3Byb2ZpbGU6IFByb2ZpbGU7XHJcbiAgcHJpdmF0ZSBfbGFuZzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2ZpcmViYXNlID0gbmV3IEZpcmViYXNlU2VydmljZSh0aGlzLl9jb25maWcgPyB0aGlzLl9jb25maWcuZmlyZWJhc2UgOiB1bmRlZmluZWQsIHRoaXMpO1xyXG4gIGdldCBwcm9maWxlKCk6IFByb2ZpbGUgeyByZXR1cm4gdGhpcy5fcHJvZmlsZTsgfVxyXG4gIGdldCBnZW5kZXIoKTogR2VuZGVyIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMucHJvZmlsZS5ieUlkID8gdGhpcy5fcHJvZmlsZS5ieUdlbmRlciA6IHRoaXMuX3Byb2ZpbGUuZ2VuZGVyOyB9XHJcbiAgZ2V0IGFjY2VudFBhbGV0dGUoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgcGFsZXR0ZSA9IE1BVEVSSUFMX1BBTEVUVEVTW3RoaXMudGhlbWUuYWNjZW50XTtcclxuICAgIHJldHVybiB0aGlzLl9jb25zdHJ1Y3RwYWxldHRlKHBhbGV0dGUpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb25zdHJ1Y3RwYWxldHRlKHBhbGV0dGU6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZzsgfSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbcGFsZXR0ZVsnMTAwJ10sIHBhbGV0dGVbJzMwMCddLCBwYWxldHRlWyc1MDAnXSwgcGFsZXR0ZVsnNzAwJ10sIHBhbGV0dGVbJzkwMCddLFxyXG4gICAgcGFsZXR0ZVsnMjAwJ10sIHBhbGV0dGVbJzQwMCddLCBwYWxldHRlWyc2MDAnXSwgcGFsZXR0ZVsnODAwJ10sIHBhbGV0dGVbJ2hleCddLFxyXG4gICAgcGFsZXR0ZVsnYTEwMCddLCBwYWxldHRlWydhNDAwJ10sIHBhbGV0dGVbJ2EyMDAnXSwgcGFsZXR0ZVsnYTcwMCddXTtcclxuICB9XHJcblxyXG4gIGdldCBwcmltZXJ5UGFsZXR0ZSgpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBwYWxldHRlID0gTUFURVJJQUxfUEFMRVRURVNbdGhpcy50aGVtZS5wcmltYXJ5XTtcclxuICAgIHJldHVybiB0aGlzLl9jb25zdHJ1Y3RwYWxldHRlKHBhbGV0dGUpO1xyXG4gIH1cclxuICBnZXRBY2NlbnQobW9kZTogTWF0ZXJpYWxNb2RlID0gNTAwKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNQVRFUklBTF9QQUxFVFRFU1t0aGlzLnRoZW1lLmFjY2VudF1bbW9kZV07XHJcbiAgfVxyXG4gIGdldEdyZXkobW9kZTogTWF0ZXJpYWxNb2RlID0gNTAwKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNQVRFUklBTF9QQUxFVFRFU1snZ3JleSddW21vZGVdO1xyXG4gIH1cclxuICBnZXRQcmltZXJ5KG1vZGU6IE1hdGVyaWFsTW9kZSA9IDUwMCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTUFURVJJQUxfUEFMRVRURVNbdGhpcy50aGVtZS5wcmltYXJ5XVttb2RlXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGhlbWU6IFRoZW1lO1xyXG4gIGdldCB0aGVtZSgpOiBUaGVtZSB7XHJcbiAgICBpZiAoIXRoaXMuX3RoZW1lKSB7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWUnKTtcclxuICAgICAgdGhpcy5fdGhlbWUgPSBuYW1lID8gdGhpcy5UaGVtZXMuZmluZCh0ID0+IHQubmFtZSA9PT0gbmFtZSkhIDpcclxuICAgICAgICB0aGlzLlRoZW1lc1swXSE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fdGhlbWU7XHJcbiAgfVxyXG4gIHNldCB0aGVtZSh2YWx1ZTogVGhlbWUpIHtcclxuICAgIHRoaXMuX3RoZW1lID0gdmFsdWU7XHJcbiAgICB0aGlzLl9jaGFuZ2VUaGVtZSh2YWx1ZSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMuX3RoZW1lQ2hhbmdlLm5leHQodmFsdWUpKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aGVtZScsIHZhbHVlLm5hbWUpO1xyXG4gIH1cclxuICBnZXQgb2soKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnByb2ZpbGUgIT09IHVuZGVmaW5lZDsgfVxyXG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gKi9cclxuICBnZXQgZGlyZWN0aW9uKCk6IERpcmVjdGlvbiB7XHJcbiAgICByZXR1cm4gUlRMX0xBTkdVQUxHRVMuaW5kZXhPZih0aGlzLmxhbmd1YWdlKSA+IC0xID8gJ3J0bCcgOiAnbHRyJztcclxuICB9XHJcbiAgZ2V0IGludmVyc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdydGwnO1xyXG4gIH1cclxuICBnZXQgdXNlcklkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJvZmlsZS5ieUlkIHx8IHRoaXMucHJvZmlsZS51c2VySWQ7XHJcbiAgfVxyXG4gIGdldCBsb2NhbGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xyXG4gIH1cclxuICBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fbGFuZylcclxuICAgICAgdGhpcy5fbGFuZyA9IHRoaXMuX2Nvb2tpZXMuZ2V0KCdsYW5nJykgfHwgdGhpcy5fZ2V0QnJvd3NlckxhbmcoKSB8fCBTVVBQT1JURURfTEFOR1VBR0VTWzBdO1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmc7XHJcbiAgfVxyXG4gIGdldCBhcmlhKCkgeyByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2FyaWEnKSA9PT0gJzEnIH1cclxuICBzZXQgYXJpYSh2YWw6IGJvb2xlYW4pIHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2FyaWEnLCB2YWwgPyAnMScgOiAnMCcpIH1cclxuICBzZXQgbGFuZ3VhZ2UoY29kZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb29raWVzLnNldCgnbGFuZycsIGNvZGUsIDM2NSwgJy8nKTtcclxuICB9XHJcbiAgZ2V0IGxhbmd1YWdlcygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLl9jb25maWcubGFuZ3VhZ2VzIHx8IFNVUFBPUlRFRF9MQU5HVUFHRVM7IH1cclxuICBnZXQgaXNJbXBlcnNvbmF0aW5nKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5wcm9maWxlLmJ5SWQgIT09IHVuZGVmaW5lZDsgfVxyXG4gIC8qKiBzeXN0ZW0gYWRtaW4gKi9cclxuICBnZXQgaXNTeXN0ZW0oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlLnN5c3RlbTtcclxuICB9XHJcbiAgLyoqIG9ubGluZSBvciBzZXQgaW4gcHJvZmlsZSAqL1xyXG4gIGdldCBzdGF0ZSgpOiBBdmFpbGFiaWxpdHlTdGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlLmF2YWlsYWJsZSB8fCAnT25saW5lJztcclxuICB9XHJcbiAgc2V0IHN0YXRlKHZhbHVlOiBBdmFpbGFiaWxpdHlTdGF0ZSkge1xyXG4gICAgdGhpcy5wcm9maWxlLmF2YWlsYWJsZSA9IHZhbHVlID09PSAnT25saW5lJyA/IG51bGwgOiB2YWx1ZTtcclxuICAgIHRoaXMuX2h0dHAucHV0KGAvYXBpL2FjY291bnQvYXZhaWxhYmxlP21vZGU9JHt0aGlzLnByb2ZpbGUuYXZhaWxhYmxlIHx8ICcnfWAsIHt9KS5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgaXNJblJvbGUocm9sZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoJy9hcGkvYWNjb3VudC9pc0luUm9sZScsIHtcclxuICAgICAgcGFyYW1zOiB7IHJvbGUgfSxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgY29uc3RcclxuICAgIH0pLnBpcGUobWFwKHIgPT4gciA9PT0gJ3RydWUnKSk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIGdldCBpc091dE9mT2ZmaWNlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvZmlsZS5vcHRpb25zLm91dE9mT2ZmaWNlO1xyXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5hY3RpdmUpIHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBkYXlqcygpLnN0YXJ0T2YoJ2RheScpO1xyXG4gICAgICByZXR1cm4gKCFvcHRpb25zLmZyb20gfHwgZGF5anMob3B0aW9ucy5mcm9tKS5zdGFydE9mKCdkYXknKSA8PSB0b2RheSlcclxuICAgICAgICAmJiAoIW9wdGlvbnMudG8gfHwgZGF5anMob3B0aW9ucy50bykuc3RhcnRPZignZGF5JykgPj0gdG9kYXkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIC8qKiB1cGRhdGUgcHJvZmlsZSAgKi9cclxuICB1cGRhdGUocHJvZmlsZTogT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoJy9hcGkvYWNjb3VudC91cGRhdGUnLCBwcm9maWxlKS5waXBlKHRhcCgoKSA9PlxyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3Byb2ZpbGUub3B0aW9ucywgcHJvZmlsZSkpKTtcclxuICB9XHJcbiAgLyoqIG1hcmsgZ3VpZGUgYXMgdmlzaXRlZCBpbiBwcm9maWxlICovXHJcbiAgZ3VpZGUobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9hY2NvdW50L2d1aWRlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICBjb25zdCBndWlkZSA9IHRoaXMuX3Byb2ZpbGUuZ3VpZGVzIS5maW5kKGcgPT4gZy5uYW1lID09PSBuYW1lKTtcclxuICAgICAgICBpZiAoZ3VpZGUpIGd1aWRlLm1vZGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcHJvZmlsZS5vcHRpb25zLmd1aWRlcyEucHVzaChuYW1lKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuICAvKiogZ2V0IHByb2ZpbGUgKi9cclxuICByZWZyZXNoKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgY29uc3QgY29tcGxldGUgPSAocHJvZmlsZTogUHJvZmlsZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3Byb2ZpbGUgPSBwcm9maWxlO1xyXG4gICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuX2xvYWRlZC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHByb2ZpbGU7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PFByb2ZpbGU+KCcvYXBpL2FjY291bnQvcmVmcmVzaCcpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuX3Byb2ZpbGUpXHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZVRoZW1lKHRoaXMudGhlbWUpLnN1YnNjcmliZSgoKSA9PiBjb21wbGV0ZShyKSk7XHJcbiAgICAgICAgICBlbHNlIGNvbXBsZXRlKHIpO1xyXG4gICAgICAgICAgdGhpcy5faHViLnN0YXRlICE9PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkICYmIHRoaXMuX2h1Yi5zdGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5fZmlyZWJhc2Uuc3RhdGUgIT09IEZpcmViYXNlU3RhdGUuQWN0aXZhdGVkICYmXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpcmViYXNlLmFjdGl2YXRlKCk7XHJcbiAgICAgICAgfSwgZXJyb3I6IG9ic2VydmUuZXJyb3JcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIGdldFByb2ZpbGVFeHRyYTxUID0gYW55PihuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxUPihgL2FwaS9hY2NvdW50L2V4dHJhLyR7bmFtZX1gKTtcclxuICB9XHJcbiAgcHVibGljIHNldFByb2ZpbGVFeHRyYTxUID0gYW55PihuYW1lOiBzdHJpbmcsIHByb2ZpbGU6IFQpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvYWNjb3VudC9leHRyYS8ke25hbWV9YCwgcHJvZmlsZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyB1bnJlZ2lzdGVyRGV2aWNlKHR5cGU6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KCcvYXBpL2FjY291bnQvdW5yZWdpc3RlckRldmljZScsIHsgdHlwZSwgdG9rZW4gfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZWdpc3RlckRldmljZSh0eXBlOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdCgnL2FwaS9hY2NvdW50L3JlZ2lzdGVyRGV2aWNlJywgeyB0eXBlLCB0b2tlbiB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHNlYXJjaFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHVibGljIGxpc3RJbXBlcnNvbmF0ZShzZWFyY2g/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgaWYgKHNlYXJjaCkgcGFyYW1zWydzZWFyY2gnXSA9IHNlYXJjaDtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9hY2NvdW50L2dyYW50ZWQnLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBpbXBlcnNvbmF0ZSh1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8VXNlckluZm8+KCcvYXBpL2FjY291bnQvaW1wZXJzb25hdGUnLCB7XHJcbiAgICAgIHVzZXJJZFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBpbmJveFRvdWNoKCkge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuX2h0dHAucHV0PFdhdGVybWFya0luZm8+KCcvYXBpL2FjY291bnQvaW5ib3h2aWV3Jywge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKFxyXG4gICAgICB0YXAoZSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcm9maWxlLmluYm94Q291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMucHJvZmlsZS5vcHRpb25zLmluYm94VmlldyA9IGUudGltZTtcclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnNUb3VjaCgpIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9odHRwLnB1dDxXYXRlcm1hcmtJbmZvPignL2FwaS9hY2NvdW50L25vdGlmaWNhdGlvbnNWaWV3Jywge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcChlID0+IHtcclxuICAgICAgdGhpcy5wcm9maWxlLm5vdGlmaWNhdGlvbnNDb3VudCA9IDA7XHJcbiAgICAgIHRoaXMucHJvZmlsZS5vcHRpb25zLm5vdGlmaWNhdGlvbnNWaWV3ID0gZS50aW1lO1xyXG4gICAgfSkpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0QnJvd3NlckxhbmcoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBsZXQgbGFuZzogc3RyaW5nIHwgdW5kZWZpbmVkID0gbmF2aWdhdG9yLmxhbmd1YWdlO1xyXG4gICAgaWYgKHRoaXMubGFuZ3VhZ2VzLmluZGV4T2YobGFuZykgPiAtMSlcclxuICAgICAgcmV0dXJuIGxhbmc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZXNbaV07XHJcbiAgICAgIGlmICh0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGxhbmcpID4gLTEpXHJcbiAgICAgICAgcmV0dXJuIGxhbmc7XHJcbiAgICAgIGlmIChsYW5nLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zdWJzdHJpbmcoMCwgMikudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBpZiAodGhpcy5sYW5ndWFnZXMuaW5kZXhPZihsYW5nKSA+IC0xKVxyXG4gICAgICAgICAgcmV0dXJuIGxhbmc7XHJcbiAgICAgICAgbGFuZyA9IHRoaXMubGFuZ3VhZ2VzLmZpbmQobCA9PiBsLnN0YXJ0c1dpdGgobGFuZyEpKTtcclxuICAgICAgICBpZiAobGFuZylcclxuICAgICAgICAgIHJldHVybiBsYW5nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHRoZW1lXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY2hhbmdlVGhlbWUodGhlbWU6IFRoZW1lKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaXpkb2MtdGhlbWUnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgICBpZiAoc3R5bGUpXHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc3R5bGUpO1xyXG5cclxuICAgIGlmICh0aGVtZS5uYW1lID09PSB0aGlzLlRoZW1lc1swXS5uYW1lKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGVtZSk7XHJcbiAgICB9XHJcbiAgICBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIHN0eWxlLmlkID0gJ2JpemRvYy10aGVtZSc7XHJcbiAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcclxuICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgIHN0eWxlLmhyZWYgPSBgL2Fzc2V0cy90aGVtZXMvJHt0aGVtZS5uYW1lfS5taW4uY3NzYDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHN0eWxlKTtcclxuXHJcbiAgICByZXR1cm4gZnJvbUV2ZW50KHN0eWxlLCAnbG9hZCcpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2FkU2VydmljZVdvcmtlcigpIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL2pzL2FwcC1zdy5qcycpLnRoZW4oZnVuY3Rpb24gKCkge1xyXG4gICAgICB9LCBudWxsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2FkR29vZ2xlTWFwcygpIHtcclxuICAgIGNvbnN0IGFwaUtleSA9ICh0aGlzLl9jb25maWcubWFwcyBhcyBHb29nbGVNYXBzU2V0dGluZ3MpLmFwaUtleTtcclxuICAgIGNvbnN0IGxvYWRlciA9IG5ldyBMb2FkZXIoe1xyXG4gICAgICBhcGlLZXksXHJcbiAgICAgIGxpYnJhcmllczogWydwbGFjZXMnXSxcclxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXHJcbiAgICAgIHZlcnNpb246ICd3ZWVrbHknLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBtYXBzID0gbG9hZGVyLmltcG9ydExpYnJhcnkoJ21hcHMnKTtcclxuICAgIHJldHVybiBtYXBzO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgV2F0ZXJtYXJrSW5mbyB7XHJcbiAgdGltZTogRGF0ZTtcclxufVxyXG4iXX0=
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFhLFVBQVUsRUFBTSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGFBQWEsRUFBMkMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7OztBQUc3QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQThCO0lBQ3hELE1BQU0sRUFBRSxPQUFPO0lBQ2YsTUFBTSxFQUFFLE1BQU07SUFDZCxNQUFNLEVBQUUsWUFBWTtJQUNwQixLQUFLLEVBQUUsS0FBSztDQUNiLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyw0OENBQTQ4QyxFQUM3OUMsU0FBUyxHQUFHLG0vQ0FBbS9DLEVBQy8vQyxlQUFlLEdBQUcsdzNDQUF3M0MsRUFDMTRDLFFBQVEsR0FBRywwMUVBQTAxRSxDQUFDO0FBRXgyRSxNQUFNLE1BQU0sR0FBWTtJQUN0QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVB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Q25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFPbkIsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tIFwiQGdvb2dsZW1hcHMvanMtYXBpLWxvYWRlclwiXHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdWJDb25uZWN0aW9uU3RhdGUgfSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnLCBHb29nbGVNYXBzU2V0dGluZ3MsIFRoZW1lIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUHJvZmlsZSwgVXNlckluZm8sIEF2YWlsYWJpbGl0eVN0YXRlLCBPcHRpb25zLCBHZW5kZXIgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEZpcmViYXNlU2VydmljZSwgRmlyZWJhc2VTdGF0ZSB9IGZyb20gJy4vZmlyZWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTUFURVJJQUxfUEFMRVRURVMgfSBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kZSB9IGZyb20gJy4vZnVuY3Rpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlRJT05fSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgJ3hsc3gnOiAnZXhjZWwnLFxyXG4gICdkb2N4JzogJ3dvcmQnLFxyXG4gICdwcHR4JzogJ3Bvd2VycG9pbnQnLFxyXG4gICdwZGYnOiAncGRmJ1xyXG59O1xyXG5cclxuY29uc3QgRVhDRUxfSUNPTiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDY0IDY0XCI+PHBhdGggZD1cIk0zOCw4SDE5LjMzMzVBMi4zMzM3MywyLjMzMzczLDAsMCwwLDE3LDEwLjMzMzVWMjBIMzhaXCIgZmlsbD1cIiMyMWEzNjZcIi8+PHBhdGggZD1cIk01Ni42NjY1LDhIMzhWMjBINTlWMTAuMzMzNUEyLjMzMzczLDIuMzMzNzMsMCwwLDAsNTYuNjY2NSw4WlwiIGZpbGw9XCIjMzNjNDgxXCIvPjxyZWN0IHg9XCIzOFwiIHk9XCIzMlwiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCIjMTA3YzQxXCIvPjxwYXRoIGQ9XCJNMzgsNDRWMzJIMTdWNTMuNjY2NUEyLjMzMzczLDIuMzMzNzMsMCwwLDAsMTkuMzMzNSw1NmgzNy4zMzNBMi4zMzM3MywyLjMzMzczLDAsMCwwLDU5LDUzLjY2NjVWNDRaXCIgZmlsbD1cIiMxODVjMzdcIi8+PHJlY3QgeD1cIjE3XCIgeT1cIjIwXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIiMxMDdjNDFcIi8+PHJlY3QgeD1cIjM4XCIgeT1cIjIwXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIiMyMWEzNjZcIi8+PHBhdGggZD1cIk0zMywyMC4zMzAwOFY0Ni42Njk5MmExLjczNDQ0LDEuNzM0NDQsMCwwLDEtLjA0LjM5OTlBMi4zMTM3OCwyLjMxMzc4LDAsMCwxLDMwLjY2OTkyLDQ5SDE3VjE4SDMwLjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMzLDIwLjMzMDA4WlwiIG9wYWNpdHk9XCIwLjJcIi8+PHBhdGggZD1cIk0zNCwyMC4zMzAwOFY0NC42Njk5MkEzLjM2MTcxLDMuMzYxNzEsMCwwLDEsMzAuNjY5OTIsNDhIMTdWMTdIMzAuNjY5OTJBMy4zNDE3NywzLjM0MTc3LDAsMCwxLDM0LDIwLjMzMDA4WlwiIG9wYWNpdHk9XCIwLjFcIi8+PHBhdGggZD1cIk0zMywyMC4zMzAwOFY0NC42Njk5MkEyLjMyNiwyLjMyNiwwLDAsMSwzMC42Njk5Miw0N0gxN1YxOEgzMC42Njk5MkEyLjMyNiwyLjMyNiwwLDAsMSwzMywyMC4zMzAwOFpcIiBvcGFjaXR5PVwiMC4yXCIvPjxwYXRoIGQ9XCJNMzIsMjAuMzMwMDhWNDQuNjY5OTJBMi4zMjYsMi4zMjYsMCwwLDEsMjkuNjY5OTIsNDdIMTdWMThIMjkuNjY5OTJBMi4zMjYsMi4zMjYsMCwwLDEsMzIsMjAuMzMwMDhaXCIgb3BhY2l0eT1cIjAuMVwiLz48cmVjdCB4PVwiNFwiIHk9XCIxOC4wMDAwMlwiIHdpZHRoPVwiMjcuOTk5OTZcIiBoZWlnaHQ9XCIyNy45OTk5NlwiIHJ4PVwiMi4zMzMzM1wiIGZpbGw9XCIjMTA3YzQxXCIvPjxwYXRoIGQ9XCJNMTEuMjI1NiwzOS41ODM1bDQuOTA3NTktNy42MDQ2NS00LjQ5NTEtNy41NjIzNWgzLjYxNzI0bDIuNDUzNzksNC44MzM1NnEuMzM4MzkuNjg3NjMuNDY1MzgsMS4wMjU5NGguMDMxNzNxLjI0MzE4LS41NDk4NC41MDc2OC0xLjA2ODI1bDIuNjIzLTQuNzkxMjVIMjQuNjU4bC00LjYxMTQ1LDcuNTIsNC43Mjc3OSw3LjY0N0gyMS4yNDE3NEwxOC40MDcxOCwzNC4yNzRhNC40MzI1NSw0LjQzMjU1LDAsMCwxLS4zMzg0NS0uNzA4NjRoLS4wNDIzMWEzLjM0NSwzLjM0NSwwLDAsMS0uMzI3ODguNjg3NDlMMTQuNzc5MzcsMzkuNTgzNVpcIiBmaWxsPVwiI2ZmZlwiLz48L3N2Zz4nLFxyXG4gIFdPUkRfSUNPTiA9ICc8c3ZnIHZpZXdCb3g9XCIwIDAgNTYwIDQwMFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBmaWxsLXJ1bGU9XCJub256ZXJvXCI+PHBhdGggZD1cIm0zODAuODI5IDEwMy43NTNoLTE0Ni42NTljLTUuMDI4IDAtOS4xNjUgNC4xMzctOS4xNjUgOS4xNjV2MzguOTU5bDgyLjQ5OCAyNC4wNjIgODIuNDk3LTI0LjA2MnYtMzguOTU5YzAtNS4wMjgtNC4xMzctOS4xNjUtOS4xNjQtOS4xNjV6XCIgZmlsbD1cIiM0MWE1ZWVcIi8+PHBhdGggZD1cIm0zODkuOTkzIDE1MS44NzdoLTE2NC45OTR2NDguMTIzbDgyLjQ5NyAyNC4wNjIgODIuNDk3LTI0LjA2MnpcIiBmaWxsPVwiIzJiN2NkM1wiLz48cGF0aCBkPVwibTM4OS45OTMgMjAwaC0xNjQuOTk0djQ4LjEyNGw4Mi40OTcgMjQuMDYxIDgyLjQ5Ny0yNC4wNjF6XCIgZmlsbD1cIiMxODVhYmRcIi8+PHBhdGggZD1cIm0zODkuOTkzIDI0OC4xMjRoLTE2NC45OTR2MzguOTU5YzAgNS4wMjcgNC4xMzYgOS4xNjQgOS4xNjMgOS4xNjRoMTQ2LjY2YzUuMDI3IDAgOS4xNjQtNC4xMzcgOS4xNjQtOS4xNjR6XCIgZmlsbD1cIiMxMDNmOTFcIi8+PHBhdGggZD1cIm0yODQuNTgyIDEzOC4xMjdoLTU5LjU4M3YxMzAuNjIxaDU5LjU4M2M1LjAyMi0uMDE1IDkuMTQ5LTQuMTQzIDkuMTY0LTkuMTY0di0xMTIuMjg2Yy0uMDE1LTUuMDIxLTQuMTQyLTkuMTQ5LTkuMTY0LTkuMTY0elwiIGZpbGwtb3BhY2l0eT1cIi4wOTgwMzlcIi8+PHBhdGggZD1cIm0yNzcuNzA4IDE0NS4wMDJoLTUyLjcwOXYxMzAuNjIxaDUyLjcwOWM1LjAyMS0uMDE1IDkuMTQ5LTQuMTQzIDkuMTYzLTkuMTY1di0xMTIuMjg1Yy0uMDE0LTUuMDIxLTQuMTQyLTkuMTQ5LTkuMTYzLTkuMTY0em0wIDBoLTUyLjcwOXYxMTYuODcxaDUyLjcwOWM1LjAyMS0uMDE1IDkuMTQ5LTQuMTQzIDkuMTYzLTkuMTY0di05OC41MzZjLS4wMTQtNS4wMjEtNC4xNDItOS4xNDktOS4xNjMtOS4xNjR6bS02Ljg3NSAwaC00NS44MzR2MTE2Ljg3MWg0NS44MzRjNS4wMjEtLjAxNSA5LjE0OS00LjE0MyA5LjE2My05LjE2NHYtOTguNTM2Yy0uMDE0LTUuMDIxLTQuMTQyLTkuMTQ5LTkuMTYzLTkuMTY0elwiIGZpbGwtb3BhY2l0eT1cIi4yXCIvPjxwYXRoIGQ9XCJtMTc5LjE2NCAxNDUuMDAyaDkxLjY2MWM1LjAyOCAwIDkuMTY1IDQuMTM2IDkuMTY1IDkuMTY0djkxLjY2MmMwIDUuMDI3LTQuMTM3IDkuMTYzLTkuMTY1IDkuMTYzaC05MS42NjFjLTUuMDI3IDAtOS4xNjQtNC4xMzYtOS4xNjQtOS4xNjN2LTkxLjY2MmMwLTUuMDI4IDQuMTM3LTkuMTY0IDkuMTY0LTkuMTY0elwiIGZpbGw9XCIjMTg1YWJkXCIvPjxwYXRoIGQ9XCJtMjUyLjE1NCAyMzQuMzc0aC0xMi4zNzVsLTE0LjQzNy00Ny40MzYtMTUuMTI1IDQ3LjQzNmgtMTIuMzc0bC0xMy43NS02OC43NDhoMTIuMzc1bDkuNjI0IDQ4LjEyMyAxNC40MzgtNDYuNzQ4aDEwLjMxMmwxMy43NSA0Ni43NDggOS42MjQtNDguMTIzaDExLjY4N3pcIiBmaWxsPVwiI2ZmZlwiLz48L2c+PHBhdGggZD1cIm0xNzAgOTAuMDA0aDIxOS45OTN2MjE5Ljk5M2gtMjE5Ljk5M3pcIiBmaWxsPVwibm9uZVwiLz48L3N2Zz4nLFxyXG4gIFBPV0VSUE9JTlRfSUNPTiA9ICc8c3ZnIHZpZXdCb3g9XCItMC4xMjk3OTM3MjY5ODA3Nzc4NSAwIDMyLjE1MjM4OTMwMTE3Njc1NCAzMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI1MDBcIiBoZWlnaHQ9XCIyNDc4XCI+PHBhdGggZD1cIk0xOCAyQTE0LjA0MSAxNC4wNDEgMCAwIDAgNCAxNmwxNy43MzcgMy43Mzd6XCIgZmlsbD1cIiNlZDZjNDdcIi8+PHBhdGggZD1cIk0xOCAyYTE0LjA0MSAxNC4wNDEgMCAwIDEgMTQgMTRsLTcgNC43NThMMTggMTZ6XCIgZmlsbD1cIiNmZjhmNmJcIi8+PHBhdGggZD1cIk0xOCAzMGExNC4wNDEgMTQuMDQxIDAgMCAwIDE0LTE0SDRhMTQuMDQxIDE0LjA0MSAwIDAgMCAxNCAxNHpcIiBmaWxsPVwiI2QzNTIzMFwiLz48cGF0aCBkPVwiTTE2LjY2NiA3aC05LjM2YTEzLjkxNCAxMy45MTQgMCAwIDAgLjkzIDE5aDguNDNBMS4zMzcgMS4zMzcgMCAwIDAgMTggMjQuNjY3VjguMzMzQTEuMzM3IDEuMzM3IDAgMCAwIDE2LjY2NiA3elwiIG9wYWNpdHk9XCIuMVwiLz48cGF0aCBkPVwiTTE1LjY2NiA4SDYuNTRhMTMuOTA2IDEzLjkwNiAwIDAgMCAyLjg0NSAxOWg2LjI4MkExLjMzNyAxLjMzNyAwIDAgMCAxNyAyNS42NjdWOS4zMzNBMS4zMzcgMS4zMzcgMCAwIDAgMTUuNjY2IDh6XCIgb3BhY2l0eT1cIi4yXCIvPjxwYXRoIGQ9XCJNMTUuNjY2IDhINi41NGExMy44OSAxMy44OSAwIDAgMCAuNzY2IDE3aDguMzYxQTEuMzM3IDEuMzM3IDAgMCAwIDE3IDIzLjY2N1Y5LjMzM0ExLjMzNyAxLjMzNyAwIDAgMCAxNS42NjYgOHpcIiBvcGFjaXR5PVwiLjJcIi8+PHBhdGggZD1cIk0xNC42NjYgOEg2LjU0YTEzLjg5IDEzLjg5IDAgMCAwIC43NjYgMTdoNy4zNjFBMS4zMzcgMS4zMzcgMCAwIDAgMTYgMjMuNjY3VjkuMzMzQTEuMzM3IDEuMzM3IDAgMCAwIDE0LjY2NiA4elwiIG9wYWNpdHk9XCIuMlwiLz48cGF0aCBkPVwiTTEuMzMzIDhoMTMuMzM0QTEuMzMzIDEuMzMzIDAgMCAxIDE2IDkuMzMzdjEzLjMzNEExLjMzMyAxLjMzMyAwIDAgMSAxNC42NjcgMjRIMS4zMzNBMS4zMzMgMS4zMzMgMCAwIDEgMCAyMi42NjdWOS4zMzNBMS4zMzMgMS4zMzMgMCAwIDEgMS4zMzMgOHpcIiBmaWxsPVwiI2M0M2UxY1wiLz48cGF0aCBkPVwiTTcuOTk3IDExYTQuMTY4IDQuMTY4IDAgMCAxIDIuNzU1LjgwNSAyLjg3OCAyLjg3OCAwIDAgMSAuOTU2IDIuMzMxIDIuNzI2IDIuNzI2IDAgMCAxLS40NzMgMS41ODggMy4xNjQgMy4xNjQgMCAwIDEtMS4zNDQgMS4xODYgNC41NyA0LjU3IDAgMCAxLTIuMDIuNDI0aC0xLjkxVjIxSDRWMTF6TTUuOTYgMTUuNjgzaDEuNjg3YTIuMTk0IDIuMTk0IDAgMCAwIDEuNDkyLS40NDQgMS4xMDcgMS4xMDcgMCAwIDAgLjUwNC0xLjAyNnEwLTEuNjU5LTEuOTMzLTEuNjU5SDUuOTZ6XCIgZmlsbD1cIiNmOWY3ZjdcIi8+PHBhdGggZD1cIk0wIDBoMzJ2MzJIMHpcIiBmaWxsPVwibm9uZVwiLz48L3N2Zz4nLFxyXG4gIFBERl9JQ09OID0gJzxzdmcgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgMTQgMTZcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiPjxwb2x5Z29uIHBvaW50cz1cIjUxLjc5MSAzNTYuNjUgNTEuNzkxIDIzLjk5IDIwNC41IDIzLjk5IDI4Mi42NSAxMDIuMDcgMjgyLjY1IDM1Ni42NVwiIGZpbGw9XCIjZmZmXCIgc3Ryb2tlLXdpZHRoPVwiMjEyLjY1XCIvPjxwYXRoIGQ9XCJtMjAxLjE5IDMxLjk5IDczLjQ2IDczLjM5M3YyNDMuMjZoLTIxNC44NnYtMzE2LjY2aDE0MS40bTYuNjIzLTE2aC0xNjQuMDJ2MzQ4LjY2aDI0Ni44NXYtMjY1Ljl6XCIgc3Ryb2tlLXdpZHRoPVwiMjEuNzkxXCIvPjwvZz48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiPjxwb2x5Z29uIHBvaW50cz1cIjI4Mi42NSAzNTYuNjUgNTEuNzkxIDM1Ni42NSA1MS43OTEgMjMuOTkgMjA0LjUgMjMuOTkgMjA2LjMxIDI1LjggMjA2LjMxIDEwMC4zMyAyODAuOSAxMDAuMzMgMjgyLjY1IDEwMi4wN1wiIGZpbGw9XCIjZmZmXCIgc3Ryb2tlLXdpZHRoPVwiMjEyLjY1XCIvPjxwYXRoIGQ9XCJtMTk4LjMxIDMxLjk5djc2LjMzN2g3Ni4zMzd2MjQwLjMyaC0yMTQuODZ2LTMxNi42NmgxMzguNTJtOS41LTE2aC0xNjQuMDJ2MzQ4LjY2aDI0Ni44NXYtMjY1LjlsLTYuNDMtNi40MjRoLTY5LjkwN3YtNjkuODQyelwiIHN0cm9rZS13aWR0aD1cIjIxLjc5MVwiLz48L2c+PGcgdHJhbnNmb3JtPVwibWF0cml4KC4wNDU4OSAwIDAgLjA0NTg5IC0uNjY4NzcgLS43MzM3OSlcIiBzdHJva2Utd2lkdGg9XCIyMS43OTFcIj48cG9seWdvbiBwb2ludHM9XCIyNTguMzEgODcuNzUgMjE5LjY0IDg3Ljc1IDIxOS42NCA0OC42NjcgMjU4LjMxIDg2LjM4XCIvPlx0XHQ8cGF0aCBkPVwibTIyNy42NCA2Ny42NDYgMTIuNDEgMTIuMTA0aC0xMi40MXYtMTIuMTA0bS01LjAwMi0yNy4yMjloLTEwLjk5OHY1NS4zMzNoNTQuNjY2di0xMi43NDJ6XCIvPjwvZz48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiIGZpbGw9XCIjZWQxYzI0XCIgc3Ryb2tlLXdpZHRoPVwiMjEyLjY1XCI+PHBvbHlnb24gcG9pbnRzPVwiMzExLjg5IDI4NC40OSAyMi41NDQgMjg0LjQ5IDIyLjU0NCAxNjcuNjggMzcuMjkxIDE1Mi45NCAzNy4yOTEgMTcxLjQ5IDI5Ny4xNSAxNzEuNDkgMjk3LjE1IDE1Mi45NCAzMTEuODkgMTY3LjY4XCIvPjxwYXRoIGQ9XCJtMzAzLjY1IDE2OC42MyAxLjc0NyAxLjc0N3YxMDcuNjJoLTI3Ni4zNXYtMTA3LjYybDEuNzQ3LTEuNzQ3djkuMzYyaDI3Mi44NXYtOS4zNjJtLTEyLjk5OS0zMS4zODV2MjcuNzQ3aC0yNDYuODZ2LTI3Ljc0N2wtMjcuNzQ3IDI3Ljc0N3YxMjZoMzAyLjM1di0xMjZ6XCIvPjwvZz48cmVjdCB4PVwiMS43MjE5XCIgeT1cIjcuOTU0NFwiIHdpZHRoPVwiMTAuNjg0XCIgaGVpZ2h0PVwiNC4wMzA3XCIgZmlsbD1cIm5vbmVcIi8+PGcgdHJhbnNmb3JtPVwibWF0cml4KC4wNDU4OSAwIDAgLjA0NTg5IDEuNzIxOSAxMS43MzMpXCIgZmlsbD1cIiNmZmZcIiBzdHJva2Utd2lkdGg9XCIyMS43OTFcIiBhcmlhLWxhYmVsPVwiUERGXCI+PHBhdGggZD1cIm05LjIxNiAwdi04My4yaDMwLjQ2NHE2Ljc4NCAwIDEyLjkyOCAxLjQwOCA2LjE0NCAxLjI4IDEwLjc1MiA0LjYwOCA0LjYwOCAzLjIgNy4yOTYgOC41NzYgMi44MTYgNS4yNDggMi44MTYgMTMuMDU2IDAgNy42OC0yLjgxNiAxMy4xODQtMi42ODggNS41MDQtNy4yOTYgOS4wODgtNC42MDggMy40NTYtMTAuNjI0IDUuMjQ4LTYuMDE2IDEuNjY0LTEyLjU0NCAxLjY2NGgtOC45NnYyNi4zNjh6bTIyLjAxNi00My43NzZoNy45MzZxNi41MjggMCA5LjYtMy4wNzIgMy4yLTMuMDcyIDMuMi04LjcwNHQtMy40NTYtNy45MzYtOS44NTYtMi4zMDRoLTcuNDI0elwiLz48cGF0aCBkPVwibTg3LjA0IDB2LTgzLjJoMjQuNTc2cTkuNDcyIDAgMTcuMjggMi4zMDQgNy45MzYgMi4zMDQgMTMuNTY4IDcuMjk2dDguNzA0IDEyLjhxMy4yIDcuODA4IDMuMiAxOC44MTZ0LTMuMDcyIDE4Ljk0NC04LjcwNCAxMy4wNTZxLTUuNTA0IDUuMTItMTMuMTg0IDcuNTUyLTcuNTUyIDIuNDMyLTE2LjUxMiAyLjQzMnptMjIuMDE2LTE3LjY2NGgxLjI4cTQuNDggMCA4LjQ0OC0xLjAyNCAzLjk2OC0xLjE1MiA2Ljc4NC0zLjg0IDIuOTQ0LTIuNjg4IDQuNjA4LTcuNDI0dDEuNjY0LTEyLjAzMi0xLjY2NC0xMS45MDQtNC42MDgtNy4xNjhxLTIuODE2LTIuNTYtNi43ODQtMy40NTYtMy45NjgtMS4wMjQtOC40NDgtMS4wMjRoLTEuMjh6XCIvPjxwYXRoIGQ9XCJtMTY5LjIyIDB2LTgzLjJoNTQuMjcydjE4LjQzMmgtMzIuMjU2djE1Ljg3MmgyNy42NDh2MTguNDMyaC0yNy42NDh2MzAuNDY0elwiLz48L2c+PC9zdmc+JztcclxuXHJcbmNvbnN0IFRIRU1FUzogVGhlbWVbXSA9IFtcclxuICB7IG5hbWU6ICdkZWZhdWx0JywgcHJpbWFyeTogJ3B1cnBsZScsIGNvbG9yOiAncHVycGxlJywgYWNjZW50OiAnYW1iZXInLCB0aXRsZTogJ1B1cnBsZVRoZW1lJyB9LFxyXG4gIHsgbmFtZTogJ2luZGlnbycsIHByaW1hcnk6ICdpbmRpZ28nLCBjb2xvcjogJyMzZjUxYjUnLCBhY2NlbnQ6ICdwaW5rJywgdGl0bGU6ICdJbmRpZ29UaGVtZScgfSxcclxuICB7IG5hbWU6ICdncmVlbicsIHByaW1hcnk6ICdncmVlbicsIGNvbG9yOiAnIzRDQUY1MCcsIGFjY2VudDogJ2FtYmVyJywgdGl0bGU6ICdHcmVlblRoZW1lJyB9LFxyXG4gIHsgbmFtZTogJ2RhcmsnLCBwcmltYXJ5OiAnZGVlcFB1cnBsZScsIGNvbG9yOiAnIzQwNDA0MScsIGFjY2VudDogJ2FtYmVyJywgZGFyazogdHJ1ZSwgdGl0bGU6ICdEZWVwVGhlbWUnIH0sXHJcbiAgeyBuYW1lOiAnYnJvd24nLCBwcmltYXJ5OiAnYnJvd24nLCBjb2xvcjogJyM3OTU1NDgnLCBhY2NlbnQ6ICdncmV5JywgdGl0bGU6ICdHcmF5VGhlbWUnIH1dO1xyXG5cclxuY29uc3QgU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFsnZW4nLCAnaGUnLCAnZGUnLCAnYXInLCAncnUnXSxcclxuICBSVExfTEFOR1VBTEdFUyA9IFsnaGUnLCAnYXInXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZXNzaW9uUHJvdmlkZXJGYWN0b3J5KHByb3ZpZGVyOiBTZXNzaW9uU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiBwcm92aWRlci5wcmVwYXJlKCk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZSB7XHJcbiAgcHJlcGFyZSgpIHtcclxuICAgICgnc2VydmljZVdvcmtlcicgaW4gbmF2aWdhdG9yKSAmJiB0aGlzLl9sb2FkU2VydmljZVdvcmtlcigpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5tYXBzID8gdGhpcy5fbG9hZEdvb2dsZU1hcHMoKSA6IFByb21pc2UucmVzb2x2ZSgpO1xyXG4gIH1cclxuICByZWFkb25seSBUaGVtZXM6IFRoZW1lW10gPSB0aGlzLl9jb25maWcudGhlbWVzIHx8IFRIRU1FUztcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEJJWkRPQ19DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogQml6RG9jQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX2Nvb2tpZXM6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odWI6IEh1YlNlcnZpY2UsXHJcbiAgICBpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgIHNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2V4Y2VsJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEVYQ0VMX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnd29yZCcsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChXT1JEX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncG93ZXJwb2ludCcsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChQT1dFUlBPSU5UX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncGRmJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBERl9JQ09OKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdGhlbWVDaGFuZ2UgPSBuZXcgU3ViamVjdDxUaGVtZT4oKTtcclxuICByZWFkb25seSBsb2FkZWQgPSB0aGlzLl9sb2FkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgdGhlbWVDaGFuZ2UgPSB0aGlzLl90aGVtZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIF9wcm9maWxlOiBQcm9maWxlO1xyXG4gIHByaXZhdGUgX2xhbmc6IHN0cmluZztcclxuICBwcml2YXRlIF9maXJlYmFzZSA9IG5ldyBGaXJlYmFzZVNlcnZpY2UodGhpcy5fY29uZmlnID8gdGhpcy5fY29uZmlnLmZpcmViYXNlIDogdW5kZWZpbmVkLCB0aGlzKTtcclxuICBnZXQgcHJvZmlsZSgpOiBQcm9maWxlIHsgcmV0dXJuIHRoaXMuX3Byb2ZpbGU7IH1cclxuICBnZXQgZ2VuZGVyKCk6IEdlbmRlciB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLnByb2ZpbGUuYnlJZCA/IHRoaXMuX3Byb2ZpbGUuYnlHZW5kZXIgOiB0aGlzLl9wcm9maWxlLmdlbmRlcjsgfVxyXG4gIHByaXZhdGUgX2FjY2VudHBhbGV0dGU6IHN0cmluZ1tdO1xyXG4gIGdldCBhY2NlbnRQYWxldHRlKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl9hY2NlbnRwYWxldHRlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb25zdHJ1Y3RwYWxldHRlKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBwYWxldHRlID0gTUFURVJJQUxfUEFMRVRURVNbY29sb3JdO1xyXG4gICAgcmV0dXJuIFtwYWxldHRlWycxMDAnXSwgcGFsZXR0ZVsnMzAwJ10sIHBhbGV0dGVbJzUwMCddLCBwYWxldHRlWyc3MDAnXSwgcGFsZXR0ZVsnOTAwJ10sXHJcbiAgICBwYWxldHRlWycyMDAnXSwgcGFsZXR0ZVsnNDAwJ10sIHBhbGV0dGVbJzYwMCddLCBwYWxldHRlWyc4MDAnXSwgcGFsZXR0ZVsnaGV4J10sXHJcbiAgICBwYWxldHRlWydhMTAwJ10sIHBhbGV0dGVbJ2E0MDAnXSwgcGFsZXR0ZVsnYTIwMCddLCBwYWxldHRlWydhNzAwJ11dO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJpbWFyeXBhbGV0dGU6IHN0cmluZ1tdO1xyXG4gIGdldCBwcmltZXJ5UGFsZXR0ZSgpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJpbWFyeXBhbGV0dGU7XHJcbiAgfVxyXG4gIGdldEFjY2VudChtb2RlOiBNYXRlcmlhbE1vZGUgPSA1MDApOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE1BVEVSSUFMX1BBTEVUVEVTW3RoaXMudGhlbWUuYWNjZW50XVttb2RlXTtcclxuICB9XHJcbiAgZ2V0UHJpbWVyeShtb2RlOiBNYXRlcmlhbE1vZGUgPSA1MDApOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE1BVEVSSUFMX1BBTEVUVEVTW3RoaXMudGhlbWUucHJpbWFyeV1bbW9kZV07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3RoZW1lOiBUaGVtZTtcclxuICBnZXQgdGhlbWUoKTogVGhlbWUge1xyXG4gICAgaWYgKCF0aGlzLl90aGVtZSkge1xyXG4gICAgICBjb25zdCBuYW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RoZW1lJyk7XHJcbiAgICAgIHRoaXMuX3RoZW1lID0gbmFtZSA/IHRoaXMuVGhlbWVzLmZpbmQodCA9PiB0Lm5hbWUgPT09IG5hbWUpISA6XHJcbiAgICAgICAgdGhpcy5UaGVtZXNbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fdGhlbWU7XHJcbiAgfVxyXG4gIHNldCB0aGVtZSh2YWx1ZTogVGhlbWUpIHtcclxuICAgIHRoaXMuX3RoZW1lID0gdmFsdWU7XHJcbiAgICB0aGlzLl9jaGFuZ2VUaGVtZSh2YWx1ZSkudGhlbigoKSA9PlxyXG4gICAgICB0aGlzLl90aGVtZUNoYW5nZS5uZXh0KHZhbHVlKSk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGhlbWUnLCB2YWx1ZS5uYW1lKTtcclxuICB9XHJcbiAgZ2V0IG9rKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5wcm9maWxlICE9PSB1bmRlZmluZWQ7IH1cclxuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uICovXHJcbiAgZ2V0IGRpcmVjdGlvbigpOiBEaXJlY3Rpb24ge1xyXG4gICAgcmV0dXJuIFJUTF9MQU5HVUFMR0VTLmluZGV4T2YodGhpcy5sYW5ndWFnZSkgPiAtMSA/ICdydGwnIDogJ2x0cic7XHJcbiAgfVxyXG4gIGdldCBpbnZlcnNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uID09PSAncnRsJztcclxuICB9XHJcbiAgZ2V0IHVzZXJJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Byb2ZpbGUuYnlJZCB8fCB0aGlzLnByb2ZpbGUudXNlcklkO1xyXG4gIH1cclxuICBnZXQgbG9jYWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcclxuICB9XHJcbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuX2xhbmcpXHJcbiAgICAgIHRoaXMuX2xhbmcgPSB0aGlzLl9jb29raWVzLmdldCgnbGFuZycpIHx8IHRoaXMuX2dldEJyb3dzZXJMYW5nKCkgfHwgU1VQUE9SVEVEX0xBTkdVQUdFU1swXTtcclxuICAgIHJldHVybiB0aGlzLl9sYW5nO1xyXG4gIH1cclxuICBnZXQgYXJpYSgpIHsgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhcmlhJykgPT09ICcxJyB9XHJcbiAgc2V0IGFyaWEodmFsOiBib29sZWFuKSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdhcmlhJywgdmFsID8gJzEnIDogJzAnKSB9XHJcbiAgc2V0IGxhbmd1YWdlKGNvZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY29va2llcy5zZXQoJ2xhbmcnLCBjb2RlLCAzNjUsICcvJyk7XHJcbiAgfVxyXG4gIGdldCBsYW5ndWFnZXMoKTogc3RyaW5nW10geyByZXR1cm4gdGhpcy5fY29uZmlnLmxhbmd1YWdlcyB8fCBTVVBQT1JURURfTEFOR1VBR0VTOyB9XHJcbiAgZ2V0IGlzSW1wZXJzb25hdGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMucHJvZmlsZS5ieUlkICE9PSB1bmRlZmluZWQ7IH1cclxuICAvKiogc3lzdGVtIGFkbWluICovXHJcbiAgZ2V0IGlzU3lzdGVtKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZS5zeXN0ZW07XHJcbiAgfVxyXG4gIC8qKiBvbmxpbmUgb3Igc2V0IGluIHByb2ZpbGUgKi9cclxuICBnZXQgc3RhdGUoKTogQXZhaWxhYmlsaXR5U3RhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZS5hdmFpbGFibGUgfHwgJ09ubGluZSc7XHJcbiAgfVxyXG4gIHNldCBzdGF0ZSh2YWx1ZTogQXZhaWxhYmlsaXR5U3RhdGUpIHtcclxuICAgIHRoaXMucHJvZmlsZS5hdmFpbGFibGUgPSB2YWx1ZSA9PT0gJ09ubGluZScgPyBudWxsIDogdmFsdWU7XHJcbiAgICB0aGlzLl9odHRwLnB1dChgL2FwaS9hY2NvdW50L2F2YWlsYWJsZT9tb2RlPSR7dGhpcy5wcm9maWxlLmF2YWlsYWJsZSB8fCAnJ31gLCB7fSkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIGlzSW5Sb2xlKHJvbGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0KCcvYXBpL2FjY291bnQvaXNJblJvbGUnLCB7XHJcbiAgICAgIHBhcmFtczogeyByb2xlIH0sXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnIGFzIGNvbnN0XHJcbiAgICB9KS5waXBlKG1hcChyID0+IHIgPT09ICd0cnVlJykpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBnZXQgaXNPdXRPZk9mZmljZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnByb2ZpbGUub3B0aW9ucy5vdXRPZk9mZmljZTtcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuYWN0aXZlKSB7XHJcbiAgICAgIGNvbnN0IHRvZGF5ID0gZGF5anMoKS5zdGFydE9mKCdkYXknKTtcclxuICAgICAgcmV0dXJuICghb3B0aW9ucy5mcm9tIHx8IGRheWpzKG9wdGlvbnMuZnJvbSkuc3RhcnRPZignZGF5JykgPD0gdG9kYXkpXHJcbiAgICAgICAgJiYgKCFvcHRpb25zLnRvIHx8IGRheWpzKG9wdGlvbnMudG8pLnN0YXJ0T2YoJ2RheScpID49IHRvZGF5KTtcclxuICAgIH1cclxuICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICAvKiogdXBkYXRlIHByb2ZpbGUgICovXHJcbiAgdXBkYXRlKHByb2ZpbGU6IE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KCcvYXBpL2FjY291bnQvdXBkYXRlJywgcHJvZmlsZSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9wcm9maWxlLm9wdGlvbnMsIHByb2ZpbGUpKSk7XHJcbiAgfVxyXG4gIC8qKiBtYXJrIGd1aWRlIGFzIHZpc2l0ZWQgaW4gcHJvZmlsZSAqL1xyXG4gIGd1aWRlKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvYWNjb3VudC9ndWlkZS8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX1gLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3VpZGUgPSB0aGlzLl9wcm9maWxlLmd1aWRlcyEuZmluZChnID0+IGcubmFtZSA9PT0gbmFtZSk7XHJcbiAgICAgICAgaWYgKGd1aWRlKSBndWlkZS5tb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3Byb2ZpbGUub3B0aW9ucy5ndWlkZXMhLnB1c2gobmFtZSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcbiAgLyoqIGdldCBwcm9maWxlICovXHJcbiAgcmVmcmVzaCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXBsZXRlID0gKHByb2ZpbGU6IFByb2ZpbGUpID0+IHtcclxuICAgICAgICB0aGlzLl9wcm9maWxlID0gcHJvZmlsZTtcclxuICAgICAgICBvYnNlcnZlLm5leHQoKTtcclxuICAgICAgICB0aGlzLl9sb2FkZWQubmV4dCgpO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLl9odHRwLmdldDxQcm9maWxlPignL2FwaS9hY2NvdW50L3JlZnJlc2gnKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLl9wcm9maWxlKSAvLyAxc3QgdGltZVxyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VUaGVtZSh0aGlzLnRoZW1lKS5cclxuICAgICAgICAgICAgICB0aGVuKCgpID0+IGNvbXBsZXRlKHIpKTtcclxuICAgICAgICAgIGVsc2UgY29tcGxldGUocik7XHJcbiAgICAgICAgICB0aGlzLl9odWIuc3RhdGUgIT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQgJiYgdGhpcy5faHViLnN0YXJ0KCk7XHJcbiAgICAgICAgICB0aGlzLl9maXJlYmFzZS5zdGF0ZSAhPT0gRmlyZWJhc2VTdGF0ZS5BY3RpdmF0ZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5fZmlyZWJhc2UuYWN0aXZhdGUoKTtcclxuICAgICAgICB9LCBlcnJvcjogb2JzZXJ2ZS5lcnJvci5iaW5kKHRoaXMpXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRQcm9maWxlRXh0cmE8VCA9IGFueT4obmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8VD4oYC9hcGkvYWNjb3VudC9leHRyYS8ke25hbWV9YCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRQcm9maWxlRXh0cmE8VCA9IGFueT4obmFtZTogc3RyaW5nLCBwcm9maWxlOiBUKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KGAvYXBpL2FjY291bnQvZXh0cmEvJHtuYW1lfWAsIHByb2ZpbGUpO1xyXG4gIH1cclxuICBwdWJsaWMgdW5yZWdpc3RlckRldmljZSh0eXBlOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdCgnL2FwaS9hY2NvdW50L3VucmVnaXN0ZXJEZXZpY2UnLCB7IHR5cGUsIHRva2VuIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgcmVnaXN0ZXJEZXZpY2UodHlwZTogc3RyaW5nLCB0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoJy9hcGkvYWNjb3VudC9yZWdpc3RlckRldmljZScsIHsgdHlwZSwgdG9rZW4gfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBzZWFyY2hcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBsaXN0SW1wZXJzb25hdGUoc2VhcmNoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIGlmIChzZWFyY2gpIHBhcmFtc1snc2VhcmNoJ10gPSBzZWFyY2g7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8VXNlckluZm9bXT4oJy9hcGkvYWNjb3VudC9ncmFudGVkJywge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgaW1wZXJzb25hdGUodXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFVzZXJJbmZvPignL2FwaS9hY2NvdW50L2ltcGVyc29uYXRlJywge1xyXG4gICAgICB1c2VySWRcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgaW5ib3hUb3VjaCgpIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9odHRwLnB1dDxXYXRlcm1hcmtJbmZvPignL2FwaS9hY2NvdW50L2luYm94dmlldycsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkucGlwZShcclxuICAgICAgdGFwKGUgPT4ge1xyXG4gICAgICAgIHRoaXMucHJvZmlsZS5pbmJveENvdW50ID0gMDtcclxuICAgICAgICB0aGlzLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgPSBlLnRpbWU7XHJcbiAgICAgIH0pKSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBub3RpZmljYXRpb25zVG91Y2goKSB7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5faHR0cC5wdXQ8V2F0ZXJtYXJrSW5mbz4oJy9hcGkvYWNjb3VudC9ub3RpZmljYXRpb25zVmlldycsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkucGlwZSh0YXAoZSA9PiB7XHJcbiAgICAgIHRoaXMucHJvZmlsZS5ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gICAgICB0aGlzLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zVmlldyA9IGUudGltZTtcclxuICAgIH0pKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dldEJyb3dzZXJMYW5nKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgbGV0IGxhbmc6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuICAgIGlmICh0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGxhbmcpID4gLTEpXHJcbiAgICAgIHJldHVybiBsYW5nO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2VzW2ldO1xyXG4gICAgICBpZiAodGhpcy5sYW5ndWFnZXMuaW5kZXhPZihsYW5nKSA+IC0xKVxyXG4gICAgICAgIHJldHVybiBsYW5nO1xyXG4gICAgICBpZiAobGFuZy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgbGFuZyA9IGxhbmcuc3Vic3RyaW5nKDAsIDIpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2VzLmluZGV4T2YobGFuZykgPiAtMSlcclxuICAgICAgICAgIHJldHVybiBsYW5nO1xyXG4gICAgICAgIGxhbmcgPSB0aGlzLmxhbmd1YWdlcy5maW5kKGwgPT4gbC5zdGFydHNXaXRoKGxhbmchKSk7XHJcbiAgICAgICAgaWYgKGxhbmcpXHJcbiAgICAgICAgICByZXR1cm4gbGFuZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB0aGVtZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NoYW5nZVRoZW1lKHRoZW1lOiBUaGVtZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2FjY2VudHBhbGV0dGUgPSB0aGlzLl9jb25zdHJ1Y3RwYWxldHRlKHRoaXMudGhlbWUuYWNjZW50KTtcclxuICAgICAgdGhpcy5fcHJpbWFyeXBhbGV0dGUgPSB0aGlzLl9jb25zdHJ1Y3RwYWxldHRlKHRoaXMudGhlbWUucHJpbWFyeSk7XHJcbiAgICAgIGxldCBzdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaXpkb2MtdGhlbWUnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgICAgIC8vIHJlbW92ZVxyXG4gICAgICBpZiAoc3R5bGUpXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdHlsZSk7XHJcbiAgICAgIGlmICh0aGVtZS5uYW1lID09PSB0aGlzLlRoZW1lc1swXS5uYW1lKVxyXG4gICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICAgICAgc3R5bGUuaWQgPSAnYml6ZG9jLXRoZW1lJztcclxuICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcclxuICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XHJcbiAgICAgICAgc3R5bGUuaHJlZiA9IGAvYXNzZXRzL3RoZW1lcy8ke3RoZW1lLm5hbWV9Lm1pbi5jc3NgO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHN0eWxlKTtcclxuICAgICAgICBzdHlsZS5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2FkU2VydmljZVdvcmtlcigpIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL2pzL2FwcC1zdy5qcycpLnRoZW4oZnVuY3Rpb24gKCkge1xyXG4gICAgICB9LCBudWxsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2FkR29vZ2xlTWFwcygpIHtcclxuICAgIGNvbnN0IGFwaUtleSA9ICh0aGlzLl9jb25maWcubWFwcyBhcyBHb29nbGVNYXBzU2V0dGluZ3MpLmFwaUtleTtcclxuICAgIGNvbnN0IGxvYWRlciA9IG5ldyBMb2FkZXIoe1xyXG4gICAgICBhcGlLZXksXHJcbiAgICAgIGxpYnJhcmllczogWydwbGFjZXMnXSxcclxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXHJcbiAgICAgIHZlcnNpb246ICd3ZWVrbHknLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBtYXBzID0gbG9hZGVyLmltcG9ydExpYnJhcnkoJ21hcHMnKTtcclxuICAgIHJldHVybiBtYXBzO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgV2F0ZXJtYXJrSW5mbyB7XHJcbiAgdGltZTogRGF0ZTtcclxufVxyXG4iXX0=
|
@@ -38,10 +38,10 @@ export class SlotRouterDirective {
|
|
38
38
|
this._destroy.next();
|
39
39
|
this._destroy.complete();
|
40
40
|
}
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
42
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SlotRouterDirective, deps: [{ token: i0.ElementRef }, { token: i1.PanesRouter }], target: i0.ɵɵFactoryTarget.Directive }); }
|
42
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: SlotRouterDirective, selector: "[slotRouterLink]", inputs: { link: ["slotRouterLink", "link"], active: ["slotRouterLinkActive", "active"], disabled: ["slotRouterLinkDisabled", "disabled"], policy: ["slotRouterLinkPolicy", "policy"], options: ["slotRouterLinkOptions", "options"] }, host: { listeners: { "click": "_navigate()" } }, ngImport: i0 }); }
|
43
43
|
}
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SlotRouterDirective, decorators: [{
|
45
45
|
type: Directive,
|
46
46
|
args: [{
|
47
47
|
selector: '[slotRouterLink]',
|