@fundamental-ngx/platform 0.48.0-rc.2 → 0.48.0-rc.21
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/approval-flow/helpers/index.d.ts +1 -1
- package/approval-flow/index.d.ts +2 -2
- package/approval-flow/interfaces/approval-process.d.ts +1 -1
- package/approval-flow/interfaces/index.d.ts +1 -1
- package/approval-flow/interfaces/send-reminders-data.d.ts +1 -1
- package/button/button.component.d.ts +4 -1
- package/button/index.d.ts +1 -1
- package/dynamic-page/index.d.ts +5 -5
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-graph.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
- package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow.module.mjs +1 -1
- package/esm2022/approval-flow/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/esm2022/approval-flow/helpers/index.mjs +1 -1
- package/esm2022/approval-flow/index.mjs +3 -3
- package/esm2022/approval-flow/interfaces/approval-node.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-process.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-status.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-team.mjs +1 -1
- package/esm2022/approval-flow/interfaces/approval-user.mjs +1 -1
- package/esm2022/approval-flow/interfaces/index.mjs +2 -2
- package/esm2022/approval-flow/interfaces/send-reminders-data.mjs +1 -1
- package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +1 -1
- package/esm2022/button/button.component.mjs +8 -3
- package/esm2022/button/button.module.mjs +1 -1
- package/esm2022/button/fundamental-ngx-platform-button.mjs +1 -1
- package/esm2022/button/index.mjs +2 -2
- package/esm2022/dynamic-page/constants.mjs +1 -1
- package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +1 -1
- package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.config.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.module.mjs +1 -1
- package/esm2022/dynamic-page/dynamic-page.service.mjs +1 -1
- package/esm2022/dynamic-page/fundamental-ngx-platform-dynamic-page.mjs +1 -1
- package/esm2022/dynamic-page/index.mjs +6 -6
- package/esm2022/dynamic-page/utils.mjs +1 -1
- package/esm2022/feed-input/feed-input.component.mjs +2 -2
- package/esm2022/feed-input/feed-input.module.mjs +1 -1
- package/esm2022/feed-input/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/esm2022/feed-input/index.mjs +2 -2
- package/esm2022/form/auto-complete/auto-complete.directive.mjs +2 -2
- package/esm2022/form/auto-complete/auto-complete.module.mjs +1 -1
- package/esm2022/form/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/form/checkbox/checkbox.module.mjs +1 -1
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +1 -1
- package/esm2022/form/checkbox-group/checkbox-group.module.mjs +1 -1
- package/esm2022/form/combobox/combobox/combobox.component.mjs +13 -4
- package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
- package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +1 -1
- package/esm2022/form/combobox/combobox.config.mjs +2 -2
- package/esm2022/form/combobox/combobox.interface.mjs +1 -1
- package/esm2022/form/combobox/combobox.module.mjs +1 -1
- package/esm2022/form/combobox/commons/base-combobox.mjs +1 -1
- package/esm2022/form/combobox/directives/combobox-item.directive.mjs +1 -1
- package/esm2022/form/combobox/index.mjs +1 -1
- package/esm2022/form/date-picker/date-picker.component.mjs +4 -5
- package/esm2022/form/date-picker/date-picker.module.mjs +1 -1
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
- package/esm2022/form/datetime-picker/datetime-picker.module.mjs +1 -1
- package/esm2022/form/datetime-picker/errors.mjs +1 -1
- package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +1 -1
- package/esm2022/form/form-generator/config/default-components-list.mjs +6 -6
- package/esm2022/form/form-generator/config/default-form-generator-hint-options.mjs +1 -1
- package/esm2022/form/form-generator/config/default-validation-errors.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
- package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +1 -1
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +1 -1
- package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +1 -1
- package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
- package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
- package/esm2022/form/form-generator/fdp-form-generator.module.mjs +14 -14
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +1 -1
- package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +1 -1
- package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
- package/esm2022/form/form-generator/form-generator.service.mjs +3 -3
- package/esm2022/form/form-generator/form-generator.tokens.mjs +1 -1
- package/esm2022/form/form-generator/helpers.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-abstract-control.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-form-group.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/form-component-definition.mjs +1 -1
- package/esm2022/form/form-generator/interfaces/form-generator-module-config.mjs +1 -1
- package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +2 -2
- package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +1 -1
- package/esm2022/form/form-generator/providers/providers.mjs +1 -1
- package/esm2022/form/form-group/config/default-form-field-hint-options.mjs +1 -1
- package/esm2022/form/form-group/constants.mjs +1 -1
- package/esm2022/form/form-group/fdp-form.module.mjs +7 -7
- package/esm2022/form/form-group/fdp-form.tokens.mjs +1 -1
- package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +1 -1
- package/esm2022/form/form-group/form-field-error/tokens.mjs +1 -1
- package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +1 -1
- package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +1 -1
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
- package/esm2022/form/form-group/form-group.component.mjs +1 -1
- package/esm2022/form/form-group/helpers.mjs +1 -1
- package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +1 -1
- package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
- package/esm2022/form/form-helpers.mjs +3 -3
- package/esm2022/form/fundamental-ngx-platform-form.mjs +1 -1
- package/esm2022/form/helpers.mjs +1 -1
- package/esm2022/form/index.mjs +1 -1
- package/esm2022/form/input/fdp-input.module.mjs +1 -1
- package/esm2022/form/input/input.component.mjs +1 -1
- package/esm2022/form/input-group/addon-body.component.mjs +2 -2
- package/esm2022/form/input-group/addon.component.mjs +2 -2
- package/esm2022/form/input-group/constants.mjs +1 -1
- package/esm2022/form/input-group/input-group.component.mjs +1 -1
- package/esm2022/form/input-group/input-group.config.mjs +1 -1
- package/esm2022/form/input-group/input-group.module.mjs +3 -3
- package/esm2022/form/input-group/input.component.mjs +2 -2
- package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +1 -1
- package/esm2022/form/models/field.model.mjs +1 -1
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.config.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.module.mjs +1 -1
- package/esm2022/form/multi-input/base-multi-input.mjs +1 -1
- package/esm2022/form/multi-input/index.mjs +2 -2
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +1 -1
- package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.config.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.interface.mjs +1 -1
- package/esm2022/form/multi-input/multi-input.module.mjs +1 -1
- package/esm2022/form/radio-group/radio/radio.component.mjs +1 -1
- package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
- package/esm2022/form/radio-group/radio-group.module.mjs +1 -1
- package/esm2022/form/select/commons/base-select.mjs +7 -2
- package/esm2022/form/select/models/select.models.mjs +1 -1
- package/esm2022/form/select/select/select.component.mjs +3 -3
- package/esm2022/form/select/select.config.mjs +1 -1
- package/esm2022/form/select/select.module.mjs +1 -1
- package/esm2022/form/step-input/base.step-input.mjs +5 -5
- package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
- package/esm2022/form/step-input/step-input-action-button.mjs +2 -2
- package/esm2022/form/step-input/step-input-control.directive.mjs +2 -2
- package/esm2022/form/step-input/step-input-decrement.directive.mjs +1 -1
- package/esm2022/form/step-input/step-input-increment.directive.mjs +1 -1
- package/esm2022/form/step-input/step-input.config.mjs +1 -1
- package/esm2022/form/step-input/step-input.module.mjs +3 -3
- package/esm2022/form/step-input/step-input.util.mjs +1 -1
- package/esm2022/form/switch/switch/index.mjs +1 -1
- package/esm2022/form/switch/switch/switch.component.mjs +1 -1
- package/esm2022/form/switch/switch/switch.config.mjs +1 -1
- package/esm2022/form/switch/switch.module.mjs +1 -1
- package/esm2022/form/text-area/text-area.component.mjs +1 -1
- package/esm2022/form/text-area/text-area.config.mjs +1 -1
- package/esm2022/form/text-area/text-area.module.mjs +1 -1
- package/esm2022/form/time-picker/time-picker.component.mjs +1 -1
- package/esm2022/form/time-picker/time-picker.module.mjs +1 -1
- package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
- package/esm2022/icon-tab-bar/components/index.mjs +1 -1
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +1 -1
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/constants.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +1 -1
- package/esm2022/icon-tab-bar/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +1 -1
- package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +1 -1
- package/esm2022/icon-tab-bar/index.mjs +8 -8
- package/esm2022/icon-tab-bar/interfaces/icon-tab-bar-item.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/interfaces/tab-color-associations.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
- package/esm2022/icon-tab-bar/types.mjs +1 -1
- package/esm2022/info-label/fundamental-ngx-platform-info-label.mjs +1 -1
- package/esm2022/info-label/index.mjs +1 -1
- package/esm2022/info-label/info-label.component.mjs +1 -1
- package/esm2022/info-label/info-label.module.mjs +1 -1
- package/esm2022/link/fundamental-ngx-platform-link.mjs +1 -1
- package/esm2022/link/index.mjs +1 -1
- package/esm2022/link/link.component.mjs +3 -3
- package/esm2022/link/link.module.mjs +1 -1
- package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
- package/esm2022/list/action-list-item/action-list-item.module.mjs +1 -1
- package/esm2022/list/base-list-item.mjs +2 -2
- package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
- package/esm2022/list/display-list-item/display-list-item.module.mjs +1 -1
- package/esm2022/list/fdpListComponent.token.mjs +1 -1
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
- package/esm2022/list/fundamental-ngx-platform-list.mjs +1 -1
- package/esm2022/list/index.mjs +13 -13
- package/esm2022/list/list-group-footer.component.mjs +3 -3
- package/esm2022/list/list-group-header.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +5 -5
- package/esm2022/list/list.config.mjs +1 -1
- package/esm2022/list/list.module.mjs +1 -1
- package/esm2022/list/load-more-content.directive.mjs +1 -1
- package/esm2022/list/models/list.mjs +1 -1
- package/esm2022/list/object-list-item/object-list-item-row.component.mjs +1 -1
- package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
- package/esm2022/list/object-list-item/object-list-item.module.mjs +1 -1
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
- package/esm2022/list/standard-list-item/standard-list-item.module.mjs +1 -1
- package/esm2022/menu/fundamental-ngx-platform-menu.mjs +1 -1
- package/esm2022/menu/index.mjs +3 -3
- package/esm2022/menu/menu-item.component.mjs +1 -1
- package/esm2022/menu/menu-trigger.directive.mjs +1 -1
- package/esm2022/menu/menu.component.mjs +1 -1
- package/esm2022/menu/menu.module.mjs +1 -1
- package/esm2022/menu-button/fundamental-ngx-platform-menu-button.mjs +1 -1
- package/esm2022/menu-button/index.mjs +2 -2
- package/esm2022/menu-button/menu-button.component.mjs +8 -3
- package/esm2022/menu-button/menu-button.module.mjs +1 -1
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +1 -1
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
- package/esm2022/message-popover/default-config.mjs +1 -1
- package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +1 -1
- package/esm2022/message-popover/fundamental-ngx-platform-message-popover.mjs +1 -1
- package/esm2022/message-popover/index.mjs +5 -5
- package/esm2022/message-popover/message-popover.component.mjs +2 -2
- package/esm2022/message-popover/models/message-popover-entry.interface.mjs +1 -1
- package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
- package/esm2022/message-popover/models/message-popover.interface.mjs +1 -1
- package/esm2022/message-popover/platform-message-popover.module.mjs +3 -3
- package/esm2022/message-popover/utils.mjs +1 -1
- package/esm2022/object-attribute/fundamental-ngx-platform-object-attribute.mjs +1 -1
- package/esm2022/object-attribute/index.mjs +1 -1
- package/esm2022/object-marker/fundamental-ngx-platform-object-marker.mjs +1 -1
- package/esm2022/object-marker/index.mjs +1 -1
- package/esm2022/object-marker/object-marker.component.mjs +8 -3
- package/esm2022/object-marker/object-marker.module.mjs +1 -1
- package/esm2022/object-status/fundamental-ngx-platform-object-status.mjs +1 -1
- package/esm2022/object-status/index.mjs +1 -1
- package/esm2022/object-status/object-status.component.mjs +8 -3
- package/esm2022/object-status/object-status.module.mjs +1 -1
- package/esm2022/page-footer/fundamental-ngx-platform-page-footer.mjs +1 -1
- package/esm2022/page-footer/index.mjs +1 -1
- package/esm2022/page-footer/page-footer.component.mjs +1 -1
- package/esm2022/page-footer/page-footer.module.mjs +1 -1
- package/esm2022/panel/fundamental-ngx-platform-panel.mjs +1 -1
- package/esm2022/panel/index.mjs +3 -3
- package/esm2022/panel/panel-actions.component.mjs +1 -1
- package/esm2022/panel/panel-content/panel-content.component.mjs +1 -1
- package/esm2022/panel/panel.component.mjs +1 -1
- package/esm2022/panel/panel.config.mjs +1 -1
- package/esm2022/panel/panel.module.mjs +1 -1
- package/esm2022/search-field/fundamental-ngx-platform-search-field.mjs +1 -1
- package/esm2022/search-field/index.mjs +2 -2
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.interface.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +1 -1
- package/esm2022/search-field/search-field.component.mjs +2 -2
- package/esm2022/search-field/search-field.module.mjs +1 -1
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +1 -1
- package/esm2022/settings-generator/default-config.mjs +1 -1
- package/esm2022/settings-generator/fundamental-ngx-platform-settings-generator.mjs +1 -1
- package/esm2022/settings-generator/index.mjs +5 -5
- package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +2 -2
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
- package/esm2022/settings-generator/models/settings-config.model.mjs +1 -1
- package/esm2022/settings-generator/models/settings-generator.model.mjs +1 -1
- package/esm2022/settings-generator/models/settings.model.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.component.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.module.mjs +1 -1
- package/esm2022/settings-generator/settings-generator.service.mjs +2 -2
- package/esm2022/settings-generator/tokens.mjs +1 -1
- package/esm2022/shared/base.mjs +1 -1
- package/esm2022/shared/domain/array-data-source.mjs +2 -2
- package/esm2022/shared/domain/base-data-provider.mjs +3 -3
- package/esm2022/shared/domain/data-model.mjs +1 -1
- package/esm2022/shared/domain/data-source.mjs +1 -1
- package/esm2022/shared/domain/observable-data-source.mjs +2 -2
- package/esm2022/shared/form/base.input.mjs +1 -1
- package/esm2022/shared/form/collection-base.input.mjs +4 -4
- package/esm2022/shared/form/form-error.mjs +1 -1
- package/esm2022/shared/form/form-field.mjs +1 -1
- package/esm2022/shared/form/form-options.mjs +1 -1
- package/esm2022/shared/form/hint-options.mjs +1 -1
- package/esm2022/shared/form/inline-layout-collection-base.input.mjs +3 -3
- package/esm2022/shared/fundamental-ngx-platform-shared.mjs +1 -1
- package/esm2022/shared/index.mjs +4 -4
- package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +1 -1
- package/esm2022/shared/pipes/pipe.module.mjs +1 -1
- package/esm2022/shared/platform.config.mjs +1 -1
- package/esm2022/shared/preset-management/preset-managed-component.interface.mjs +1 -1
- package/esm2022/shared/preset-management/preset-management.token.mjs +1 -1
- package/esm2022/shared/testing/event-objects.mjs +1 -1
- package/esm2022/shared/utils/lang.mjs +1 -1
- package/esm2022/slider/fundamental-ngx-platform-slider.mjs +1 -1
- package/esm2022/slider/index.mjs +1 -1
- package/esm2022/slider/slider.component.mjs +2 -2
- package/esm2022/slider/slider.module.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.mjs +1 -1
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
- package/esm2022/smart-filter-bar/constants.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +1 -1
- package/esm2022/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/esm2022/smart-filter-bar/helpers.mjs +1 -1
- package/esm2022/smart-filter-bar/index.mjs +8 -8
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-change.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-definition.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-filter-item.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-visibility-category.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.mjs +1 -1
- package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
- package/esm2022/smart-filter-bar/providers/smart-filter-bar.provider.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
- package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +1 -1
- package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +2 -2
- package/esm2022/split-menu-button/fundamental-ngx-platform-split-menu-button.mjs +1 -1
- package/esm2022/split-menu-button/index.mjs +1 -1
- package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
- package/esm2022/split-menu-button/split-menu-button.module.mjs +1 -1
- package/esm2022/table/components/index.mjs +9 -9
- package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +1 -1
- package/esm2022/table/components/reset-button/reset-button.component.mjs +1 -1
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
- package/esm2022/table/components/table-column/table-column.component.mjs +1 -1
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +1 -1
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +1 -1
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.model.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +1 -1
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
- package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
- package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +1 -1
- package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +1 -1
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
- package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/constants.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-active-step.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/index.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +1 -1
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +1 -1
- package/esm2022/table/fundamental-ngx-platform-table.mjs +1 -1
- package/esm2022/table/index.mjs +15 -15
- package/esm2022/table/table.component.mjs +14 -10
- package/esm2022/table/table.module.mjs +1 -1
- package/esm2022/table-helpers/constants/index.mjs +1 -1
- package/esm2022/table-helpers/constants/tokens.mjs +1 -1
- package/esm2022/table-helpers/directives/index.mjs +7 -7
- package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +2 -2
- package/esm2022/table-helpers/directives/table-cell.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -2
- package/esm2022/table-helpers/directives/table-draggable.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +2 -2
- package/esm2022/table-helpers/directives/table-header.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +2 -2
- package/esm2022/table-helpers/domain/array-data-source.mjs +3 -3
- package/esm2022/table-helpers/domain/data-source-parser.class.mjs +1 -1
- package/esm2022/table-helpers/domain/index.mjs +4 -4
- package/esm2022/table-helpers/domain/observable-data-source.mjs +3 -3
- package/esm2022/table-helpers/domain/table-data-provider.mjs +1 -1
- package/esm2022/table-helpers/domain/table-data-source.mjs +1 -1
- package/esm2022/table-helpers/enums/collection-filter.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/column-align.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/filter-type.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/index.mjs +4 -4
- package/esm2022/table-helpers/enums/row-type.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/selection-mode.enum.mjs +1 -1
- package/esm2022/table-helpers/enums/sort-direction.enum.mjs +1 -1
- package/esm2022/table-helpers/fundamental-ngx-platform-table-helpers.mjs +1 -1
- package/esm2022/table-helpers/helpers.mjs +6 -3
- package/esm2022/table-helpers/index.mjs +9 -9
- package/esm2022/table-helpers/interfaces/collection-filter.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-group.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-page.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-sort.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/collection-state.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/column-responsive-state.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/index.mjs +3 -4
- package/esm2022/table-helpers/interfaces/selection-value.interface.mjs +1 -1
- package/esm2022/table-helpers/interfaces/table-state.interface.mjs +1 -1
- package/esm2022/table-helpers/models/column-freeze-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/columns-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/data-source.type.mjs +1 -1
- package/esm2022/table-helpers/models/directives.mjs +1 -1
- package/esm2022/table-helpers/models/dnd.mjs +1 -1
- package/esm2022/table-helpers/models/filter-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/group-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/index.mjs +15 -15
- package/esm2022/table-helpers/models/page-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/row-comparator.model.mjs +1 -1
- package/esm2022/table-helpers/models/save-rows-event.interface.mjs +1 -1
- package/esm2022/table-helpers/models/search-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/selection-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/sort-change-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-dialog-common-data.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-item.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-managed-preset.mjs +1 -1
- package/esm2022/table-helpers/models/table-row-activate-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-row-toggle-open-state-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-row.model.mjs +1 -1
- package/esm2022/table-helpers/models/table-rows-rearrange-event.model.mjs +1 -1
- package/esm2022/table-helpers/models/tree-table.model.mjs +1 -1
- package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/index.mjs +1 -1
- package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +1 -1
- package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +1 -1
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +3 -4
- package/esm2022/table-helpers/services/table-responsive.service.mjs +1 -1
- package/esm2022/table-helpers/services/table-row.service.mjs +1 -1
- package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
- package/esm2022/table-helpers/services/table.service.mjs +1 -1
- package/esm2022/table-helpers/table-cell.class.mjs +1 -1
- package/esm2022/table-helpers/table-column.mjs +1 -1
- package/esm2022/table-helpers/table-helpers.module.mjs +2 -2
- package/esm2022/table-helpers/table.mjs +1 -1
- package/esm2022/table-helpers/utils.mjs +1 -1
- package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +1 -1
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +26 -6
- package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +7 -3
- package/esm2022/value-help-dialog/constans/condition-display.function.mjs +2 -2
- package/esm2022/value-help-dialog/constans/index.mjs +1 -1
- package/esm2022/value-help-dialog/constans/variables.mjs +1 -1
- package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +1 -1
- package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
- package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
- package/esm2022/value-help-dialog/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/esm2022/value-help-dialog/index.mjs +4 -3
- package/esm2022/value-help-dialog/models/index.mjs +2 -2
- package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
- package/esm2022/value-help-dialog/models/vhd-data.source.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-filter-rule.model.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-strategy.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-tab-type.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-table-selection.type.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-type-condition.enum.mjs +1 -1
- package/esm2022/value-help-dialog/models/vhd-value.model.mjs +1 -1
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +26 -6
- package/esm2022/value-help-dialog/value-help-dialog.module.mjs +1 -1
- package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +1 -1
- package/esm2022/variant-management/components/manage-variants-dialog/data-provider.mjs +1 -1
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
- package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +1 -1
- package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +1 -1
- package/esm2022/variant-management/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/esm2022/variant-management/index.mjs +4 -4
- package/esm2022/variant-management/models/save-dialog.model.mjs +1 -1
- package/esm2022/variant-management/models/variant-management.mjs +1 -1
- package/esm2022/variant-management/models/variant.interface.mjs +1 -1
- package/esm2022/variant-management/tokens.mjs +1 -1
- package/esm2022/variant-management/variant-item.class.mjs +1 -1
- package/esm2022/variant-management/variant-management.component.mjs +2 -2
- package/esm2022/variant-management/variant-management.module.mjs +1 -1
- package/esm2022/wizard-generator/base-wizard-generator.mjs +2 -2
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +1 -1
- package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +1 -1
- package/esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.mjs +1 -1
- package/esm2022/wizard-generator/index.mjs +10 -10
- package/esm2022/wizard-generator/interfaces/wizard-dialog-data.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-form-group.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-forms.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-item.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-generator-summary-item.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-navigation-buttons.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-step.interface.mjs +1 -1
- package/esm2022/wizard-generator/interfaces/wizard-title.interface.mjs +1 -1
- package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +1 -1
- package/esm2022/wizard-generator/wizard-generator.module.mjs +8 -8
- package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
- package/feed-input/index.d.ts +1 -1
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +889 -889
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +8 -3
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +2729 -2716
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +23 -23
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -3
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +353 -353
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +13 -13
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +62 -62
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +20 -20
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2925 -2922
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +365 -360
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +182 -98
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +177 -177
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +41 -41
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/combobox/combobox.config.d.ts +1 -1
- package/form/date-picker/date-picker.component.d.ts +5 -5
- package/form/datetime-picker/datetime-picker.component.d.ts +3 -3
- package/form/form-generator/dynamic-form-control.directive.d.ts +3 -3
- package/form/form-generator/form-generator.service.d.ts +2 -2
- package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
- package/form/form-group/services/form-field-layout.service.d.ts +1 -1
- package/form/form-helpers.d.ts +1 -1
- package/form/input-group/addon.component.d.ts +1 -1
- package/form/multi-combobox/multi-combobox.config.d.ts +1 -1
- package/form/multi-input/index.d.ts +1 -1
- package/form/multi-input/multi-input.config.d.ts +1 -1
- package/form/select/commons/base-select.d.ts +4 -1
- package/form/step-input/base.step-input.d.ts +4 -5
- package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
- package/icon-tab-bar/index.d.ts +7 -7
- package/icon-tab-bar/interfaces/icon-tab-bar-item.interface.d.ts +1 -1
- package/list/index.d.ts +12 -12
- package/menu/index.d.ts +2 -2
- package/menu-button/index.d.ts +1 -1
- package/menu-button/menu-button.component.d.ts +5 -2
- package/message-popover/index.d.ts +4 -4
- package/message-popover/models/message-popover-entry.interface.d.ts +1 -1
- package/message-popover/models/message-popover.interface.d.ts +1 -1
- package/message-popover/utils.d.ts +1 -1
- package/object-marker/object-marker.component.d.ts +4 -1
- package/object-status/object-status.component.d.ts +4 -1
- package/package.json +4 -4
- package/panel/index.d.ts +2 -2
- package/schematics/ng-add/index.js +1 -1
- package/search-field/index.d.ts +1 -1
- package/settings-generator/index.d.ts +4 -4
- package/settings-generator/layouts/base-settings-generator-layout.d.ts +1 -1
- package/settings-generator/settings-generator.service.d.ts +2 -2
- package/shared/domain/array-data-source.d.ts +0 -3
- package/shared/form/collection-base.input.d.ts +1 -1
- package/shared/form/form-field.d.ts +2 -2
- package/shared/form/hint-options.d.ts +2 -2
- package/shared/form/inline-layout-collection-base.input.d.ts +1 -1
- package/shared/index.d.ts +3 -3
- package/smart-filter-bar/index.d.ts +7 -7
- package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +2 -2
- package/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.d.ts +1 -1
- package/smart-filter-bar/interfaces/smart-filter-bar-field-definition.d.ts +1 -1
- package/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.d.ts +1 -1
- package/smart-filter-bar/smart-filter-bar.service.d.ts +2 -2
- package/split-menu-button/split-menu-button.component.d.ts +5 -2
- package/table/components/index.d.ts +8 -8
- package/table/components/table-view-settings-dialog/index.d.ts +2 -2
- package/table/index.d.ts +14 -14
- package/table/table.component.d.ts +4 -0
- package/table-helpers/constants/index.d.ts +1 -1
- package/table-helpers/directives/index.d.ts +6 -6
- package/table-helpers/directives/platform-table-column-responsive.directive.d.ts +1 -1
- package/table-helpers/directives/table-scrollable.directive.d.ts +1 -1
- package/table-helpers/domain/array-data-source.d.ts +3 -3
- package/table-helpers/domain/index.d.ts +3 -3
- package/table-helpers/domain/observable-data-source.d.ts +3 -3
- package/table-helpers/enums/index.d.ts +3 -3
- package/table-helpers/helpers.d.ts +1 -1
- package/table-helpers/index.d.ts +8 -8
- package/table-helpers/interfaces/collection-filter.interface.d.ts +1 -1
- package/table-helpers/interfaces/collection-state.interface.d.ts +1 -1
- package/table-helpers/interfaces/index.d.ts +2 -3
- package/table-helpers/models/filter-change-event.model.d.ts +1 -1
- package/table-helpers/models/group-change-event.model.d.ts +1 -1
- package/table-helpers/models/index.d.ts +14 -14
- package/table-helpers/models/sort-change-event.model.d.ts +1 -1
- package/table-helpers/pipes/selection-cell-styles.pipe.d.ts +1 -1
- package/table-helpers/table.d.ts +1 -0
- package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
- package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
- package/value-help-dialog/constans/condition-display.function.d.ts +1 -1
- package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
- package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
- package/value-help-dialog/index.d.ts +3 -2
- package/value-help-dialog/models/index.d.ts +1 -1
- package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
- package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
- package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +8 -6
- package/variant-management/index.d.ts +3 -3
- package/variant-management/models/variant-management.d.ts +1 -1
- package/wizard-generator/base-wizard-generator.d.ts +1 -1
- package/wizard-generator/index.d.ts +9 -9
- package/wizard-generator/interfaces/wizard-generator-form-group.interface.d.ts +1 -1
- package/wizard-generator/interfaces/wizard-generator-item.interface.d.ts +1 -1
- package/wizard-generator/interfaces/wizard-step.interface.d.ts +2 -2
- package/wizard-generator/wizard-generator.service.d.ts +1 -1
- package/fundamental-ngx-platform-v0.48.0-rc.2.tgz +0 -0
- package/schematics/ng-add/index.ts +0 -64
- package/schematics/ng-add/schema.ts +0 -3
- package/schematics/utils/package-utils.ts +0 -104
|
@@ -361,7 +361,7 @@ export class PlatformMultiInputComponent extends BaseMultiInput {
|
|
|
361
361
|
multi: true
|
|
362
362
|
},
|
|
363
363
|
contentDensityObserverProviders()
|
|
364
|
-
], viewQueries: [{ propertyName: "listTemplateDD", first: true, predicate: ListComponent, descendants: true }, { propertyName: "tokenizer", first: true, predicate: TokenizerComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_listItems", predicate: BaseListItem, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fd-multi-input\">\n <ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n</div>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fdp-multi-input__list-container\"\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"(!autoResize && minWidth) || 0\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n glyph=\"value-help\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n (keydown)=\"removeSelectedTokens($event)\"\n (addOnButtonClicked)=\"addOnButtonClick($event)\"\n (click)=\"onInputGroupClicked()\"\n [glyphAriaLabel]=\"glyphAriaLabel\"\n >\n <span [attr.id]=\"tokenHiddenId\" aria-hidden=\"true\" class=\"fdp-multi-input__invisible-text\"\n >Contains {{ selected.length || 'no' }} token</span\n >\n @if (selected) {\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n #tokenizer\n class=\"fd-multi-input-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n tabindex=\"-1\"\n role=\"listbox\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"isOpen ? _suggestions : []\"\n >\n @for (token of selected; track token; let i = $index) {\n <fd-token\n [readOnly]=\"disabled\"\n (onCloseClick)=\"removeToken(token)\"\n [attr.aria-posinset]=\"i\"\n [attr.aria-setsize]=\"selected.length\"\n >\n <span>{{ token.label | displayFnPipe: displayFn }}</span>\n </fd-token>\n }\n <input\n #searchInputElement\n type=\"text\"\n class=\"fd-input fd-multi-input-tokenizer-input fd-tokenizer__input\"\n fdp-auto-complete\n autocomplete=\"off\"\n (onComplete)=\"_onAutoComplete($event)\"\n (keydown.enter)=\"_onKeydownEnter($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [inputText]=\"inputText\"\n [options]=\"_suggestions\"\n fd-input-group-input\n fd-form-control\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n aria-haspopup=\"listbox\"\n [attr.aria-readonly]=\"readonly\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"tokenHiddenId\"\n aria-roledescription=\"Multi Value Input\"\n fdkInitialFocus\n [enabled]=\"autofocus\"\n />\n </fd-tokenizer>\n }\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n @if (_suggestions && _suggestions.length) {\n <fdp-list\n [noBorder]=\"true\"\n #listTemplateDD\n [hasByLine]=\"hasByLine\"\n [selectionMode]=\"selectionMode\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [interceptTabKey]=\"false\"\n (keydown.tab)=\"close()\"\n >\n @if (!isGroup) {\n @for (listItem of _suggestions; track listItem) {\n <fdp-standard-list-item\n [title]=\"listItem.label\"\n [description]=\"listItem.description || ''\"\n [avatar]=\"listItem.avatarSrc\"\n [value]=\"listItem.value\"\n (itemSelected)=\"selectionMode !== 'multi' && addToArray(listItem, true)\"\n (itemCheckboxSelected)=\"_checkboxSelected(listItem, $event)\"\n (buttonClicked)=\"deleteToken(listItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <fdp-list-group-header [groupHeaderTitle]=\"group.label\"></fdp-list-group-header>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <fdp-standard-list-item\n [title]=\"optionItem.label\"\n [value]=\"optionItem.value\"\n (itemSelected)=\"addToArray(optionItem, true)\"\n (itemCheckboxSelected)=\"addToArray(optionItem, false)\"\n (buttonClicked)=\"deleteToken(optionItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n }\n </fdp-list>\n }\n</ng-template>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}.fd-multi-input-tokenizer-custom--compact{width:calc(100% - 2rem)}.fdp-multi-input__list-container.fd-popover__body{width:100%;overflow:hidden;position:relative}.fdp-multi-input__invisible-text{display:none!important}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i6.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "moreTerm", "open"], outputs: ["moreClickedEvent"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "ngmodule", type: PlatformListModule }, { kind: "component", type: i7.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: i7.ListGroupHeaderComponent, selector: "fdp-list-group-header", inputs: ["groupHeaderTitle"] }, { kind: "component", type: i7.StandardListItemComponent, selector: "fdp-standard-list-item" }, { kind: "pipe", type: DisplayFnPipe, name: "displayFnPipe" }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
364
|
+
], viewQueries: [{ propertyName: "listTemplateDD", first: true, predicate: ListComponent, descendants: true }, { propertyName: "tokenizer", first: true, predicate: TokenizerComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_listItems", predicate: BaseListItem, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fd-multi-input\">\n <ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n</div>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fdp-multi-input__list-container\"\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"(!autoResize && minWidth) || 0\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n glyph=\"value-help\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n (keydown)=\"removeSelectedTokens($event)\"\n (addOnButtonClicked)=\"addOnButtonClick($event)\"\n (click)=\"onInputGroupClicked()\"\n [glyphAriaLabel]=\"glyphAriaLabel\"\n >\n <span [attr.id]=\"tokenHiddenId\" aria-hidden=\"true\" class=\"fdp-multi-input__invisible-text\"\n >Contains {{ selected.length || 'no' }} token</span\n >\n @if (selected) {\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n #tokenizer\n class=\"fd-multi-input-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n tabindex=\"-1\"\n role=\"listbox\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"isOpen ? _suggestions : []\"\n >\n @for (token of selected; track token; let i = $index) {\n <fd-token\n [readOnly]=\"disabled\"\n (onCloseClick)=\"removeToken(token)\"\n [attr.aria-posinset]=\"i\"\n [attr.aria-setsize]=\"selected.length\"\n >\n <span>{{ token.label | displayFnPipe: displayFn }}</span>\n </fd-token>\n }\n <input\n #searchInputElement\n type=\"text\"\n class=\"fd-input fd-multi-input-tokenizer-input fd-tokenizer__input\"\n fdp-auto-complete\n autocomplete=\"off\"\n (onComplete)=\"_onAutoComplete($event)\"\n (keydown.enter)=\"_onKeydownEnter($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [inputText]=\"inputText\"\n [options]=\"_suggestions\"\n fd-input-group-input\n fd-form-control\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n aria-haspopup=\"listbox\"\n [attr.aria-readonly]=\"readonly\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"tokenHiddenId\"\n aria-roledescription=\"Multi Value Input\"\n fdkInitialFocus\n [enabled]=\"autofocus\"\n />\n </fd-tokenizer>\n }\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n @if (_suggestions && _suggestions.length) {\n <fdp-list\n [noBorder]=\"true\"\n #listTemplateDD\n [hasByLine]=\"hasByLine\"\n [selectionMode]=\"selectionMode\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [interceptTabKey]=\"false\"\n (keydown.tab)=\"close()\"\n >\n @if (!isGroup) {\n @for (listItem of _suggestions; track listItem) {\n <fdp-standard-list-item\n [title]=\"listItem.label\"\n [description]=\"listItem.description || ''\"\n [avatar]=\"listItem.avatarSrc\"\n [value]=\"listItem.value\"\n (itemSelected)=\"selectionMode !== 'multi' && addToArray(listItem, true)\"\n (itemCheckboxSelected)=\"_checkboxSelected(listItem, $event)\"\n (buttonClicked)=\"deleteToken(listItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <fdp-list-group-header [groupHeaderTitle]=\"group.label\"></fdp-list-group-header>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <fdp-standard-list-item\n [title]=\"optionItem.label\"\n [value]=\"optionItem.value\"\n (itemSelected)=\"addToArray(optionItem, true)\"\n (itemCheckboxSelected)=\"addToArray(optionItem, false)\"\n (buttonClicked)=\"deleteToken(optionItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n }\n </fdp-list>\n }\n</ng-template>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}.fd-multi-input-tokenizer-custom--compact{width:calc(100% - 2rem)}.fdp-multi-input__list-container.fd-popover__body{width:100%;overflow:hidden;position:relative}.fdp-multi-input__invisible-text{display:none!important}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i6.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open"], outputs: ["moreClickedEvent"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "ngmodule", type: PlatformListModule }, { kind: "component", type: i7.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: i7.ListGroupHeaderComponent, selector: "fdp-list-group-header", inputs: ["groupHeaderTitle"] }, { kind: "component", type: i7.StandardListItemComponent, selector: "fdp-standard-list-item" }, { kind: "pipe", type: DisplayFnPipe, name: "displayFnPipe" }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
365
365
|
}
|
|
366
366
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformMultiInputComponent, decorators: [{
|
|
367
367
|
type: Component,
|
|
@@ -473,4 +473,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
473
473
|
}], displayFn: [{
|
|
474
474
|
type: Input
|
|
475
475
|
}] } });
|
|
476
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vbXVsdGktaW5wdXQvbXVsdGktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vbXVsdGktaW5wdXQvbXVsdGktaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRixPQUFPLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENB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LFFBQVE7OzBCQUFJLFFBQVE7OzBCQUVwQixRQUFROzswQkFBSSxJQUFJOzswQkFFaEIsUUFBUTs7MEJBUVIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFJakMsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFFcEQsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7OEVBbElqRSxhQUFhO3NCQURaLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sY0FBYztzQkFEYixTQUFTO3VCQUFDLGFBQWE7Z0JBUXBCLFFBQVE7c0JBRFgsS0FBSztnQkFZTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQWdCRixRQUFRO3NCQURYLEtBQUs7Z0JBZU4sZUFBZTtzQkFEZCxLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtHLGVBQWU7c0JBRHZCLE1BQU07Z0JBS1AsU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFLN0IsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLGlCQUFpQjtnQkFLNUIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGNBQWM7Z0JBS1IsVUFBVTtzQkFEMUIsWUFBWTt1QkFBQyxZQUFZO2dCQWtEMUIsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAqL1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRVNDQVBFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmltcG9ydCB7IERpc3BsYXlGblBpcGUsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBJbml0aWFsRm9jdXNEaXJlY3RpdmUsIEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IFRva2VuQ29tcG9uZW50LCBUb2tlbml6ZXJDb21wb25lbnQsIFRva2VuaXplcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Rva2VuJztcbmltcG9ydCB7XG4gICAgQmFzZUxpc3RJdGVtLFxuICAgIExpc3RDb21wb25lbnQsXG4gICAgTW9kaWZ5SXRlbUV2ZW50LFxuICAgIFBsYXRmb3JtTGlzdE1vZHVsZSxcbiAgICBTZWxlY3Rpb25UeXBlLFxuICAgIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9saXN0JztcbmltcG9ydCB7XG4gICAgREFUQV9QUk9WSURFUlMsXG4gICAgRGF0YVByb3ZpZGVyLFxuICAgIE11bHRpSW5wdXREYXRhU291cmNlLFxuICAgIE11bHRpSW5wdXRPcHRpb24sXG4gICAgUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgIGlzRnVuY3Rpb25cbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29udGVudERlbnNpdHlNb2R1bGUsXG4gICAgQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBJbnB1dEdyb3VwTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2lucHV0LWdyb3VwJztcbmltcG9ydCB7IE11bHRpQW5ub3VuY2VyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL211bHRpLWNvbWJvYm94JztcbmltcG9ydCB7IFBvcG92ZXJCb2R5Q29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFBvcG92ZXJGaWxsTW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlRGlyZWN0aXZlLCBBdXRvQ29tcGxldGVFdmVudCB9IGZyb20gJy4uL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VNdWx0aUlucHV0IH0gZnJvbSAnLi9iYXNlLW11bHRpLWlucHV0JztcbmltcG9ydCB7IFBsYXRmb3JtTXVsdGlJbnB1dE1vYmlsZUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktaW5wdXQtbW9iaWxlL211bHRpLWlucHV0LW1vYmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlJbnB1dENvbmZpZyB9IGZyb20gJy4vbXVsdGktaW5wdXQuY29uZmlnJztcbmltcG9ydCB7IE1VTFRJSU5QVVRfQ09NUE9ORU5UIH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5pbnRlcmZhY2UnO1xuXG5sZXQgdW5pcXVlSGlkZGVuTGFiZWwgPSAwO1xuXG5leHBvcnQgY2xhc3MgTXVsdGlJbnB1dFNlbGVjdGlvbkNoYW5nZUV2ZW50IHtcbiAgICAvKipcbiAgICAgKiBNdWx0aSBJbnB1dCBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50XG4gICAgICogQHBhcmFtIHNvdXJjZSBNdWx0aSBJbnB1dCBjb21wb25lbnRcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBTZWxlY3RlZCB2YWx1ZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgc291cmNlOiBQbGF0Zm9ybU11bHRpSW5wdXRDb21wb25lbnQsXG4gICAgICAgIHB1YmxpYyBwYXlsb2FkOiBhbnkgLy8gQ29udGFpbnMgc2VsZWN0ZWQgaXRlbVxuICAgICkge31cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtbXVsdGktaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQbGF0Zm9ybU11bHRpSW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5Q29tcG9uZW50LFxuICAgICAgICBJbnB1dEdyb3VwTW9kdWxlLFxuICAgICAgICBUb2tlbkNvbXBvbmVudCxcbiAgICAgICAgVG9rZW5pemVyQ29tcG9uZW50LFxuICAgICAgICBUb2tlbml6ZXJJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBBdXRvQ29tcGxldGVEaXJlY3RpdmUsXG4gICAgICAgIEluaXRpYWxGb2N1c0RpcmVjdGl2ZSxcbiAgICAgICAgUGxhdGZvcm1MaXN0TW9kdWxlLFxuICAgICAgICBTdGFuZGFyZExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBEaXNwbGF5Rm5QaXBlLFxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZSxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlLFxuICAgICAgICBNdWx0aUFubm91bmNlckRpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1NdWx0aUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQmFzZU11bHRpSW5wdXQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHRva2VuQ291bnRIaWRkZW5MYWJlbCA9IGBmZHAtbXVsdGktaW5wdXQtdG9rZW4tY291bnQtaWQtJHt1bmlxdWVIaWRkZW5MYWJlbCsrfWA7XG5cbiAgICAvKiogdG9rZW4gIGNvdW50IGhpZGRlbiBsYWJlbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgdG9rZW5IaWRkZW5JZDogc3RyaW5nID0gdGhpcy50b2tlbkNvdW50SGlkZGVuTGFiZWw7XG5cbiAgICAvKiogdHlwZSBSZXByZXNlbnQgdGhlIHR5cGUgb2YgaW5wdXQgdXNlZCBmb3IgdGhlIG11bHRpIElucHV0ICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBJbnB1dFR5cGU7XG5cbiAgICAvKiogYm9vbGVhbiB0eXBlIHJlcHJlc2VudHMgdGhlIGZvY3VzIHNldCBmb3IgdGhlIHJlc3BlY3RpdmUgbXVsdGkgaW5wdXQgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9mb2N1cyA9IGZhbHNlO1xuXG4gICAgLyoqICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGhBcmlhTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChMaXN0Q29tcG9uZW50KVxuICAgIGxpc3RUZW1wbGF0ZUREOiBMaXN0Q29tcG9uZW50PE11bHRpSW5wdXRPcHRpb24+O1xuXG4gICAgLyoqIFNlbGVjdGVkIHZhbHVlcyBmcm9tIHRoZSBsaXN0IGl0ZW1zLiAqL1xuICAgIF9zZWxlY3RlZDogYW55W10gPSBbXTtcblxuICAgIC8qKiBTZWxlY3RlZCBpdGVtcyBvZiB0aGUgbXVsdGkgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZTogYW55W10pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkVmFsdWU7XG4gICAgfVxuICAgIGdldCBzZWxlY3RlZCgpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZSA9ICdub25lJztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGluIGJ5bGluZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGFzQnlMaW5lID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdGVkVmFsdWU/OiBNdWx0aUlucHV0T3B0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgaXNHcm91cCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cEtleSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIG11bHRpIGlucHV0IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgU2VsZWN0IGJvZHkgd2lkdGgsIHdoYXRldmVyIGlzIGNob3NlbiwgdGhlIGJvZHkgaGFzIGEgNjAwcHggbGltaXQuXG4gICAgICogYGF0LWxlYXN0YCB3aWxsIGFwcGx5IGEgbWluaW11bSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC4gLSBEZWZhdWx0XG4gICAgICogYGVxdWFsYCB3aWxsIGFwcGx5IGEgd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuXG4gICAgICogJ2ZpdC1jb250ZW50JyB3aWxsIGFwcGx5IHdpZHRoIG5lZWRlZCB0byBwcm9wZXJseSBkaXNwbGF5IGl0ZW1zIGluc2lkZSwgaW5kZXBlbmRlbnQgb2YgY29udHJvbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogUG9wb3ZlckZpbGxNb2RlID0gJ2F0LWxlYXN0JztcblxuICAgIC8qKlxuICAgICAqIFRoZSB0cmlnZ2VyIGV2ZW50cyB0aGF0IHdpbGwgb3Blbi9jbG9zZSB0aGUgb3B0aW9ucyBwb3BvdmVyLlxuICAgICAqIEFjY2VwdHMgYW55IFtIVE1MIERPTSBFdmVudHNdKGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvZG9tX29ial9ldmVudC5hc3ApLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJpZ2dlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29tYm9ib3ggc2hvdWxkIGNsb3NlLCB3aGVuIGEgY2xpY2sgaXMgcGVyZm9ybWVkIG91dHNpZGUgaXRzIGJvdW5kYXJpZXMuIFRydWUgYnkgZGVmYXVsdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbk91dHNpZGVDbGljayA9IHRydWU7XG5cbiAgICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gd2hlbiBhZGQtb24gYnV0dG9uIGNsaWNrZWQuICovXG4gICAgQElucHV0KClcbiAgICBhZGRPbkJ1dHRvbkNsaWNrRm46ICgpID0+IHZvaWQ7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGl0ZW0gaXMgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aUlucHV0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoVG9rZW5pemVyQ29tcG9uZW50KVxuICAgIHRva2VuaXplcjogVG9rZW5pemVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb250cm9sVGVtcGxhdGUnKVxuICAgIGNvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbGlzdFRlbXBsYXRlJylcbiAgICBsaXN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oQmFzZUxpc3RJdGVtKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RJdGVtczogUXVlcnlMaXN0PEJhc2VMaXN0SXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAvKiogQGhpZGRlbiAqL1xuICAgICAgICByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IGRpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnLFxuICAgICAgICAvKiogQGhpZGRlbiAqL1xuICAgICAgICByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAvKiogQGhpZGRlbiAqL1xuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAvKiogQGhpZGRlbiAqL1xuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQV9QUk9WSURFUlMpIHByaXZhdGUgX3Byb3ZpZGVyczogTWFwPHN0cmluZywgRGF0YVByb3ZpZGVyPGFueT4+LFxuICAgICAgICAvKiogQGhpZGRlbiAqL1xuICAgICAgICByZWFkb25seSBfbXVsdGlJbnB1dENvbmZpZzogTXVsdGlJbnB1dENvbmZpZyxcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgIHJlYWRvbmx5IGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBjZCxcbiAgICAgICAgICAgIGVsZW1lbnRSZWYsXG4gICAgICAgICAgICBuZ0NvbnRyb2wsXG4gICAgICAgICAgICBjb250cm9sQ29udGFpbmVyLFxuICAgICAgICAgICAgbmdGb3JtLFxuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgX211bHRpSW5wdXRDb25maWcsXG4gICAgICAgICAgICBmb3JtRmllbGQsXG4gICAgICAgICAgICBmb3JtQ29udHJvbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBEaXNwbGF5IGZ1bmN0aW9uLiBBY2NlcHRzIGFuIG9iamVjdCBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoZVxuICAgICAqIGl0ZW1zIHBhc3NlZCB0byBkcm9wZG93blZhbHVlcyBhcyBhcmd1bWVudCwgYW5kIG91dHB1dHMgYSBzdHJpbmcuXG4gICAgICogQW4gYXJyb3cgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSAqdGhpcyoga2V5d29yZCBpbiB0aGUgY2FsbGluZyBjb21wb25lbnQuXG4gICAgICogU2VlIG11bHRpIGlucHV0IGV4YW1wbGVzIGZvciBkZXRhaWxzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUZuID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+IHN0cjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgY29uc3QgcHJvdmlkZXJzID0gdGhpcy5fcHJvdmlkZXJzPy5zaXplID09PSAwID8gdGhpcy5fbXVsdGlJbnB1dENvbmZpZy5wcm92aWRlcnMgOiB0aGlzLl9wcm92aWRlcnM7XG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYm90aCBwcmVmZXIgZGF0YVNvdXJjZVxuICAgICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSAmJiB0aGlzLmVudGl0eUNsYXNzICYmIHByb3ZpZGVycz8uaGFzKHRoaXMuZW50aXR5Q2xhc3MpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTXVsdGlJbnB1dERhdGFTb3VyY2UocHJvdmlkZXJzLmdldCh0aGlzLmVudGl0eUNsYXNzKSEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0VXBNb2JpbGVNb2RlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRva2VuaXplci5fc2hvd092ZXJmbG93UG9wb3ZlciA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE1ldGhvZCB0byBlbWl0IGNoYW5nZSBldmVudCAqL1xuICAgIGVtaXRDaGFuZ2VFdmVudDxUPihtb2RlbFZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IE11bHRpSW5wdXRTZWxlY3Rpb25DaGFuZ2VFdmVudCh0aGlzLCBtb2RlbFZhbHVlKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jaGVja2JveFNlbGVjdGVkKHZhbHVlOiBhbnksIGV2ZW50OiBNb2RpZnlJdGVtRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGV2ZW50LnNvdXJjZS5fc2VsZWN0ZWQ7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZC5maW5kSW5kZXgoKHNlbGVjdHZhbHVlKSA9PiBlcXVhbChzZWxlY3R2YWx1ZSwgdmFsdWUpKTtcblxuICAgICAgICBpZiAoaXNTZWxlY3RlZCAmJiBpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkZFRvQXJyYXkodmFsdWUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkZFRvQXJyYXkodmFsdWU6IGFueSwgZm9jdXNPbklucHV0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWQuZmluZEluZGV4KChzZWxlY3R2YWx1ZSkgPT4gZXF1YWwoc2VsZWN0dmFsdWUsIHZhbHVlKSk7XG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1vYmlsZSAmJiBmb2N1c09uSW5wdXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl91cGRhdGVNb2RlbCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgaWYgKGZvY3VzT25JbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZUV2ZW50KHZhbHVlID8gdGhpcy5zZWxlY3RlZCA6IG51bGwpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhZGRPbkJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMub3BlbkRyb3Bkb3duT25BZGRPbkNsaWNrZWQgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xpc3QoZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3BlbkRyb3Bkb3duT25BZGRPbkNsaWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xpc3QoIXRoaXMuaXNPcGVuKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkZE9uQnV0dG9uQ2xpY2tlZC5lbWl0KGV2ZW50KTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzLmFkZE9uQnV0dG9uQ2xpY2tGbikpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkT25CdXR0b25DbGlja0ZuKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uSW5wdXRHcm91cENsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSAmJiAhdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtb3JlQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zID0gdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBkZWxldGVUb2tlbihzZWxlY3RlZFZhbHVlOiBNdWx0aUlucHV0T3B0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci50b2tlbkxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIudG9rZW5MaXN0LmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnRva2VuV3JhcHBlckVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA9PT0gc2VsZWN0ZWRWYWx1ZS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSh0aGlzLnNlbGVjdGVkLmluZGV4T2Yoc2VsZWN0ZWRWYWx1ZSksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vZGVsKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmVUb2tlbih0b2tlbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuc3BsaWNlKHRoaXMuc2VsZWN0ZWQuaW5kZXhPZih0b2tlbiksIDEpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudCh0b2tlbiA/IHRoaXMuc2VsZWN0ZWQgOiBudWxsKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTW9kZWwodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVtb3ZlU2VsZWN0ZWRUb2tlbnMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPVywgVVBfQVJST1ddKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50Ll9zZXRDdXJyZW50QWN0aXZlSXRlbUluZGV4KDApO1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdFRlbXBsYXRlREQubGlzdEl0ZW1zLmZpcnN0LmZvY3VzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0xpc3QoIXRoaXMuaXNPcGVuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRVNDQVBFXSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xpc3QoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIERlZmluZSBpcyBzZWxlY3RlZCBpdGVtIHNlbGVjdGVkICovXG4gICAgaXNTZWxlY3RlZE9wdGlvbkl0ZW0oc2VsZWN0ZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLmxvb2t1cEtleSAmJiB0aGlzLmxvb2t1cFZhbHVlKHRoaXMuc2VsZWN0ZWQpID09PSB0aGlzLmxvb2t1cFZhbHVlKHNlbGVjdGVkSXRlbSkpIHx8XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSh0aGlzLnNlbGVjdGVkKSA9PT0gdGhpcy5kaXNwbGF5VmFsdWUoc2VsZWN0ZWRJdGVtKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE1ldGhvZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSAqL1xuICAgIHNlbGVjdE9wdGlvbkl0ZW0oaXRlbTogTXVsdGlJbnB1dE9wdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLmlucHV0VGV4dCA9IGl0ZW0ubGFiZWw7XG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSBpdGVtLmxhYmVsO1xuICAgICAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZShpdGVtKTtcbiAgICAgICAgdGhpcy5zaG93TGlzdChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWV0aG9kIHRvIHNldCBhcyBzZWxlY3RlZCAqL1xuICAgIHNldEFzU2VsZWN0ZWQoaXRlbTogTXVsdGlJbnB1dE9wdGlvbltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gaXRlbTtcbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSAnJztcbiAgICAgICAgdGhpcy5fbWFya0xpc3RJdGVtc0FzU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWF0aG9kIGZvciBtYXJraW5nIGl0ZW1zIGluIGRyb3Bkb3duIGFzIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIF9tYXJrTGlzdEl0ZW1zQXNTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zPy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9ICEhdGhpcy5fc2VsZWN0ZWQuZmluZCgodmFsdWUpID0+IGVxdWFsKHZhbHVlLnZhbHVlLCBsaXN0SXRlbS52YWx1ZSkpO1xuICAgICAgICAgICAgbGlzdEl0ZW0uc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uQXV0b0NvbXBsZXRlKGV2ZW50OiBBdXRvQ29tcGxldGVFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50LmZvcmNlQ2xvc2UgfHwgIXRoaXMuX3N1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbaXRlbV0gPSB0aGlzLmlzR3JvdXAgPyB0aGlzLl9zdWdnZXN0aW9uc1swXT8uY2hpbGRyZW4gfHwgW10gOiB0aGlzLl9zdWdnZXN0aW9ucztcbiAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5sYWJlbCA9PT0gZXZlbnQudGVybSkge1xuICAgICAgICAgICAgdGhpcy5hZGRUb0FycmF5KGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25LZXlkb3duRW50ZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0VGV4dCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZSBkaWFsb2cgZGlzbWlzc2luZywgY2xvc2VzIHBvcG92ZXIgYW5kIHNldHMgYmFja3VwIGRhdGEuICovXG4gICAgX2RpYWxvZ0Rpc21pc3Moc2VsZWN0ZWQ6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuc2hvd0xpc3QoZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZSBkaWFsb2cgYXBwcm92YWwsIGNsb3NlcyBwb3BvdmVyIGFuZCBwcm9wYWdhdGVzIGRhdGEgY2hhbmdlcy4gKi9cbiAgICBfZGlhbG9nQXBwcm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlTW9kZWwodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIHRoaXMuc2hvd0xpc3QoZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGlmIG5vdCBzZWxlY3RlZCB1cGRhdGUgbW9kZWwgKi9cbiAgICBwcml2YXRlIF9jaGVja0FuZFVwZGF0ZShtb2RlbFZhbHVlOiBNdWx0aUlucHV0T3B0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWRPcHRpb25JdGVtKG1vZGVsVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcHRpb25JdGVtID0gdGhpcy5fZ2V0U2VsZWN0ZWRPcHRpb25JdGVtKHRoaXMuaW5wdXRUZXh0KTtcblxuICAgICAgICB0aGlzLl91cGRhdGVNb2RlbChvcHRpb25JdGVtID8gb3B0aW9uSXRlbS52YWx1ZSA6IHRoaXMuaW5wdXRUZXh0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFNlbGVjdGVkT3B0aW9uSXRlbSh0ZXh0OiBzdHJpbmcpOiBNdWx0aUlucHV0T3B0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdWdnZXN0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLmxhYmVsID09PSB0ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9zdWdnZXN0aW9uc1xuICAgICAgICAgICAgLnJlZHVjZSgocmVzdWx0OiBNdWx0aUlucHV0T3B0aW9uW10sIGl0ZW06IE11bHRpSW5wdXRPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuICYmIHJlc3VsdC5wdXNoKC4uLml0ZW0uY2hpbGRyZW4pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubGFiZWwgPT09IHRleHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFVwZGF0ZSBtb2RlbCAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZU1vZGVsKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gc2V0dGluZyB2YWx1ZSwgaXQgd2lsbCBjYWxsIHNldFZhbHVlKClcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VXBNb2JpbGVNb2RlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1VTFRJSU5QVVRfQ09NUE9ORU5ULCB1c2VWYWx1ZTogdGhpcyB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlRHluYW1pY0NvbXBvbmVudChcbiAgICAgICAgICAgIHsgbGlzdFRlbXBsYXRlOiB0aGlzLmxpc3RUZW1wbGF0ZSwgY29udHJvbFRlbXBsYXRlOiB0aGlzLmNvbnRyb2xUZW1wbGF0ZSB9LFxuICAgICAgICAgICAgUGxhdGZvcm1NdWx0aUlucHV0TW9iaWxlQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lclJlZjogdGhpcy5fdmlld0NvbnRhaW5lclJlZlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgaW5qZWN0b3IgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC1tdWx0aS1pbnB1dFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2JpbGUgPyBjb250cm9sVGVtcGxhdGUgOiBkZXNrdG9wVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Rlc2t0b3BUZW1wbGF0ZT5cbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmRwLW11bHRpLWlucHV0X19saXN0LWNvbnRhaW5lclwiXG4gICAgICAgIFtpc09wZW5dPVwiaXNPcGVuICYmIF9zdWdnZXN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJfcG9wb3Zlck9wZW5DaGFuZ2VIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgIFtmaWxsQ29udHJvbE1vZGVdPVwiZmlsbENvbnRyb2xNb2RlXCJcbiAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgW3RyaWdnZXJzXT1cInRyaWdnZXJzXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgW21heFdpZHRoXT1cIighYXV0b1Jlc2l6ZSAmJiBtaW5XaWR0aCkgfHwgMFwiXG4gICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImNsb3NlT25PdXRzaWRlQ2xpY2tcIlxuICAgID5cbiAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250cm9sVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb250cm9sVGVtcGxhdGU+XG4gICAgPGZkLWlucHV0LWdyb3VwXG4gICAgICAgIFtidXR0b25dPVwidHJ1ZVwiXG4gICAgICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICAgICAgW2lzQ29udHJvbF09XCJ0cnVlXCJcbiAgICAgICAgZ2x5cGg9XCJ2YWx1ZS1oZWxwXCJcbiAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGtleWRvd24pPVwicmVtb3ZlU2VsZWN0ZWRUb2tlbnMoJGV2ZW50KVwiXG4gICAgICAgIChhZGRPbkJ1dHRvbkNsaWNrZWQpPVwiYWRkT25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uSW5wdXRHcm91cENsaWNrZWQoKVwiXG4gICAgICAgIFtnbHlwaEFyaWFMYWJlbF09XCJnbHlwaEFyaWFMYWJlbFwiXG4gICAgPlxuICAgICAgICA8c3BhbiBbYXR0ci5pZF09XCJ0b2tlbkhpZGRlbklkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmZHAtbXVsdGktaW5wdXRfX2ludmlzaWJsZS10ZXh0XCJcbiAgICAgICAgICAgID5Db250YWlucyB7eyBzZWxlY3RlZC5sZW5ndGggfHwgJ25vJyB9fSB0b2tlbjwvc3BhblxuICAgICAgICA+XG4gICAgICAgIEBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIDxmZC10b2tlbml6ZXJcbiAgICAgICAgICAgICAgICBbdG9rZW5pemVyRm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY29tcGFjdENvbGxhcHNlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICN0b2tlbml6ZXJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW11bHRpLWlucHV0LXRva2VuaXplci1jdXN0b21cIlxuICAgICAgICAgICAgICAgIChtb3JlQ2xpY2tlZEV2ZW50KT1cIm1vcmVDbGlja2VkKClcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBmZE11bHRpQW5ub3VuY2VyXG4gICAgICAgICAgICAgICAgW211bHRpQW5ub3VuY2VyT3B0aW9uc109XCJpc09wZW4gPyBfc3VnZ2VzdGlvbnMgOiBbXVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAodG9rZW4gb2Ygc2VsZWN0ZWQ7IHRyYWNrIHRva2VuOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9rZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbG9zZUNsaWNrKT1cInJlbW92ZVRva2VuKHRva2VuKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cInNlbGVjdGVkLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRva2VuLmxhYmVsIHwgZGlzcGxheUZuUGlwZTogZGlzcGxheUZuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXRva2VuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgI3NlYXJjaElucHV0RWxlbWVudFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaW5wdXQgZmQtbXVsdGktaW5wdXQtdG9rZW5pemVyLWlucHV0IGZkLXRva2VuaXplcl9faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBmZHAtYXV0by1jb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAob25Db21wbGV0ZSk9XCJfb25BdXRvQ29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9vbktleWRvd25FbnRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25JbnB1dEtleWRvd25IYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRUZXh0XT1cImlucHV0VGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIl9zdWdnZXN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWlucHV0XG4gICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoVGVybUNoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvblRvdWNoZWQoKTsgdG9rZW5pemVyLl9zaG93QWxsVG9rZW5zKClcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJ0b2tlbml6ZXIuX2hpZGVUb2tlbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNPcGVuICYmIF9zdWdnZXN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWwgfHwgKCdjb3JlTXVsdGlJbnB1dC5tdWx0aUlucHV0QXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cInRva2VuSGlkZGVuSWRcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLXJvbGVkZXNjcmlwdGlvbj1cIk11bHRpIFZhbHVlIElucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAgICAgICAgIFtlbmFibGVkXT1cImF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZmQtdG9rZW5pemVyPlxuICAgICAgICB9XG4gICAgPC9mZC1pbnB1dC1ncm91cD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2xpc3RUZW1wbGF0ZT5cbiAgICBAaWYgKF9zdWdnZXN0aW9ucyAmJiBfc3VnZ2VzdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIDxmZHAtbGlzdFxuICAgICAgICAgICAgW25vQm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgI2xpc3RUZW1wbGF0ZUREXG4gICAgICAgICAgICBbaGFzQnlMaW5lXT1cImhhc0J5TGluZVwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgIGFyaWEtbXVsdGlzZWxlY3RhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaW50ZXJjZXB0VGFiS2V5XT1cImZhbHNlXCJcbiAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJjbG9zZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICghaXNHcm91cCkge1xuICAgICAgICAgICAgICAgIEBmb3IgKGxpc3RJdGVtIG9mIF9zdWdnZXN0aW9uczsgdHJhY2sgbGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkcC1zdGFuZGFyZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsaXN0SXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwibGlzdEl0ZW0uZGVzY3JpcHRpb24gfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F2YXRhcl09XCJsaXN0SXRlbS5hdmF0YXJTcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxpc3RJdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtU2VsZWN0ZWQpPVwic2VsZWN0aW9uTW9kZSAhPT0gJ211bHRpJyAmJiBhZGRUb0FycmF5KGxpc3RJdGVtLCB0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbUNoZWNrYm94U2VsZWN0ZWQpPVwiX2NoZWNrYm94U2VsZWN0ZWQobGlzdEl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiZGVsZXRlVG9rZW4obGlzdEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZmRwLXN0YW5kYXJkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGlzR3JvdXApIHtcbiAgICAgICAgICAgICAgICBAZm9yIChncm91cCBvZiBfc3VnZ2VzdGlvbnM7IHRyYWNrIGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWdyb3VwSXRlbVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWxpc3QtZ3JvdXAtaGVhZGVyIFtncm91cEhlYWRlclRpdGxlXT1cImdyb3VwLmxhYmVsXCI+PC9mZHAtbGlzdC1ncm91cC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChncm91cEl0ZW1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ3JvdXBJdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogeyBsYWJlbDogZ3JvdXAubGFiZWwgfSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbkl0ZW0gb2YgZ3JvdXAuY2hpbGRyZW47IHRyYWNrIG9wdGlvbkl0ZW07IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXN0YW5kYXJkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJvcHRpb25JdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uSXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJhZGRUb0FycmF5KG9wdGlvbkl0ZW0sIHRydWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbUNoZWNrYm94U2VsZWN0ZWQpPVwiYWRkVG9BcnJheShvcHRpb25JdGVtLCBmYWxzZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImRlbGV0ZVRva2VuKG9wdGlvbkl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRwLXN0YW5kYXJkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZHAtbGlzdD5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
476
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxGLE9BQU8sRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRyxPQUFPLEVB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UTs7MEJBRXBCLFFBQVE7OzBCQUFJLElBQUk7OzBCQUVoQixRQUFROzswQkFRUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7OzBCQUlqQyxRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUVwRCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs4RUFsSWpFLGFBQWE7c0JBRFosS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixjQUFjO3NCQURiLFNBQVM7dUJBQUMsYUFBYTtnQkFRcEIsUUFBUTtzQkFEWCxLQUFLO2dCQVlOLGFBQWE7c0JBRFosS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBZ0JGLFFBQVE7c0JBRFgsS0FBSztnQkFlTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS0csZUFBZTtzQkFEdkIsTUFBTTtnQkFLUCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUs3QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUs1QixZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYztnQkFLUixVQUFVO3NCQUQxQixZQUFZO3VCQUFDLFlBQVk7Z0JBa0QxQixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFU0NBUEUsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuaW1wb3J0IHsgRGlzcGxheUZuUGlwZSwgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsIEluaXRpYWxGb2N1c0RpcmVjdGl2ZSwgS2V5VXRpbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgVG9rZW5Db21wb25lbnQsIFRva2VuaXplckNvbXBvbmVudCwgVG9rZW5pemVySW5wdXREaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdG9rZW4nO1xuaW1wb3J0IHtcbiAgICBCYXNlTGlzdEl0ZW0sXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBNb2RpZnlJdGVtRXZlbnQsXG4gICAgUGxhdGZvcm1MaXN0TW9kdWxlLFxuICAgIFNlbGVjdGlvblR5cGUsXG4gICAgU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2xpc3QnO1xuaW1wb3J0IHtcbiAgICBEQVRBX1BST1ZJREVSUyxcbiAgICBEYXRhUHJvdmlkZXIsXG4gICAgTXVsdGlJbnB1dERhdGFTb3VyY2UsXG4gICAgTXVsdGlJbnB1dE9wdGlvbixcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgaXNGdW5jdGlvblxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb250ZW50RGVuc2l0eU1vZHVsZSxcbiAgICBDb250ZW50RGVuc2l0eU9ic2VydmVyLFxuICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnNcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IElucHV0R3JvdXBNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaW5wdXQtZ3JvdXAnO1xuaW1wb3J0IHsgTXVsdGlBbm5vdW5jZXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbXVsdGktY29tYm9ib3gnO1xuaW1wb3J0IHsgUG9wb3ZlckJvZHlDb21wb25lbnQsIFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgUG9wb3ZlckZpbGxNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVEaXJlY3RpdmUsIEF1dG9Db21wbGV0ZUV2ZW50IH0gZnJvbSAnLi4vYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZU11bHRpSW5wdXQgfSBmcm9tICcuL2Jhc2UtbXVsdGktaW5wdXQnO1xuaW1wb3J0IHsgUGxhdGZvcm1NdWx0aUlucHV0TW9iaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS1pbnB1dC1tb2JpbGUvbXVsdGktaW5wdXQtbW9iaWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aUlucHV0Q29uZmlnIH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgTVVMVElJTlBVVF9DT01QT05FTlQgfSBmcm9tICcuL211bHRpLWlucHV0LmludGVyZmFjZSc7XG5cbmxldCB1bmlxdWVIaWRkZW5MYWJlbCA9IDA7XG5cbmV4cG9ydCBjbGFzcyBNdWx0aUlucHV0U2VsZWN0aW9uQ2hhbmdlRXZlbnQge1xuICAgIC8qKlxuICAgICAqIE11bHRpIElucHV0IHNlbGVjdGlvbiBjaGFuZ2UgZXZlbnRcbiAgICAgKiBAcGFyYW0gc291cmNlIE11bHRpIElucHV0IGNvbXBvbmVudFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFNlbGVjdGVkIHZhbHVlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBzb3VyY2U6IFBsYXRmb3JtTXVsdGlJbnB1dENvbXBvbmVudCxcbiAgICAgICAgcHVibGljIHBheWxvYWQ6IGFueSAvLyBDb250YWlucyBzZWxlY3RlZCBpdGVtXG4gICAgKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tdWx0aS1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbXVsdGktaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBsYXRmb3JtTXVsdGlJbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKClcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBQb3BvdmVyQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgICAgIElucHV0R3JvdXBNb2R1bGUsXG4gICAgICAgIFRva2VuQ29tcG9uZW50LFxuICAgICAgICBUb2tlbml6ZXJDb21wb25lbnQsXG4gICAgICAgIFRva2VuaXplcklucHV0RGlyZWN0aXZlLFxuICAgICAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEF1dG9Db21wbGV0ZURpcmVjdGl2ZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBQbGF0Zm9ybUxpc3RNb2R1bGUsXG4gICAgICAgIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgICAgIERpc3BsYXlGblBpcGUsXG4gICAgICAgIENvbnRlbnREZW5zaXR5TW9kdWxlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIE11bHRpQW5ub3VuY2VyRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybU11bHRpSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlTXVsdGlJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgdG9rZW5Db3VudEhpZGRlbkxhYmVsID0gYGZkcC1tdWx0aS1pbnB1dC10b2tlbi1jb3VudC1pZC0ke3VuaXF1ZUhpZGRlbkxhYmVsKyt9YDtcblxuICAgIC8qKiB0b2tlbiAgY291bnQgaGlkZGVuIGxhYmVsICovXG4gICAgQElucHV0KClcbiAgICB0b2tlbkhpZGRlbklkOiBzdHJpbmcgPSB0aGlzLnRva2VuQ291bnRIaWRkZW5MYWJlbDtcblxuICAgIC8qKiB0eXBlIFJlcHJlc2VudCB0aGUgdHlwZSBvZiBpbnB1dCB1c2VkIGZvciB0aGUgbXVsdGkgSW5wdXQgKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGU6IElucHV0VHlwZTtcblxuICAgIC8qKiBib29sZWFuIHR5cGUgcmVwcmVzZW50cyB0aGUgZm9jdXMgc2V0IGZvciB0aGUgcmVzcGVjdGl2ZSBtdWx0aSBpbnB1dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b2ZvY3VzID0gZmFsc2U7XG5cbiAgICAvKiogICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaEFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKExpc3RDb21wb25lbnQpXG4gICAgbGlzdFRlbXBsYXRlREQ6IExpc3RDb21wb25lbnQ8TXVsdGlJbnB1dE9wdGlvbj47XG5cbiAgICAvKiogU2VsZWN0ZWQgdmFsdWVzIGZyb20gdGhlIGxpc3QgaXRlbXMuICovXG4gICAgX3NlbGVjdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqIFNlbGVjdGVkIGl0ZW1zIG9mIHRoZSBtdWx0aSBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZChzZWxlY3RlZFZhbHVlOiBhbnlbXSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWRWYWx1ZTtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25UeXBlID0gJ25vbmUnO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3QgaW4gYnlsaW5lIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBoYXNCeUxpbmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2VsZWN0ZWRWYWx1ZT86IE11bHRpSW5wdXRPcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBpc0dyb3VwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwS2V5KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbXVsdGkgaW5wdXQgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJlc2V0IG9wdGlvbnMgZm9yIHRoZSBTZWxlY3QgYm9keSB3aWR0aCwgd2hhdGV2ZXIgaXMgY2hvc2VuLCB0aGUgYm9keSBoYXMgYSA2MDBweCBsaW1pdC5cbiAgICAgKiBgYXQtbGVhc3RgIHdpbGwgYXBwbHkgYSBtaW5pbXVtIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLiAtIERlZmF1bHRcbiAgICAgKiBgZXF1YWxgIHdpbGwgYXBwbHkgYSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKiAnZml0LWNvbnRlbnQnIHdpbGwgYXBwbHkgd2lkdGggbmVlZGVkIHRvIHByb3Blcmx5IGRpc3BsYXkgaXRlbXMgaW5zaWRlLCBpbmRlcGVuZGVudCBvZiBjb250cm9sLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsbENvbnRyb2xNb2RlOiBQb3BvdmVyRmlsbE1vZGUgPSAnYXQtbGVhc3QnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRyaWdnZXIgZXZlbnRzIHRoYXQgd2lsbCBvcGVuL2Nsb3NlIHRoZSBvcHRpb25zIHBvcG92ZXIuXG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2Vyczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21ib2JveCBzaG91bGQgY2xvc2UsIHdoZW4gYSBjbGljayBpcyBwZXJmb3JtZWQgb3V0c2lkZSBpdHMgYm91bmRhcmllcy4gVHJ1ZSBieSBkZWZhdWx0ICovXG4gICAgQElucHV0KClcbiAgICBjbG9zZU9uT3V0c2lkZUNsaWNrID0gdHJ1ZTtcblxuICAgIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB3aGVuIGFkZC1vbiBidXR0b24gY2xpY2tlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFkZE9uQnV0dG9uQ2xpY2tGbjogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE11bHRpSW5wdXRTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUb2tlbml6ZXJDb21wb25lbnQpXG4gICAgdG9rZW5pemVyOiBUb2tlbml6ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRyb2xUZW1wbGF0ZScpXG4gICAgY29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsaXN0VGVtcGxhdGUnKVxuICAgIGxpc3RUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihCYXNlTGlzdEl0ZW0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8QmFzZUxpc3RJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcmVhZG9ubHkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSByZWFkb25seSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIHJlYWRvbmx5IF9keW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEQVRBX1BST1ZJREVSUykgcHJpdmF0ZSBfcHJvdmlkZXJzOiBNYXA8c3RyaW5nLCBEYXRhUHJvdmlkZXI8YW55Pj4sXG4gICAgICAgIC8qKiBAaGlkZGVuICovXG4gICAgICAgIHJlYWRvbmx5IF9tdWx0aUlucHV0Q29uZmlnOiBNdWx0aUlucHV0Q29uZmlnLFxuICAgICAgICAvKiogQGhpZGRlbiAqL1xuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgLyoqIEBoaWRkZW4gKi9cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgcmVhZG9ubHkgY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGNkLFxuICAgICAgICAgICAgZWxlbWVudFJlZixcbiAgICAgICAgICAgIG5nQ29udHJvbCxcbiAgICAgICAgICAgIGNvbnRyb2xDb250YWluZXIsXG4gICAgICAgICAgICBuZ0Zvcm0sXG4gICAgICAgICAgICBkaWFsb2dDb25maWcsXG4gICAgICAgICAgICBfbXVsdGlJbnB1dENvbmZpZyxcbiAgICAgICAgICAgIGZvcm1GaWVsZCxcbiAgICAgICAgICAgIGZvcm1Db250cm9sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIERpc3BsYXkgZnVuY3Rpb24uIEFjY2VwdHMgYW4gb2JqZWN0IG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlXG4gICAgICogaXRlbXMgcGFzc2VkIHRvIGRyb3Bkb3duVmFsdWVzIGFzIGFyZ3VtZW50LCBhbmQgb3V0cHV0cyBhIHN0cmluZy5cbiAgICAgKiBBbiBhcnJvdyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgdGhlICp0aGlzKiBrZXl3b3JkIGluIHRoZSBjYWxsaW5nIGNvbXBvbmVudC5cbiAgICAgKiBTZWUgbXVsdGkgaW5wdXQgZXhhbXBsZXMgZm9yIGRldGFpbHMuICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5Rm4gPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4gc3RyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBjb25zdCBwcm92aWRlcnMgPSB0aGlzLl9wcm92aWRlcnM/LnNpemUgPT09IDAgPyB0aGlzLl9tdWx0aUlucHV0Q29uZmlnLnByb3ZpZGVycyA6IHRoaXMuX3Byb3ZpZGVycztcbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBib3RoIHByZWZlciBkYXRhU291cmNlXG4gICAgICAgIGlmICghdGhpcy5kYXRhU291cmNlICYmIHRoaXMuZW50aXR5Q2xhc3MgJiYgcHJvdmlkZXJzPy5oYXModGhpcy5lbnRpdHlDbGFzcykpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNdWx0aUlucHV0RGF0YVNvdXJjZShwcm92aWRlcnMuZ2V0KHRoaXMuZW50aXR5Q2xhc3MpISk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRVcE1vYmlsZU1vZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9rZW5pemVyLl9zaG93T3ZlcmZsb3dQb3BvdmVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWV0aG9kIHRvIGVtaXQgY2hhbmdlIGV2ZW50ICovXG4gICAgZW1pdENoYW5nZUV2ZW50PFQ+KG1vZGVsVmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTXVsdGlJbnB1dFNlbGVjdGlvbkNoYW5nZUV2ZW50KHRoaXMsIG1vZGVsVmFsdWUpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NoZWNrYm94U2VsZWN0ZWQodmFsdWU6IGFueSwgZXZlbnQ6IE1vZGlmeUl0ZW1FdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gZXZlbnQuc291cmNlLl9zZWxlY3RlZDtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkLmZpbmRJbmRleCgoc2VsZWN0dmFsdWUpID0+IGVxdWFsKHNlbGVjdHZhbHVlLCB2YWx1ZSkpO1xuXG4gICAgICAgIGlmIChpc1NlbGVjdGVkICYmIGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkVG9BcnJheSh2YWx1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWRkVG9BcnJheSh2YWx1ZTogYW55LCBmb2N1c09uSW5wdXQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZC5maW5kSW5kZXgoKHNlbGVjdHZhbHVlKSA9PiBlcXVhbChzZWxlY3R2YWx1ZSwgdmFsdWUpKTtcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMubW9iaWxlICYmIGZvY3VzT25JbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vZGVsKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoZm9jdXNPbklucHV0KSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlRXZlbnQodmFsdWUgPyB0aGlzLnNlbGVjdGVkIDogbnVsbCk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkZE9uQnV0dG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vcGVuRHJvcGRvd25PbkFkZE9uQ2xpY2tlZCAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5zaG93TGlzdChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcGVuRHJvcGRvd25PbkFkZE9uQ2xpY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93TGlzdCghdGhpcy5pc09wZW4pO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkT25CdXR0b25DbGlja2VkLmVtaXQoZXZlbnQpO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXMuYWRkT25CdXR0b25DbGlja0ZuKSkge1xuICAgICAgICAgICAgdGhpcy5hZGRPbkJ1dHRvbkNsaWNrRm4oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25JbnB1dEdyb3VwQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9iaWxlICYmICF0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1vcmVDbGlja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnMgPSB0aGlzLnNlbGVjdGVkO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGRlbGV0ZVRva2VuKHNlbGVjdGVkVmFsdWU6IE11bHRpSW5wdXRPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLnRva2VuTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnRva2VuaXplci50b2tlbkxpc3QuZm9yRWFjaCgodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4udG9rZW5XcmFwcGVyRWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50ID09PSBzZWxlY3RlZFZhbHVlLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuc3BsaWNlKHRoaXMuc2VsZWN0ZWQuaW5kZXhPZihzZWxlY3RlZFZhbHVlKSwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTW9kZWwodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZVRva2VuKHRva2VuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5zcGxpY2UodGhpcy5zZWxlY3RlZC5pbmRleE9mKHRva2VuKSwgMSk7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZUV2ZW50KHRva2VuID8gdGhpcy5zZWxlY3RlZCA6IG51bGwpO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl91cGRhdGVNb2RlbCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmVTZWxlY3RlZFRva2VucyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPV10pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuX3NldEN1cnJlbnRBY3RpdmVJdGVtSW5kZXgoMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0VGVtcGxhdGVERC5saXN0SXRlbXMuZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TGlzdCghdGhpcy5pc09wZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFU0NBUEVdKSkge1xuICAgICAgICAgICAgdGhpcy5zaG93TGlzdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gRGVmaW5lIGlzIHNlbGVjdGVkIGl0ZW0gc2VsZWN0ZWQgKi9cbiAgICBpc1NlbGVjdGVkT3B0aW9uSXRlbShzZWxlY3RlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRoaXMubG9va3VwS2V5ICYmIHRoaXMubG9va3VwVmFsdWUodGhpcy5zZWxlY3RlZCkgPT09IHRoaXMubG9va3VwVmFsdWUoc2VsZWN0ZWRJdGVtKSkgfHxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlKHRoaXMuc2VsZWN0ZWQpID09PSB0aGlzLmRpc3BsYXlWYWx1ZShzZWxlY3RlZEl0ZW0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWV0aG9kIHRvIHNldCBzZWxlY3RlZCBpdGVtICovXG4gICAgc2VsZWN0T3B0aW9uSXRlbShpdGVtOiBNdWx0aUlucHV0T3B0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gaXRlbTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gaXRlbS5sYWJlbDtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IGl0ZW0ubGFiZWw7XG4gICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlKGl0ZW0pO1xuICAgICAgICB0aGlzLnNob3dMaXN0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNZXRob2QgdG8gc2V0IGFzIHNlbGVjdGVkICovXG4gICAgc2V0QXNTZWxlY3RlZChpdGVtOiBNdWx0aUlucHV0T3B0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBpdGVtO1xuICAgICAgICB0aGlzLmlucHV0VGV4dCA9ICcnO1xuICAgICAgICB0aGlzLl9tYXJrTGlzdEl0ZW1zQXNTZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNYXRob2QgZm9yIG1hcmtpbmcgaXRlbXMgaW4gZHJvcGRvd24gYXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgX21hcmtMaXN0SXRlbXNBc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXM/LmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gISF0aGlzLl9zZWxlY3RlZC5maW5kKCh2YWx1ZSkgPT4gZXF1YWwodmFsdWUudmFsdWUsIGxpc3RJdGVtLnZhbHVlKSk7XG4gICAgICAgICAgICBsaXN0SXRlbS5zZXRTZWxlY3RlZChpc1NlbGVjdGVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25BdXRvQ29tcGxldGUoZXZlbnQ6IEF1dG9Db21wbGV0ZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghZXZlbnQuZm9yY2VDbG9zZSB8fCAhdGhpcy5fc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtpdGVtXSA9IHRoaXMuaXNHcm91cCA/IHRoaXMuX3N1Z2dlc3Rpb25zWzBdPy5jaGlsZHJlbiB8fCBbXSA6IHRoaXMuX3N1Z2dlc3Rpb25zO1xuICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLmxhYmVsID09PSBldmVudC50ZXJtKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRvQXJyYXkoaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbktleWRvd25FbnRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUZXh0KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gSGFuZGxlIGRpYWxvZyBkaXNtaXNzaW5nLCBjbG9zZXMgcG9wb3ZlciBhbmQgc2V0cyBiYWNrdXAgZGF0YS4gKi9cbiAgICBfZGlhbG9nRGlzbWlzcyhzZWxlY3RlZDogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5zaG93TGlzdChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gSGFuZGxlIGRpYWxvZyBhcHByb3ZhbCwgY2xvc2VzIHBvcG92ZXIgYW5kIHByb3BhZ2F0ZXMgZGF0YSBjaGFuZ2VzLiAqL1xuICAgIF9kaWFsb2dBcHByb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLl91cGRhdGVNb2RlbCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5zaG93TGlzdChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gaWYgbm90IHNlbGVjdGVkIHVwZGF0ZSBtb2RlbCAqL1xuICAgIHByaXZhdGUgX2NoZWNrQW5kVXBkYXRlKG1vZGVsVmFsdWU6IE11bHRpSW5wdXRPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZE9wdGlvbkl0ZW0obW9kZWxWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9wdGlvbkl0ZW0gPSB0aGlzLl9nZXRTZWxlY3RlZE9wdGlvbkl0ZW0odGhpcy5pbnB1dFRleHQpO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vZGVsKG9wdGlvbkl0ZW0gPyBvcHRpb25JdGVtLnZhbHVlIDogdGhpcy5pbnB1dFRleHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0U2VsZWN0ZWRPcHRpb25JdGVtKHRleHQ6IHN0cmluZyk6IE11bHRpSW5wdXRPcHRpb24gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNHcm91cCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N1Z2dlc3Rpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubGFiZWwgPT09IHRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Z2dlc3Rpb25zXG4gICAgICAgICAgICAucmVkdWNlKChyZXN1bHQ6IE11bHRpSW5wdXRPcHRpb25bXSwgaXRlbTogTXVsdGlJbnB1dE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gJiYgcmVzdWx0LnB1c2goLi4uaXRlbS5jaGlsZHJlbik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICAgICAuZmluZCgoaXRlbSkgPT4gaXRlbS5sYWJlbCA9PT0gdGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVXBkYXRlIG1vZGVsICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlTW9kZWwodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBzZXR0aW5nIHZhbHVlLCBpdCB3aWxsIGNhbGwgc2V0VmFsdWUoKVxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRVcE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTVVMVElJTlBVVF9DT01QT05FTlQsIHVzZVZhbHVlOiB0aGlzIH1dLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvclxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9keW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVEeW5hbWljQ29tcG9uZW50KFxuICAgICAgICAgICAgeyBsaXN0VGVtcGxhdGU6IHRoaXMubGlzdFRlbXBsYXRlLCBjb250cm9sVGVtcGxhdGU6IHRoaXMuY29udHJvbFRlbXBsYXRlIH0sXG4gICAgICAgICAgICBQbGF0Zm9ybU11bHRpSW5wdXRNb2JpbGVDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyUmVmOiB0aGlzLl92aWV3Q29udGFpbmVyUmVmXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBpbmplY3RvciB9XG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLW11bHRpLWlucHV0XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vYmlsZSA/IGNvbnRyb2xUZW1wbGF0ZSA6IGRlc2t0b3BUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZGVza3RvcFRlbXBsYXRlPlxuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZHAtbXVsdGktaW5wdXRfX2xpc3QtY29udGFpbmVyXCJcbiAgICAgICAgW2lzT3Blbl09XCJpc09wZW4gJiYgX3N1Z2dlc3Rpb25zLmxlbmd0aCA+IDBcIlxuICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9wb3BvdmVyT3BlbkNoYW5nZUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgW2ZpbGxDb250cm9sTW9kZV09XCJmaWxsQ29udHJvbE1vZGVcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBbdHJpZ2dlcnNdPVwidHJpZ2dlcnNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgICAgICBbbWF4V2lkdGhdPVwiKCFhdXRvUmVzaXplICYmIG1pbldpZHRoKSB8fCAwXCJcbiAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiY2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgPlxuICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRyb2xUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgIDwvZmQtcG9wb3Zlcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NvbnRyb2xUZW1wbGF0ZT5cbiAgICA8ZmQtaW5wdXQtZ3JvdXBcbiAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgW2J1dHRvbkZvY3VzYWJsZV09XCJidXR0b25Gb2N1c2FibGVcIlxuICAgICAgICBbaXNDb250cm9sXT1cInRydWVcIlxuICAgICAgICBnbHlwaD1cInZhbHVlLWhlbHBcIlxuICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoa2V5ZG93bik9XCJyZW1vdmVTZWxlY3RlZFRva2VucygkZXZlbnQpXCJcbiAgICAgICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJhZGRPbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAoY2xpY2spPVwib25JbnB1dEdyb3VwQ2xpY2tlZCgpXCJcbiAgICAgICAgW2dseXBoQXJpYUxhYmVsXT1cImdseXBoQXJpYUxhYmVsXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFthdHRyLmlkXT1cInRva2VuSGlkZGVuSWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZkcC1tdWx0aS1pbnB1dF9faW52aXNpYmxlLXRleHRcIlxuICAgICAgICAgICAgPkNvbnRhaW5zIHt7IHNlbGVjdGVkLmxlbmd0aCB8fCAnbm8nIH19IHRva2VuPC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgQGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgPGZkLXRva2VuaXplclxuICAgICAgICAgICAgICAgIFt0b2tlbml6ZXJGb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtjb21wYWN0Q29sbGFwc2VdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgI3Rva2VuaXplclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtdG9rZW5pemVyLWN1c3RvbVwiXG4gICAgICAgICAgICAgICAgKG1vcmVDbGlja2VkRXZlbnQpPVwibW9yZUNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgICAgICAgIGZkTXVsdGlBbm5vdW5jZXJcbiAgICAgICAgICAgICAgICBbbXVsdGlBbm5vdW5jZXJPcHRpb25zXT1cImlzT3BlbiA/IF9zdWdnZXN0aW9ucyA6IFtdXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yICh0b2tlbiBvZiBzZWxlY3RlZDsgdHJhY2sgdG9rZW47IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwicmVtb3ZlVG9rZW4odG9rZW4pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNldHNpemVdPVwic2VsZWN0ZWQubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdG9rZW4ubGFiZWwgfCBkaXNwbGF5Rm5QaXBlOiBkaXNwbGF5Rm4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAjc2VhcmNoSW5wdXRFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pbnB1dCBmZC1tdWx0aS1pbnB1dC10b2tlbml6ZXItaW5wdXQgZmQtdG9rZW5pemVyX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIGZkcC1hdXRvLWNvbXBsZXRlXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNvbXBsZXRlKT1cIl9vbkF1dG9Db21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX29uS2V5ZG93bkVudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5ZG93bkhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dFRleHRdPVwiaW5wdXRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiX3N1Z2dlc3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hUZXJtQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uVG91Y2hlZCgpOyB0b2tlbml6ZXIuX3Nob3dBbGxUb2tlbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIChibHVyKT1cInRva2VuaXplci5faGlkZVRva2VucygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW4gJiYgX3N1Z2dlc3Rpb25zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbCB8fCAoJ2NvcmVNdWx0aUlucHV0Lm11bHRpSW5wdXRBcmlhTGFiZWwnIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwidG9rZW5IaWRkZW5JZFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcm9sZWRlc2NyaXB0aW9uPVwiTXVsdGkgVmFsdWUgSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgW2VuYWJsZWRdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mZC10b2tlbml6ZXI+XG4gICAgICAgIH1cbiAgICA8L2ZkLWlucHV0LWdyb3VwPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbGlzdFRlbXBsYXRlPlxuICAgIEBpZiAoX3N1Z2dlc3Rpb25zICYmIF9zdWdnZXN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgPGZkcC1saXN0XG4gICAgICAgICAgICBbbm9Cb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAjbGlzdFRlbXBsYXRlRERcbiAgICAgICAgICAgIFtoYXNCeUxpbmVdPVwiaGFzQnlMaW5lXCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpbnRlcmNlcHRUYWJLZXldPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGtleWRvd24udGFiKT1cImNsb3NlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCFpc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgQGZvciAobGlzdEl0ZW0gb2YgX3N1Z2dlc3Rpb25zOyB0cmFjayBsaXN0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICA8ZmRwLXN0YW5kYXJkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImxpc3RJdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJsaXN0SXRlbS5kZXNjcmlwdGlvbiB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXZhdGFyXT1cImxpc3RJdGVtLmF2YXRhclNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibGlzdEl0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJzZWxlY3Rpb25Nb2RlICE9PSAnbXVsdGknICYmIGFkZFRvQXJyYXkobGlzdEl0ZW0sIHRydWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtQ2hlY2tib3hTZWxlY3RlZCk9XCJfY2hlY2tib3hTZWxlY3RlZChsaXN0SXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJkZWxldGVUb2tlbihsaXN0SXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9mZHAtc3RhbmRhcmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaXNHcm91cCkge1xuICAgICAgICAgICAgICAgIEBmb3IgKGdyb3VwIG9mIF9zdWdnZXN0aW9uczsgdHJhY2sgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghZ3JvdXBJdGVtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtbGlzdC1ncm91cC1oZWFkZXIgW2dyb3VwSGVhZGVyVGl0bGVdPVwiZ3JvdXAubGFiZWxcIj48L2ZkcC1saXN0LWdyb3VwLWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGdyb3VwSXRlbVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJncm91cEl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB7IGxhYmVsOiBncm91cC5sYWJlbCB9IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0aW9uSXRlbSBvZiBncm91cC5jaGlsZHJlbjsgdHJhY2sgb3B0aW9uSXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtc3RhbmRhcmQtbGlzdC1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIm9wdGlvbkl0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25JdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cImFkZFRvQXJyYXkob3B0aW9uSXRlbSwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtQ2hlY2tib3hTZWxlY3RlZCk9XCJhZGRUb0FycmF5KG9wdGlvbkl0ZW0sIGZhbHNlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiZGVsZXRlVG9rZW4ob3B0aW9uSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZHAtc3RhbmRhcmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkcC1saXN0PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { MatchingStrategy, PlatformConfig } from '@fundamental-ngx/platform/shared';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@fundamental-ngx/platform/shared";
|
|
5
5
|
/**
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
32
32
|
type: Injectable,
|
|
33
33
|
args: [{ providedIn: 'root' }]
|
|
34
34
|
}], ctorParameters: () => [{ type: i1.PlatformConfig }] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQUVsRzs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFnQnpCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQThCO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLENBQUMsY0FBOEIsRUFBb0IsRUFBRSxDQUNwRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUFZLGNBQThCO1FBcEIxQzs7V0FFRztRQUNILHFCQUFnQixHQUFxQixnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFFbEU7O1dBRUc7UUFDSCxjQUFTLEdBQTBDLElBQUksR0FBRyxFQUFFLENBQUM7UUFhekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDO0lBQ3hELENBQUM7OEdBNUJRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVByb3ZpZGVyLCBNYXRjaGluZ1N0cmF0ZWd5LCBQbGF0Zm9ybUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIE11bHRpLUlucHV0XG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTXVsdGlJbnB1dENvbmZpZyB7XG4gICAgLyoqXG4gICAgICogQ29udGVudCBEZW5zaXR5IG9mIGVsZW1lbnQuICdjb3p5JyB8ICdjb21wYWN0J1xuICAgICAqL1xuICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcblxuICAgIC8qKlxuICAgICAqIFN0cmluZyBtYXRjaGluZyBzdHJhdGVneSBmb3IgdHlwZWFoZWFkIGxpc3QuIERlZmF1bHQ6ICdzdGFydHMgd2l0aCBwZXIgdGVybSdcbiAgICAgKi9cbiAgICBtYXRjaGluZ1N0cmF0ZWd5OiBNYXRjaGluZ1N0cmF0ZWd5ID0gTWF0Y2hpbmdTdHJhdGVneS5TVEFSVFNfV0lUSDtcblxuICAgIC8qKlxuICAgICAqIE1hcHMgZGF0YSBwcm92aWRlcnNcbiAgICAgKi9cbiAgICBwcm92aWRlcnM6IE1hcDxzdHJpbmcsIERhdGFQcm92aWRlcjxhbnk+PiB8IG51bGwgPSBuZXcgTWFwKCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgUHJvdmlkZXIgZmFjdG9yeSBmdW5jdGlvblxuICAgICAqL1xuICAgIHN0YXRpYyBjcmVhdGVQcm92aWRlckZhY3Rvcnkob2JqOiBQYXJ0aWFsPE11bHRpSW5wdXRDb25maWc+KTogKHBsYXRmb3JtQ29uZmlnOiBQbGF0Zm9ybUNvbmZpZykgPT4gTXVsdGlJbnB1dENvbmZpZyB7XG4gICAgICAgIGNvbnN0IHVzZUZhY3RvcnkgPSAocGxhdGZvcm1Db25maWc6IFBsYXRmb3JtQ29uZmlnKTogTXVsdGlJbnB1dENvbmZpZyA9PlxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgTXVsdGlJbnB1dENvbmZpZyhwbGF0Zm9ybUNvbmZpZyksIG9iaik7XG4gICAgICAgIHJldHVybiB1c2VGYWN0b3J5O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocGxhdGZvcm1Db25maWc6IFBsYXRmb3JtQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkgPSBwbGF0Zm9ybUNvbmZpZy5jb250ZW50RGVuc2l0eTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const MULTIINPUT_COMPONENT = new InjectionToken('PlatformMultiInputInterface');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL211bHRpLWlucHV0L211bHRpLWlucHV0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSy9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFXLDZCQUE2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNb2JpbGVNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcblxuZXhwb3J0IGNvbnN0IE1VTFRJSU5QVVRfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignUGxhdGZvcm1NdWx0aUlucHV0SW50ZXJmYWNlJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1NdWx0aUlucHV0SW50ZXJmYWNlIGV4dGVuZHMgTW9iaWxlTW9kZSB7XG4gICAgX3NlbGVjdGVkOiBhbnlbXTtcbiAgICBvcGVuQ2hhbmdlOiBTdWJqZWN0PGJvb2xlYW4+O1xuXG4gICAgX2RpYWxvZ0FwcHJvdmUoKTogdm9pZDtcbiAgICBfZGlhbG9nRGlzbWlzcyhzZWxlY3RlZEJhY2t1cDogYW55W10pOiB2b2lkO1xufVxuIl19
|
|
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
13
13
|
exports: [PlatformMultiInputComponent]
|
|
14
14
|
}]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL211bHRpLWlucHV0L211bHRpLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU10RSxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUh2QiwyQkFBMkIsYUFDM0IsMkJBQTJCOytHQUU1Qix3QkFBd0IsWUFIdkIsMkJBQTJCOzsyRkFHNUIsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm1NdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtQbGF0Zm9ybU11bHRpSW5wdXRDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtQbGF0Zm9ybU11bHRpSW5wdXRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtTXVsdGlJbnB1dE1vZHVsZSB7fVxuIl19
|
|
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
132
132
|
type: ViewChild,
|
|
133
133
|
args: [CoreRadioButtonComponent, { static: false }]
|
|
134
134
|
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUUxRyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFTakIsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFXL0MsNkJBQTZCO0lBQzdCLElBQ0ksS0FBSyxDQUFDLFFBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNE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QkFxQkEsNENEV2Msd0JBQXdCLG1PQUFFLFdBQVcsK1ZBQUUsZ0JBQWdCOzsyRkFFeEQsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQzs7MEJBZ0Q3RCxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwRCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjt5Q0EvQ2pFLEtBQUs7c0JBREosS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBS0YsS0FBSztzQkFEUixLQUFLO2dCQVVOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVTtnQkFXWixPQUFPO3NCQURmLE1BQU07Z0JBS0MsZUFBZTtzQkFEdEIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCBhcyBDb3JlUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZCwgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1yYWRpby1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29yZVJhZGlvQnV0dG9uQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBGb2N1c2FibGVPcHRpb24ge1xuICAgIC8qKiBzZXRzIHJhZGlvIGJ1dHRvbiB0b29sdGlwICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW5jbHVkZXMgdGhlIFJhZGlvIGluIHRoZSBwYWdlIHRhYiBzZXF1ZW5jZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYkluZGV4ID0gLTE7XG5cbiAgICAvKiogdmFsdWUgZm9yIFJhZGlvIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiB1c2VkIGZvciByYWRpbyBidXR0b24gY3JlYXRpb24gaWYgbGlzdCB2YWx1ZSBwcmVzZW50ICovXG4gICAgQElucHV0KClcbiAgICBmb3JjZVJlbmRlciA9IGZhbHNlO1xuXG4gICAgLyoqIHJlZmVyZW5jZSBvZiB0ZW1wbGF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ3JlbmRlcmVyJylcbiAgICByZW5kZXJlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2N1cnJlbnRWYWx1ZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gUmFkaW8gY2hlY2tlZCBzdGF0dXMgKi9cbiAgICBfaXNDaGVja2VkID0gZmFsc2U7XG5cbiAgICAvKiogY2xpY2sgZXZlbnQgdG8gZW1pdCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNoZWNrZWQ6IEV2ZW50RW1pdHRlcjxSYWRpb0J1dHRvbkNvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQWNjZXNzIHJhZGlvIGJ1dHRvbiBjaGlsZCBlbGVtZW50IHBhc3NlZCBhcyBjb250ZW50IG9mIHJhZGlvIGJ1dHRvbiBncm91cCAqL1xuICAgIEBWaWV3Q2hpbGQoQ29yZVJhZGlvQnV0dG9uQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIGNvcmVSYWRpb0J1dHRvbjogQ29yZVJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIC8vIEBoaWRkZW4gaGF2ZSB0byBzZXQgZGVmYXVsdCBpbml0aWFsIHZhbHVlcyBhcyBiYXNlIGNsYXNzIGhhcyBjaGVjayBhbmQgdGhyb3dzIGVycm9yXG4gICAgICAgIHRoaXMuaWQgPSBgZmRwLXJhZGlvLWlkLSR7dW5pcXVlSWR9YDtcbiAgICAgICAgdGhpcy5uYW1lID0gYGZkcC1yYWRpby1uYW1lLSR7dW5pcXVlSWR9YDtcbiAgICAgICAgdW5pcXVlSWQrKztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDb250cm9sdmFsdWUgYWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF92YWx1ZUNoYW5nZSh2YWx1ZTogYW55LCBlbWl0RXZlbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZW1pdEV2ZW50ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5faXNDaGVja2VkID0gdGhpcy5fY3VycmVudFZhbHVlID09PSBzdXBlci5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAodGhpcy5faXNDaGVja2VkICYmIGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkLmVtaXQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50YWJJbmRleCA9IHRoaXMuX2lzQ2hlY2tlZCA/IDAgOiAtMTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogbWV0aG9kIGZvciBjZGsgRm9jdXNLZXltYW5hZ2VyICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29yZVJhZGlvQnV0dG9uPy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBtZXRob2QgdG8gc2VsZWN0IHJhZGlvIGJ1dHRvbiAqL1xuICAgIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2Uoc3VwZXIuZ2V0VmFsdWUoKSk7XG4gICAgfVxuXG4gICAgLyoqIG1ldGhvZCB0byB1bmNoZWNrIHJhZGlvIGJ1dHRvbiAqL1xuICAgIHVuc2VsZWN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIC8qKiBTZXR0aW5nIHRhYkluZGV4IGZvciByYWRpbyBhY2Nlc3NpYmlsaXR5ICovXG4gICAgc2V0VGFiSW5kZXgoaW5kZXg6IDAgfCAtMSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjcmVuZGVyZXI+XG4gICAgPGZkLXJhZGlvLWJ1dHRvblxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3RhYkluZGV4XT1cIl9pc0NoZWNrZWQgPyAwIDogdGFiSW5kZXhcIlxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgW25nTW9kZWxdPVwiX2N1cnJlbnRWYWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl92YWx1ZUNoYW5nZSgkZXZlbnQsIHRydWUpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2ZkLXJhZGlvLWJ1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5AaWYgKGZvcmNlUmVuZGVyKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlcmVyXCI+PC9uZy10ZW1wbGF0ZT5cbn1cbiJdfQ==
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL3JhZGlvLWdyb3VwL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9yYWRpby1ncm91cC9yYWRpby9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixJQUFJLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBRTFHLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQVNqQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQVcvQyw2QkFBNkI7SUFDN0IsSUFDSSxLQUFLLENBQUMsUUFBYTtRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0ws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d0IsbU9BQUUsV0FBVywrVkFBRSxnQkFBZ0I7OzJGQUV4RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDOzswQkFnRDdELFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BELFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCO3lDQS9DakUsS0FBSztzQkFESixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFLRixLQUFLO3NCQURSLEtBQUs7Z0JBVU4sV0FBVztzQkFEVixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVO2dCQVdaLE9BQU87c0JBRGYsTUFBTTtnQkFLQyxlQUFlO3NCQUR0QixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IGFzIENvcmVSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkLCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXJhZGlvLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb3JlUmFkaW9CdXR0b25Db21wb25lbnQsIEZvcm1zTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEZvY3VzYWJsZU9wdGlvbiB7XG4gICAgLyoqIHNldHMgcmFkaW8gYnV0dG9uIHRvb2x0aXAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJbmNsdWRlcyB0aGUgUmFkaW8gaW4gdGhlIHBhZ2UgdGFiIHNlcXVlbmNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFiSW5kZXggPSAtMTtcblxuICAgIC8qKiB2YWx1ZSBmb3IgUmFkaW8gYnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIHVzZWQgZm9yIHJhZGlvIGJ1dHRvbiBjcmVhdGlvbiBpZiBsaXN0IHZhbHVlIHByZXNlbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcmNlUmVuZGVyID0gZmFsc2U7XG5cbiAgICAvKiogcmVmZXJlbmNlIG9mIHRlbXBsYXRlICovXG4gICAgQFZpZXdDaGlsZCgncmVuZGVyZXInKVxuICAgIHJlbmRlcmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3VycmVudFZhbHVlOiBhbnk7XG5cbiAgICAvKiogQGhpZGRlbiBSYWRpbyBjaGVja2VkIHN0YXR1cyAqL1xuICAgIF9pc0NoZWNrZWQgPSBmYWxzZTtcblxuICAgIC8qKiBjbGljayBldmVudCB0byBlbWl0ICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2hlY2tlZDogRXZlbnRFbWl0dGVyPFJhZGlvQnV0dG9uQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBBY2Nlc3MgcmFkaW8gYnV0dG9uIGNoaWxkIGVsZW1lbnQgcGFzc2VkIGFzIGNvbnRlbnQgb2YgcmFkaW8gYnV0dG9uIGdyb3VwICovXG4gICAgQFZpZXdDaGlsZChDb3JlUmFkaW9CdXR0b25Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHByaXZhdGUgY29yZVJhZGlvQnV0dG9uOiBDb3JlUmFkaW9CdXR0b25Db21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQGhpZGRlbiBoYXZlIHRvIHNldCBkZWZhdWx0IGluaXRpYWwgdmFsdWVzIGFzIGJhc2UgY2xhc3MgaGFzIGNoZWNrIGFuZCB0aHJvd3MgZXJyb3JcbiAgICAgICAgdGhpcy5pZCA9IGBmZHAtcmFkaW8taWQtJHt1bmlxdWVJZH1gO1xuICAgICAgICB0aGlzLm5hbWUgPSBgZmRwLXJhZGlvLW5hbWUtJHt1bmlxdWVJZH1gO1xuICAgICAgICB1bmlxdWVJZCsrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENvbnRyb2x2YWx1ZSBhY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3ZhbHVlQ2hhbmdlKHZhbHVlOiBhbnksIGVtaXRFdmVudCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBlbWl0RXZlbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9pc0NoZWNrZWQgPSB0aGlzLl9jdXJyZW50VmFsdWUgPT09IHN1cGVyLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICh0aGlzLl9pc0NoZWNrZWQgJiYgZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrZWQuZW1pdCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy5faXNDaGVja2VkID8gMCA6IC0xO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmIChlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBtZXRob2QgZm9yIGNkayBGb2N1c0tleW1hbmFnZXIgKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3JlUmFkaW9CdXR0b24/LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIG1ldGhvZCB0byBzZWxlY3QgcmFkaW8gYnV0dG9uICovXG4gICAgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZShzdXBlci5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICAvKiogbWV0aG9kIHRvIHVuY2hlY2sgcmFkaW8gYnV0dG9uICovXG4gICAgdW5zZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgLyoqIFNldHRpbmcgdGFiSW5kZXggZm9yIHJhZGlvIGFjY2Vzc2liaWxpdHkgKi9cbiAgICBzZXRUYWJJbmRleChpbmRleDogMCB8IC0xKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNyZW5kZXJlcj5cbiAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiX2lzQ2hlY2tlZCA/IDAgOiB0YWJJbmRleFwiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgW2FyaWFEZXNjcmliZWRCeV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICBbbmdNb2RlbF09XCJfY3VycmVudFZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX3ZhbHVlQ2hhbmdlKCRldmVudCwgdHJ1ZSlcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZmQtcmFkaW8tYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbkBpZiAoZm9yY2VSZW5kZXIpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVuZGVyZXJcIj48L25nLXRlbXBsYXRlPlxufVxuIl19
|
|
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
274
274
|
type: HostListener,
|
|
275
275
|
args: ['keydown', ['$event']]
|
|
276
276
|
}] } });
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixRQUFRLEVBQ1IsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFDSCwrQkFB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QUFFLENBQUMsY0FDcEcsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUM7OzBCQStEbkYsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFDcEQsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUM1RCxRQUFROzswQkFDUixNQUFNOzJCQUFDLDZCQUE2Qjt5Q0E1RHJDLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxVQUFVO2dCQVViLFFBQVE7c0JBRFgsS0FBSztnQkFVTixVQUFVO3NCQURULEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBS3JDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLG9CQUFvQjs7UUFLbEMsNERBQTREO1FBQzVELE1BQU07c0JBRkwsTUFBTTtnQkFvR1AsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERPV05fQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgSW5MaW5lTGF5b3V0Q29sbGVjdGlvbkJhc2VJbnB1dCxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgUkVTUE9OU0lWRV9CUkVBS1BPSU5UU19DT05GSUcsXG4gICAgUmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWcsXG4gICAgUmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZSxcbiAgICBTZWxlY3RJdGVtXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXBDb21wb25lbnQsIEZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUmFkaW8gZ3JvdXAgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gdGhlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vU0FQL2Z1bmRhbWVudGFsLW5neC93aWtpL1BsYXRmb3JtOi1SYWRpb0dyb3VwLVRlY2huaWNhbC1EZXNpZ25cbiAqIGRvY3VtZW50cy5cbiAqL1xuXG4vLyBJbmNyZWFzaW5nIGludGVnZXIgZm9yIGdlbmVyYXRpbmcgdW5pcXVlIGlkcyBmb3IgcmFkaW8gY29tcG9uZW50cy5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1yYWRpby1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRkRfRk9STV9GSUVMRF9DT05UUk9MLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0dyb3VwQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybUdyb3VwQ29tcG9uZW50LCBGb3JtSXRlbUNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgUmFkaW9CdXR0b25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvR3JvdXBDb21wb25lbnRcbiAgICBleHRlbmRzIEluTGluZUxheW91dENvbGxlY3Rpb25CYXNlSW5wdXRcbiAgICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveVxue1xuICAgIC8qKiBWYWx1ZSBvZiBzZWxlY3RlZCByYWRpbyBidXR0b24gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnc2VsZWN0ZWQnKVxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIHN1cGVyLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBUbyBEaXNwbGF5IFJhZGlvIGJ1dHRvbnMgaW4gYSBsaW5lICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaXNJbmxpbmUoaW5saW5lOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lubGluZUN1cnJlbnRWYWx1ZSQubmV4dChpbmxpbmUpO1xuICAgIH1cbiAgICBnZXQgaXNJbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVDdXJyZW50VmFsdWUkLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBOb25lIHZhbHVlIHJhZGlvIGJ1dHRvbiBjcmVhdGVkICovXG4gICAgQElucHV0KClcbiAgICBoYXNOb1ZhbHVlID0gZmFsc2U7XG5cbiAgICAvKiogTGFiZWwgZm9yIE5vbmUgdmFsdWUgcmFkaW8gYnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICBub1ZhbHVlTGFiZWwgPSAnTm9uZSc7XG5cbiAgICAvKiogQ2hpbGRyZW4gcmFkaW8gYnV0dG9ucyBwYXJ0IG9mIEdyb3VwIHJhZGlvIGJ1dHRvbiwgcGFzc2VkIGFzIGNvbnRlbnQgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFJhZGlvQnV0dG9uQ29tcG9uZW50KVxuICAgIGNvbnRlbnRSYWRpb0J1dHRvbnM6IFF1ZXJ5TGlzdDxSYWRpb0J1dHRvbkNvbXBvbmVudD47XG5cbiAgICAvKiogQ2hpbGRyZW4gcmFkaW8gYnV0dG9ucyBwYXJ0IG9mIEdyb3VwIHJhZGlvIGJ1dHRvbiwgY3JlYXRlZCBmcm9tIGxpc3Qgb2YgdmFsdWVzICovXG4gICAgQFZpZXdDaGlsZHJlbihSYWRpb0J1dHRvbkNvbXBvbmVudClcbiAgICB2aWV3UmFkaW9CdXR0b25zOiBRdWVyeUxpc3Q8UmFkaW9CdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIFNlbGVjdGVkIHJhZGlvIGJ1dHRvbiBjaGFuZ2UgZXZlbnQgcmFpc2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8UmFkaW9CdXR0b25Db21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSYWRpb0J1dHRvbkNvbXBvbmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWN0aXZlSXRlbVNldCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByYWRpbyBidXR0b24uIFNob3VsZCBtYXRjaCB2YWx1ZS4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZDogUmFkaW9CdXR0b25Db21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gRm9jdXNLZXlNYW5hZ2VyIGluc3RhbmNlICovXG4gICAgcHJpdmF0ZSBfa2V5Ym9hcmRFdmVudHNNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8UmFkaW9CdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHJlYWRvbmx5IF9yZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlOiBSZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoUkVTUE9OU0lWRV9CUkVBS1BPSU5UU19DT05GSUcpXG4gICAgICAgIHJlYWRvbmx5IF9kZWZhdWx0UmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWc6IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgX2NkLFxuICAgICAgICAgICAgZWxlbWVudFJlZixcbiAgICAgICAgICAgIF9yZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlLFxuICAgICAgICAgICAgbmdDb250cm9sLFxuICAgICAgICAgICAgY29udHJvbENvbnRhaW5lcixcbiAgICAgICAgICAgIG5nRm9ybSxcbiAgICAgICAgICAgIGZvcm1GaWVsZCxcbiAgICAgICAgICAgIGZvcm1Db250cm9sLFxuICAgICAgICAgICAgX2RlZmF1bHRSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmlkID0gYHJhZGlvLWdyb3VwLSR7bmV4dFVuaXF1ZUlkKyt9YDtcbiAgICB9XG5cbiAgICAvKiogQ29udHJvbCBWYWx1ZSBBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jb250ZW50UmFkaW9CdXR0b25zPy5mb3JFYWNoKChiKSA9PiB0aGlzLl9zZWxlY3RVbnNlbGVjdChiKSk7XG4gICAgICAgIHRoaXMudmlld1JhZGlvQnV0dG9ucz8uZm9yRWFjaCgoYikgPT4gdGhpcy5fc2VsZWN0VW5zZWxlY3QoYikpO1xuICAgIH1cblxuICAgIC8qKiBBY2Nlc3MgZGlzcGxheSB2YWx1ZSBmb3Igb2JqZWN0cywgYWN0cyBhcyBjaGVja2JveCBsYWJlbC4gKi9cbiAgICBnZXREaXNwbGF5VmFsdWUoaXRlbTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVZhbHVlKGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBidXR0b24gY2xpY2sgZm9yIHZpZXcgcmFkaW8gYnV0dG9uLCBjcmVhdGVkIGZyb20gbGlzdCBvZiB2YWx1ZXNcbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBzZWxlY3RlZChldmVudDogUmFkaW9CdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZUNoYW5nZWQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNlbGVjdGluZyBkZWZhdWx0IGJ1dHRvbiBhcyBwcm92aWRlZCBhcyBpbnB1dCAqL1xuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl92YWxpZGF0ZVJhZGlvQnV0dG9ucygpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZkcC1yYWRpby1idXR0b24tZ3JvdXAgbXVzdCBjb250YWluIGEgZmRwLXJhZGlvLWJ1dHRvbicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGVudFJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IChidXR0b24uc3RhdGUgPSB0aGlzLnN0YXRlKSk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBJbml0aWFsaXplIHByb3BlcnRpZXMgb25jZSBmZC1yYWRpby1idXR0b25zIGFyZSBhdmFpbGFibGUuXG4gICAgICogVGhpcyBhbGxvd3MgdXMgdG8gcHJvcGFnYXRlIHJlbGV2YW50IGF0dHJpYnV0ZXMgdG8gYXNzb2NpYXRlZCBidXR0b25zLlxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsU2V0dXAodGhpcy5jb250ZW50UmFkaW9CdXR0b25zKTtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxTZXR1cCh0aGlzLnZpZXdSYWRpb0J1dHRvbnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gRGVzdHJveXMgZXZlbnQgc3Vic2NyaXB0aW9uLiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9nZXRMaXN0SXRlbURpc2FibGVkVmFsdWUoaXRlbTogUmFkaW9Hcm91cENvbXBvbmVudFsnbGlzdCddW251bWJlcl0pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhISg8U2VsZWN0SXRlbT5pdGVtKS5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcikge1xuICAgICAgICAgICAgLy8gc2V0cyBBY3RpdmUgaXRlbS4gc28gYXJyb3cga2V5IHN0YXJ0cyBhZnRlciB0aGUgYWN0aXZlIGl0ZW0uXG4gICAgICAgICAgICAvLyBOZWVkIHRvIGRvIG9ubHkgb25jZSwgd2hlbiBvbmUgcmFkaW8gaXMgYWxyZWFkeSBzZWxlY3RlZFxuICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICYmICF0aGlzLl9hY3RpdmVJdGVtU2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5fc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW1TZXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1ddKSkge1xuICAgICAgICAgICAgICAgIC8vIHBhc3NpbmcgdGhlIGV2ZW50IHRvIGtleSBtYW5hZ2VyIHNvIHdlIGdldCBhIGNoYW5nZSBmaXJlZFxuICAgICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsU2V0dXAocmFkaW9CdXR0b25zOiBRdWVyeUxpc3Q8UmFkaW9CdXR0b25Db21wb25lbnQ+KTogdm9pZCB7XG4gICAgICAgIGlmICghcmFkaW9CdXR0b25zIHx8IHJhZGlvQnV0dG9ucz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcihyYWRpb0J1dHRvbnMpLndpdGhXcmFwKCkud2l0aEhvcml6b250YWxPcmllbnRhdGlvbignbHRyJyk7XG5cbiAgICAgICAgcmFkaW9CdXR0b25zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChyYWRpb0J1dHRvbnMpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdEVuYWJsZWRCdXR0b25JbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkRXZlbnRzID0gcmFkaW9CdXR0b25zLm1hcCgoYnV0dG9uLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0UHJvcGVydGllcyhidXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RVbnNlbGVjdChidXR0b24pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmaW5kaW5nIGZpcnN0IGVuYWJsZWQgYnV0dG9uIHRvIHNldCB0YWJJbmRleD0wXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJ1dHRvbi5kaXNhYmxlZCAmJiAhdGhpcy5fZGlzYWJsZWQgJiYgZmlyc3RFbmFibGVkQnV0dG9uSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RFbmFibGVkQnV0dG9uSW5kZXggPSBpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnV0dG9uLmNoZWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGFjY2Vzc2liaWxpdHkgcmVxdWlyZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZCAmJiByYWRpb0J1dHRvbnMgJiYgZmlyc3RFbmFibGVkQnV0dG9uSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmFkaW9CdXR0b25zLnRvQXJyYXkoKVtmaXJzdEVuYWJsZWRCdXR0b25JbmRleF0uc2V0VGFiSW5kZXgoMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKC4uLmNoZWNrZWRFdmVudHMpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLl9zZWxlY3RlZFZhbHVlQ2hhbmdlZChldikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZWxlY3RzIGdpdmVuIGJ1dHRvbiwgaWYgdmFsdWUgbWF0Y2hlc1xuICAgICAqIEBwYXJhbSBidXR0b25cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZWxlY3RVbnNlbGVjdChidXR0b246IFJhZGlvQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChidXR0b24udmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIGJ1dHRvbi51bnNlbGVjdCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZWxlY3RlZCBidXR0b25cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICE9PSBidXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gYnV0dG9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFidXR0b24uX2lzQ2hlY2tlZCkge1xuICAgICAgICAgICAgYnV0dG9uLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ2FsbGVkIGV2ZXJ5IHRpbWUgYSByYWRpbyBidXR0b24gaXMgY2xpY2tlZCwgSW4gY29udGVudCBjaGlsZCBhcyB3ZWxsIGFzIHZpZXdjaGlsZCAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkVmFsdWVDaGFuZ2VkKGJ1dHRvbjogUmFkaW9CdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICE9PSBidXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0VGFiSW5kZXgoYnV0dG9uKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQudW5zZWxlY3QoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBidXR0b247XG4gICAgICAgICAgICBidXR0b24uc2VsZWN0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gYnV0dG9uLnZhbHVlO1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGJ1dHRvbik7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gcmVzZXRzIHRhYkluZGV4IGZvciBmaXJzdCByYWRpbyBpbiByYWRpbyBncm91cC4gZm9yIGFjY2Vzc2liaWxpdHkgdGFiSW5kZXggd2FzIHNldCAqL1xuICAgIHByaXZhdGUgX3Jlc2V0VGFiSW5kZXgoc2VsZWN0ZWRSYWRpbzogUmFkaW9CdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlld1JhZGlvQnV0dG9ucyB8fCB0aGlzLmNvbnRlbnRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJhZGlvcyA9IHRoaXMudmlld1JhZGlvQnV0dG9ucy5sZW5ndGggPiAwID8gdGhpcy52aWV3UmFkaW9CdXR0b25zIDogdGhpcy5jb250ZW50UmFkaW9CdXR0b25zO1xuICAgICAgICAgICAgcmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJhZGlvICE9PSBzZWxlY3RlZFJhZGlvICYmIHJhZGlvLnRhYkluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGlvLnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGJ1dHRvbiBTZXQgaW5pdGlhbCB2YWx1ZXMsIHVzZWQgd2hpbGUgY29udGVudCBjaGlsZHJlbiBjcmVhdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldFByb3BlcnRpZXMoYnV0dG9uOiBSYWRpb0J1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICBidXR0b24ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgICAgIGJ1dHRvbi5zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSBidXR0b24uZGlzYWJsZWQgPyBidXR0b24uZGlzYWJsZWQgOiB0aGlzLl9kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE1ha2Ugc3VyZSB3ZSBoYXZlIGV4cGVjdGVkIGNoaWxkLiAqL1xuICAgIHByaXZhdGUgX3ZhbGlkYXRlUmFkaW9CdXR0b25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50UmFkaW9CdXR0b25zLmZpbHRlcigoaXRlbSkgPT4gIShpdGVtIGluc3RhbmNlb2YgUmFkaW9CdXR0b25Db21wb25lbnQgfHwgaXRlbVsncmVuZGVyZXInXSkpXG4gICAgICAgICAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxmZC1mb3JtLWdyb3VwXG4gICAgW2lzSW5saW5lXT1cImlzSW5saW5lXCJcbiAgICByb2xlPVwicmFkaW9ncm91cFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1vcmllbnRhdGlvbl09XCJpc0lubGluZSA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCdcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuPlxuICAgIEBpZiAoIWxpc3QpIHtcbiAgICAgICAgQGZvciAocmFkaW8gb2YgY29udGVudFJhZGlvQnV0dG9uczsgdHJhY2sgcmFkaW8pIHtcbiAgICAgICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyYWRpbz8ucmVuZGVyZXIgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJhZGlvLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkIHx8IHJhZGlvLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsOiByYWRpby5hcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWxsZWRCeTogcmFkaW8uYXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnk6IHJhZGlvLmFyaWFEZXNjcmliZWRCeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiByYWRpby50aXRsZVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0dmFsdWVzXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG48L2ZkLWZvcm0tZ3JvdXA+XG48bmctdGVtcGxhdGUgI2xpc3R2YWx1ZXM+XG4gICAgQGlmIChoYXNOb1ZhbHVlKSB7XG4gICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtPlxuICAgICAgICAgICAgPGZkcC1yYWRpby1idXR0b24gW25hbWVdPVwibmFtZVwiIHZhbHVlPVwiTm9uZVwiIFtzdGF0ZV09XCJzdGF0ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtmb3JjZVJlbmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgbm9WYWx1ZUxhYmVsIH19XG4gICAgICAgICAgICA8L2ZkcC1yYWRpby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAZm9yIChpdGVtIG9mIGxpc3Q7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICA8ZmRwLXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJsb29rdXBWYWx1ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2dldExpc3RJdGVtRGlzYWJsZWRWYWx1ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgW2ZvcmNlUmVuZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGdldERpc3BsYXlWYWx1ZShpdGVtKSB9fVxuICAgICAgICAgICAgPC9mZHAtcmFkaW8tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RGLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUNILCtCQUErQixFQUMvQixpQkFBaUIs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QUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQzs7MEJBK0RuRixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwRCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVELFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsNkJBQTZCO3lDQTVEckMsS0FBSztzQkFEUixLQUFLO3VCQUFDLFVBQVU7Z0JBVWIsUUFBUTtzQkFEWCxLQUFLO2dCQVVOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixlQUFlO3VCQUFDLG9CQUFvQjtnQkFLckMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsb0JBQW9COztRQUtsQyw0REFBNEQ7UUFDNUQsTUFBTTtzQkFGTCxNQUFNO2dCQW9HUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBJbkxpbmVMYXlvdXRDb2xsZWN0aW9uQmFzZUlucHV0LFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICBSRVNQT05TSVZFX0JSRUFLUE9JTlRTX0NPTkZJRyxcbiAgICBSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyxcbiAgICBSZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlLFxuICAgIFNlbGVjdEl0ZW1cbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCwgRm9ybUl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8vcmFkaW8uY29tcG9uZW50JztcblxuLyoqXG4gKiBSYWRpbyBncm91cCBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiB0aGVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9TQVAvZnVuZGFtZW50YWwtbmd4L3dpa2kvUGxhdGZvcm06LVJhZGlvR3JvdXAtVGVjaG5pY2FsLURlc2lnblxuICogZG9jdW1lbnRzLlxuICovXG5cbi8vIEluY3JlYXNpbmcgaW50ZWdlciBmb3IgZ2VuZXJhdGluZyB1bmlxdWUgaWRzIGZvciByYWRpbyBjb21wb25lbnRzLlxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXJhZGlvLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvR3JvdXBDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3JtR3JvdXBDb21wb25lbnQsIEZvcm1JdGVtQ29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0LCBSYWRpb0J1dHRvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9Hcm91cENvbXBvbmVudFxuICAgIGV4dGVuZHMgSW5MaW5lTGF5b3V0Q29sbGVjdGlvbkJhc2VJbnB1dFxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95XG57XG4gICAgLyoqIFZhbHVlIG9mIHNlbGVjdGVkIHJhZGlvIGJ1dHRvbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdzZWxlY3RlZCcpXG4gICAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICAgICAgc3VwZXIuc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIFRvIERpc3BsYXkgUmFkaW8gYnV0dG9ucyBpbiBhIGxpbmUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpc0lubGluZShpbmxpbmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KGlubGluZSk7XG4gICAgfVxuICAgIGdldCBpc0lubGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZUN1cnJlbnRWYWx1ZSQudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIE5vbmUgdmFsdWUgcmFkaW8gYnV0dG9uIGNyZWF0ZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIGhhc05vVmFsdWUgPSBmYWxzZTtcblxuICAgIC8qKiBMYWJlbCBmb3IgTm9uZSB2YWx1ZSByYWRpbyBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vVmFsdWVMYWJlbCA9ICdOb25lJztcblxuICAgIC8qKiBDaGlsZHJlbiByYWRpbyBidXR0b25zIHBhcnQgb2YgR3JvdXAgcmFkaW8gYnV0dG9uLCBwYXNzZWQgYXMgY29udGVudCAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oUmFkaW9CdXR0b25Db21wb25lbnQpXG4gICAgY29udGVudFJhZGlvQnV0dG9uczogUXVlcnlMaXN0PFJhZGlvQnV0dG9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBDaGlsZHJlbiByYWRpbyBidXR0b25zIHBhcnQgb2YgR3JvdXAgcmFkaW8gYnV0dG9uLCBjcmVhdGVkIGZyb20gbGlzdCBvZiB2YWx1ZXMgKi9cbiAgICBAVmlld0NoaWxkcmVuKFJhZGlvQnV0dG9uQ29tcG9uZW50KVxuICAgIHZpZXdSYWRpb0J1dHRvbnM6IFF1ZXJ5TGlzdDxSYWRpb0J1dHRvbkNvbXBvbmVudD47XG5cbiAgICAvKiogU2VsZWN0ZWQgcmFkaW8gYnV0dG9uIGNoYW5nZSBldmVudCByYWlzZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxSYWRpb0J1dHRvbkNvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJhZGlvQnV0dG9uQ29tcG9uZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmVJdGVtU2V0ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJhZGlvIGJ1dHRvbi4gU2hvdWxkIG1hdGNoIHZhbHVlLiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkOiBSYWRpb0J1dHRvbkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiBGb2N1c0tleU1hbmFnZXIgaW5zdGFuY2UgKi9cbiAgICBwcml2YXRlIF9rZXlib2FyZEV2ZW50c01hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxSYWRpb0J1dHRvbkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcmVhZG9ubHkgX3Jlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2U6IFJlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChSRVNQT05TSVZFX0JSRUFLUE9JTlRTX0NPTkZJRylcbiAgICAgICAgcmVhZG9ubHkgX2RlZmF1bHRSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZzogUmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBfY2QsXG4gICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgX3Jlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2UsXG4gICAgICAgICAgICBuZ0NvbnRyb2wsXG4gICAgICAgICAgICBjb250cm9sQ29udGFpbmVyLFxuICAgICAgICAgICAgbmdGb3JtLFxuICAgICAgICAgICAgZm9ybUZpZWxkLFxuICAgICAgICAgICAgZm9ybUNvbnRyb2wsXG4gICAgICAgICAgICBfZGVmYXVsdFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaWQgPSBgcmFkaW8tZ3JvdXAtJHtuZXh0VW5pcXVlSWQrK31gO1xuICAgIH1cblxuICAgIC8qKiBDb250cm9sIFZhbHVlIEFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRSYWRpb0J1dHRvbnM/LmZvckVhY2goKGIpID0+IHRoaXMuX3NlbGVjdFVuc2VsZWN0KGIpKTtcbiAgICAgICAgdGhpcy52aWV3UmFkaW9CdXR0b25zPy5mb3JFYWNoKChiKSA9PiB0aGlzLl9zZWxlY3RVbnNlbGVjdChiKSk7XG4gICAgfVxuXG4gICAgLyoqIEFjY2VzcyBkaXNwbGF5IHZhbHVlIGZvciBvYmplY3RzLCBhY3RzIGFzIGNoZWNrYm94IGxhYmVsLiAqL1xuICAgIGdldERpc3BsYXlWYWx1ZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWUoaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIG9uIGJ1dHRvbiBjbGljayBmb3IgdmlldyByYWRpbyBidXR0b24sIGNyZWF0ZWQgZnJvbSBsaXN0IG9mIHZhbHVlc1xuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIHNlbGVjdGVkKGV2ZW50OiBSYWRpb0J1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlQ2hhbmdlZChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gU2VsZWN0aW5nIGRlZmF1bHQgYnV0dG9uIGFzIHByb3ZpZGVkIGFzIGlucHV0ICovXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3ZhbGlkYXRlUmFkaW9CdXR0b25zKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZmRwLXJhZGlvLWJ1dHRvbi1ncm91cCBtdXN0IGNvbnRhaW4gYSBmZHAtcmFkaW8tYnV0dG9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50UmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4gKGJ1dHRvbi5zdGF0ZSA9IHRoaXMuc3RhdGUpKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEluaXRpYWxpemUgcHJvcGVydGllcyBvbmNlIGZkLXJhZGlvLWJ1dHRvbnMgYXJlIGF2YWlsYWJsZS5cbiAgICAgKiBUaGlzIGFsbG93cyB1cyB0byBwcm9wYWdhdGUgcmVsZXZhbnQgYXR0cmlidXRlcyB0byBhc3NvY2lhdGVkIGJ1dHRvbnMuXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxTZXR1cCh0aGlzLmNvbnRlbnRSYWRpb0J1dHRvbnMpO1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbFNldHVwKHRoaXMudmlld1JhZGlvQnV0dG9ucyk7XG4gICAgICAgIH0pO1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBEZXN0cm95cyBldmVudCBzdWJzY3JpcHRpb24uICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcj8uZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldExpc3RJdGVtRGlzYWJsZWRWYWx1ZShpdGVtOiBSYWRpb0dyb3VwQ29tcG9uZW50WydsaXN0J11bbnVtYmVyXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICEhKDxTZWxlY3RJdGVtPml0ZW0pLmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyKSB7XG4gICAgICAgICAgICAvLyBzZXRzIEFjdGl2ZSBpdGVtLiBzbyBhcnJvdyBrZXkgc3RhcnRzIGFmdGVyIHRoZSBhY3RpdmUgaXRlbS5cbiAgICAgICAgICAgIC8vIE5lZWQgdG8gZG8gb25seSBvbmNlLCB3aGVuIG9uZSByYWRpbyBpcyBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgIXRoaXMuX2FjdGl2ZUl0ZW1TZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLl9zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbVNldCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0RPV05fQVJST1csIFVQX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICAgICAgLy8gcGFzc2luZyB0aGUgZXZlbnQgdG8ga2V5IG1hbmFnZXIgc28gd2UgZ2V0IGEgY2hhbmdlIGZpcmVkXG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxTZXR1cChyYWRpb0J1dHRvbnM6IFF1ZXJ5TGlzdDxSYWRpb0J1dHRvbkNvbXBvbmVudD4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFyYWRpb0J1dHRvbnMgfHwgcmFkaW9CdXR0b25zPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlcj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHJhZGlvQnV0dG9ucykud2l0aFdyYXAoKS53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKCdsdHInKTtcblxuICAgICAgICByYWRpb0J1dHRvbnMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHJhZGlvQnV0dG9ucyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0RW5hYmxlZEJ1dHRvbkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWRFdmVudHMgPSByYWRpb0J1dHRvbnMubWFwKChidXR0b24sIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uc3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRQcm9wZXJ0aWVzKGJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdFVuc2VsZWN0KGJ1dHRvbik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbmRpbmcgZmlyc3QgZW5hYmxlZCBidXR0b24gdG8gc2V0IHRhYkluZGV4PTBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYnV0dG9uLmRpc2FibGVkICYmICF0aGlzLl9kaXNhYmxlZCAmJiBmaXJzdEVuYWJsZWRCdXR0b25JbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEVuYWJsZWRCdXR0b25JbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidXR0b24uY2hlY2tlZC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYWNjZXNzaWJpbGl0eSByZXF1aXJlbWVudFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkICYmIHJhZGlvQnV0dG9ucyAmJiBmaXJzdEVuYWJsZWRCdXR0b25JbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpb0J1dHRvbnMudG9BcnJheSgpW2ZpcnN0RW5hYmxlZEJ1dHRvbkluZGV4XS5zZXRUYWJJbmRleCgwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4uY2hlY2tlZEV2ZW50cyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXYpID0+IHRoaXMuX3NlbGVjdGVkVmFsdWVDaGFuZ2VkKGV2KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFNlbGVjdHMgZ2l2ZW4gYnV0dG9uLCBpZiB2YWx1ZSBtYXRjaGVzXG4gICAgICogQHBhcmFtIGJ1dHRvblxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdFVuc2VsZWN0KGJ1dHRvbjogUmFkaW9CdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJ1dHRvbi52YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgYnV0dG9uLnVuc2VsZWN0KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNlbGVjdGVkIGJ1dHRvblxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgIT09IGJ1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBidXR0b247XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWJ1dHRvbi5faXNDaGVja2VkKSB7XG4gICAgICAgICAgICBidXR0b24uc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDYWxsZWQgZXZlcnkgdGltZSBhIHJhZGlvIGJ1dHRvbiBpcyBjbGlja2VkLCBJbiBjb250ZW50IGNoaWxkIGFzIHdlbGwgYXMgdmlld2NoaWxkICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRWYWx1ZUNoYW5nZWQoYnV0dG9uOiBSYWRpb0J1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgIT09IGJ1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5fcmVzZXRUYWJJbmRleChidXR0b24pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZC51bnNlbGVjdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGJ1dHRvbjtcbiAgICAgICAgICAgIGJ1dHRvbi5zZWxlY3QoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSBidXR0b24udmFsdWU7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoYnV0dG9uKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiByZXNldHMgdGFiSW5kZXggZm9yIGZpcnN0IHJhZGlvIGluIHJhZGlvIGdyb3VwLiBmb3IgYWNjZXNzaWJpbGl0eSB0YWJJbmRleCB3YXMgc2V0ICovXG4gICAgcHJpdmF0ZSBfcmVzZXRUYWJJbmRleChzZWxlY3RlZFJhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52aWV3UmFkaW9CdXR0b25zIHx8IHRoaXMuY29udGVudFJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgY29uc3QgcmFkaW9zID0gdGhpcy52aWV3UmFkaW9CdXR0b25zLmxlbmd0aCA+IDAgPyB0aGlzLnZpZXdSYWRpb0J1dHRvbnMgOiB0aGlzLmNvbnRlbnRSYWRpb0J1dHRvbnM7XG4gICAgICAgICAgICByYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmFkaW8gIT09IHNlbGVjdGVkUmFkaW8gJiYgcmFkaW8udGFiSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmFkaW8udGFiSW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gYnV0dG9uIFNldCBpbml0aWFsIHZhbHVlcywgdXNlZCB3aGlsZSBjb250ZW50IGNoaWxkcmVuIGNyZWF0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2V0UHJvcGVydGllcyhidXR0b246IFJhZGlvQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChidXR0b24pIHtcbiAgICAgICAgICAgIGJ1dHRvbi5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICAgICAgYnV0dG9uLnN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IGJ1dHRvbi5kaXNhYmxlZCA/IGJ1dHRvbi5kaXNhYmxlZCA6IHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWFrZSBzdXJlIHdlIGhhdmUgZXhwZWN0ZWQgY2hpbGQuICovXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGVSYWRpb0J1dHRvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRSYWRpb0J1dHRvbnMuZmlsdGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFuY2VvZiBSYWRpb0J1dHRvbkNvbXBvbmVudCB8fCBpdGVtWydyZW5kZXJlciddKSlcbiAgICAgICAgICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGZkLWZvcm0tZ3JvdXBcbiAgICBbaXNJbmxpbmVdPVwiaXNJbmxpbmVcIlxuICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLW9yaWVudGF0aW9uXT1cImlzSW5saW5lID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJ1wiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4+XG4gICAgQGlmICghbGlzdCkge1xuICAgICAgICBAZm9yIChyYWRpbyBvZiBjb250ZW50UmFkaW9CdXR0b25zOyB0cmFjayByYWRpbykge1xuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJhZGlvPy5yZW5kZXJlciB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmFkaW8udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQgfHwgcmFkaW8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw6IHJhZGlvLmFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiByYWRpby5hcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeTogcmFkaW8uYXJpYURlc2NyaWJlZEJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJhZGlvLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3R2YWx1ZXNcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbjwvZmQtZm9ybS1ncm91cD5cbjxuZy10ZW1wbGF0ZSAjbGlzdHZhbHVlcz5cbiAgICBAaWYgKGhhc05vVmFsdWUpIHtcbiAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0+XG4gICAgICAgICAgICA8ZmRwLXJhZGlvLWJ1dHRvbiBbbmFtZV09XCJuYW1lXCIgdmFsdWU9XCJOb25lXCIgW3N0YXRlXT1cInN0YXRlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2ZvcmNlUmVuZGVyXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICB7eyBub1ZhbHVlTGFiZWwgfX1cbiAgICAgICAgICAgIDwvZmRwLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBmb3IgKGl0ZW0gb2YgbGlzdDsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbT5cbiAgICAgICAgICAgIDxmZHAtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvb2t1cFZhbHVlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfZ2V0TGlzdEl0ZW1EaXNhYmxlZFZhbHVlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBbZm9yY2VSZW5kZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZ2V0RGlzcGxheVZhbHVlKGl0ZW0pIH19XG4gICAgICAgICAgICA8L2ZkcC1yYWRpby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
14
14
|
exports: [RadioGroupComponent, RadioButtonComponent]
|
|
15
15
|
}]
|
|
16
16
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU0vRCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUh2QixtQkFBbUIsRUFBRSxvQkFBb0IsYUFDekMsbUJBQW1CLEVBQUUsb0JBQW9COytHQUUxQyx3QkFBd0IsWUFIdkIsbUJBQW1CLEVBQUUsb0JBQW9COzsyRkFHMUMsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO29CQUNwRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQztpQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtSYWRpb0dyb3VwQ29tcG9uZW50LCBSYWRpb0J1dHRvbkNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1JhZGlvR3JvdXBDb21wb25lbnQsIFJhZGlvQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVJhZGlvR3JvdXBNb2R1bGUge31cbiJdfQ==
|