@fundamental-ngx/platform 0.48.0-rc.9 → 0.48.0
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/approval-flow-node/approval-flow-node.component.d.ts +0 -2
- package/button/button.component.d.ts +7 -8
- package/dynamic-page/dynamic-page.component.d.ts +24 -15
- package/dynamic-page/dynamic-page.tokens.d.ts +3 -0
- package/dynamic-page/index.d.ts +2 -1
- package/dynamic-page/platform-dynamic-page.interface.d.ts +22 -0
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +4 -4
- package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +4 -4
- package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +5 -7
- package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow.component.mjs +5 -5
- package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
- package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
- package/esm2022/button/button.component.mjs +14 -15
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
- package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page.component.mjs +48 -35
- package/esm2022/dynamic-page/dynamic-page.config.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
- package/esm2022/dynamic-page/dynamic-page.tokens.mjs +3 -0
- package/esm2022/dynamic-page/index.mjs +3 -2
- package/esm2022/dynamic-page/platform-dynamic-page.interface.mjs +2 -0
- package/esm2022/feed-input/feed-input.component.mjs +6 -6
- package/esm2022/feed-input/feed-input.module.mjs +4 -4
- package/esm2022/form/auto-complete/auto-complete.directive.mjs +3 -3
- package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2022/form/checkbox/checkbox.component.mjs +11 -43
- package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +21 -63
- package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
- package/esm2022/form/combobox/combobox/combobox.component.mjs +33 -63
- package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +15 -22
- package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
- package/esm2022/form/combobox/combobox.config.mjs +3 -3
- package/esm2022/form/combobox/combobox.module.mjs +4 -4
- package/esm2022/form/combobox/commons/base-combobox.mjs +24 -58
- package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
- package/esm2022/form/date-picker/date-picker.component.mjs +21 -57
- package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +22 -60
- package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +5 -9
- package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +3 -3
- package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
- package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +27 -13
- package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
- package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +3 -3
- package/esm2022/form/form-generator/form-generator.service.mjs +11 -16
- package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
- package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +3 -3
- package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
- package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
- package/esm2022/form/form-group/form-field/form-field.component.mjs +40 -47
- package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +3 -3
- package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +3 -3
- package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +3 -3
- package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
- package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +4 -4
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +3 -3
- package/esm2022/form/form-group/form-group.component.mjs +40 -50
- package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
- package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
- package/esm2022/form/input/fdp-input.module.mjs +4 -4
- package/esm2022/form/input/input.component.mjs +16 -48
- package/esm2022/form/input-group/addon-body.component.mjs +4 -5
- package/esm2022/form/input-group/addon.component.mjs +3 -3
- package/esm2022/form/input-group/input-group.component.mjs +13 -46
- package/esm2022/form/input-group/input-group.config.mjs +3 -3
- package/esm2022/form/input-group/input-group.module.mjs +4 -4
- package/esm2022/form/input-group/input.component.mjs +3 -3
- package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +3 -3
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +64 -102
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +25 -71
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +18 -26
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
- package/esm2022/form/multi-combobox/multi-combobox.config.mjs +3 -3
- package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
- package/esm2022/form/multi-input/base-multi-input.mjs +43 -83
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +13 -21
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
- package/esm2022/form/multi-input/multi-input.component.mjs +32 -91
- package/esm2022/form/multi-input/multi-input.config.mjs +3 -3
- package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
- package/esm2022/form/radio-group/radio/radio.component.mjs +12 -44
- package/esm2022/form/radio-group/radio-group.component.mjs +32 -74
- package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
- package/esm2022/form/select/commons/base-select.mjs +59 -101
- package/esm2022/form/select/select/select.component.mjs +17 -60
- package/esm2022/form/select/select.config.mjs +3 -3
- package/esm2022/form/select/select.module.mjs +4 -4
- package/esm2022/form/step-input/base.step-input.mjs +72 -85
- package/esm2022/form/step-input/number/number-step-input.component.mjs +14 -53
- package/esm2022/form/step-input/step-input-action-button.mjs +9 -13
- package/esm2022/form/step-input/step-input-control.directive.mjs +3 -3
- package/esm2022/form/step-input/step-input-decrement.directive.mjs +9 -13
- package/esm2022/form/step-input/step-input-increment.directive.mjs +9 -13
- package/esm2022/form/step-input/step-input.config.mjs +3 -3
- package/esm2022/form/step-input/step-input.module.mjs +4 -4
- package/esm2022/form/switch/switch/switch.component.mjs +12 -49
- package/esm2022/form/switch/switch/switch.config.mjs +3 -3
- package/esm2022/form/switch/switch.module.mjs +4 -4
- package/esm2022/form/text-area/text-area.component.mjs +14 -45
- package/esm2022/form/text-area/text-area.config.mjs +3 -3
- package/esm2022/form/text-area/text-area.module.mjs +4 -4
- package/esm2022/form/time-picker/time-picker.component.mjs +11 -42
- package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/fundamental-ngx.module.mjs +4 -4
- package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +6 -6
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +85 -90
- package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +21 -9
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +26 -9
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +40 -26
- package/esm2022/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.mjs +76 -0
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +28 -16
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +14 -5
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +5 -5
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +12 -21
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +10 -12
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +10 -11
- package/esm2022/icon-tab-bar/directives/icon-tab-bar-free-content.directive.mjs +14 -0
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +208 -27
- package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +19 -9
- package/esm2022/icon-tab-bar/index.mjs +3 -1
- package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
- package/esm2022/info-label/info-label.component.mjs +6 -4
- package/esm2022/info-label/info-label.module.mjs +4 -4
- package/esm2022/link/link.component.mjs +15 -23
- package/esm2022/link/link.module.mjs +4 -4
- package/esm2022/list/action-list-item/action-list-item.component.mjs +5 -5
- package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
- package/esm2022/list/base-list-item.mjs +20 -22
- package/esm2022/list/display-list-item/display-list-item.component.mjs +5 -5
- package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +5 -5
- package/esm2022/list/list-group-footer.component.mjs +5 -5
- package/esm2022/list/list-group-header.component.mjs +7 -7
- package/esm2022/list/list.component.mjs +25 -66
- package/esm2022/list/list.config.mjs +3 -3
- package/esm2022/list/list.module.mjs +4 -4
- package/esm2022/list/load-more-content.directive.mjs +3 -3
- package/esm2022/list/object-list-item/object-list-item-row.component.mjs +6 -6
- package/esm2022/list/object-list-item/object-list-item.component.mjs +5 -5
- package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +5 -5
- package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
- package/esm2022/menu/menu-item.component.mjs +5 -5
- package/esm2022/menu/menu-trigger.directive.mjs +3 -3
- package/esm2022/menu/menu.component.mjs +5 -6
- package/esm2022/menu/menu.module.mjs +4 -4
- package/esm2022/menu-button/menu-button.component.mjs +14 -9
- package/esm2022/menu-button/menu-button.module.mjs +4 -4
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +11 -14
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +4 -4
- package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +3 -3
- package/esm2022/message-popover/message-popover.component.mjs +53 -54
- package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
- package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
- package/esm2022/object-marker/object-marker.component.mjs +10 -5
- package/esm2022/object-marker/object-marker.module.mjs +4 -4
- package/esm2022/object-status/object-status.component.mjs +13 -8
- package/esm2022/object-status/object-status.module.mjs +4 -4
- package/esm2022/page-footer/page-footer.component.mjs +8 -10
- package/esm2022/page-footer/page-footer.module.mjs +4 -4
- package/esm2022/panel/panel-actions.component.mjs +3 -3
- package/esm2022/panel/panel-content/panel-content.component.mjs +3 -3
- package/esm2022/panel/panel.component.mjs +8 -9
- package/esm2022/panel/panel.config.mjs +3 -3
- package/esm2022/panel/panel.module.mjs +4 -4
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +12 -22
- package/esm2022/search-field/search-field.component.mjs +36 -42
- package/esm2022/search-field/search-field.module.mjs +4 -4
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +6 -6
- package/esm2022/settings-generator/default-config.mjs +2 -2
- package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +3 -3
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +3 -3
- package/esm2022/settings-generator/models/settings.model.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +34 -28
- package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +4 -5
- package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
- package/esm2022/settings-generator/settings-generator.component.mjs +6 -6
- package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
- package/esm2022/settings-generator/settings-generator.service.mjs +12 -13
- package/esm2022/shared/base.mjs +30 -18
- package/esm2022/shared/form/base.input.mjs +70 -69
- package/esm2022/shared/form/collection-base.input.mjs +7 -49
- package/esm2022/shared/form/inline-layout-collection-base.input.mjs +25 -66
- package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
- package/esm2022/shared/pipes/pipe.module.mjs +4 -4
- package/esm2022/shared/platform.config.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +11 -43
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +11 -14
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +8 -16
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -6
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +13 -18
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +22 -47
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +12 -10
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +3 -3
- package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +73 -57
- package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
- package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +3 -3
- package/esm2022/split-menu-button/split-menu-button.component.mjs +17 -24
- package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
- package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
- package/esm2022/table/components/reset-button/reset-button.component.mjs +8 -9
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +10 -9
- package/esm2022/table/components/table-column/table-column.component.mjs +3 -3
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +11 -14
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +4 -4
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +6 -10
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +31 -15
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +19 -24
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +9 -11
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +4 -4
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +8 -11
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +8 -11
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +11 -14
- package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -8
- package/esm2022/table/components/table-row/table-row.component.mjs +12 -17
- package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +38 -23
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +4 -4
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +4 -4
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +8 -11
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +9 -12
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +9 -12
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +138 -62
- package/esm2022/table/table.module.mjs +4 -4
- package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +20 -23
- package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell.directive.mjs +12 -12
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +10 -9
- package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-header.directive.mjs +6 -6
- package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +5 -5
- package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
- package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +22 -20
- package/esm2022/table-helpers/services/table-responsive.service.mjs +9 -14
- package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
- package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
- package/esm2022/table-helpers/services/table.service.mjs +23 -21
- package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
- package/esm2022/table-helpers/table.mjs +1 -1
- package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +3 -3
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +4 -4
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +28 -8
- package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +9 -5
- package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +3 -3
- 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/index.mjs +3 -1
- package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
- package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +59 -32
- package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
- package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +4 -4
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -6
- package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
- package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +3 -3
- package/esm2022/variant-management/variant-management.component.mjs +47 -13
- package/esm2022/variant-management/variant-management.module.mjs +4 -4
- package/esm2022/wizard-generator/base-wizard-generator.mjs +21 -28
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +19 -19
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +12 -18
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +7 -12
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +11 -10
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +4 -4
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
- package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +3 -3
- package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
- package/esm2022/wizard-generator/wizard-generator.service.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +42 -44
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +16 -17
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +88 -130
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +853 -1636
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +532 -220
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-info-label.mjs +9 -7
- package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +18 -26
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +104 -143
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +16 -11
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +16 -16
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +71 -74
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +13 -8
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +16 -11
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +10 -12
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -20
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +49 -77
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +75 -72
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +162 -218
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-slider.mjs +12 -44
- package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +144 -162
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +20 -27
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +143 -148
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +366 -291
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +144 -53
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +63 -30
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +82 -98
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform.mjs +4 -4
- package/form/checkbox/checkbox.component.d.ts +4 -6
- package/form/checkbox-group/checkbox-group.component.d.ts +3 -8
- package/form/combobox/combobox/combobox.component.d.ts +4 -12
- package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +5 -8
- package/form/combobox/commons/base-combobox.d.ts +4 -9
- package/form/date-picker/date-picker.component.d.ts +8 -11
- package/form/datetime-picker/datetime-picker.component.d.ts +9 -11
- package/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.d.ts +0 -2
- package/form/form-generator/form-generator/form-generator.component.d.ts +3 -1
- package/form/form-generator/form-generator.service.d.ts +3 -7
- package/form/form-generator/interfaces/dynamic-form-item.d.ts +5 -5
- package/form/form-group/form-field/form-field.component.d.ts +16 -20
- package/form/form-group/form-group.component.d.ts +36 -35
- package/form/input/input.component.d.ts +3 -6
- package/form/input-group/addon-body.component.d.ts +0 -1
- package/form/input-group/input-group.component.d.ts +4 -5
- package/form/multi-combobox/commons/base-multi-combobox.d.ts +13 -16
- package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +4 -12
- package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +6 -9
- package/form/multi-combobox/multi-combobox.interface.d.ts +3 -3
- package/form/multi-input/base-multi-input.d.ts +10 -15
- package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +5 -8
- package/form/multi-input/multi-input.component.d.ts +7 -37
- package/form/radio-group/radio/radio.component.d.ts +4 -5
- package/form/radio-group/radio-group.component.d.ts +7 -11
- package/form/select/commons/base-select.d.ts +11 -18
- package/form/select/select/select.component.d.ts +2 -15
- package/form/step-input/base.step-input.d.ts +13 -14
- package/form/step-input/number/number-step-input.component.d.ts +2 -7
- package/form/step-input/step-input-action-button.d.ts +4 -7
- package/form/step-input/step-input-decrement.directive.d.ts +2 -5
- package/form/step-input/step-input-increment.directive.d.ts +2 -5
- package/form/switch/switch/switch.component.d.ts +5 -8
- package/form/text-area/text-area.component.d.ts +4 -5
- package/form/time-picker/time-picker.component.d.ts +4 -5
- package/fundamental-ngx-platform-v0.48.0.tgz +0 -0
- package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +19 -20
- package/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.d.ts +2 -0
- package/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.d.ts +45 -0
- package/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.d.ts +1 -3
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.d.ts +5 -8
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.d.ts +1 -1
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.d.ts +1 -1
- package/icon-tab-bar/directives/icon-tab-bar-free-content.directive.d.ts +5 -0
- package/icon-tab-bar/icon-tab-bar.component.d.ts +82 -8
- package/icon-tab-bar/icon-tab-bar.module.d.ts +7 -1
- package/icon-tab-bar/index.d.ts +2 -0
- package/icon-tab-bar/interfaces/tab-config.interface.d.ts +13 -5
- package/info-label/info-label.component.d.ts +2 -2
- package/link/link.component.d.ts +4 -7
- package/list/base-list-item.d.ts +4 -6
- package/list/list.component.d.ts +6 -15
- package/menu-button/menu-button.component.d.ts +7 -4
- package/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.d.ts +2 -4
- package/message-popover/message-popover.component.d.ts +13 -20
- package/message-popover/models/message-popover-wrapper.interface.d.ts +2 -2
- 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/page-footer/page-footer.component.d.ts +2 -4
- package/panel/panel.component.d.ts +2 -3
- package/search-field/search-field-mobile/search-field/search-field-mobile.component.d.ts +7 -10
- package/search-field/search-field.component.d.ts +10 -19
- package/settings-generator/models/settings.model.d.ts +7 -6
- package/settings-generator/settings-generator-content/settings-generator-content.component.d.ts +31 -12
- package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +0 -2
- package/settings-generator/settings-generator.component.d.ts +3 -3
- package/settings-generator/settings-generator.service.d.ts +1 -1
- package/shared/base.d.ts +11 -4
- package/shared/form/base.input.d.ts +24 -16
- package/shared/form/collection-base.input.d.ts +1 -9
- package/shared/form/inline-layout-collection-base.input.d.ts +5 -12
- package/slider/slider.component.d.ts +3 -6
- package/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.d.ts +3 -5
- package/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.d.ts +0 -5
- package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +4 -8
- package/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.d.ts +8 -17
- package/smart-filter-bar/directives/smart-filter-bar-subject.directive.d.ts +2 -0
- package/smart-filter-bar/smart-filter-bar.component.d.ts +28 -22
- package/split-menu-button/split-menu-button.component.d.ts +11 -14
- package/table/components/reset-button/reset-button.component.d.ts +2 -3
- package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +4 -3
- package/table/components/table-column-resizer/table-column-resizer.component.d.ts +4 -5
- package/table/components/table-group-row/table-group-row.component.d.ts +2 -5
- package/table/components/table-header-cell-content/table-header-cell-content.component.d.ts +11 -6
- package/table/components/table-header-row/table-header-row.component.d.ts +1 -3
- package/table/components/table-p13-dialog/columns/columns.component.d.ts +2 -4
- package/table/components/table-p13-dialog/filtering/filtering.component.d.ts +1 -4
- package/table/components/table-p13-dialog/grouping/grouping.component.d.ts +1 -4
- package/table/components/table-p13-dialog/sorting/sorting.component.d.ts +1 -4
- package/table/components/table-row/table-row.component.d.ts +2 -2
- package/table/components/table-toolbar/table-toolbar.component.d.ts +24 -8
- package/table/components/table-view-settings-dialog/filtering/filters.component.d.ts +1 -4
- package/table/components/table-view-settings-dialog/grouping/grouping.component.d.ts +1 -4
- package/table/components/table-view-settings-dialog/sorting/sorting.component.d.ts +1 -4
- package/table/table.component.d.ts +29 -19
- package/table-helpers/directives/table-cell-header-popover.directive.d.ts +2 -3
- package/table-helpers/directives/table-cell-resizable.directive.d.ts +1 -3
- package/table-helpers/directives/table-data-source.directive.d.ts +1 -1
- package/table-helpers/services/table-column-resize.service.d.ts +4 -2
- package/table-helpers/services/table-responsive.service.d.ts +3 -5
- package/table-helpers/services/table.service.d.ts +12 -10
- 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/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 +2 -0
- 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 +14 -7
- package/variant-management/variant-management.component.d.ts +19 -6
- package/wizard-generator/base-wizard-generator.d.ts +9 -12
- package/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.d.ts +2 -3
- package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +3 -7
- package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -4
- package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
- package/dynamic-page/dynamic-page.service.d.ts +0 -35
- package/esm2022/dynamic-page/dynamic-page.service.mjs +0 -58
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +0 -16
- package/fundamental-ngx-platform-v0.48.0-rc.9.tgz +0 -0
- package/search-field/search-field-mobile/search-field-mobile.module.d.ts +0 -7
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional, SkipSelf } from '@angular/core';
|
|
1
|
+
import { DestroyRef, Inject, Injectable, Optional, SkipSelf, inject } from '@angular/core';
|
|
2
2
|
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
3
|
import { isFunction, selectStrategy } from '@fundamental-ngx/cdk/utils';
|
|
4
4
|
import { cloneDeep, merge } from 'lodash-es';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { debounceTime } from 'rxjs/operators';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import { DEFAULT_VALIDATION_ERRORS } from './config/default-validation-errors';
|
|
8
8
|
import { DynamicFormControl, DynamicFormControlGroup } from './dynamic-form-control';
|
|
9
9
|
import { FormGeneratorComponentsAccessorService } from './form-generator-components-accessor.service';
|
|
@@ -36,16 +36,9 @@ export class FormGeneratorService {
|
|
|
36
36
|
* @hidden
|
|
37
37
|
* An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)
|
|
38
38
|
*/
|
|
39
|
-
this.
|
|
39
|
+
this._destroyRef = inject(DestroyRef);
|
|
40
40
|
this._config = merge(cloneDeep(this._config), cloneDeep(this._providedConfig));
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
43
|
-
* @hidden
|
|
44
|
-
*/
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
this._onDestroy$.next();
|
|
47
|
-
this._onDestroy$.complete();
|
|
48
|
-
}
|
|
49
42
|
/**
|
|
50
43
|
* @description Generates `FormGroup` class with the list of `DynamicFormControl` control classes
|
|
51
44
|
* defined in `formItems` argument.
|
|
@@ -294,7 +287,9 @@ export class FormGeneratorService {
|
|
|
294
287
|
updateOn: 'change'
|
|
295
288
|
});
|
|
296
289
|
if (isFunction(formItem.onchange)) {
|
|
297
|
-
formControl.valueChanges
|
|
290
|
+
formControl.valueChanges
|
|
291
|
+
.pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))
|
|
292
|
+
.subscribe(async (value) => {
|
|
298
293
|
const obj = formItem.onchange(value, this.forms, formControl);
|
|
299
294
|
await this._getFunctionValue(obj);
|
|
300
295
|
});
|
|
@@ -425,10 +420,10 @@ export class FormGeneratorService {
|
|
|
425
420
|
}
|
|
426
421
|
});
|
|
427
422
|
}
|
|
428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
429
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
|
423
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormGeneratorService, deps: [{ token: i1.FormBuilder }, { token: i2.FormGeneratorComponentsAccessorService }, { token: FORM_GENERATOR_ITEM_CONFIG, optional: true, skipSelf: true }, { token: FORM_GENERATOR_CONFIG, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
424
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormGeneratorService }); }
|
|
430
425
|
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FormGeneratorService, decorators: [{
|
|
432
427
|
type: Injectable
|
|
433
428
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.FormGeneratorComponentsAccessorService }, { type: undefined, decorators: [{
|
|
434
429
|
type: Optional
|
|
@@ -445,4 +440,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
445
440
|
type: Inject,
|
|
446
441
|
args: [FORM_GENERATOR_CONFIG]
|
|
447
442
|
}] }] });
|
|
448
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFvQixXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUEyQixNQUFNLHdCQUF3QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFZNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFFdEg7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBb0I3QixjQUFjO0lBQ2QsWUFDWSxHQUFnQixFQUNoQixtQkFBMkQsRUFJM0Qsa0JBQWlELEVBSWpELGVBQTZDO1FBVDdDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsd0JBQW1C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LCBPcHRpb25hbCwgU2tpcFNlbGYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgc2VsZWN0U3RyYXRlZ3kgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sIH0gZnJvbSAnLi9iYXNlLWR5bmFtaWMtZm9ybS1nZW5lcmF0b3ItY29udHJvbCc7XG5pbXBvcnQgeyBERUZBVUxUX1ZBTElEQVRJT05fRVJST1JTIH0gZnJvbSAnLi9jb25maWcvZGVmYXVsdC12YWxpZGF0aW9uLWVycm9ycyc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wsIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLCBEeW5hbWljRm9ybUdyb3VwQ29udHJvbCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvckNvbXBvbmVudHNBY2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tZ2VuZXJhdG9yLWNvbXBvbmVudHMtYWNjZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBpc0Zvcm1GaWVsZEl0ZW0gfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZ3JvdXAnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICBEeW5hbWljRm9ybUl0ZW0sXG4gICAgRHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXMsXG4gICAgRHluYW1pY0Zvcm1JdGVtTWFwLFxuICAgIER5bmFtaWNGb3JtVmFsdWUsXG4gICAgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbVxufSBmcm9tICcuL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWl0ZW0nO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvZm9ybS1jb21wb25lbnQtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Zvcm0tZ2VuZXJhdG9yLW1vZHVsZS1jb25maWcnO1xuaW1wb3J0IHsgRk9STV9HRU5FUkFUT1JfQ09ORklHLCBGT1JNX0dFTkVSQVRPUl9JVEVNX0NPTkZJRywgZGVmYXVsdEZvcm1HZW5lcmF0b3JDb25maWcgfSBmcm9tICcuL3Byb3ZpZGVycy9wcm92aWRlcnMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGb3JtIGdlbmVyYXRvciBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdG9yU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogTWFwIG9mIGdlbmVyYXRlZCBmb3JtcyB0byBhY2Nlc3MgbGF0ZXIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZm9ybXM6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtR3JvdXA+ID0gbmV3IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtR3JvdXA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBQcmVkZWZpbmVkIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMuXG4gICAgICovXG4gICAgdmFsaWRhdGlvbkVycm9ySGludHMgPSBERUZBVUxUX1ZBTElEQVRJT05fRVJST1JTO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IEZvcm1HZW5lcmF0b3JDb25maWcgPSBkZWZhdWx0Rm9ybUdlbmVyYXRvckNvbmZpZztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgX2NvbXBvbmVudHNBY2Nlc3NvcjogRm9ybUdlbmVyYXRvckNvbXBvbmVudHNBY2Nlc3NvclNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTa2lwU2VsZigpXG4gICAgICAgIEBJbmplY3QoRk9STV9HRU5FUkFUT1JfSVRFTV9DT05GSUcpXG4gICAgICAgIHByaXZhdGUgX2RlZmF1bHRJdGVtQ29uZmlnOiBQYXJ0aWFsPER5bmFtaWNGb3JtRmllbGRJdGVtPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNraXBTZWxmKClcbiAgICAgICAgQEluamVjdChGT1JNX0dFTkVSQVRPUl9DT05GSUcpXG4gICAgICAgIHByaXZhdGUgX3Byb3ZpZGVkQ29uZmlnOiBQYXJ0aWFsPEZvcm1HZW5lcmF0b3JDb25maWc+XG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IG1lcmdlKGNsb25lRGVlcCh0aGlzLl9jb25maWcpLCBjbG9uZURlZXAodGhpcy5fcHJvdmlkZWRDb25maWcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBgRm9ybUdyb3VwYCBjbGFzcyB3aXRoIHRoZSBsaXN0IG9mIGBEeW5hbWljRm9ybUNvbnRyb2xgIGNvbnRyb2wgY2xhc3Nlc1xuICAgICAqIGRlZmluZWQgaW4gYGZvcm1JdGVtc2AgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIGZvcm1OYW1lIEZvcm0gbmFtZS5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1zIHRoZSBsaXN0IG9mIGZvcm0gaXRlbXMgd2hpY2ggdXNlZCBmb3IgZm9ybSBjb250cm9sIGdlbmVyYXRpb24uXG4gICAgICogQHJldHVybnMgYEZvcm1Hcm91cGAgY2xhc3Mgd2l0aCB0aGUgbGlzdCBvZiBgRHluYW1pY0Zvcm1Db250cm9sYCBjb250cm9sIGNsYXNzZXMuXG4gICAgICovXG4gICAgYXN5bmMgZ2VuZXJhdGVGb3JtKGZvcm1OYW1lOiBzdHJpbmcsIGZvcm1JdGVtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1JdGVtTWFwPik6IFByb21pc2U8RHluYW1pY0Zvcm1Hcm91cD4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ0Zvcm0gPSB0aGlzLmZvcm1zLmdldChmb3JtTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7fSkgYXMgRHluYW1pY0Zvcm1Hcm91cDtcblxuICAgICAgICBjb25zdCBkZWZhdWx0Rm9ybUdyb3VwID0gbmV3IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7fVxuICAgICAgICApO1xuXG4gICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuZm9ybUl0ZW0uaXRlbXMgPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgZm9ybUl0ZW1zID0gdGhpcy5fdHJhbnNmb3JtRm9ybUl0ZW1zKGZvcm1JdGVtcyk7XG5cbiAgICAgICAgZm9ybUl0ZW1zLmZvckVhY2goKGZvcm1JdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1JdGVtLml0ZW1zIHx8IGZvcm1JdGVtLml0ZW1zLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKGZvcm1JdGVtLCB7fSk7XG5cbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5pdGVtcy5mb3JFYWNoKChncm91cEZvcm1JdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwRm9ybUNvbnRyb2wgPSB0aGlzLl9nZW5lcmF0ZUR5bmFtaWNGb3JtSXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwRm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmFkZENvbnRyb2woZ3JvdXBGb3JtSXRlbS5uYW1lLCBncm91cEZvcm1Db250cm9sKTtcblxuICAgICAgICAgICAgICAgICAgICBncm91cEZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZm9ybS5hZGRDb250cm9sKGZvcm1JdGVtLm5hbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5fZ2VuZXJhdGVEeW5hbWljRm9ybUl0ZW0oZm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSwgZm9ybSk7XG5cbiAgICAgICAgICAgIGlmICghZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuYWRkQ29udHJvbChmb3JtSXRlbS5uYW1lLCBmb3JtQ29udHJvbCk7XG5cbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuZm9ybUl0ZW0uaXRlbXM/LnNldChmb3JtSXRlbS5uYW1lLCBmb3JtSXRlbSk7XG5cbiAgICAgICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbE5hbWVzID0gT2JqZWN0LmtleXMoZGVmYXVsdEZvcm1Hcm91cC5jb250cm9scyk7XG5cbiAgICAgICAgZm9ybS5hZGRDb250cm9sKHRoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWUsIGRlZmF1bHRGb3JtR3JvdXApO1xuXG4gICAgICAgIC8vIEFmdGVyIHdlIGNyZWF0ZWQgaW5pdGlhbCBmb3JtLCB3ZSBuZWVkIHRvIGdldCBkeW5hbWljIGxhYmVscywgY2hvaWNlcyBhbmQgdmFsdWVcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZm9ybUNvbnRyb2xOYW1lcykge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBmb3JtSXRlbXMuZ2V0KGtleSk7XG5cbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGZvcm1JdGVtKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBbW21lc3NhZ2UsIHBsYWNlaG9sZGVyLCBkZWZhdWx0VmFsdWVdLCBjaG9pY2VzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLl9nZXRGb3JtSXRlbVByb3BlcnRpZXM8W3N0cmluZywgc3RyaW5nLCBhbnldPihmb3JtSXRlbSwgZGVmYXVsdEZvcm1Hcm91cCwgW1xuICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgICAgICdwbGFjZWhvbGRlcicsXG4gICAgICAgICAgICAgICAgICAgICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIHRoaXMuX2dldEZvcm1JdGVtQ2hvaWNlcyhmb3JtSXRlbSwgZGVmYXVsdEZvcm1Hcm91cClcbiAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICBmb3JtSXRlbS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgICAgIGZvcm1JdGVtLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBmb3JtSXRlbS5kZWZhdWx0ID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgZm9ybUl0ZW0uY2hvaWNlcyA9IGNob2ljZXM7XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBmb3JtIHZhbHVlIHNpbmNlIGl0IG1pZ2h0IGJlIGNoYW5nZWRcbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuY29udHJvbHNbZm9ybUl0ZW0ubmFtZV0uc2V0VmFsdWUoZm9ybUl0ZW0uZGVmYXVsdCk7XG5cbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuY29udHJvbHNba2V5XS5mb3JtSXRlbSA9IGZvcm1JdGVtIGFzIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udHJvbCA9IGZvcm0uZ2V0KGNvbnRyb2xOYW1lKSBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cDtcbiAgICAgICAgICAgIGNvbnN0IG9sZENvbnRyb2wgPSBleGlzdGluZ0Zvcm0/LmdldChjb250cm9sTmFtZSkgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXA7XG4gICAgICAgICAgICB0aGlzLl9jbG9uZU9sZEZvcm1Hcm91cChuZXdDb250cm9sLCBvbGRDb250cm9sKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3Jtcy5zZXQoZm9ybU5hbWUsIGZvcm0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbnRyb2wgdG8gYSBmb3JtLlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYWRkXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBvZiB0aGUgY29udHJvbCB0byBiZSBhZGRlZC5cbiAgICAgKiBAcGFyYW0gcGF0aCBHcm91cCBwYXRoLlxuICAgICAqL1xuICAgIGFzeW5jIGFkZENvbnRyb2woY29udHJvbDogRHluYW1pY0Zvcm1JdGVtLCBmb3JtOiBEeW5hbWljRm9ybUdyb3VwLCBwYXRoOiBzdHJpbmdbXSA9IFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woZm9ybSwgLi4ucGF0aCk7XG5cbiAgICAgICAgaWYgKGZvcm1Hcm91cCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuX2dlbmVyYXRlRHluYW1pY0Zvcm1JdGVtKGNvbnRyb2wgYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSwgZm9ybSk7XG4gICAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChjb250cm9sLm5hbWUsIGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGNvbnRyb2wgd2l0aCBnaXZlbiBuYW1lIGZyb20gdGhlIGZvcm0uXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lXG4gICAgICogQHBhcmFtIHBhdGhcbiAgICAgKi9cbiAgICByZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsIHBhdGg6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtQ29udHJvbChmb3JtLCAuLi5wYXRoKTtcblxuICAgICAgICBpZiAoZm9ybUdyb3VwIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGZvcm0gdmFsdWUgd2l0aCBhcHBsaWVkIGZpbHRlcnMgYW5kIHRyYW5zZm9ybWVycy5cbiAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIGdlbmVyYXRvciBmb3JtXG4gICAgICogQHBhcmFtIHJlbmRlclZhbHVlIFdoZXRoZXIgb3Igbm90IGZvcm0gdmFsdWUgd2lsbCBiZSB1c2VkIGZvciByZW5kZXJpbmcgcHVycG9zZXMuXG4gICAgICogQHJldHVybnMgZm9ybSB2YWx1ZSBvYmplY3QuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0Rm9ybVZhbHVlKFxuICAgICAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwIHwgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsXG4gICAgICAgIHJlbmRlclZhbHVlID0gZmFsc2VcbiAgICApOiBQcm9taXNlPER5bmFtaWNGb3JtVmFsdWU+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fdHJpZ2dlckZpZWxkc09uY2hhbmdlKGZvcm0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGNsb25lRGVlcChmb3JtLnZhbHVlKTtcblxuICAgICAgICBmb3IgKGNvbnN0IFtpLCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtO1xuXG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbaV0gPSBhd2FpdCB0aGlzLmdldEZvcm1WYWx1ZShjb250cm9sIGFzIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLCByZW5kZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtSXRlbS5zaG91bGRTaG93ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBmb3JtVmFsdWVbaV07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtSXRlbS50cmFuc2Zvcm1lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGZvcm1JdGVtLnRyYW5zZm9ybWVyKGZvcm1WYWx1ZVtpXSwgZm9ybVZhbHVlLCBmb3JtSXRlbSk7XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW2ldID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVuZGVyVmFsdWUgJiYgZm9ybUl0ZW0udmFsdWVSZW5kZXJlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGZvcm1JdGVtLnZhbHVlUmVuZGVyZXIoZm9ybVZhbHVlW2ldLCBmb3JtVmFsdWUsIGZvcm1JdGVtKTtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbaV0gPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW5kZXJWYWx1ZSAmJiBmb3JtSXRlbVsnY29udHJvbFR5cGUnXSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZVtpXSA9IHRoaXMuX2Zvcm1hdFBhc3N3b3JkVmFsdWUoZm9ybVZhbHVlW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRGb3JtVmFsdWVXaXRob3V0VW5ncm91cGVkKGZvcm1WYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZHMgY3VzdG9tIGNvbXBvbmVudCB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgY29tcG9uZW50cyBmb3IgdGhlIGZvcm0gZ2VuZXJhdG9yIGl0ZW1zLlxuICAgICAqIEBwYXJhbSBjb21wb25lbnQgQW5ndWxhciBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIHR5cGVzIHR5cGVzIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgYWRkQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTxCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sPiwgdHlwZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRzQWNjZXNzb3IuYWRkQ29tcG9uZW50KGNvbXBvbmVudCwgdHlwZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGJlc3QtbWF0Y2hlZCBjb21wb25lbnQgYmFzZWQgb24gcHJvdmlkZWQgYHR5cGVgIGFyZ3VtZW50XG4gICAgICogQHBhcmFtIHR5cGUgZm9ybSBpdGVtIHR5cGVcbiAgICAgKiBAcmV0dXJucyBAc2VlIEZvcm1Db21wb25lbnREZWZpbml0aW9uIENvbXBvbmVudCBkZWZpbml0aW9uIGZvciB0aGUgZm9ybSBpdGVtXG4gICAgICovXG4gICAgZ2V0Q29tcG9uZW50RGVmaW5pdGlvbkJ5VHlwZSh0eXBlOiBzdHJpbmcpOiBGb3JtQ29tcG9uZW50RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRzQWNjZXNzb3IuZ2V0Q29tcG9uZW50RGVmaW5pdGlvbkJ5VHlwZSh0eXBlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBPYmplY3Qgb2YgYXZhaWxhYmxlIGVycm9ycywgd2hlcmUga2V5IGlzIGFuIGVycm9yIHR5cGUsXG4gICAgICogYW5kIGl0J3MgdmFsdWUgaXMgYSBkaXNwbGF5IHRleHQuXG4gICAgICovXG4gICAgZ2V0VmFsaWRhdGlvbkVycm9ySGludHMoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uRXJyb3JIaW50c1trZXldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGRzIGN1c3RvbSBlcnJvciBoaW50IGRlZmluZWQgYnkgdXNlci5cbiAgICAgKiBAcGFyYW0gdHlwZSBlcnJvciB0eXBlIGZyb20gdmFsaWRhdG9yLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBkaXNwbGF5IHRleHQuXG4gICAgICovXG4gICAgYWRkVmFsaWRhdGlvbkVycm9ySGludCh0eXBlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JIaW50c1t0eXBlXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgc29tZSBpdGVtcyBvZiB0aGUgZm9ybSBzaG91bGQgYmUgaGlkZGVuLFxuICAgICAqIG9yIHZpc2libGUgYmFzZWQgb24gYHdoZW5gIG1ldGhvZCByZXN1bHQuXG4gICAgICogQHBhcmFtIGZvcm1cbiAgICAgKiBAcmV0dXJucyBgU2V0YCB3aGVyZSBrZXkgaXMgaXRlbSBuYW1lLCBhbmQgYm9vbGVhbiB2YWx1ZSBpZiBmaWVsZCBuZWVkcyB0byBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBhc3luYyBjaGVja1Zpc2libGVGb3JtSXRlbXMoZm9ybTogRHluYW1pY0Zvcm1Hcm91cCk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5fZ2V0Rm9ybVZhbHVlV2l0aG91dFVuZ3JvdXBlZChjbG9uZURlZXAoZm9ybS52YWx1ZSkpO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY2hlY2tGb3JtQ29udHJvbHNWaXNpYmlsaXR5KGZvcm0sIGZvcm1WYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGZvciBzZWFyY2hpbmcgYSBmb3JtIGNvbnRyb2wgaW5zaWRlIGZvcm0gZ3JvdXAuIENhbiBhbHNvIHNlYXJjaCBpbnNpZGUgdW5ncm91cGVkIGZvcm0gZ3JvdXAuXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBncm91cC5cbiAgICAgKiBAcGFyYW0gY29udHJvbE5hbWVzIE5hbWUgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAgICAgKiBAcmV0dXJucyBGb3VuZCBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgZ2V0Rm9ybUNvbnRyb2woZm9ybTogRHluYW1pY0Zvcm1Hcm91cCwgLi4uY29udHJvbE5hbWVzOiBzdHJpbmdbXSk6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sIHtcbiAgICAgICAgY29udHJvbE5hbWVzID0gY29udHJvbE5hbWVzLnJlZHVjZSgobmFtZXM6IHN0cmluZ1tdLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICBuYW1lcyA9IFsuLi5uYW1lcywgLi4ubmFtZS5zcGxpdCh0aGlzLl9jb25maWcuY29udHJvbE5hbWVTZXBhcmF0b3IpXTtcblxuICAgICAgICAgICAgcmV0dXJuIG5hbWVzO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgbGV0IGNvbnRyb2wgPSBmb3JtPy5nZXQoY29udHJvbE5hbWVzKTtcblxuICAgICAgICAvLyBJZiBubyBjb250cm9sIGZvdW5kLCB0cnkgdG8gZmluZCBpdCBpbiB1bmdyb3VwZWQgZ3JvdXBcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICBjb250cm9sID0gZm9ybT8uZ2V0KFt0aGlzLl9jb25maWcudW5ncm91cGVkQ29udHJvbHNOYW1lLCAuLi5jb250cm9sTmFtZXNdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250cm9sIGFzIER5bmFtaWNGb3JtR3JvdXBDb250cm9sO1xuICAgIH1cblxuICAgIC8qKiBSZXNldHMgdGhlIGZvcm0gdG8gaXQncyBpbml0aWFsIHN0YXRlLiAqL1xuICAgIHJlc2V0Rm9ybShmb3JtOiBEeW5hbWljRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBPYmplY3QudmFsdWVzKGZvcm0uY29udHJvbHMpKSB7XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oY29udHJvbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gR2V0IGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoY29udHJvbC5mb3JtSXRlbS5kZWZhdWx0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQodmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh2YWx1ZVt0aGlzLl9jb25maWcudW5ncm91cGVkQ29udHJvbHNOYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgdW5ncm91cGVkR3JvdXBWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHZhbHVlW3RoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWVdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbZmllbGROYW1lLCBmaWVsZFZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh1bmdyb3VwZWRHcm91cFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlW2ZpZWxkTmFtZV0gPSBmaWVsZFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSB2YWx1ZVt0aGlzLl9jb25maWcudW5ncm91cGVkQ29udHJvbHNOYW1lXTtcblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hc3NpZ25Gb3JtSXRlbVZhbGlkYXRvcnMoXG4gICAgICAgIGZvcm1JdGVtOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwXG4gICAgKTogUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSB7XG4gICAgICAgIGxldCB2YWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yRm4gfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihmb3JtSXRlbS52YWxpZGF0ZSkpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvciA9IGFzeW5jIChjb250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udmFsaWRhdGUhKGNvbnRyb2wudmFsdWUsIHRoaXMuX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQoZm9ybSkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0dXJuT2JqID0ge307XG5cbiAgICAgICAgICAgICAgICByZXR1cm5PYmpbYCR7KDxEeW5hbWljRm9ybUNvbnRyb2w+Y29udHJvbCkuZm9ybUl0ZW0ubmFtZX1WYWxpZGF0b3JgXSA9XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHQgPT09ICdib29sZWFuJyA/IHRydWUgOiByZXN1bHQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ID09PSBudWxsID8gcmVzdWx0IDogcmV0dXJuT2JqO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzID0gZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzIHx8IFtdO1xuICAgICAgICAgICAgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzID09PSAnZnVuY3Rpb24nID8gW2Zvcm1JdGVtLmFzeW5jVmFsaWRhdG9yc10gOiBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnM7XG5cbiAgICAgICAgICAgIGZvcm1JdGVtLmFzeW5jVmFsaWRhdG9ycy5wdXNoKHZhbGlkYXRvcik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtSXRlbS52YWxpZGF0b3JzID0gZm9ybUl0ZW0udmFsaWRhdG9ycyB8fCBbVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yXTtcblxuICAgICAgICBmb3JtSXRlbS5yZXF1aXJlZCA9IGZvcm1JdGVtLnJlcXVpcmVkIHx8IGZvcm1JdGVtLnZhbGlkYXRvcnMuaW5jbHVkZXMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1JdGVtO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVEeW5hbWljRm9ybUl0ZW0oXG4gICAgICAgIGZvcm1JdGVtOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwXG4gICAgKTogRHluYW1pY0Zvcm1Db250cm9sIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgZm9ybUl0ZW1Db21wb25lbnRUeXBlID0gdGhpcy5nZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKGZvcm1JdGVtLnR5cGUpO1xuXG4gICAgICAgIGlmICghZm9ybUl0ZW1Db21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEZvcm0gaXRlbSAnJHtmb3JtSXRlbS5uYW1lfScgd2l0aCB0eXBlICcke2Zvcm1JdGVtLnR5cGV9JyBoYXMgbm8gZGVmaW5lZCBjb21wb25lbnQuXG4gICAgICAgICAgICBQbGVhc2UgdXNlICdhZGRDb21wb25lbnQnIG1ldGhvZCBpbiAke0Zvcm1HZW5lcmF0b3JTZXJ2aWNlLm5hbWV9IHRvIGRlZmluZSBhcHByb3ByaWF0ZSByZWxhdGlvbnMuYCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1JdGVtID0gdGhpcy5fYXNzaWduRm9ybUl0ZW1WYWxpZGF0b3JzKGZvcm1JdGVtLCBmb3JtKTtcblxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IG5ldyBEeW5hbWljRm9ybUNvbnRyb2woZm9ybUl0ZW0uZGVmYXVsdCwge1xuICAgICAgICAgICAgdmFsaWRhdG9yczogZm9ybUl0ZW0udmFsaWRhdG9ycyxcbiAgICAgICAgICAgIGFzeW5jVmFsaWRhdG9yczogZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzLFxuICAgICAgICAgICAgZHluYW1pY0Zvcm1JdGVtOiBmb3JtSXRlbSxcbiAgICAgICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihmb3JtSXRlbS5vbmNoYW5nZSkpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGZvcm1JdGVtLm9uY2hhbmdlISh2YWx1ZSwgdGhpcy5mb3JtcywgZm9ybUNvbnRyb2wpO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9jaGVja0Zvcm1Db250cm9sc1Zpc2liaWxpdHkoXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAgfCBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICAgICAgZm9ybVZhbHVlOiBhbnlcbiAgICApOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9PiB7XG4gICAgICAgIGxldCBzaG91bGRTaG93RmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICAgICAgICBmb3JtID0gZm9ybSBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwID8gZm9ybSA6IGZvcm07XG5cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtO1xuXG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cFZpc2libGVJdGVtcyA9IGF3YWl0IHRoaXMuX2NoZWNrRm9ybUNvbnRyb2xzVmlzaWJpbGl0eShcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbCBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICAgICAgICAgICAgICAgICAgZm9ybVZhbHVlXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHNob3VsZFNob3dGaWVsZHMgPSBPYmplY3QuYXNzaWduKHNob3VsZFNob3dGaWVsZHMsIGdyb3VwVmlzaWJsZUl0ZW1zKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFmb3JtSXRlbS53aGVuKSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0ZpZWxkc1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0ud2hlbihmb3JtVmFsdWUsIHRoaXMuZm9ybXMsIGNvbnRyb2wpO1xuICAgICAgICAgICAgc2hvdWxkU2hvd0ZpZWxkc1trZXldID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNob3VsZFNob3dGaWVsZHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxuICAgICAqIEBwYXJhbSBmb3JtXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0Rm9ybUl0ZW1Qcm9wZXJ0eVZhbHVlPFQgPSBzdHJpbmc+KFxuICAgICAgICBmb3JtSXRlbTogRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsXG4gICAgICAgIGtleToga2V5b2YgRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gZm9ybUl0ZW1ba2V5XTtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCBvYmogPSB2YWx1ZSh0aGlzLl9nZXRGb3JtVmFsdWVXaXRob3V0VW5ncm91cGVkKGZvcm0pKTtcblxuICAgICAgICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUodmFsdWUpKSBhcyBUO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0Rm9ybUl0ZW1Qcm9wZXJ0aWVzPFRUeXBlcyBleHRlbmRzIGFueVtdID0gYW55W10+KFxuICAgICAgICBmb3JtSXRlbTogRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsXG4gICAgICAgIGtleXM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTxUVHlwZXM+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuX2dldEZvcm1JdGVtUHJvcGVydHlWYWx1ZShmb3JtSXRlbSwgZm9ybSwga2V5KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKSkgYXMgVFR5cGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cbiAgICAgKiBAcGFyYW0gZm9ybVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0Rm9ybUl0ZW1DaG9pY2VzKGZvcm1JdGVtOiBEeW5hbWljRm9ybUZpZWxkSXRlbSwgZm9ybTogRHluYW1pY0Zvcm1Hcm91cCk6IFByb21pc2U8U2VsZWN0SXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDaG9pY2VzID0gYXdhaXQgdGhpcy5fZ2V0Rm9ybUl0ZW1Qcm9wZXJ0eVZhbHVlPER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzW10+KFxuICAgICAgICAgICAgZm9ybUl0ZW0sXG4gICAgICAgICAgICBmb3JtLFxuICAgICAgICAgICAgJ2Nob2ljZXMnXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFkZWZhdWx0Q2hvaWNlcykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRDaG9pY2VzLm1hcCgoYzogc3RyaW5nIHwgbnVtYmVyIHwgU2VsZWN0SXRlbSkgPT5cbiAgICAgICAgICAgIHR5cGVvZiBjID09PSAnb2JqZWN0JyA/IGMgOiAoeyBsYWJlbDogYywgdmFsdWU6IGMgfSBhcyBTZWxlY3RJdGVtKVxuICAgICAgICApIGFzIFNlbGVjdEl0ZW1bXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgdmFsdWUgZnJvbSBQcm9taXNlLWxpa2UsIE9ic2VydmFibGUtbGlrZSwgc2ltcGxlIGZ1bmN0aW9uIG9yIGp1c3Qgc29tZSBvYmplY3QuXG4gICAgICogQHBhcmFtIG9ialxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0RnVuY3Rpb25WYWx1ZShvYmo6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHN0cmF0ZWd5ID0gc2VsZWN0U3RyYXRlZ3kob2JqKTtcblxuICAgICAgICBsZXQgcmVzdWx0OiBhbnk7XG5cbiAgICAgICAgYXdhaXQgc3RyYXRlZ3kuY3JlYXRlU3Vic2NyaXB0aW9uKG9iaiwgKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihyZXN1bHQpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKHJlc3VsdCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybWF0UGFzc3dvcmRWYWx1ZShwYXNzd29yZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcqJy5yZXBlYXQocGFzc3dvcmQ/Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRNZXJnZWRGb3JtRmllbGRJdGVtQ29uZmlnKGZvcm1JdGVtOiBEeW5hbWljRm9ybUl0ZW1NYXApOiBEeW5hbWljRm9ybUl0ZW1NYXAge1xuICAgICAgICByZXR1cm4gbWVyZ2UoY2xvbmVEZWVwKHRoaXMuX2RlZmF1bHRJdGVtQ29uZmlnKSwgZm9ybUl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtRm9ybUl0ZW1zKGZvcm1JdGVtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1JdGVtTWFwPik6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtSXRlbU1hcD4ge1xuICAgICAgICBmb3JtSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtSXRlbXMuc2V0KGluZGV4LCB0aGlzLl9nZXRNZXJnZWRGb3JtRmllbGRJdGVtQ29uZmlnKGl0ZW0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1JdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX3RyaWdnZXJGaWVsZHNPbmNoYW5nZShmb3JtOiBEeW5hbWljRm9ybUdyb3VwIHwgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC52YWx1ZXMoZm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1JdGVtID0gY29udHJvbC5mb3JtSXRlbTtcblxuICAgICAgICAgICAgaWYgKCFpc0Zvcm1GaWVsZEl0ZW0oZm9ybUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fdHJpZ2dlckZpZWxkc09uY2hhbmdlKGNvbnRyb2wgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZm9ybUl0ZW0ub25jaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS5vbmNoYW5nZShjb250cm9sLnZhbHVlIGFzIGFueSwgdGhpcy5mb3JtcywgY29udHJvbCBhcyBEeW5hbWljRm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUob2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xvbmVPbGRGb3JtR3JvdXAobmV3R3JvdXA6IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLCBvbGRHcm91cD86IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5rZXlzKG5ld0dyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IG5ld0dyb3VwLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICBjb25zdCBvbGRDb250cm9sID0gb2xkR3JvdXA/LmdldChjb250cm9sTmFtZSkgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXA7XG4gICAgICAgICAgICBpZiAoIW9sZENvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2xvbmVPbGRGb3JtR3JvdXAoY29udHJvbCwgb2xkQ29udHJvbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250cm9sPy5zZXRWYWx1ZShvbGRDb250cm9sLnZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAgICAgICAgIGlmIChvbGRDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
443
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQW9CLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sd0JBQXdCLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVk1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUV0SDs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFvQjdCLGNBQWM7SUFDZCxZQUNZLEdBQWdCLEVBQ2hCLG1CQUEyRCxFQUkzRCxrQkFBaUQsRUFJakQsZUFBNkM7UUFUN0MsUUFBRyxHQUFILEdBQUcsQ0FB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Q0FBQztJQUVELGNBQWM7SUFDTixrQkFBa0IsQ0FBQyxRQUFpQyxFQUFFLFFBQWtDO1FBQzVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25ELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQTRCLENBQUM7WUFDekUsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDYixPQUFPO2FBQ1Y7WUFDRCxJQUFJLE9BQU8sWUFBWSx1QkFBdUIsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDN0MsT0FBTzthQUNWO1lBRUQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFMUQsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUNwQixPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUM7YUFDNUI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMWlCUSxvQkFBb0IsbUdBMEJqQiwwQkFBMEIsNkNBSTFCLHFCQUFxQjtrSEE5QnhCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBeUJGLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsMEJBQTBCOzswQkFFakMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiwgVHlwZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzRnVuY3Rpb24sIHNlbGVjdFN0cmF0ZWd5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2wgfSBmcm9tICcuL2Jhc2UtZHluYW1pYy1mb3JtLWdlbmVyYXRvci1jb250cm9sJztcbmltcG9ydCB7IERFRkFVTFRfVkFMSURBVElPTl9FUlJPUlMgfSBmcm9tICcuL2NvbmZpZy9kZWZhdWx0LXZhbGlkYXRpb24tZXJyb3JzJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbCwgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsIER5bmFtaWNGb3JtR3JvdXBDb250cm9sIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50c0FjY2Vzc29yU2VydmljZSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3ItY29tcG9uZW50cy1hY2Nlc3Nvci5zZXJ2aWNlJztcbmltcG9ydCB7IGlzRm9ybUZpZWxkSXRlbSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1ncm91cCc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgIER5bmFtaWNGb3JtSXRlbSxcbiAgICBEeW5hbWljRm9ybUl0ZW1DaG9pY2VUeXBlcyxcbiAgICBEeW5hbWljRm9ybUl0ZW1NYXAsXG4gICAgRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtXG59IGZyb20gJy4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50RGVmaW5pdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9mb3JtLWNvbXBvbmVudC1kZWZpbml0aW9uJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvZm9ybS1nZW5lcmF0b3ItbW9kdWxlLWNvbmZpZyc7XG5pbXBvcnQgeyBGT1JNX0dFTkVSQVRPUl9DT05GSUcsIEZPUk1fR0VORVJBVE9SX0lURU1fQ09ORklHLCBkZWZhdWx0Rm9ybUdlbmVyYXRvckNvbmZpZyB9IGZyb20gJy4vcHJvdmlkZXJzL3Byb3ZpZGVycyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gZ2VuZXJhdG9yIHNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0b3JTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBNYXAgb2YgZ2VuZXJhdGVkIGZvcm1zIHRvIGFjY2VzcyBsYXRlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBmb3JtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1Hcm91cD4gPSBuZXcgTWFwPHN0cmluZywgRHluYW1pY0Zvcm1Hcm91cD4oKTtcblxuICAgIC8qKlxuICAgICAqIFByZWRlZmluZWQgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcy5cbiAgICAgKi9cbiAgICB2YWxpZGF0aW9uRXJyb3JIaW50cyA9IERFRkFVTFRfVkFMSURBVElPTl9FUlJPUlM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZzogRm9ybUdlbmVyYXRvckNvbmZpZyA9IGRlZmF1bHRGb3JtR2VuZXJhdG9yQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIF9jb21wb25lbnRzQWNjZXNzb3I6IEZvcm1HZW5lcmF0b3JDb21wb25lbnRzQWNjZXNzb3JTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2tpcFNlbGYoKVxuICAgICAgICBASW5qZWN0KEZPUk1fR0VORVJBVE9SX0lURU1fQ09ORklHKVxuICAgICAgICBwcml2YXRlIF9kZWZhdWx0SXRlbUNvbmZpZzogUGFydGlhbDxEeW5hbWljRm9ybUZpZWxkSXRlbT4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTa2lwU2VsZigpXG4gICAgICAgIEBJbmplY3QoRk9STV9HRU5FUkFUT1JfQ09ORklHKVxuICAgICAgICBwcml2YXRlIF9wcm92aWRlZENvbmZpZzogUGFydGlhbDxGb3JtR2VuZXJhdG9yQ29uZmlnPlxuICAgICkge1xuICAgICAgICB0aGlzLl9jb25maWcgPSBtZXJnZShjbG9uZURlZXAodGhpcy5fY29uZmlnKSwgY2xvbmVEZWVwKHRoaXMuX3Byb3ZpZGVkQ29uZmlnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBgRm9ybUdyb3VwYCBjbGFzcyB3aXRoIHRoZSBsaXN0IG9mIGBEeW5hbWljRm9ybUNvbnRyb2xgIGNvbnRyb2wgY2xhc3Nlc1xuICAgICAqIGRlZmluZWQgaW4gYGZvcm1JdGVtc2AgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIGZvcm1OYW1lIEZvcm0gbmFtZS5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1zIHRoZSBsaXN0IG9mIGZvcm0gaXRlbXMgd2hpY2ggdXNlZCBmb3IgZm9ybSBjb250cm9sIGdlbmVyYXRpb24uXG4gICAgICogQHJldHVybnMgYEZvcm1Hcm91cGAgY2xhc3Mgd2l0aCB0aGUgbGlzdCBvZiBgRHluYW1pY0Zvcm1Db250cm9sYCBjb250cm9sIGNsYXNzZXMuXG4gICAgICovXG4gICAgYXN5bmMgZ2VuZXJhdGVGb3JtKGZvcm1OYW1lOiBzdHJpbmcsIGZvcm1JdGVtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1JdGVtTWFwPik6IFByb21pc2U8RHluYW1pY0Zvcm1Hcm91cD4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ0Zvcm0gPSB0aGlzLmZvcm1zLmdldChmb3JtTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7fSkgYXMgRHluYW1pY0Zvcm1Hcm91cDtcblxuICAgICAgICBjb25zdCBkZWZhdWx0Rm9ybUdyb3VwID0gbmV3IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7fVxuICAgICAgICApO1xuXG4gICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuZm9ybUl0ZW0uaXRlbXMgPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgZm9ybUl0ZW1zID0gdGhpcy5fdHJhbnNmb3JtRm9ybUl0ZW1zKGZvcm1JdGVtcyk7XG5cbiAgICAgICAgZm9ybUl0ZW1zLmZvckVhY2goKGZvcm1JdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1JdGVtLml0ZW1zIHx8IGZvcm1JdGVtLml0ZW1zLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKGZvcm1JdGVtLCB7fSk7XG5cbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5pdGVtcy5mb3JFYWNoKChncm91cEZvcm1JdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwRm9ybUNvbnRyb2wgPSB0aGlzLl9nZW5lcmF0ZUR5bmFtaWNGb3JtSXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwRm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmFkZENvbnRyb2woZ3JvdXBGb3JtSXRlbS5uYW1lLCBncm91cEZvcm1Db250cm9sKTtcblxuICAgICAgICAgICAgICAgICAgICBncm91cEZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZm9ybS5hZGRDb250cm9sKGZvcm1JdGVtLm5hbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5fZ2VuZXJhdGVEeW5hbWljRm9ybUl0ZW0oZm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSwgZm9ybSk7XG5cbiAgICAgICAgICAgIGlmICghZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuYWRkQ29udHJvbChmb3JtSXRlbS5uYW1lLCBmb3JtQ29udHJvbCk7XG5cbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuZm9ybUl0ZW0uaXRlbXM/LnNldChmb3JtSXRlbS5uYW1lLCBmb3JtSXRlbSk7XG5cbiAgICAgICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbE5hbWVzID0gT2JqZWN0LmtleXMoZGVmYXVsdEZvcm1Hcm91cC5jb250cm9scyk7XG5cbiAgICAgICAgZm9ybS5hZGRDb250cm9sKHRoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWUsIGRlZmF1bHRGb3JtR3JvdXApO1xuXG4gICAgICAgIC8vIEFmdGVyIHdlIGNyZWF0ZWQgaW5pdGlhbCBmb3JtLCB3ZSBuZWVkIHRvIGdldCBkeW5hbWljIGxhYmVscywgY2hvaWNlcyBhbmQgdmFsdWVcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZm9ybUNvbnRyb2xOYW1lcykge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBmb3JtSXRlbXMuZ2V0KGtleSk7XG5cbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGZvcm1JdGVtKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBbW21lc3NhZ2UsIHBsYWNlaG9sZGVyLCBkZWZhdWx0VmFsdWVdLCBjaG9pY2VzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLl9nZXRGb3JtSXRlbVByb3BlcnRpZXM8W3N0cmluZywgc3RyaW5nLCBhbnldPihmb3JtSXRlbSwgZGVmYXVsdEZvcm1Hcm91cCwgW1xuICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgICAgICdwbGFjZWhvbGRlcicsXG4gICAgICAgICAgICAgICAgICAgICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIHRoaXMuX2dldEZvcm1JdGVtQ2hvaWNlcyhmb3JtSXRlbSwgZGVmYXVsdEZvcm1Hcm91cClcbiAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICBmb3JtSXRlbS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgICAgIGZvcm1JdGVtLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBmb3JtSXRlbS5kZWZhdWx0ID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgZm9ybUl0ZW0uY2hvaWNlcyA9IGNob2ljZXM7XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBmb3JtIHZhbHVlIHNpbmNlIGl0IG1pZ2h0IGJlIGNoYW5nZWRcbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuY29udHJvbHNbZm9ybUl0ZW0ubmFtZV0uc2V0VmFsdWUoZm9ybUl0ZW0uZGVmYXVsdCk7XG5cbiAgICAgICAgICAgIGRlZmF1bHRGb3JtR3JvdXAuY29udHJvbHNba2V5XS5mb3JtSXRlbSA9IGZvcm1JdGVtIGFzIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udHJvbCA9IGZvcm0uZ2V0KGNvbnRyb2xOYW1lKSBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cDtcbiAgICAgICAgICAgIGNvbnN0IG9sZENvbnRyb2wgPSBleGlzdGluZ0Zvcm0/LmdldChjb250cm9sTmFtZSkgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXA7XG4gICAgICAgICAgICB0aGlzLl9jbG9uZU9sZEZvcm1Hcm91cChuZXdDb250cm9sLCBvbGRDb250cm9sKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3Jtcy5zZXQoZm9ybU5hbWUsIGZvcm0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbnRyb2wgdG8gYSBmb3JtLlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYWRkXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBvZiB0aGUgY29udHJvbCB0byBiZSBhZGRlZC5cbiAgICAgKiBAcGFyYW0gcGF0aCBHcm91cCBwYXRoLlxuICAgICAqL1xuICAgIGFzeW5jIGFkZENvbnRyb2woY29udHJvbDogRHluYW1pY0Zvcm1JdGVtLCBmb3JtOiBEeW5hbWljRm9ybUdyb3VwLCBwYXRoOiBzdHJpbmdbXSA9IFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woZm9ybSwgLi4ucGF0aCk7XG5cbiAgICAgICAgaWYgKGZvcm1Hcm91cCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuX2dlbmVyYXRlRHluYW1pY0Zvcm1JdGVtKGNvbnRyb2wgYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSwgZm9ybSk7XG4gICAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChjb250cm9sLm5hbWUsIGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGNvbnRyb2wgd2l0aCBnaXZlbiBuYW1lIGZyb20gdGhlIGZvcm0uXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lXG4gICAgICogQHBhcmFtIHBhdGhcbiAgICAgKi9cbiAgICByZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsIHBhdGg6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtQ29udHJvbChmb3JtLCAuLi5wYXRoKTtcblxuICAgICAgICBpZiAoZm9ybUdyb3VwIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGZvcm0gdmFsdWUgd2l0aCBhcHBsaWVkIGZpbHRlcnMgYW5kIHRyYW5zZm9ybWVycy5cbiAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIGdlbmVyYXRvciBmb3JtXG4gICAgICogQHBhcmFtIHJlbmRlclZhbHVlIFdoZXRoZXIgb3Igbm90IGZvcm0gdmFsdWUgd2lsbCBiZSB1c2VkIGZvciByZW5kZXJpbmcgcHVycG9zZXMuXG4gICAgICogQHJldHVybnMgZm9ybSB2YWx1ZSBvYmplY3QuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0Rm9ybVZhbHVlKFxuICAgICAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwIHwgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsXG4gICAgICAgIHJlbmRlclZhbHVlID0gZmFsc2VcbiAgICApOiBQcm9taXNlPER5bmFtaWNGb3JtVmFsdWU+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fdHJpZ2dlckZpZWxkc09uY2hhbmdlKGZvcm0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGNsb25lRGVlcChmb3JtLnZhbHVlKTtcblxuICAgICAgICBmb3IgKGNvbnN0IFtpLCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtO1xuXG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbaV0gPSBhd2FpdCB0aGlzLmdldEZvcm1WYWx1ZShjb250cm9sIGFzIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLCByZW5kZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtSXRlbS5zaG91bGRTaG93ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBmb3JtVmFsdWVbaV07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtSXRlbS50cmFuc2Zvcm1lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGZvcm1JdGVtLnRyYW5zZm9ybWVyKGZvcm1WYWx1ZVtpXSwgZm9ybVZhbHVlLCBmb3JtSXRlbSk7XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW2ldID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVuZGVyVmFsdWUgJiYgZm9ybUl0ZW0udmFsdWVSZW5kZXJlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGZvcm1JdGVtLnZhbHVlUmVuZGVyZXIoZm9ybVZhbHVlW2ldLCBmb3JtVmFsdWUsIGZvcm1JdGVtKTtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbaV0gPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW5kZXJWYWx1ZSAmJiBmb3JtSXRlbVsnY29udHJvbFR5cGUnXSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZVtpXSA9IHRoaXMuX2Zvcm1hdFBhc3N3b3JkVmFsdWUoZm9ybVZhbHVlW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRGb3JtVmFsdWVXaXRob3V0VW5ncm91cGVkKGZvcm1WYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZHMgY3VzdG9tIGNvbXBvbmVudCB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgY29tcG9uZW50cyBmb3IgdGhlIGZvcm0gZ2VuZXJhdG9yIGl0ZW1zLlxuICAgICAqIEBwYXJhbSBjb21wb25lbnQgQW5ndWxhciBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIHR5cGVzIHR5cGVzIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgYWRkQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTxCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sPiwgdHlwZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRzQWNjZXNzb3IuYWRkQ29tcG9uZW50KGNvbXBvbmVudCwgdHlwZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGJlc3QtbWF0Y2hlZCBjb21wb25lbnQgYmFzZWQgb24gcHJvdmlkZWQgYHR5cGVgIGFyZ3VtZW50XG4gICAgICogQHBhcmFtIHR5cGUgZm9ybSBpdGVtIHR5cGVcbiAgICAgKiBAcmV0dXJucyBAc2VlIEZvcm1Db21wb25lbnREZWZpbml0aW9uIENvbXBvbmVudCBkZWZpbml0aW9uIGZvciB0aGUgZm9ybSBpdGVtXG4gICAgICovXG4gICAgZ2V0Q29tcG9uZW50RGVmaW5pdGlvbkJ5VHlwZSh0eXBlOiBzdHJpbmcpOiBGb3JtQ29tcG9uZW50RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRzQWNjZXNzb3IuZ2V0Q29tcG9uZW50RGVmaW5pdGlvbkJ5VHlwZSh0eXBlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBPYmplY3Qgb2YgYXZhaWxhYmxlIGVycm9ycywgd2hlcmUga2V5IGlzIGFuIGVycm9yIHR5cGUsXG4gICAgICogYW5kIGl0J3MgdmFsdWUgaXMgYSBkaXNwbGF5IHRleHQuXG4gICAgICovXG4gICAgZ2V0VmFsaWRhdGlvbkVycm9ySGludHMoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uRXJyb3JIaW50c1trZXldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGRzIGN1c3RvbSBlcnJvciBoaW50IGRlZmluZWQgYnkgdXNlci5cbiAgICAgKiBAcGFyYW0gdHlwZSBlcnJvciB0eXBlIGZyb20gdmFsaWRhdG9yLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBkaXNwbGF5IHRleHQuXG4gICAgICovXG4gICAgYWRkVmFsaWRhdGlvbkVycm9ySGludCh0eXBlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JIaW50c1t0eXBlXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgc29tZSBpdGVtcyBvZiB0aGUgZm9ybSBzaG91bGQgYmUgaGlkZGVuLFxuICAgICAqIG9yIHZpc2libGUgYmFzZWQgb24gYHdoZW5gIG1ldGhvZCByZXN1bHQuXG4gICAgICogQHBhcmFtIGZvcm1cbiAgICAgKiBAcmV0dXJucyBgU2V0YCB3aGVyZSBrZXkgaXMgaXRlbSBuYW1lLCBhbmQgYm9vbGVhbiB2YWx1ZSBpZiBmaWVsZCBuZWVkcyB0byBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBhc3luYyBjaGVja1Zpc2libGVGb3JtSXRlbXMoZm9ybTogRHluYW1pY0Zvcm1Hcm91cCk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5fZ2V0Rm9ybVZhbHVlV2l0aG91dFVuZ3JvdXBlZChjbG9uZURlZXAoZm9ybS52YWx1ZSkpO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY2hlY2tGb3JtQ29udHJvbHNWaXNpYmlsaXR5KGZvcm0sIGZvcm1WYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGZvciBzZWFyY2hpbmcgYSBmb3JtIGNvbnRyb2wgaW5zaWRlIGZvcm0gZ3JvdXAuIENhbiBhbHNvIHNlYXJjaCBpbnNpZGUgdW5ncm91cGVkIGZvcm0gZ3JvdXAuXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBncm91cC5cbiAgICAgKiBAcGFyYW0gY29udHJvbE5hbWVzIE5hbWUgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAgICAgKiBAcmV0dXJucyBGb3VuZCBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgZ2V0Rm9ybUNvbnRyb2woZm9ybTogRHluYW1pY0Zvcm1Hcm91cCwgLi4uY29udHJvbE5hbWVzOiBzdHJpbmdbXSk6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sIHtcbiAgICAgICAgY29udHJvbE5hbWVzID0gY29udHJvbE5hbWVzLnJlZHVjZSgobmFtZXM6IHN0cmluZ1tdLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICBuYW1lcyA9IFsuLi5uYW1lcywgLi4ubmFtZS5zcGxpdCh0aGlzLl9jb25maWcuY29udHJvbE5hbWVTZXBhcmF0b3IpXTtcblxuICAgICAgICAgICAgcmV0dXJuIG5hbWVzO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgbGV0IGNvbnRyb2wgPSBmb3JtPy5nZXQoY29udHJvbE5hbWVzKTtcblxuICAgICAgICAvLyBJZiBubyBjb250cm9sIGZvdW5kLCB0cnkgdG8gZmluZCBpdCBpbiB1bmdyb3VwZWQgZ3JvdXBcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICBjb250cm9sID0gZm9ybT8uZ2V0KFt0aGlzLl9jb25maWcudW5ncm91cGVkQ29udHJvbHNOYW1lLCAuLi5jb250cm9sTmFtZXNdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250cm9sIGFzIER5bmFtaWNGb3JtR3JvdXBDb250cm9sO1xuICAgIH1cblxuICAgIC8qKiBSZXNldHMgdGhlIGZvcm0gdG8gaXQncyBpbml0aWFsIHN0YXRlLiAqL1xuICAgIHJlc2V0Rm9ybShmb3JtOiBEeW5hbWljRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBPYmplY3QudmFsdWVzKGZvcm0uY29udHJvbHMpKSB7XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oY29udHJvbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gR2V0IGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoY29udHJvbC5mb3JtSXRlbS5kZWZhdWx0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQodmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh2YWx1ZVt0aGlzLl9jb25maWcudW5ncm91cGVkQ29udHJvbHNOYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgdW5ncm91cGVkR3JvdXBWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHZhbHVlW3RoaXMuX2NvbmZpZy51bmdyb3VwZWRDb250cm9sc05hbWVdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbZmllbGROYW1lLCBmaWVsZFZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh1bmdyb3VwZWRHcm91cFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlW2ZpZWxkTmFtZV0gPSBmaWVsZFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSB2YWx1ZVt0aGlzLl9jb25maWcudW5ncm91cGVkQ29udHJvbHNOYW1lXTtcblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hc3NpZ25Gb3JtSXRlbVZhbGlkYXRvcnMoXG4gICAgICAgIGZvcm1JdGVtOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwXG4gICAgKTogUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbSB7XG4gICAgICAgIGxldCB2YWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yRm4gfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihmb3JtSXRlbS52YWxpZGF0ZSkpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvciA9IGFzeW5jIChjb250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udmFsaWRhdGUhKGNvbnRyb2wudmFsdWUsIHRoaXMuX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQoZm9ybSkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0dXJuT2JqID0ge307XG5cbiAgICAgICAgICAgICAgICByZXR1cm5PYmpbYCR7KDxEeW5hbWljRm9ybUNvbnRyb2w+Y29udHJvbCkuZm9ybUl0ZW0ubmFtZX1WYWxpZGF0b3JgXSA9XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHQgPT09ICdib29sZWFuJyA/IHRydWUgOiByZXN1bHQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ID09PSBudWxsID8gcmVzdWx0IDogcmV0dXJuT2JqO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzID0gZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzIHx8IFtdO1xuICAgICAgICAgICAgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzID09PSAnZnVuY3Rpb24nID8gW2Zvcm1JdGVtLmFzeW5jVmFsaWRhdG9yc10gOiBmb3JtSXRlbS5hc3luY1ZhbGlkYXRvcnM7XG5cbiAgICAgICAgICAgIGZvcm1JdGVtLmFzeW5jVmFsaWRhdG9ycy5wdXNoKHZhbGlkYXRvcik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtSXRlbS52YWxpZGF0b3JzID0gZm9ybUl0ZW0udmFsaWRhdG9ycyB8fCBbVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yXTtcblxuICAgICAgICBmb3JtSXRlbS5yZXF1aXJlZCA9IGZvcm1JdGVtLnJlcXVpcmVkIHx8IGZvcm1JdGVtLnZhbGlkYXRvcnMuaW5jbHVkZXMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1JdGVtO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVEeW5hbWljRm9ybUl0ZW0oXG4gICAgICAgIGZvcm1JdGVtOiBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtLFxuICAgICAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwXG4gICAgKTogRHluYW1pY0Zvcm1Db250cm9sIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgZm9ybUl0ZW1Db21wb25lbnRUeXBlID0gdGhpcy5nZXRDb21wb25lbnREZWZpbml0aW9uQnlUeXBlKGZvcm1JdGVtLnR5cGUpO1xuXG4gICAgICAgIGlmICghZm9ybUl0ZW1Db21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEZvcm0gaXRlbSAnJHtmb3JtSXRlbS5uYW1lfScgd2l0aCB0eXBlICcke2Zvcm1JdGVtLnR5cGV9JyBoYXMgbm8gZGVmaW5lZCBjb21wb25lbnQuXG4gICAgICAgICAgICBQbGVhc2UgdXNlICdhZGRDb21wb25lbnQnIG1ldGhvZCBpbiAke0Zvcm1HZW5lcmF0b3JTZXJ2aWNlLm5hbWV9IHRvIGRlZmluZSBhcHByb3ByaWF0ZSByZWxhdGlvbnMuYCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1JdGVtID0gdGhpcy5fYXNzaWduRm9ybUl0ZW1WYWxpZGF0b3JzKGZvcm1JdGVtLCBmb3JtKTtcblxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IG5ldyBEeW5hbWljRm9ybUNvbnRyb2woZm9ybUl0ZW0uZGVmYXVsdCwge1xuICAgICAgICAgICAgdmFsaWRhdG9yczogZm9ybUl0ZW0udmFsaWRhdG9ycyxcbiAgICAgICAgICAgIGFzeW5jVmFsaWRhdG9yczogZm9ybUl0ZW0uYXN5bmNWYWxpZGF0b3JzLFxuICAgICAgICAgICAgZHluYW1pY0Zvcm1JdGVtOiBmb3JtSXRlbSxcbiAgICAgICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihmb3JtSXRlbS5vbmNoYW5nZSkpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS5vbmNoYW5nZSEodmFsdWUsIHRoaXMuZm9ybXMsIGZvcm1Db250cm9sKTtcblxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9jaGVja0Zvcm1Db250cm9sc1Zpc2liaWxpdHkoXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAgfCBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICAgICAgZm9ybVZhbHVlOiBhbnlcbiAgICApOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9PiB7XG4gICAgICAgIGxldCBzaG91bGRTaG93RmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICAgICAgICBmb3JtID0gZm9ybSBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwID8gZm9ybSA6IGZvcm07XG5cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtO1xuXG4gICAgICAgICAgICBpZiAoIWlzRm9ybUZpZWxkSXRlbShmb3JtSXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cFZpc2libGVJdGVtcyA9IGF3YWl0IHRoaXMuX2NoZWNrRm9ybUNvbnRyb2xzVmlzaWJpbGl0eShcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbCBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCxcbiAgICAgICAgICAgICAgICAgICAgZm9ybVZhbHVlXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHNob3VsZFNob3dGaWVsZHMgPSBPYmplY3QuYXNzaWduKHNob3VsZFNob3dGaWVsZHMsIGdyb3VwVmlzaWJsZUl0ZW1zKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFmb3JtSXRlbS53aGVuKSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0ZpZWxkc1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0ud2hlbihmb3JtVmFsdWUsIHRoaXMuZm9ybXMsIGNvbnRyb2wpO1xuICAgICAgICAgICAgc2hvdWxkU2hvd0ZpZWxkc1trZXldID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNob3VsZFNob3dGaWVsZHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxuICAgICAqIEBwYXJhbSBmb3JtXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0Rm9ybUl0ZW1Qcm9wZXJ0eVZhbHVlPFQgPSBzdHJpbmc+KFxuICAgICAgICBmb3JtSXRlbTogRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsXG4gICAgICAgIGtleToga2V5b2YgRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gZm9ybUl0ZW1ba2V5XTtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCBvYmogPSB2YWx1ZSh0aGlzLl9nZXRGb3JtVmFsdWVXaXRob3V0VW5ncm91cGVkKGZvcm0pKTtcblxuICAgICAgICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUodmFsdWUpKSBhcyBUO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0Rm9ybUl0ZW1Qcm9wZXJ0aWVzPFRUeXBlcyBleHRlbmRzIGFueVtdID0gYW55W10+KFxuICAgICAgICBmb3JtSXRlbTogRHluYW1pY0Zvcm1GaWVsZEl0ZW0sXG4gICAgICAgIGZvcm06IER5bmFtaWNGb3JtR3JvdXAsXG4gICAgICAgIGtleXM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTxUVHlwZXM+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuX2dldEZvcm1JdGVtUHJvcGVydHlWYWx1ZShmb3JtSXRlbSwgZm9ybSwga2V5KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKSkgYXMgVFR5cGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cbiAgICAgKiBAcGFyYW0gZm9ybVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0Rm9ybUl0ZW1DaG9pY2VzKGZvcm1JdGVtOiBEeW5hbWljRm9ybUZpZWxkSXRlbSwgZm9ybTogRHluYW1pY0Zvcm1Hcm91cCk6IFByb21pc2U8U2VsZWN0SXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDaG9pY2VzID0gYXdhaXQgdGhpcy5fZ2V0Rm9ybUl0ZW1Qcm9wZXJ0eVZhbHVlPER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzW10+KFxuICAgICAgICAgICAgZm9ybUl0ZW0sXG4gICAgICAgICAgICBmb3JtLFxuICAgICAgICAgICAgJ2Nob2ljZXMnXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFkZWZhdWx0Q2hvaWNlcykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRDaG9pY2VzLm1hcCgoYzogc3RyaW5nIHwgbnVtYmVyIHwgU2VsZWN0SXRlbSkgPT5cbiAgICAgICAgICAgIHR5cGVvZiBjID09PSAnb2JqZWN0JyA/IGMgOiAoeyBsYWJlbDogYywgdmFsdWU6IGMgfSBhcyBTZWxlY3RJdGVtKVxuICAgICAgICApIGFzIFNlbGVjdEl0ZW1bXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgdmFsdWUgZnJvbSBQcm9taXNlLWxpa2UsIE9ic2VydmFibGUtbGlrZSwgc2ltcGxlIGZ1bmN0aW9uIG9yIGp1c3Qgc29tZSBvYmplY3QuXG4gICAgICogQHBhcmFtIG9ialxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2V0RnVuY3Rpb25WYWx1ZShvYmo6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHN0cmF0ZWd5ID0gc2VsZWN0U3RyYXRlZ3kob2JqKTtcblxuICAgICAgICBsZXQgcmVzdWx0OiBhbnk7XG5cbiAgICAgICAgYXdhaXQgc3RyYXRlZ3kuY3JlYXRlU3Vic2NyaXB0aW9uKG9iaiwgKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihyZXN1bHQpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKHJlc3VsdCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybWF0UGFzc3dvcmRWYWx1ZShwYXNzd29yZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcqJy5yZXBlYXQocGFzc3dvcmQ/Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRNZXJnZWRGb3JtRmllbGRJdGVtQ29uZmlnKGZvcm1JdGVtOiBEeW5hbWljRm9ybUl0ZW1NYXApOiBEeW5hbWljRm9ybUl0ZW1NYXAge1xuICAgICAgICByZXR1cm4gbWVyZ2UoY2xvbmVEZWVwKHRoaXMuX2RlZmF1bHRJdGVtQ29uZmlnKSwgZm9ybUl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtRm9ybUl0ZW1zKGZvcm1JdGVtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1JdGVtTWFwPik6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtSXRlbU1hcD4ge1xuICAgICAgICBmb3JtSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNGb3JtRmllbGRJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtSXRlbXMuc2V0KGluZGV4LCB0aGlzLl9nZXRNZXJnZWRGb3JtRmllbGRJdGVtQ29uZmlnKGl0ZW0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1JdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX3RyaWdnZXJGaWVsZHNPbmNoYW5nZShmb3JtOiBEeW5hbWljRm9ybUdyb3VwIHwgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC52YWx1ZXMoZm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1JdGVtID0gY29udHJvbC5mb3JtSXRlbTtcblxuICAgICAgICAgICAgaWYgKCFpc0Zvcm1GaWVsZEl0ZW0oZm9ybUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fdHJpZ2dlckZpZWxkc09uY2hhbmdlKGNvbnRyb2wgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZm9ybUl0ZW0ub25jaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS5vbmNoYW5nZShjb250cm9sLnZhbHVlIGFzIGFueSwgdGhpcy5mb3JtcywgY29udHJvbCBhcyBEeW5hbWljRm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUob2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xvbmVPbGRGb3JtR3JvdXAobmV3R3JvdXA6IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLCBvbGRHcm91cD86IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5rZXlzKG5ld0dyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IG5ld0dyb3VwLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICBjb25zdCBvbGRDb250cm9sID0gb2xkR3JvdXA/LmdldChjb250cm9sTmFtZSkgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXA7XG4gICAgICAgICAgICBpZiAoIW9sZENvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2xvbmVPbGRGb3JtR3JvdXAoY29udHJvbCwgb2xkQ29udHJvbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250cm9sPy5zZXRWYWx1ZShvbGRDb250cm9sLnZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAgICAgICAgIGlmIChvbGRDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vZm9ybS1nZW5lcmF0b3IvaW50ZXJmYWNlcy9keW5hbWljLWZvcm0taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yRm4sIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29sb3JBY2NlbnQsIENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRmREYXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RhdGV0aW1lJztcbmltcG9ydCB7IE9iamVjdFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9vYmplY3Qtc3RhdHVzJztcbmltcG9ydCB7IENvbHVtbkxheW91dCwgRmllbGRIaW50SW5wdXQsIEhpbnRJbnB1dCwgSW5saW5lTGF5b3V0LCBTZWxlY3RJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgVGV4dEFsaWdubWVudCB9IGZyb20gJy4uLy4uL2NvbWJvYm94JztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wsIER5bmFtaWNGb3JtR3JvdXBDb250cm9sIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWdyb3VwJztcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1JdGVtQ2hvaWNlPFQgPSBhbnk+ID1cbiAgICB8IER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQ+W11cbiAgICB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8VD5bXT5cbiAgICB8IFByb21pc2U8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8VD5bXT47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQgPSBhbnk+ID0gbnVtYmVyIHwgc3RyaW5nIHwgU2VsZWN0SXRlbTxUPjtcbi8qKiBBZHZhbmNlZCBlcnJvciB0eXBlLiBVc2VkIHRvIHJlbmRlciBtb3JlIGNvbXBsZXggZXJyb3IgdmlldyB3aXRoIGN1c3RvbSBlcnJvciB0eXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAvKiogRXJyb3IgaGVhZGluZy4gKi9cbiAgICBoZWFkaW5nOiBzdHJpbmc7XG4gICAgLyoqIEVycm9yIGRlc2NyaXB0aW9uLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIC8qKiBFcnJvciBzdGF0ZSAqL1xuICAgIHR5cGU6IEZvcm1TdGF0ZXM7XG59XG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0ID0gbnVsbCB8IGJvb2xlYW4gfCBzdHJpbmcgfCBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0O1xuLyoqXG4gKiBEeW5hbWljIGZvcm0gaXRlbSB0eXBlLlxuICpcbiAqIGBUYCB0eXBlIHJlcHJlc2VudHMgYWRkaXRpb25hbCB0eXBlIHByb3BlcnRpZXMuXG4gKiBgVWAgdHlwZSByZXByZXNlbnRzIGFkZGl0aW9uYWwgYER5bmFtaWNGb3JtRmllbGRJdGVtYCBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbTxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHwgRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCwgVT47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbU1hcDxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gRHluYW1pY0Zvcm1GaWVsZEdyb3VwTWFwIHwgRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCwgVT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUR5bmFtaWNGb3JtRmllbGRHcm91cCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSUQgb2YgdGhlIGZvcm0gaXRlbSwgaWYgbm90IHByb3ZpZGVkLCBuYW1lIHdpbGwgYmUgdXNlZCBpbnN0ZWFkXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGl0ZW0gaW4gZm9ybS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IG5hbWUgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgbWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJhbmsgaXMgdXNlZCBmb3Igb3JkZXJpbmcuXG4gICAgICogVGhhbiBsb3dlciBudW1iZXIgdGhlbiBoaWdoZXIgcHJpb3JpdHkuXG4gICAgICovXG4gICAgcmFuaz86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEFkZGl0aW9uYWwgc2V0IG9mIG9wdGlvbnMgdGhhdCBjYW4gYWZmZWN0IFVJIG9mIHRoZSBmb3JtIGZpZWxkIGdyb3VwLlxuICAgICAqL1xuICAgIGd1aU9wdGlvbnM/OiBCYXNlRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUZpZWxkR3JvdXAgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBMaXN0IG9mIEBzZWUgRHluYW1pY0Zvcm1JdGVtIHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpdGVtc1xuICAgICAqIHRvIGJlIHJlbmRlcmVkIGluIHRoZSBmb3JtLlxuICAgICAqL1xuICAgIGl0ZW1zPzogRHluYW1pY0Zvcm1GaWVsZEl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUZpZWxkR3JvdXBNYXAgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBNYXAgb2YgQHNlZSBEeW5hbWljRm9ybUl0ZW0gcmVwcmVzZW50aW5nIHRoZSBsaXN0IG9mIGl0ZW1zXG4gICAgICogdG8gYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0uXG4gICAgICovXG4gICAgaXRlbXM/OiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUl0ZW1NYXA+O1xufVxuXG5leHBvcnQgdHlwZSBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxUID0gc3RyaW5nPiA9IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPjtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCA9IGFueT4ge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFR5cGUgb2YgdGhlIGZvcm0gaXRlbS4gRS5nLiBpbnB1dCwgdGV4dGFyZWEsIGNoZWNrYm94LCBldGMuXG4gICAgICovXG4gICAgdHlwZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElEIG9mIHRoZSBmb3JtIGl0ZW0sIGlmIG5vdCBwcm92aWRlZCwgbmFtZSB3aWxsIGJlIHVzZWQgaW5zdGVhZFxuICAgICAqL1xuICAgIGlkPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogTmFtZSBvZiB0aGUgZm9ybSBpdGVtIGluIGZvcm0uXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGlzcGxheSBuYW1lIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqL1xuICAgIG1lc3NhZ2U6XG4gICAgICAgIHwgRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8c3RyaW5nPlxuICAgICAgICB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8c3RyaW5nPik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IHBsYWNlaG9sZGVyIG9mIHRoZSBmb3JtIGl0ZW0uXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqL1xuICAgIHBsYWNlaG9sZGVyPzpcbiAgICAgICAgfCBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxzdHJpbmc+XG4gICAgICAgIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxzdHJpbmc+KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHRydWUsIHdpbGwgZmFsbCBiYWNrIHRvIGBtZXNzYWdlYCBwcm9wZXJ0eSBpZiBgcGxhY2Vob2xkZXJgIHdhcyBub3QgcHJvdmlkZWQuXG4gICAgICovXG4gICAgdXNlTWVzc2FnZUFzUGxhY2Vob2xkZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBvZiB0aGUgZm9ybSBpdGVtLlxuICAgICAqL1xuICAgIGRlZmF1bHQ/OiBGZHBGb3JtR2VuZXJhdG9yQXN5bmNQcm9wZXJ0eTxUPiB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8VD4pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogUmVjZWl2ZSB0aGUgdXNlciBpbnB1dCBhbmQgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIFNob3VsZCByZXR1cm4gbnVsbCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGFuZCBhbiBlcnJvciBtZXNzYWdlIChTdHJpbmcpIG9yIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAqIElmIGBmYWxzZWAgaXMgcmV0dXJuZWQsIGEgZGVmYXVsdCBlcnJvciBtZXNzYWdlIGlzIHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIEByZXR1cm5zIG51bGwgb3IgU3RyaW5nXG4gICAgICovXG4gICAgdmFsaWRhdGU/OiAoXG4gICAgICAgIGZvcm1JdGVtVmFsdWU6IFQsXG4gICAgICAgIGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWVcbiAgICApID0+XG4gICAgICAgIHwgRHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdFxuICAgICAgICB8IFByb21pc2U8RHluYW1pY0Zvcm1JdGVtVmFsaWRhdGlvblJlc3VsdD5cbiAgICAgICAgfCBPYnNlcnZhYmxlPER5bmFtaWNGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHQ+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgdmFsaWRhdG9ycyBhcHBsaWVkIHRvIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW10gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgYXN5bmMgdmFsaWRhdG9ycyBhcHBsaWVkIHRvIHRoZSBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2V0IHdoZW4gZm9ybSBpdGVtIGlzIGEgbWFuZGF0b3J5IG9uZS5cbiAgICAgKi9cbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmb3JtcyByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbSBAc2VlIER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICogQHJldHVybnMgdXBkYXRlZCBmb3JtIGl0ZW0gdmFsdWUgdG8gYmUgdXNlZCBpbiB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqL1xuICAgIHRyYW5zZm9ybWVyPzogKFxuICAgICAgICBmb3JtSXRlbVZhbHVlOiBULFxuICAgICAgICBmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlLFxuICAgICAgICBmb3JtSXRlbT86IER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNmb3JtcyByYXcgZm9ybSBpdGVtIHZhbHVlIGZvciByZW5kZXIgcHVycG9zZXMuXG4gICAgICogQHBhcmFtIGZvcm1JdGVtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogQHBhcmFtIGZvcm1JdGVtIEBzZWUgRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgKiBAcmV0dXJucyB1cGRhdGVkIGZvcm0gaXRlbSB2YWx1ZSB0byBiZSB1c2VkIGluIHRoZSBmb3JtIHZhbHVlIGhhc2ggZm9yIHJlbmRlcmluZyBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICB2YWx1ZVJlbmRlcmVyPzogKFxuICAgICAgICBmb3JtSXRlbVZhbHVlOiBULFxuICAgICAgICBmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlLFxuICAgICAgICBmb3JtSXRlbT86IER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoaXMgZm9ybSBpdGVtIHNob3VsZCBiZSBhc2tlZC5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICogQHBhcmFtIGZvcm1zIEFsbCBhdmFpbGFibGUgZm9ybXMgc3RvcmVkIGluIGZvcm0gZ2VuZXJhdG9yIHNlcnZpY2UuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgRHluYW1pYyBmb3JtIGNvbnRyb2wuXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuICAgIHdoZW4/OiAoXG4gICAgICAgIGZvcm1WYWx1ZTogRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICAgICAgZm9ybXM6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtR3JvdXA+LFxuICAgICAgICBjb250cm9sOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbFxuICAgICkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIGFmdGVyIGZpZWxkIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICogQHBhcmFtIGZpZWxkVmFsdWUgRmllbGQgdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1zIEFsbCBhdmFpbGFibGUgZm9ybXMgc3RvcmVkIGluIGZvcm0gZ2VuZXJhdG9yIHNlcnZpY2UuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgRHluYW1pYyBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgb25jaGFuZ2U/OiAoXG4gICAgICAgIGZpZWxkVmFsdWU6IFQsXG4gICAgICAgIGZvcm1zOiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUdyb3VwPixcbiAgICAgICAgY29udHJvbDogRHluYW1pY0Zvcm1Db250cm9sXG4gICAgKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB8IE9ic2VydmFibGU8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVXNlZCBhcyBhIHN0YXRpYyBmbGFnIG9uIHNob3VsZCB0aGlzIGZvcm0gaXRlbSBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJhbmsgaXMgdXNlZCBmb3Igb3JkZXJpbmcuXG4gICAgICogVGhhbiBsb3dlciBudW1iZXIgdGhlbiBoaWdoZXIgcHJpb3JpdHkuXG4gICAgICovXG4gICAgcmFuaz86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEFkZGl0aW9uYWwgc2V0IG9mIG9wdGlvbnMgdGhhdCBjYW4gYWZmZWN0IFVJIG9mIHRoZSBmb3JtIGl0ZW0gZm9ybSBjb250cm9sLlxuICAgICAqL1xuICAgIGd1aU9wdGlvbnM/OiBEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0RHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08c3RyaW5nPiB7XG4gICAgdHlwZTogJ2lucHV0JyB8ICdlbWFpbCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQWRkaXRpb25hbCBzZXQgb2Ygb3B0aW9ucyB0aGF0IGNhbiBhZmZlY3QgVUkgb2YgdGhlIGZvcm0gaXRlbSBmb3JtIGNvbnRyb2wuXG4gICAgICovXG4gICAgY29udHJvbFR5cGU/OiBJbnB1dFR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVBpY2tlckR5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPEZkRGF0ZT4ge1xuICAgIHR5cGU6ICdkYXRlcGlja2VyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0QXJlYUR5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPHN0cmluZz4ge1xuICAgIHR5cGU6ICdlZGl0b3InIHwgJ3RleHRhcmVhJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxib29sZWFuPiB7XG4gICAgdHlwZTogJ3N3aXRjaCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RHluYW1pY0Zvcm1GaWVsZEl0ZW08VCA9IER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPGFueT4+IGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPFQ+IHtcbiAgICB0eXBlOiAnc2VsZWN0JyB8ICdsaXN0JyB8ICdtdWx0aS1pbnB1dCc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMgdG8gc2VsZWN0LlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBjaG9pY2VzPzogRHluYW1pY0Zvcm1JdGVtQ2hvaWNlIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBEeW5hbWljRm9ybUl0ZW1DaG9pY2UpO1xuXG4gICAgc2Vjb25kYXJ5S2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqIFNob3cgdGhlIHNlY29uZCBjb2x1bW4gKEFwcGxpY2FibGUgZm9yIHR3byBjb2x1bW5zIGxheW91dCkgKi9cbiAgICBzaG93U2Vjb25kYXJ5VGV4dD86IGJvb2xlYW47XG5cbiAgICAvKiogSG9yaXpvbnRhbGx5IGFsaWduIHRleHQgaW5zaWRlIHRoZSBzZWNvbmQgY29sdW1uIChBcHBsaWNhYmxlIGZvciB0d28gY29sdW1ucyBsYXlvdXQpICovXG4gICAgc2Vjb25kYXJ5VGV4dEFsaWdubWVudD86IFRleHRBbGlnbm1lbnQ7XG4gICAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSB1c2VkIHRvIGJ1aWxkIGNvbnRyb2wgYm9keS4gKi9cbiAgICBjb250cm9sVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhZGlvRHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBPbWl0PFNlbGVjdER5bmFtaWNGb3JtRmllbGRJdGVtPGFueT4sICd0eXBlJz4ge1xuICAgIHR5cGU6ICdyYWRpbycgfCAnY29uZmlybSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tib3hEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIE9taXQ8U2VsZWN0RHluYW1pY0Zvcm1GaWVsZEl0ZW08YW55PiwgJ3R5cGUnPiB7XG4gICAgdHlwZTogJ2NoZWNrYm94Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RTdGF0dXNEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxzdHJpbmc+IHtcbiAgICB0eXBlOiAnb2JqZWN0LXN0YXR1cyc7XG4gICAgZ3VpT3B0aW9ucz86IEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbVsnZ3VpT3B0aW9ucyddICYge1xuICAgICAgICBzdGF0dXM/OiBPYmplY3RTdGF0dXM7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIGluZGljYXRpb25Db2xvcj86IENvbG9yQWNjZW50O1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW55RHluYW1pY0Zvcm1GaWVsZEl0ZW08VCA9IGFueT4gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08VD4ge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyB0byBzZWxlY3QuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqL1xuICAgIGNob2ljZXM/OiBEeW5hbWljRm9ybUl0ZW1DaG9pY2UgfCAoKGZvcm1WYWx1ZT86IER5bmFtaWNGb3JtVmFsdWUpID0+IER5bmFtaWNGb3JtSXRlbUNob2ljZSk7XG59XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtRmllbGRJdGVtPFxuICAgIFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBVIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtID0gQW55RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbj4gPSBUICZcbiAgICAoXG4gICAgICAgIHwgSW5wdXREeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IERhdGVQaWNrZXJEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IFRleHRBcmVhRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBTd2l0Y2hEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IFNlbGVjdER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgUmFkaW9EeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IENoZWNrYm94RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBPYmplY3RTdGF0dXNEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IFVcbiAgICAgICAgfCBBbnlEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICk7XG5cbnR5cGUgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbUZpZWxkcyA9IHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGVmYXVsdDogYW55O1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGNob2ljZXM/OiBTZWxlY3RJdGVtW107XG59O1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIEludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIER5bmFtaWNGb3JtRmllbGRJdGVtIHdpdGggYWxsIGZpZWxkcyByZXNvbHZlZCB0byBhIHBsYWluIHZhbHVlXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbT4gPSBPbWl0PFxuICAgIFQsXG4gICAga2V5b2YgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbUZpZWxkc1xuPiAmXG4gICAgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbUZpZWxkcztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgbGFiZWxDb2x1bW5MYXlvdXQ/OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEZWZpbmVzIGZpZWxkJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBmaWVsZENvbHVtbkxheW91dD86IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZ2FwQ29sdW1uTGF5b3V0PzogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSWYgc2V0LCBoaW50IGljb24gaXMgYWRkZWQgdG8gY29udHJvbCBsYWJlbCBvciBncm91cCBoZWFkaW5nIHdpdGggdG9vbHRpcCBtZXNzYWdlIGFzIGEgdmFsdWUuXG4gICAgICovXG4gICAgaGludD86IEhpbnRJbnB1dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEluZGV4IG9mIGNvbHVtbiBpZiBmb3JtIGhhcyBtdWx0aS1jb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGNvbHVtbj86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIENvbHVtbiBhcnJhbmdlbWVudCBmb3IgZm9ybS1maWVsZCBiYXNlZCBvbiBzY3JlZW4gc2l6ZS5cbiAgICAgKi9cbiAgICBjb2x1bW5MYXlvdXQ/OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJbmxpbmUgbGF5b3V0IGZvciBsaXN0IGJhc2VkIGZvcm0gaXRlbS5cbiAgICAgKi9cbiAgICBpbmxpbmVMYXlvdXQ/OiBJbmxpbmVMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBGbGFnIGluZGljYXRpbmcgdGhhdCBsYWJlbCBzaG91bGQgYmUgaGlkZGVuLlxuICAgICAqL1xuICAgIG5vTGFiZWxMYXlvdXQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSWYgc2V0LCBjb250cm9scyBpbm5lciBlbGVtZW50cyB3aWxsIGJlIGlubGluZWQuXG4gICAgICovXG4gICAgaW5saW5lPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHNldCwgb3ZlcnJpZGVzIGN1cnJlbnQgY29udGVudCBkZW5zaXR5IG9mIHRoZSBlbGVtZW50IGRlZmluZWQgb24gdGhlIGdsb2JhbCBzY29wZS5cbiAgICAgKi9cbiAgICBjb250ZW50RGVuc2l0eT86IENvbnRlbnREZW5zaXR5O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9iamVjdCBjb250YWlucyBhZGRpdGlvbmFsIHBheWxvYWQuIFVzZWZ1bCBmb3IgY3VzdG9tIGVsZW1lbnRzIHRvIG1hbmlwdWxhdGUgaXQncyB2aWV3LlxuICAgICAqL1xuICAgIGFkZGl0aW9uYWxEYXRhPzogYW55O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSWYgbGFiZWwgc2hvdWxkIGJlIGFwcGVuZGVkIHdpdGggY29sb24uIFRydWUgYnkgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBhcHBlbmRDb2xvbj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBIaW50IG9wdGlvbnMuIEVpdGhlciBvbmx5IHRleHQgb3IgZnVsbCBjb25maWdcbiAgICAgKi9cbiAgICBoaW50PzogRmllbGRIaW50SW5wdXQ7XG59XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtVmFsdWUgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuIl19
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vZm9ybS1nZW5lcmF0b3IvaW50ZXJmYWNlcy9keW5hbWljLWZvcm0taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yRm4sIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29sb3JBY2NlbnQsIENvbnRlbnREZW5zaXR5LCBGZGtBc3luY1Byb3BlcnR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRmREYXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RhdGV0aW1lJztcbmltcG9ydCB7IE9iamVjdFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9vYmplY3Qtc3RhdHVzJztcbmltcG9ydCB7IENvbHVtbkxheW91dCwgRmllbGRIaW50SW5wdXQsIEhpbnRJbnB1dCwgSW5saW5lTGF5b3V0LCBTZWxlY3RJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgVGV4dEFsaWdubWVudCB9IGZyb20gJy4uLy4uL2NvbWJvYm94JztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wsIER5bmFtaWNGb3JtR3JvdXBDb250cm9sIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWdyb3VwJztcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1JdGVtQ2hvaWNlPFQgPSBhbnk+ID1cbiAgICB8IER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQ+W11cbiAgICB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8VD5bXT5cbiAgICB8IFByb21pc2U8RHluYW1pY0Zvcm1JdGVtQ2hvaWNlVHlwZXM8VD5bXT47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbUNob2ljZVR5cGVzPFQgPSBhbnk+ID0gbnVtYmVyIHwgc3RyaW5nIHwgU2VsZWN0SXRlbTxUPjtcbi8qKiBBZHZhbmNlZCBlcnJvciB0eXBlLiBVc2VkIHRvIHJlbmRlciBtb3JlIGNvbXBsZXggZXJyb3IgdmlldyB3aXRoIGN1c3RvbSBlcnJvciB0eXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAvKiogRXJyb3IgaGVhZGluZy4gKi9cbiAgICBoZWFkaW5nOiBzdHJpbmc7XG4gICAgLyoqIEVycm9yIGRlc2NyaXB0aW9uLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIC8qKiBFcnJvciBzdGF0ZSAqL1xuICAgIHR5cGU6IEZvcm1TdGF0ZXM7XG59XG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0ID0gbnVsbCB8IGJvb2xlYW4gfCBzdHJpbmcgfCBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0O1xuLyoqXG4gKiBEeW5hbWljIGZvcm0gaXRlbSB0eXBlLlxuICpcbiAqIGBUYCB0eXBlIHJlcHJlc2VudHMgYWRkaXRpb25hbCB0eXBlIHByb3BlcnRpZXMuXG4gKiBgVWAgdHlwZSByZXByZXNlbnRzIGFkZGl0aW9uYWwgYER5bmFtaWNGb3JtRmllbGRJdGVtYCBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbTxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHwgRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCwgVT47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtSXRlbU1hcDxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gRHluYW1pY0Zvcm1GaWVsZEdyb3VwTWFwIHwgRHluYW1pY0Zvcm1GaWVsZEl0ZW08VCwgVT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUR5bmFtaWNGb3JtRmllbGRHcm91cCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSUQgb2YgdGhlIGZvcm0gaXRlbSwgaWYgbm90IHByb3ZpZGVkLCBuYW1lIHdpbGwgYmUgdXNlZCBpbnN0ZWFkXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGl0ZW0gaW4gZm9ybS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IG5hbWUgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgbWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJhbmsgaXMgdXNlZCBmb3Igb3JkZXJpbmcuXG4gICAgICogVGhhbiBsb3dlciBudW1iZXIgdGhlbiBoaWdoZXIgcHJpb3JpdHkuXG4gICAgICovXG4gICAgcmFuaz86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEFkZGl0aW9uYWwgc2V0IG9mIG9wdGlvbnMgdGhhdCBjYW4gYWZmZWN0IFVJIG9mIHRoZSBmb3JtIGZpZWxkIGdyb3VwLlxuICAgICAqL1xuICAgIGd1aU9wdGlvbnM/OiBCYXNlRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUZpZWxkR3JvdXAgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBMaXN0IG9mIEBzZWUgRHluYW1pY0Zvcm1JdGVtIHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpdGVtc1xuICAgICAqIHRvIGJlIHJlbmRlcmVkIGluIHRoZSBmb3JtLlxuICAgICAqL1xuICAgIGl0ZW1zPzogRHluYW1pY0Zvcm1GaWVsZEl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUZpZWxkR3JvdXBNYXAgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBNYXAgb2YgQHNlZSBEeW5hbWljRm9ybUl0ZW0gcmVwcmVzZW50aW5nIHRoZSBsaXN0IG9mIGl0ZW1zXG4gICAgICogdG8gYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0uXG4gICAgICovXG4gICAgaXRlbXM/OiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUl0ZW1NYXA+O1xufVxuXG4vLyBKdXN0IHRvIGtlZXAgdGhlIG9yaWdpbmFsIHR5cGUgYXZhaWxhYmxlLlxuZXhwb3J0IHR5cGUgRmRwRm9ybUdlbmVyYXRvckFzeW5jUHJvcGVydHk8VCA9IHN0cmluZz4gPSBGZGtBc3luY1Byb3BlcnR5PFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxUID0gYW55PiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVHlwZSBvZiB0aGUgZm9ybSBpdGVtLiBFLmcuIGlucHV0LCB0ZXh0YXJlYSwgY2hlY2tib3gsIGV0Yy5cbiAgICAgKi9cbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSUQgb2YgdGhlIGZvcm0gaXRlbSwgaWYgbm90IHByb3ZpZGVkLCBuYW1lIHdpbGwgYmUgdXNlZCBpbnN0ZWFkXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGl0ZW0gaW4gZm9ybS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEaXNwbGF5IG5hbWUgb2YgdGhlIGZvcm0gaXRlbS5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHRoZSBmb3JtIHZhbHVlIGhhc2guXG4gICAgICovXG4gICAgbWVzc2FnZTogRmRrQXN5bmNQcm9wZXJ0eTxzdHJpbmc+IHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBGZGtBc3luY1Byb3BlcnR5PHN0cmluZz4pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGlzcGxheSBwbGFjZWhvbGRlciBvZiB0aGUgZm9ybSBpdGVtLlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKi9cbiAgICBwbGFjZWhvbGRlcj86IEZka0FzeW5jUHJvcGVydHk8c3RyaW5nPiB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRmRrQXN5bmNQcm9wZXJ0eTxzdHJpbmc+KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHRydWUsIHdpbGwgZmFsbCBiYWNrIHRvIGBtZXNzYWdlYCBwcm9wZXJ0eSBpZiBgcGxhY2Vob2xkZXJgIHdhcyBub3QgcHJvdmlkZWQuXG4gICAgICovXG4gICAgdXNlTWVzc2FnZUFzUGxhY2Vob2xkZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBvZiB0aGUgZm9ybSBpdGVtLlxuICAgICAqL1xuICAgIGRlZmF1bHQ/OiBGZGtBc3luY1Byb3BlcnR5PFQ+IHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBGZGtBc3luY1Byb3BlcnR5PFQ+KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlY2VpdmUgdGhlIHVzZXIgaW5wdXQgYW5kIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKiBTaG91bGQgcmV0dXJuIG51bGwgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhbmQgYW4gZXJyb3IgbWVzc2FnZSAoU3RyaW5nKSBvciBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKiBJZiBgZmFsc2VgIGlzIHJldHVybmVkLCBhIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBpcyBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1WYWx1ZSByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKiBAcmV0dXJucyBudWxsIG9yIFN0cmluZ1xuICAgICAqL1xuICAgIHZhbGlkYXRlPzogKFxuICAgICAgICBmb3JtSXRlbVZhbHVlOiBULFxuICAgICAgICBmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlXG4gICAgKSA9PlxuICAgICAgICB8IER5bmFtaWNGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgfCBQcm9taXNlPER5bmFtaWNGb3JtSXRlbVZhbGlkYXRpb25SZXN1bHQ+XG4gICAgICAgIHwgT2JzZXJ2YWJsZTxEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uUmVzdWx0PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoZSBsaXN0IG9mIHZhbGlkYXRvcnMgYXBwbGllZCB0byB0aGUgZm9ybSBpdGVtLlxuICAgICAqL1xuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoZSBsaXN0IG9mIGFzeW5jIHZhbGlkYXRvcnMgYXBwbGllZCB0byB0aGUgZm9ybSBpdGVtLlxuICAgICAqL1xuICAgIGFzeW5jVmFsaWRhdG9ycz86IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNldCB3aGVuIGZvcm0gaXRlbSBpcyBhIG1hbmRhdG9yeSBvbmUuXG4gICAgICovXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRyYW5zZm9ybXMgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1WYWx1ZSByYXcgZm9ybSBpdGVtIHZhbHVlLlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW0gQHNlZSBEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAqIEByZXR1cm5zIHVwZGF0ZWQgZm9ybSBpdGVtIHZhbHVlIHRvIGJlIHVzZWQgaW4gdGhlIGZvcm0gdmFsdWUgaGFzaC5cbiAgICAgKi9cbiAgICB0cmFuc2Zvcm1lcj86IChcbiAgICAgICAgZm9ybUl0ZW1WYWx1ZTogVCxcbiAgICAgICAgZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICAgICAgZm9ybUl0ZW0/OiBEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRyYW5zZm9ybXMgcmF3IGZvcm0gaXRlbSB2YWx1ZSBmb3IgcmVuZGVyIHB1cnBvc2VzLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIEBwYXJhbSBmb3JtSXRlbSBAc2VlIER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICogQHJldHVybnMgdXBkYXRlZCBmb3JtIGl0ZW0gdmFsdWUgdG8gYmUgdXNlZCBpbiB0aGUgZm9ybSB2YWx1ZSBoYXNoIGZvciByZW5kZXJpbmcgcHVycG9zZXMuXG4gICAgICovXG4gICAgdmFsdWVSZW5kZXJlcj86IChcbiAgICAgICAgZm9ybUl0ZW1WYWx1ZTogVCxcbiAgICAgICAgZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICAgICAgZm9ybUl0ZW0/OiBEeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGlzIGZvcm0gaXRlbSBzaG91bGQgYmUgYXNrZWQuXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSB0aGUgZm9ybSB2YWx1ZSBoYXNoLlxuICAgICAqIEBwYXJhbSBmb3JtcyBBbGwgYXZhaWxhYmxlIGZvcm1zIHN0b3JlZCBpbiBmb3JtIGdlbmVyYXRvciBzZXJ2aWNlLlxuICAgICAqIEBwYXJhbSBjb250cm9sIER5bmFtaWMgZm9ybSBjb250cm9sLlxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cbiAgICB3aGVuPzogKFxuICAgICAgICBmb3JtVmFsdWU6IER5bmFtaWNGb3JtVmFsdWUsXG4gICAgICAgIGZvcm1zOiBNYXA8c3RyaW5nLCBEeW5hbWljRm9ybUdyb3VwPixcbiAgICAgICAgY29udHJvbDogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xcbiAgICApID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCBhZnRlciBmaWVsZCB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqIEBwYXJhbSBmaWVsZFZhbHVlIEZpZWxkIHZhbHVlLlxuICAgICAqIEBwYXJhbSBmb3JtcyBBbGwgYXZhaWxhYmxlIGZvcm1zIHN0b3JlZCBpbiBmb3JtIGdlbmVyYXRvciBzZXJ2aWNlLlxuICAgICAqIEBwYXJhbSBjb250cm9sIER5bmFtaWMgZm9ybSBjb250cm9sLlxuICAgICAqL1xuICAgIG9uY2hhbmdlPzogKFxuICAgICAgICBmaWVsZFZhbHVlOiBULFxuICAgICAgICBmb3JtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1Hcm91cD4sXG4gICAgICAgIGNvbnRyb2w6IER5bmFtaWNGb3JtQ29udHJvbFxuICAgICkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4gfCBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFVzZWQgYXMgYSBzdGF0aWMgZmxhZyBvbiBzaG91bGQgdGhpcyBmb3JtIGl0ZW0gYmUgc2hvd24uXG4gICAgICovXG4gICAgc2hvdWxkU2hvdz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBSYW5rIGlzIHVzZWQgZm9yIG9yZGVyaW5nLlxuICAgICAqIFRoYW4gbG93ZXIgbnVtYmVyIHRoZW4gaGlnaGVyIHByaW9yaXR5LlxuICAgICAqL1xuICAgIHJhbms/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBBZGRpdGlvbmFsIHNldCBvZiBvcHRpb25zIHRoYXQgY2FuIGFmZmVjdCBVSSBvZiB0aGUgZm9ybSBpdGVtIGZvcm0gY29udHJvbC5cbiAgICAgKi9cbiAgICBndWlPcHRpb25zPzogRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dER5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPHN0cmluZz4ge1xuICAgIHR5cGU6ICdpbnB1dCcgfCAnZW1haWwnIHwgJ251bWJlcicgfCAncGFzc3dvcmQnO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEFkZGl0aW9uYWwgc2V0IG9mIG9wdGlvbnMgdGhhdCBjYW4gYWZmZWN0IFVJIG9mIHRoZSBmb3JtIGl0ZW0gZm9ybSBjb250cm9sLlxuICAgICAqL1xuICAgIGNvbnRyb2xUeXBlPzogSW5wdXRUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVQaWNrZXJEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxGZERhdGU+IHtcbiAgICB0eXBlOiAnZGF0ZXBpY2tlcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEFyZWFEeW5hbWljRm9ybUZpZWxkSXRlbSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxzdHJpbmc+IHtcbiAgICB0eXBlOiAnZWRpdG9yJyB8ICd0ZXh0YXJlYSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoRHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08Ym9vbGVhbj4ge1xuICAgIHR5cGU6ICdzd2l0Y2gnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdER5bmFtaWNGb3JtRmllbGRJdGVtPFQgPSBEeW5hbWljRm9ybUl0ZW1DaG9pY2VUeXBlczxhbnk+PiBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbTxUPiB7XG4gICAgdHlwZTogJ3NlbGVjdCcgfCAnbGlzdCcgfCAnbXVsdGktaW5wdXQnO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zIHRvIHNlbGVjdC5cbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlIHJhdyBmb3JtIGl0ZW0gdmFsdWUuXG4gICAgICovXG4gICAgY2hvaWNlcz86IER5bmFtaWNGb3JtSXRlbUNob2ljZSB8ICgoZm9ybVZhbHVlPzogRHluYW1pY0Zvcm1WYWx1ZSkgPT4gRHluYW1pY0Zvcm1JdGVtQ2hvaWNlKTtcblxuICAgIHNlY29uZGFyeUtleT86IHN0cmluZztcblxuICAgIC8qKiBTaG93IHRoZSBzZWNvbmQgY29sdW1uIChBcHBsaWNhYmxlIGZvciB0d28gY29sdW1ucyBsYXlvdXQpICovXG4gICAgc2hvd1NlY29uZGFyeVRleHQ/OiBib29sZWFuO1xuXG4gICAgLyoqIEhvcml6b250YWxseSBhbGlnbiB0ZXh0IGluc2lkZSB0aGUgc2Vjb25kIGNvbHVtbiAoQXBwbGljYWJsZSBmb3IgdHdvIGNvbHVtbnMgbGF5b3V0KSAqL1xuICAgIHNlY29uZGFyeVRleHRBbGlnbm1lbnQ/OiBUZXh0QWxpZ25tZW50O1xuICAgIC8qKiBDdXN0b20gdGVtcGxhdGUgdXNlZCB0byBidWlsZCBjb250cm9sIGJvZHkuICovXG4gICAgY29udHJvbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYWRpb0R5bmFtaWNGb3JtRmllbGRJdGVtIGV4dGVuZHMgT21pdDxTZWxlY3REeW5hbWljRm9ybUZpZWxkSXRlbTxhbnk+LCAndHlwZSc+IHtcbiAgICB0eXBlOiAncmFkaW8nIHwgJ2NvbmZpcm0nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrYm94RHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBPbWl0PFNlbGVjdER5bmFtaWNGb3JtRmllbGRJdGVtPGFueT4sICd0eXBlJz4ge1xuICAgIHR5cGU6ICdjaGVja2JveCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0U3RhdHVzRHluYW1pY0Zvcm1GaWVsZEl0ZW0gZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW08c3RyaW5nPiB7XG4gICAgdHlwZTogJ29iamVjdC1zdGF0dXMnO1xuICAgIGd1aU9wdGlvbnM/OiBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW1bJ2d1aU9wdGlvbnMnXSAmIHtcbiAgICAgICAgc3RhdHVzPzogT2JqZWN0U3RhdHVzO1xuICAgICAgICBpY29uPzogc3RyaW5nO1xuICAgICAgICBpbmRpY2F0aW9uQ29sb3I/OiBDb2xvckFjY2VudDtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFueUR5bmFtaWNGb3JtRmllbGRJdGVtPFQgPSBhbnk+IGV4dGVuZHMgQmFzZUR5bmFtaWNGb3JtRmllbGRJdGVtPFQ+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMgdG8gc2VsZWN0LlxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgcmF3IGZvcm0gaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBjaG9pY2VzPzogRHluYW1pY0Zvcm1JdGVtQ2hvaWNlIHwgKChmb3JtVmFsdWU/OiBEeW5hbWljRm9ybVZhbHVlKSA9PiBEeW5hbWljRm9ybUl0ZW1DaG9pY2UpO1xufVxuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUZpZWxkSXRlbTxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgVSBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUZpZWxkSXRlbSA9IEFueUR5bmFtaWNGb3JtRmllbGRJdGVtXG4+ID0gVCAmXG4gICAgKFxuICAgICAgICB8IElucHV0RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBEYXRlUGlja2VyRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBUZXh0QXJlYUR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgU3dpdGNoRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBTZWxlY3REeW5hbWljRm9ybUZpZWxkSXRlbVxuICAgICAgICB8IFJhZGlvRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBDaGVja2JveER5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgICAgIHwgT2JqZWN0U3RhdHVzRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICAgICAgfCBVXG4gICAgICAgIHwgQW55RHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApO1xuXG50eXBlIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1GaWVsZHMgPSB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGRlZmF1bHQ6IGFueTtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBjaG9pY2VzPzogU2VsZWN0SXRlbVtdO1xufTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBJbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBEeW5hbWljRm9ybUZpZWxkSXRlbSB3aXRoIGFsbCBmaWVsZHMgcmVzb2x2ZWQgdG8gYSBwbGFpbiB2YWx1ZVxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtPFQgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW0gPSBCYXNlRHluYW1pY0Zvcm1GaWVsZEl0ZW0+ID0gT21pdDxcbiAgICBULFxuICAgIGtleW9mIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1GaWVsZHNcbj4gJlxuICAgIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW1GaWVsZHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUR5bmFtaWNGb3JtSXRlbUd1aU9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIERlZmluZXMgbGFiZWwncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGxhYmVsQ29sdW1uTGF5b3V0PzogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ/OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBEZWZpbmVzIGdhcCBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGdhcENvbHVtbkxheW91dD86IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHNldCwgaGludCBpY29uIGlzIGFkZGVkIHRvIGNvbnRyb2wgbGFiZWwgb3IgZ3JvdXAgaGVhZGluZyB3aXRoIHRvb2x0aXAgbWVzc2FnZSBhcyBhIHZhbHVlLlxuICAgICAqL1xuICAgIGhpbnQ/OiBIaW50SW5wdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1JdGVtR3VpT3B0aW9ucyBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUl0ZW1HdWlPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJbmRleCBvZiBjb2x1bW4gaWYgZm9ybSBoYXMgbXVsdGktY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBjb2x1bW4/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBDb2x1bW4gYXJyYW5nZW1lbnQgZm9yIGZvcm0tZmllbGQgYmFzZWQgb24gc2NyZWVuIHNpemUuXG4gICAgICovXG4gICAgY29sdW1uTGF5b3V0PzogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSW5saW5lIGxheW91dCBmb3IgbGlzdCBiYXNlZCBmb3JtIGl0ZW0uXG4gICAgICovXG4gICAgaW5saW5lTGF5b3V0PzogSW5saW5lTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIHRoYXQgbGFiZWwgc2hvdWxkIGJlIGhpZGRlbi5cbiAgICAgKi9cbiAgICBub0xhYmVsTGF5b3V0PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIHNldCwgY29udHJvbHMgaW5uZXIgZWxlbWVudHMgd2lsbCBiZSBpbmxpbmVkLlxuICAgICAqL1xuICAgIGlubGluZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJZiBzZXQsIG92ZXJyaWRlcyBjdXJyZW50IGNvbnRlbnQgZGVuc2l0eSBvZiB0aGUgZWxlbWVudCBkZWZpbmVkIG9uIHRoZSBnbG9iYWwgc2NvcGUuXG4gICAgICovXG4gICAgY29udGVudERlbnNpdHk/OiBDb250ZW50RGVuc2l0eTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPYmplY3QgY29udGFpbnMgYWRkaXRpb25hbCBwYXlsb2FkLiBVc2VmdWwgZm9yIGN1c3RvbSBlbGVtZW50cyB0byBtYW5pcHVsYXRlIGl0J3Mgdmlldy5cbiAgICAgKi9cbiAgICBhZGRpdGlvbmFsRGF0YT86IGFueTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIElmIGxhYmVsIHNob3VsZCBiZSBhcHBlbmRlZCB3aXRoIGNvbG9uLiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAgICovXG4gICAgYXBwZW5kQ29sb24/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogSGludCBvcHRpb25zLiBFaXRoZXIgb25seSB0ZXh0IG9yIGZ1bGwgY29uZmlnXG4gICAgICovXG4gICAgaGludD86IEZpZWxkSGludElucHV0O1xufVxuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybVZhbHVlID0gUmVjb3JkPHN0cmluZywgYW55PjtcbiJdfQ==
|
|
@@ -30,10 +30,10 @@ export class GetHintOptionsPipe {
|
|
|
30
30
|
...formItemHintOptions
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
34
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: GetHintOptionsPipe, deps: [{ token: FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
34
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: GetHintOptionsPipe, isStandalone: true, name: "getHintOptions" }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: GetHintOptionsPipe, decorators: [{
|
|
37
37
|
type: Pipe,
|
|
38
38
|
args: [{
|
|
39
39
|
name: 'getHintOptions',
|
|
@@ -6,10 +6,10 @@ export class GetOrderedFieldControlsPipe {
|
|
|
6
6
|
// casting type explicity to the DynamicFormControl[] as this pipe will be used specifically with this data type
|
|
7
7
|
return Object.values(field.controls).sort((a, b) => (a.formItem.rank ?? -Infinity) > (b.formItem.rank ?? -Infinity) ? 1 : -1);
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: GetOrderedFieldControlsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: GetOrderedFieldControlsPipe, isStandalone: true, name: "getOrderedFieldControls", pure: false }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: GetOrderedFieldControlsPipe, decorators: [{
|
|
13
13
|
type: Pipe,
|
|
14
14
|
args: [{
|
|
15
15
|
name: 'getOrderedFieldControls',
|
|
@@ -23,8 +23,8 @@ const EXPORTABLE_DECLARATIONS = [
|
|
|
23
23
|
FormFieldErrorDescriptionDirective
|
|
24
24
|
];
|
|
25
25
|
export class FdpFormGroupModule {
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
27
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FdpFormGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
27
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: FdpFormGroupModule, imports: [FormGroupComponent,
|
|
28
28
|
FormFieldComponent,
|
|
29
29
|
InputMessageGroupWithTemplate,
|
|
30
30
|
FormFieldGroupComponent,
|
|
@@ -43,12 +43,12 @@ export class FdpFormGroupModule {
|
|
|
43
43
|
FormFieldErrorDirective,
|
|
44
44
|
FormFieldErrorHeadingDirective,
|
|
45
45
|
FormFieldErrorDescriptionDirective] }); }
|
|
46
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
|
46
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FdpFormGroupModule, imports: [FormGroupComponent,
|
|
47
47
|
FormFieldComponent,
|
|
48
48
|
InputMessageGroupWithTemplate,
|
|
49
49
|
FormGroupHeaderComponent] }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FdpFormGroupModule, decorators: [{
|
|
52
52
|
type: NgModule,
|
|
53
53
|
args: [{
|
|
54
54
|
imports: [...EXPORTABLE_DECLARATIONS],
|