@elderbyte/ngx-starter 14.5.3 → 14.7.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/esm2020/lib/common/data/data-context/data-context-active-page.mjs +1 -1
- package/esm2020/lib/common/data/data-context/data-context-base.mjs +2 -2
- package/esm2020/lib/common/data/data-context/data-context-continuable-base.mjs +1 -1
- package/esm2020/lib/common/data/data-context/data-context.mjs +1 -1
- package/esm2020/lib/common/data/datasource/data-source-adapter.mjs +1 -1
- package/esm2020/lib/common/data/datasource/data-source-processor.mjs +1 -1
- package/esm2020/lib/common/data/datasource/data-source.mjs +1 -1
- package/esm2020/lib/common/data/datasource/fetcher/delegate-data-source.mjs +1 -1
- package/esm2020/lib/common/data/datasource/local/local-list-data-source.mjs +1 -1
- package/esm2020/lib/common/data/datasource/local/local-paged-data-source.mjs +1 -1
- package/esm2020/lib/common/data/datasource/rest/rest-client.mjs +2 -2
- package/esm2020/lib/common/data/filters/filter-context.mjs +141 -0
- package/esm2020/lib/common/data/filters/filter.mjs +109 -0
- package/esm2020/lib/common/data/http-params-builder.mjs +2 -2
- package/esm2020/lib/common/data/public_api.mjs +3 -3
- package/esm2020/lib/common/data/required-filter-evaluator.mjs +1 -1
- package/esm2020/lib/common/data/token-chunk-request.mjs +1 -1
- package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +3 -3
- package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
- package/esm2020/lib/common/forms/elder-from-field-base.mjs +3 -3
- package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
- package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
- package/esm2020/lib/common/forms/form-field-base.component.mjs +3 -3
- package/esm2020/lib/common/forms/multi-model-base.component.mjs +3 -3
- package/esm2020/lib/common/forms/template-composite-control.mjs +3 -3
- package/esm2020/lib/common/forms/value-accessor-base.mjs +3 -3
- package/esm2020/lib/common/http/http-client-builder.service.mjs +3 -3
- package/esm2020/lib/common/http/http-client-pristine.mjs +3 -3
- package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
- package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
- package/esm2020/lib/common/utils/filter-util.mjs +1 -1
- package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
- package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
- package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +8 -5
- package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
- package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
- package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
- package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
- package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
- package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
- package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
- package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
- package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
- package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
- package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
- package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
- package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
- package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
- package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
- package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
- package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
- package/esm2020/lib/components/csv/elder-csv-stream-exporter.mjs +1 -1
- package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
- package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
- package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
- package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
- package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
- package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
- package/esm2020/lib/components/data-view/base/elder-data-view-options.mjs +1 -1
- package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
- package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
- package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
- package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
- package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
- package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
- package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
- package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -4
- package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
- package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
- package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +7 -7
- package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
- package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
- package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
- package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
- package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
- package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
- package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
- package/esm2020/lib/components/files/elder-file.module.mjs +4 -4
- package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
- package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
- package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
- package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +13 -13
- package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +3 -3
- package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +3 -3
- package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
- package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +35 -21
- package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +9 -15
- package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
- package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
- package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
- package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
- package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
- package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
- package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
- package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
- package/esm2020/lib/components/http-support/elder-http-client.service.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
- package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
- package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
- package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
- package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
- package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
- package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
- package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
- package/esm2020/lib/components/iframes/elder-iframe.module.mjs +4 -4
- package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe.service.mjs +3 -3
- package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +7 -7
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +9 -0
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +42 -27
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +197 -0
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +12 -12
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +22 -11
- package/esm2020/lib/components/input/autocomplete/many/word-position-finder.mjs +58 -0
- package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
- package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
- package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +3 -3
- package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +5 -5
- package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
- package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
- package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
- package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
- package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +3 -3
- package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
- package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
- package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
- package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
- package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
- package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
- package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
- package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
- package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
- package/esm2020/lib/components/panels/elder-panel.module.mjs +4 -4
- package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
- package/esm2020/lib/components/public_api.mjs +1 -2
- package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
- package/esm2020/lib/components/select/elder-select-base.mjs +5 -5
- package/esm2020/lib/components/select/elder-select-chip.directive.mjs +9 -9
- package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
- package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
- package/esm2020/lib/components/select/elder-select.module.mjs +4 -4
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
- package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
- package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
- package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
- package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
- package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +10 -9
- package/esm2020/lib/components/select/single/elder-select-form-field.mjs +3 -3
- package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
- package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
- package/esm2020/lib/components/select-list/elder-select-list.module.mjs +4 -4
- package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +3 -3
- package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +3 -3
- package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
- package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
- package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
- package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
- package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
- package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
- package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +12 -12
- package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
- package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
- package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
- package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme.directive.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme.module.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme.service.mjs +3 -3
- package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
- package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-time.module.mjs +8 -8
- package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
- package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -4
- package/esm2020/lib/components/toasts/elder-toast.service.mjs +9 -9
- package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
- package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
- package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
- package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
- package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
- package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
- package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
- package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
- package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-pipes.module.mjs +10 -10
- package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-truncate.pipe.mjs +3 -3
- package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
- package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
- package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
- package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
- package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
- package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
- package/fesm2015/elderbyte-ngx-starter.mjs +1290 -1115
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +1287 -1115
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/data/data-context/data-context-active-page.d.ts +1 -1
- package/lib/common/data/data-context/data-context-base.d.ts +2 -2
- package/lib/common/data/data-context/data-context-continuable-base.d.ts +1 -1
- package/lib/common/data/data-context/data-context.d.ts +2 -2
- package/lib/common/data/datasource/data-source-adapter.d.ts +1 -1
- package/lib/common/data/datasource/data-source-processor.d.ts +1 -1
- package/lib/common/data/datasource/data-source.d.ts +1 -1
- package/lib/common/data/datasource/fetcher/delegate-data-source.d.ts +1 -1
- package/lib/common/data/datasource/local/local-list-data-source.d.ts +1 -1
- package/lib/common/data/datasource/local/local-paged-data-source.d.ts +1 -1
- package/lib/common/data/datasource/rest/rest-client.d.ts +1 -1
- package/lib/common/data/{filter-context.d.ts → filters/filter-context.d.ts} +3 -1
- package/lib/common/data/{filter.d.ts → filters/filter.d.ts} +15 -3
- package/lib/common/data/http-params-builder.d.ts +1 -1
- package/lib/common/data/public_api.d.ts +2 -2
- package/lib/common/data/required-filter-evaluator.d.ts +2 -2
- package/lib/common/data/token-chunk-request.d.ts +1 -1
- package/lib/common/utils/filter-util.d.ts +1 -1
- package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +2 -1
- package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
- package/lib/components/csv/elder-csv-stream-exporter.d.ts +1 -1
- package/lib/components/data-view/base/elder-data-view-options.d.ts +1 -1
- package/lib/components/forms/search/elder-search-context.directive.d.ts +15 -12
- package/lib/components/forms/search/elder-search-input.directive.d.ts +6 -7
- package/lib/components/http-support/elder-http-client.service.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +8 -0
- package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +14 -14
- package/lib/components/{multi-autocomplete/elder-multi-autocomplete.component.d.ts → input/autocomplete/elder-autocomplete-many.directive.d.ts} +46 -27
- package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +2 -2
- package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +11 -7
- package/lib/components/{multi-autocomplete/word-position.d.ts → input/autocomplete/many/word-position-finder.d.ts} +0 -0
- package/lib/components/public_api.d.ts +0 -1
- package/lib/components/select/elder-select-base.d.ts +1 -1
- package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +2 -1
- package/package.json +1 -1
- package/esm2020/lib/common/data/filter-context.mjs +0 -129
- package/esm2020/lib/common/data/filter.mjs +0 -72
- package/esm2020/lib/components/multi-autocomplete/elder-multi-auto-complete.module.mjs +0 -30
- package/esm2020/lib/components/multi-autocomplete/elder-multi-autocomplete.component.mjs +0 -122
- package/esm2020/lib/components/multi-autocomplete/word-position.mjs +0 -38
- package/lib/components/multi-autocomplete/elder-multi-auto-complete.module.d.ts +0 -14
- package/src/lib/components/multi-autocomplete/elder-multi-autocomplete.component.scss +0 -0
|
@@ -99,4 +99,4 @@ export class LocalListDataSource {
|
|
|
99
99
|
return null; // Use value as id if scalar
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbGlzdC1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtbGlzdC1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZUFBZSxFQUFTLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQVMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE1BQU0sT0FBTyxtQkFBbUI7SUEyRDlCOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFNBQWMsRUFDZCxTQUE4QyxFQUM5QyxXQUFvRCxFQUNwRCxVQUF5QjtRQW5FM0I7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEUsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQTREM0MsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUFFO1FBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxDQUFDLENBQUMsSUFBSSxF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b0JBQ3hHLE9BQU8sSUFBSSxDQUFDLENBQUUsU0FBUztpQkFDeEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEZBQTBGLENBQUMsQ0FBQztpQkFDOUc7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7SUFDM0MsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL3NvcnQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SUxpc3REYXRhU291cmNlfSBmcm9tICcuLi9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbnRpdHlJZFV0aWx9IGZyb20gJy4uL2VudGl0eS1pZC11dGlsJztcblxuXG5leHBvcnQgY2xhc3MgTG9jYWxMaXN0RGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIElMaXN0RGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YUNoYW5nZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxTb3J0OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbEZpbHRlcjogKChkYXRhOiBUW10sIGZpbHRlcnM6IEZpbHRlcltdKSA9PiBUW10pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaWRQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbDtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlbXB0eSBsb2NhbCBsaXN0IGRhdGEtc291cmNlLlxuICAgKiBZb3UgY2FuIHNldCAvIG1vZGlmeSBkYXRhIGJ5IHVzaW5nIHRoZSBkYXRhIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgKiBAcGFyYW0gbG9jYWxTb3J0XG4gICAqIEBwYXJhbSBsb2NhbEZpbHRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbXB0eTxUPihcbiAgICBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsLFxuICAgIGxvY2FsU29ydD86ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pLFxuICAgIGxvY2FsRmlsdGVyPzogKChkYXRhOiBUW10sIGZpbHRlcnM6IEZpbHRlcltdKSA9PiBUW10pXG4gICk6IExvY2FsTGlzdERhdGFTb3VyY2U8VD4ge1xuICAgIHJldHVybiBMb2NhbExpc3REYXRhU291cmNlLmZyb20oXG4gICAgICBbXSxcbiAgICAgIGlkUHJvcGVydHksXG4gICAgICBsb2NhbFNvcnQsXG4gICAgICBsb2NhbEZpbHRlclxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb208VD4oXG4gICAgbG9jYWxEYXRhOiBUW10sXG4gICAgaWRQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCxcbiAgICBsb2NhbFNvcnQ/OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKSxcbiAgICBsb2NhbEZpbHRlcj86ICgoZGF0YTogVFtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4gVFtdKVxuICApOiBMb2NhbExpc3REYXRhU291cmNlPFQ+IHtcblxuICAgIHJldHVybiBuZXcgTG9jYWxMaXN0RGF0YVNvdXJjZShcbiAgICAgIGxvY2FsRGF0YSxcbiAgICAgIGxvY2FsU29ydCxcbiAgICAgIGxvY2FsRmlsdGVyLFxuICAgICAgaWRQcm9wZXJ0eVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2NhbERhdGE6IFRbXSxcbiAgICBsb2NhbFNvcnQ6ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pLFxuICAgIGxvY2FsRmlsdGVyOiAoKGRhdGE6IFRbXSwgZmlsdGVyczogRmlsdGVyW10pID0+IFRbXSksXG4gICAgaWRQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbFxuICApIHtcbiAgICBpZiAoIWxvY2FsRGF0YSkgeyB0aHJvdyBuZXcgRXJyb3IoJ2xvY2FsRGF0YSBtdXN0IG5vdCBiZSBudWxsIScpOyB9XG4gICAgdGhpcy5sb2NhbFNvcnQgPSBsb2NhbFNvcnQgfHwgKChkYXRhLCBzb3J0KSA9PiBkYXRhKTtcbiAgICB0aGlzLmxvY2FsRmlsdGVyID0gbG9jYWxGaWx0ZXIgfHwgKChkYXRhLCBzb3J0KSA9PiBkYXRhKTtcbiAgICB0aGlzLmlkUHJvcGVydHkgPSBpZFByb3BlcnR5IHx8IHRoaXMuZ3Vlc3NJZFByb3BlcnR5KGxvY2FsRGF0YSk7XG4gICAgdGhpcy5kYXRhID0gbG9jYWxEYXRhO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIElEYXRhU291cmNlIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBkYXRhQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkKGlkOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2YoXG4gICAgICB0aGlzLmRhdGEuZmluZChkID0+IHRoaXMuZ2V0SWQoZCkgPT09IGlkKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGlkcy5tYXAoaWQgPT4gdGhpcy5maW5kQnlJZChpZCkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWxsRmlsdGVyZWQoZmlsdGVycz86IEZpbHRlcltdLCBzb3J0cz86IFNvcnRbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIG9mKHRoaXMuZGF0YSkucGlwZShcbiAgICAgIG1hcChkYXRhID0+IHRoaXMubG9jYWxGaWx0ZXIoZGF0YSwgZmlsdGVycykpLFxuICAgICAgbWFwKGRhdGEgPT4gdGhpcy5sb2NhbFNvcnQoZGF0YSwgc29ydHMpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SWQoZW50aXR5OiBUKTogYW55IHtcbiAgICByZXR1cm4gRW50aXR5SWRVdGlsLmdldElkKGVudGl0eSwgdGhpcy5pZFByb3BlcnR5KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBUW10pIHtcbiAgICB0aGlzLmRhdGEkLm5leHQoZGF0YSk7XG4gICAgdGhpcy5vbkxvY2FsRGF0YUNoYW5nZXMoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGEoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG9uTG9jYWxEYXRhQ2hhbmdlcyhkYXRhOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFDaGFuZ2UkLm5leHQoZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGd1ZXNzSWRQcm9wZXJ0eShsb2NhbERhdGE6IFRbXSk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChsb2NhbERhdGEgJiYgbG9jYWxEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNhbXBsZSA9IGxvY2FsRGF0YVswXTtcbiAgICAgIGlmICh0eXBlb2Ygc2FtcGxlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAoc2FtcGxlLmhhc093blByb3BlcnR5KCdpZCcpKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybignRGF0YVNvdXJjZSB3aXRob3V0IGRlZmluZWQgaWQtcHJvcGVydHkgPT4gYXV0b2RldGVjdGVkIHByb3BlcnR5IGlkLXByb3BlcnR5IGFzIFwiaWRcIicpO1xuICAgICAgICAgIHJldHVybiAnaWQnOyAgLy8gVXNlIGlkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybignTG9jYWwgRGF0YVNvdXJjZSBjcmVhdGVkIHdpdGhvdXQgZGVmaW5lZCBpZC1wcm9wZXJ0eSBhbmQgb2JqZWN0cy4gVXNpbmcgb2JqZWN0IGVxdWFsaXR5IScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsOyAvLyBVc2UgdmFsdWUgYXMgaWQgaWYgc2NhbGFyXG4gIH1cblxufVxuIl19
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbGlzdC1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtbGlzdC1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZUFBZSxFQUFTLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQVMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE1BQU0sT0FBTyxtQkFBbUI7SUEyRDlCOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFNBQWMsRUFDZCxTQUE4QyxFQUM5QyxXQUFvRCxFQUNwRCxVQUF5QjtRQW5FM0I7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEUsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQTREM0MsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUFFO1FBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBMUREOzs7O2dGQUk0RTtJQUU1RTs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUNqQixVQUF5QixFQUN6QixTQUErQyxFQUMvQyxXQUFxRDtRQUVyRCxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FDN0IsRUFBRSxFQUNGLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDaEIsU0FBYyxFQUNkLFVBQXlCLEVBQ3pCLFNBQStDLEVBQy9DLFdBQXFEO1FBR3JELE9BQU8sSUFBSSxtQkFBbUIsQ0FDNUIsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDO0lBcUJEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxRQUFRLENBQUMsRUFBTztRQUNyQixPQUFPLEVBQUUsQ0FDUCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQVU7UUFDekIsT0FBTyxRQUFRLENBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDakMsQ0FBQztJQUNKLENBQUM7SUFFTSxlQUFlLENBQUMsT0FBa0IsRUFBRSxLQUFjO1FBQ3ZELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQzVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3pDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQVM7UUFDcEIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLElBQUksQ0FBQyxJQUFTO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsa0JBQWtCLENBQUMsSUFBUztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQWM7UUFDcEMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUM5QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFGQUFxRixDQUFDLENBQUM7b0JBQ3hHLE9BQU8sSUFBSSxDQUFDLENBQUUsU0FBUztpQkFDeEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEZBQTBGLENBQUMsQ0FBQztpQkFDOUc7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7SUFDM0MsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vc29ydCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJTGlzdERhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGEtc291cmNlJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VudGl0eUlkVXRpbH0gZnJvbSAnLi4vZW50aXR5LWlkLXV0aWwnO1xuXG5cbmV4cG9ydCBjbGFzcyBMb2NhbExpc3REYXRhU291cmNlPFQ+IGltcGxlbWVudHMgSUxpc3REYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhQ2hhbmdlJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFNvcnQ6ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsRmlsdGVyOiAoKGRhdGE6IFRbXSwgZmlsdGVyczogRmlsdGVyW10pID0+IFRbXSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGVtcHR5IGxvY2FsIGxpc3QgZGF0YS1zb3VyY2UuXG4gICAqIFlvdSBjYW4gc2V0IC8gbW9kaWZ5IGRhdGEgYnkgdXNpbmcgdGhlIGRhdGEgcHJvcGVydHkuXG4gICAqIEBwYXJhbSBpZFByb3BlcnR5XG4gICAqIEBwYXJhbSBsb2NhbFNvcnRcbiAgICogQHBhcmFtIGxvY2FsRmlsdGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVtcHR5PFQ+KFxuICAgIGlkUHJvcGVydHk6IHN0cmluZyB8IG51bGwsXG4gICAgbG9jYWxTb3J0PzogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSksXG4gICAgbG9jYWxGaWx0ZXI/OiAoKGRhdGE6IFRbXSwgZmlsdGVyczogRmlsdGVyW10pID0+IFRbXSlcbiAgKTogTG9jYWxMaXN0RGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIExvY2FsTGlzdERhdGFTb3VyY2UuZnJvbShcbiAgICAgIFtdLFxuICAgICAgaWRQcm9wZXJ0eSxcbiAgICAgIGxvY2FsU29ydCxcbiAgICAgIGxvY2FsRmlsdGVyXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbTxUPihcbiAgICBsb2NhbERhdGE6IFRbXSxcbiAgICBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsLFxuICAgIGxvY2FsU29ydD86ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pLFxuICAgIGxvY2FsRmlsdGVyPzogKChkYXRhOiBUW10sIGZpbHRlcnM6IEZpbHRlcltdKSA9PiBUW10pXG4gICk6IExvY2FsTGlzdERhdGFTb3VyY2U8VD4ge1xuXG4gICAgcmV0dXJuIG5ldyBMb2NhbExpc3REYXRhU291cmNlKFxuICAgICAgbG9jYWxEYXRhLFxuICAgICAgbG9jYWxTb3J0LFxuICAgICAgbG9jYWxGaWx0ZXIsXG4gICAgICBpZFByb3BlcnR5XG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2FsRGF0YTogVFtdLFxuICAgIGxvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSksXG4gICAgbG9jYWxGaWx0ZXI6ICgoZGF0YTogVFtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4gVFtdKSxcbiAgICBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsXG4gICkge1xuICAgIGlmICghbG9jYWxEYXRhKSB7IHRocm93IG5ldyBFcnJvcignbG9jYWxEYXRhIG11c3Qgbm90IGJlIG51bGwhJyk7IH1cbiAgICB0aGlzLmxvY2FsU29ydCA9IGxvY2FsU29ydCB8fCAoKGRhdGEsIHNvcnQpID0+IGRhdGEpO1xuICAgIHRoaXMubG9jYWxGaWx0ZXIgPSBsb2NhbEZpbHRlciB8fCAoKGRhdGEsIHNvcnQpID0+IGRhdGEpO1xuICAgIHRoaXMuaWRQcm9wZXJ0eSA9IGlkUHJvcGVydHkgfHwgdGhpcy5ndWVzc0lkUHJvcGVydHkobG9jYWxEYXRhKTtcbiAgICB0aGlzLmRhdGEgPSBsb2NhbERhdGE7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSURhdGFTb3VyY2UgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGRhdGFDaGFuZ2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBvZihcbiAgICAgIHRoaXMuZGF0YS5maW5kKGQgPT4gdGhpcy5nZXRJZChkKSA9PT0gaWQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgaWRzLm1hcChpZCA9PiB0aGlzLmZpbmRCeUlkKGlkKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbmRBbGxGaWx0ZXJlZChmaWx0ZXJzPzogRmlsdGVyW10sIHNvcnRzPzogU29ydFtdKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gb2YodGhpcy5kYXRhKS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gdGhpcy5sb2NhbEZpbHRlcihkYXRhLCBmaWx0ZXJzKSksXG4gICAgICBtYXAoZGF0YSA9PiB0aGlzLmxvY2FsU29ydChkYXRhLCBzb3J0cykpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJZChlbnRpdHk6IFQpOiBhbnkge1xuICAgIHJldHVybiBFbnRpdHlJZFV0aWwuZ2V0SWQoZW50aXR5LCB0aGlzLmlkUHJvcGVydHkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHNldCBkYXRhKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuZGF0YSQubmV4dChkYXRhKTtcbiAgICB0aGlzLm9uTG9jYWxEYXRhQ2hhbmdlcyhkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YSgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLmRhdGEkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgb25Mb2NhbERhdGFDaGFuZ2VzKGRhdGE6IFRbXSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YUNoYW5nZSQubmV4dChkYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgZ3Vlc3NJZFByb3BlcnR5KGxvY2FsRGF0YTogVFtdKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKGxvY2FsRGF0YSAmJiBsb2NhbERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc2FtcGxlID0gbG9jYWxEYXRhWzBdO1xuICAgICAgaWYgKHR5cGVvZiBzYW1wbGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChzYW1wbGUuaGFzT3duUHJvcGVydHkoJ2lkJykpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdEYXRhU291cmNlIHdpdGhvdXQgZGVmaW5lZCBpZC1wcm9wZXJ0eSA9PiBhdXRvZGV0ZWN0ZWQgcHJvcGVydHkgaWQtcHJvcGVydHkgYXMgXCJpZFwiJyk7XG4gICAgICAgICAgcmV0dXJuICdpZCc7ICAvLyBVc2UgaWRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdMb2NhbCBEYXRhU291cmNlIGNyZWF0ZWQgd2l0aG91dCBkZWZpbmVkIGlkLXByb3BlcnR5IGFuZCBvYmplY3RzLiBVc2luZyBvYmplY3QgZXF1YWxpdHkhJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7IC8vIFVzZSB2YWx1ZSBhcyBpZCBpZiBzY2FsYXJcbiAgfVxuXG59XG4iXX0=
|
|
@@ -70,4 +70,4 @@ export class LocalPagedDataSource {
|
|
|
70
70
|
return page;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcGFnZWQtZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQVcsTUFBTSxZQUFZLENBQUM7QUFHMUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSW5DLE1BQU0sT0FBTyxvQkFBb0I7SUFrRC9COzs7O2dGQUk0RTtJQUU1RSxZQUNFLFNBQWMsRUFDZCxVQUF5QixFQUN6QixTQUE4QyxFQUM5QyxXQUFvRDtRQUdwRCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQUU7UUFFbkUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksbUJBQW1CLENBQzdDLFNBQVMsRUFDVCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQTdERDs7OztnRkFJNEU7SUFFNUU7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsVUFBeUIsRUFDekIsU0FBK0MsRUFDL0MsV0FBcUQ7UUFFckQsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQzlCLEVBQUUsRUFDRixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLFNBQWMsRUFDZCxVQUF5QixFQUN6QixTQUErQyxFQUMvQyxXQUFxRDtRQUVyRCxPQUFPLElBQUksb0JBQW9CLENBQzdCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQXlCRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEVBQU87UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxRQUFrQixFQUFFLE9BQWtCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBUztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxTQUFTLENBQUMsUUFBa0IsRUFBRSxJQUFTO1FBQzdDLElBQUksSUFBYSxDQUFDO1FBRWxCLElBQUksSUFBSSxFQUFFO1lBQ04sTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzVDLE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDTCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQYWdlLCBQYWdlYWJsZX0gZnJvbSAnLi4vLi4vcGFnZSc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVycy9maWx0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9jYWxMaXN0RGF0YVNvdXJjZX0gZnJvbSAnLi9sb2NhbC1saXN0LWRhdGEtc291cmNlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL3NvcnQnO1xuaW1wb3J0IHtJUGFnZWREYXRhU291cmNlfSBmcm9tICcuLi9kYXRhLXNvdXJjZSc7XG5cbmV4cG9ydCBjbGFzcyBMb2NhbFBhZ2VkRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIElQYWdlZERhdGFTb3VyY2U8VD4gIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsTGlzdEZldGNoZXI6IExvY2FsTGlzdERhdGFTb3VyY2U8VD47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gZW1wdHkgbG9jYWwgbGlzdCBkYXRhLXNvdXJjZS5cbiAgICogWW91IGNhbiBzZXQgLyBtb2RpZnkgZGF0YSBieSB1c2luZyB0aGUgZGF0YSBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIGlkUHJvcGVydHlcbiAgICogQHBhcmFtIGxvY2FsU29ydFxuICAgKiBAcGFyYW0gbG9jYWxGaWx0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZW1wdHk8VD4oXG4gICAgaWRQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCxcbiAgICBsb2NhbFNvcnQ/OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKSxcbiAgICBsb2NhbEZpbHRlcj86ICgoZGF0YTogVFtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4gVFtdKVxuICApOiBMb2NhbFBhZ2VkRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIExvY2FsUGFnZWREYXRhU291cmNlLmZyb20oXG4gICAgICBbXSxcbiAgICAgIGlkUHJvcGVydHksXG4gICAgICBsb2NhbFNvcnQsXG4gICAgICBsb2NhbEZpbHRlclxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb208VD4oXG4gICAgbG9jYWxEYXRhOiBUW10sXG4gICAgaWRQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCxcbiAgICBsb2NhbFNvcnQ/OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKSxcbiAgICBsb2NhbEZpbHRlcj86ICgoZGF0YTogVFtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4gVFtdKVxuICApOiBMb2NhbFBhZ2VkRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBMb2NhbFBhZ2VkRGF0YVNvdXJjZShcbiAgICAgIGxvY2FsRGF0YSxcbiAgICAgIGlkUHJvcGVydHksXG4gICAgICBsb2NhbFNvcnQsXG4gICAgICBsb2NhbEZpbHRlclxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2NhbERhdGE6IFRbXSxcbiAgICBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsLFxuICAgIGxvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSksXG4gICAgbG9jYWxGaWx0ZXI6ICgoZGF0YTogVFtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4gVFtdKVxuICApIHtcblxuICAgIGlmICghbG9jYWxEYXRhKSB7IHRocm93IG5ldyBFcnJvcignbG9jYWxEYXRhIG11c3Qgbm90IGJlIG51bGwhJyk7IH1cblxuICAgIHRoaXMubG9jYWxMaXN0RmV0Y2hlciA9IG5ldyBMb2NhbExpc3REYXRhU291cmNlKFxuICAgICAgbG9jYWxEYXRhLFxuICAgICAgbG9jYWxTb3J0LFxuICAgICAgbG9jYWxGaWx0ZXIsXG4gICAgICBpZFByb3BlcnR5XG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YUNoYW5nZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyLmRhdGFDaGFuZ2VkO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkKGlkOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyLmZpbmRCeUlkKGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxMaXN0RmV0Y2hlci5maW5kQnlJZHMoaWRzKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQocGFnZWFibGU6IFBhZ2VhYmxlLCBmaWx0ZXJzPzogRmlsdGVyW10pOiBPYnNlcnZhYmxlPFBhZ2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyLmZpbmRBbGxGaWx0ZXJlZChmaWx0ZXJzLCBwYWdlYWJsZS5zb3J0cykucGlwZShcbiAgICAgIG1hcChkYXRhID0+IHRoaXMucGFnZVNsaWNlKHBhZ2VhYmxlLCBkYXRhKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldElkKGVudGl0eTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxMaXN0RmV0Y2hlci5nZXRJZChlbnRpdHkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBwYWdlU2xpY2UocGFnZWFibGU6IFBhZ2VhYmxlLCBkYXRhOiBUW10pOiBQYWdlPFQ+IHtcbiAgICBsZXQgcGFnZTogUGFnZTxUPjtcblxuICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcGFnZWFibGUucGFnZSAqIHBhZ2VhYmxlLnNpemU7XG4gICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgcGFnZWFibGUuc2l6ZTtcbiAgICAgICAgY29uc3Qgc2xpY2UgPSBkYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgICAgICBwYWdlID0gUGFnZS5mcm9tUGFnZShzbGljZSwgZGF0YS5sZW5ndGgsIHBhZ2VhYmxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFnZSA9IFBhZ2UuZnJvbShbXSk7XG4gICAgfVxuICAgIHJldHVybiBwYWdlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EMPTY, forkJoin, of, Subject } from 'rxjs';
|
|
2
2
|
import { expand, map, reduce, tap } from 'rxjs/operators';
|
|
3
3
|
import { HttpParamsBuilder } from '../../http-params-builder';
|
|
4
|
-
import { Filter } from '../../filter';
|
|
4
|
+
import { Filter } from '../../filters/filter';
|
|
5
5
|
import { Pageable } from '../../page';
|
|
6
6
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
7
7
|
import { TokenChunkRequest } from '../../token-chunk-request';
|
|
@@ -291,4 +291,4 @@ export class RestClientContinuable extends RestClient {
|
|
|
291
291
|
}, []));
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBWSxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQU8sUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRS9DLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBWSxVQUE2QjtRQUhsQyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUd0QixJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO2FBQ25DO1lBQ0QsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUs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LElBQUksQ0FBQyxrQkFBa0IsQ0FDdkIsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUNwRSxNQUFNLENBQ1A7Z0JBQ0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNaLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDL0IsTUFBTSxDQUNKLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNJLEVBQUUsQ0FDUixDQUNGLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RU1QVFksIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2V4cGFuZCwgbWFwLCBtZXJnZUFsbCwgcmVkdWNlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SHR0cFBhcmFtc0J1aWxkZXJ9IGZyb20gJy4uLy4uL2h0dHAtcGFyYW1zLWJ1aWxkZXInO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi9zb3J0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXInO1xuaW1wb3J0IHtQYWdlLCBQYWdlYWJsZX0gZnJvbSAnLi4vLi4vcGFnZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Q29udGludWFibGVMaXN0aW5nfSBmcm9tICcuLi8uLi9jb250aW51YWJsZS1saXN0aW5nJztcbmltcG9ydCB7VG9rZW5DaHVua1JlcXVlc3R9IGZyb20gJy4uLy4uL3Rva2VuLWNodW5rLXJlcXVlc3QnO1xuaW1wb3J0IHtJQ29udGludWFibGVEYXRhU291cmNlLCBJRGF0YVNvdXJjZSwgSUxpc3REYXRhU291cmNlLCBJUGFnZWREYXRhU291cmNlfSBmcm9tICcuLi9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge0VudGl0eUlkVXRpbH0gZnJvbSAnLi4vZW50aXR5LWlkLXV0aWwnO1xuaW1wb3J0IHtCYXRjaGVyfSBmcm9tICcuLi8uLi8uLi91dGlscy9iYXRjaGVyJztcblxuZXhwb3J0IGNsYXNzIEludGVybmFsUmVzdENsaWVudENvbmZpZyB7XG5cbiAgcHVibGljIGlkRmllbGQgPSAnaWQnO1xuICBwdWJsaWMgaWRzUGFyYW0gPSAnaWRzJztcblxuICBjb25zdHJ1Y3Rvcih1c2VyQ29uZmlnPzogUmVzdENsaWVudENvbmZpZykge1xuICAgIGlmICh1c2VyQ29uZmlnKSB7XG4gICAgICBpZiAodXNlckNvbmZpZy5pZEZpZWxkKSB7XG4gICAgICAgIHRoaXMuaWRGaWVsZCA9IHVzZXJDb25maWcuaWRGaWVsZDtcbiAgICAgIH1cbiAgICAgIGlmICh1c2VyQ29uZmlnLmlkc1BhcmFtKSB7XG4gICAgICAgIHRoaXMuaWRzUGFyYW0gPSB1c2VyQ29uZmlnLmlkc1BhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFsbG93cyB0byBjdXN0b21pemUgdGhlIHJlc3QgY2xpZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50Q29uZmlnIHtcblxuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIHVzZSBhcyBpZC4gRGVmYXVsdHMgdG8gJ2lkJy5cbiAgICovXG4gIHB1YmxpYyBpZEZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgcGFyYW0gdG8gdXNlIGZvciBtdWx0aXBsZSBpZHMuIERlZmF1bHRzIHRvICdpZHMnXG4gICAqL1xuICBwdWJsaWMgaWRzUGFyYW0/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnQ8VCwgVElEPiBpbXBsZW1lbnRzIElEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxDaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZzogSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHRoaXMuY29uZmlnID0gbmV3IEludGVybmFsUmVzdENsaWVudENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBkYXRhQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbENoYW5nZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGRhdGFDaGFuZ2VkXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxvY2FsQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ2hhbmdlZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQnlJZChpZDogVElELCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcGFyYW1zID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKS5idWlsZCgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuZ2V0RW50aXR5VXJsKGlkKSwge3BhcmFtczogcGFyYW1zfSk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHRoaXMuX2xvZ2dlci53YXJuKCdWZXJ5IGluZWZmaWNpZW50IGZpbmRCeUlkcyBoYW5kbGluZyAnICsgaWRzLmxlbmd0aCk7XG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgaWRzLm1hcChpZCA9PiB0aGlzLmZpbmRCeUlkKGlkLCBwYXJhbXMpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBvciBVcGRhdGVzIHRoZSBnaXZlbiBlbnRpdHkgZGVwZW5kaW5nIGlmIGl0IGFscmVhZHkgaGFzIGEgdmFsaWQgaWQuXG4gICAqL1xuICBwdWJsaWMgc2F2ZShlbnRpdHk6IFQsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0SWQoZW50aXR5KTtcbiAgICByZXR1cm4gKCghIWlkKSA/IHRoaXMudXBkYXRlKGVudGl0eSwgcGFyYW1zKSA6IHRoaXMuY3JlYXRlKGVudGl0eSwgcGFyYW1zKSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlPFRDID0gVD4obmV3RW50aXR5OiBUQywgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLnJlc3RFbmRwb2ludCwgbmV3RW50aXR5LCB7XG4gICAgICBwYXJhbXM6IHBhcmFtc1xuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGUgPT4gdGhpcy5vbkxvY2FsQ2hhbmdlZChlKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHVwZGF0ZWRFbnRpdHk6IFQsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkodXBkYXRlZEVudGl0eSksXG4gICAgICB1cGRhdGVkRW50aXR5LFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZSA9PiB0aGlzLm9uTG9jYWxDaGFuZ2VkKGUpKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBbGwodXBkYXRlZEVudGl0aWVzOiBUW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VFtdPihcbiAgICAgIHRoaXMucmVzdEVuZHBvaW50LCB1cGRhdGVkRW50aXRpZXMsIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGUgPT4gdGhpcy5vbkxvY2FsQ2hhbmdlZCgpKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShlbnRpdHkpLFxuICAgICAge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5vbkxvY2FsQ2hhbmdlZChlbnRpdHkpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQWxsKGVudGl0aWVzOiBUW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGlkcyA9IGVudGl0aWVzLm1hcChlID0+IFN0cmluZyh0aGlzLmdldElkKGUpKSk7XG5cbiAgICBjb25zdCBtYXhCYXRjaFNpemUgPSAxMDA7XG4gICAgY29uc3QgZGVsZXRlUmVxdWVzdHMgPSBCYXRjaGVyLmJhdGNoTWFwKFxuICAgICAgaWRzLFxuICAgICAgbWF4QmF0Y2hTaXplLFxuICAgICAgYmF0Y2ggPT4gdGhpcy5kZWxldGVJZEJhdGNoKGJhdGNoLCBwYXJhbXMpXG4gICAgKTtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoJ0RlbGV0aW5nICcgKyBlbnRpdGllcy5sZW5ndGggKyAnIGluICcgKyBkZWxldGVSZXF1ZXN0cy5sZW5ndGggKyAnIGJhdGNoZXM6ICcsIGRlbGV0ZVJlcXVlc3RzKTtcbiAgICByZXR1cm4gZm9ya0pvaW4oZGVsZXRlUmVxdWVzdHMpO1xuICB9XG5cbiAgcHVibGljIGdldElkKGVudGl0eTogVCk6IFRJRCB7XG4gICAgcmV0dXJuIEVudGl0eUlkVXRpbC5nZXRJZChlbnRpdHksIHRoaXMuY29uZmlnLmlkRmllbGQpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN1YiBSZXNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN1YlJlc291cmNlTGlzdDxUUywgVFNJRD4ocGFyZW50OiBULCBzdWJQYXRoOiBzdHJpbmcsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpOiBSZXN0Q2xpZW50TGlzdDxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudExpc3QoXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLFxuICAgICAgdGhpcy5odHRwLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZVBhZ2VkPFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRQYWdlZDxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudFBhZ2VkKFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCxcbiAgICAgIHRoaXMuaHR0cCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VDb250aW51YWJsZTxUUywgVFNJRD4ocGFyZW50OiBULCBzdWJQYXRoOiBzdHJpbmcsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpOiBSZXN0Q2xpZW50Q29udGludWFibGU8VFMsIFRTSUQ+IHtcbiAgICByZXR1cm4gbmV3IFJlc3RDbGllbnRDb250aW51YWJsZShcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsXG4gICAgICB0aGlzLmh0dHAsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHBhdGNoSW50ZXJuYWw8UCwgUiA9IFQ+KGlkOiBUSUQsIGVudGl0eVBhdGNoOiBQLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxSPihcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsKGlkKSxcbiAgICAgIGVudGl0eVBhdGNoLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMub25Mb2NhbENoYW5nZWQoKSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhdGNoQWxsSW50ZXJuYWw8UCwgUiA9IFQ+KGVudGl0eVBhdGNoZXM6IFBbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8UltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxSW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICBlbnRpdHlQYXRjaGVzLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMub25Mb2NhbENoYW5nZWQoKSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTG9jYWxDaGFuZ2VkKGVudGl0eT86IFQpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2FsQ2hhbmdlU3ViamVjdC5uZXh0KGVudGl0eSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5VXJsQnkoZW50aXR5OiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlVcmwodGhpcy5nZXRJZChlbnRpdHkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmwoaWQ6IFRJRCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzdEVuZHBvaW50ICsgJy8nICsgaWQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgZ2l2ZW4gaWRzIGluIGEgYmF0Y2ggY2FsbC5cbiAgICogTm90ZSB0aGF0IGR1ZSBIVFRQIFJlcXVlc3QgVVJJIGxpbWl0YXRpb25zLFxuICAgKiB0aGUgbnVtYmVyIG9mIGlkcyB0aGF0IGNhbiBiZSBkZWxldGVkIGluIGEgc2luZ2xlIGJhdGNoIGlzXG4gICAqIGxpbWl0ZWQgKGFyb3VuZCAxNTAsIGRlcGVuZGluZyBvbiBpZCBsZW5ndGgsIHNpbmNlIHRoZXkgYXJlXG4gICAqIHBhcnQgb2YgdGhlIHJlcXVlc3QgdXJpIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcml2YXRlIGRlbGV0ZUlkQmF0Y2goaWRzOiBzdHJpbmdbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYnVpbGRlciA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcyk7XG4gICAgYnVpbGRlci5hcHBlbmRGaWx0ZXIobmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICB7XG4gICAgICAgIHBhcmFtczogYnVpbGRlci5idWlsZCgpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5vbkxvY2FsQ2hhbmdlZCgpKVxuICAgICAgKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50TGlzdDxULCBUSUQ+IGV4dGVuZHMgUmVzdENsaWVudDxULCBUSUQ+IGltcGxlbWVudHMgSUxpc3REYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxGaWx0ZXJlZChcbiAgICBmaWx0ZXJzPzogRmlsdGVyW10sXG4gICAgc29ydHM/OiBTb3J0W10sXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmZpbmRBbGwoXG4gICAgICBIdHRwUGFyYW1zQnVpbGRlci5zdGFydChwYXJhbXMpXG4gICAgICAgIC5hcHBlbmRGaWx0ZXJzKGZpbHRlcnMpXG4gICAgICAgIC5hcHBlbmRTb3J0cyhzb3J0cylcbiAgICAgICAgLmJ1aWxkKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kQWxsRmlsdGVyZWQoXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgW10sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZEFsbChwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUW10+KHRoaXMucmVzdEVuZHBvaW50LCB7XG4gICAgICBwYXJhbXM6IHBhcmFtc1xuICAgIH0pO1xuICB9XG5cblxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudFBhZ2VkPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJUGFnZWREYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxQYWdlZChwYWdlYWJsZTogUGFnZWFibGUsIGZpbHRlcnM/OiBGaWx0ZXJbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFBhZ2VkKHRoaXMucmVzdEVuZHBvaW50LCBwYWdlYWJsZSwgZmlsdGVycywgcGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEFsbFBhZ2VkKFxuICAgICAgICBuZXcgUGFnZWFibGUoMCwgaWRzLmxlbmd0aCksXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgcGFyYW1zXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1hcChwYWdlID0+IHBhZ2UuY29udGVudClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVxdWVzdGVkIGRhdGEgcGFnZSBhcyBQYWdlPFQ+XG4gICAqIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHVybFxuICAgKiBAcGFyYW0gcGFnZWFibGUgVGhlIHBhZ2UgcmVxdWVzdFxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVyc1NuYXBzaG90IHJlcXVlc3RcbiAgICogQHBhcmFtIHBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZ2V0UGFnZWQodXJsOiBzdHJpbmcsIHBhZ2VhYmxlOiBQYWdlYWJsZSwgZmlsdGVycz86IEZpbHRlcltdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxQYWdlPFQ+PiB7XG4gICAgcGFyYW1zID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgLmFwcGVuZFBhZ2VhYmxlKHBhZ2VhYmxlKVxuICAgICAgLmFwcGVuZEZpbHRlcnMoZmlsdGVycylcbiAgICAgIC5idWlsZCgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8VD4+KHVybCwge3BhcmFtczogcGFyYW1zfSk7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudENvbnRpbnVhYmxlPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJQ29udGludWFibGVEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxDb250aW51YWJsZShyZXF1ZXN0OiBUb2tlbkNodW5rUmVxdWVzdCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8Q29udGludWFibGVMaXN0aW5nPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGludWFibGVMaXN0aW5nPFQ+Pih0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBIdHRwUGFyYW1zQnVpbGRlci5zdGFydChwYXJhbXMpXG4gICAgICAgICAgLmFwcGVuZENvbnRpbnVhdGlvblJlcXVlc3QocmVxdWVzdClcbiAgICAgICAgICAuYnVpbGQoKVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgW10sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBbGwoXG4gICAgZmlsdGVycz86IEZpbHRlcltdLFxuICAgIHNvcnRzPzogU29ydFtdLFxuICAgIHBhcmFtcz86IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsQ29udGludWFibGUoXG4gICAgICBuZXcgVG9rZW5DaHVua1JlcXVlc3QobnVsbCwgZmlsdGVycywgc29ydHMpLFxuICAgICAgcGFyYW1zXG4gICAgKS5waXBlKFxuICAgICAgZXhwYW5kKChsaXN0aW5nKSA9PiB7IC8vIHRoZSBwcmV2aW91cyBcImxpc3RpbmdcIiAtPiBUaGlzIGlzIHJlY3Vyc2l2ZVxuICAgICAgICByZXR1cm4gbGlzdGluZy5uZXh0Q29udGludWF0aW9uVG9rZW4gLy8gaWYgdGhlcmUncyBcIm5leHRDb250aW51YXRpb25Ub2tlblwiLCB3ZSByZWZldGNoIG9yIHdlIEVNUFRZIHRvIGNvbXBsZXRlIHRoZSBcImV4cGFuZCgpXCJcbiAgICAgICAgICA/IHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKFxuICAgICAgICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuLCBmaWx0ZXJzLCBzb3J0cyksXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICApXG4gICAgICAgICAgOiBFTVBUWTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGxpc3RpbmcgPT4gbGlzdGluZy5jb250ZW50KSxcbiAgICAgIHJlZHVjZShcbiAgICAgICAgKGFnZywgbGlzdGluZykgPT4ge1xuICAgICAgICAgIGFnZy5wdXNoKC4uLmxpc3RpbmcpO1xuICAgICAgICAgIHJldHVybiBhZ2c7XG4gICAgICAgIH0sXG4gICAgICAgIDxUW10+W11cbiAgICAgIClcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBWSxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBTyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFL0MsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxZQUFZLFVBQTZCO1FBSGxDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR3RCLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDbkM7WUFDRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0NBVzVCO0FBR0QsTUFBTSxPQUFPLFVBQVU7SUFhckI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ3FCLFlBQW9CLEVBQ3BCLElBQWdCLEVBQ25DLE1BQXlCO1FBRk4saUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQW5CckM7Ozs7b0ZBSTRFO1FBRTNELFlBQU8sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekQsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQUssQ0FBQztRQWNyRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVEsQ0FBQyxFQUFPLEVBQUUsTUFBbUI7UUFDMUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQVUsRUFBRSxNQUFtQjtRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsT0FBTyxRQUFRLENBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsTUFBUyxFQUFFLE1BQW1CO1FBQ3hDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFTLFNBQWEsRUFBRSxNQUFtQjtRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFO1lBQ3JELE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQzthQUNDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWdCLEVBQUUsTUFBbUI7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFDbEMsYUFBYSxFQUNiO1lBQ0UsTUFBTSxFQUFFLE1BQU07U0FDZixDQUNGO2FBQ0UsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFFTSxTQUFTLENBQUMsZUFBb0IsRUFBRSxNQUFtQjtRQUV4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRTtZQUNsQyxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQ2hDLENBQUM7SUFDTixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQVMsRUFBRSxNQUFtQjtRQUUxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUMzQjtZQUNFLFlBQVksRUFBRSxNQUFNO1lBQ3BCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FDRixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUFhLEVBQUUsTUFBbUI7UUFDakQsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDekIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FDckMsR0FBRyxFQUNILFlBQVksRUFDWixLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xILE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBUztRQUNwQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxlQUFlLENBQVcsTUFBUyxFQUFFLE9BQWUsRUFBRSxNQUF5QjtRQUNwRixPQUFPLElBQUksY0FBYyxDQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLEVBQzNDLElBQUksQ0FBQyxJQUFJLEVBQ1QsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRU0sZ0JBQWdCLENBQVcsTUFBUyxFQUFFLE9BQWUsRUFBRSxNQUF5QjtRQUNyRixPQUFPLElBQUksZUFBZSxDQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLEVBQzNDLElBQUksQ0FBQyxJQUFJLEVBQ1QsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRU0sc0JBQXNCLENBQVcsTUFBUyxFQUFFLE9BQWUsRUFBRSxNQUF5QjtRQUMzRixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLE9BQU8sRUFDM0MsSUFBSSxDQUFDLElBQUksRUFDVCxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsYUFBYSxDQUFXLEVBQU8sRUFBRSxXQUFjLEVBQUUsTUFBbUI7UUFDNUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFDckIsV0FBVyxFQUNYO1lBQ0UsTUFBTSxFQUFFLE1BQU07U0FDZixDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVTLGdCQUFnQixDQUFXLGFBQWtCLEVBQUUsTUFBbUI7UUFDMUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDcEIsSUFBSSxDQUFDLFlBQVksRUFDakIsYUFBYSxFQUNiO1lBQ0UsTUFBTSxFQUFFLE1BQU07U0FDZixDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVTLGNBQWMsQ0FBQyxNQUFVO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxNQUFTO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVTLFlBQVksQ0FBQyxFQUFPO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7OztPQU1HO0lBQ0ssYUFBYSxDQUFDLEdBQWEsRUFBRSxNQUFtQjtRQUN0RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFDdkM7WUFDRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN2QixZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBTyxjQUF1QixTQUFRLFVBQWtCO0lBRTVEOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFlBQW9CLEVBQ3BCLElBQWdCLEVBQ2hCLE1BQXlCO1FBRXpCLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsZUFBZSxDQUNwQixPQUFrQixFQUNsQixLQUFjLEVBQ2QsTUFBbUI7UUFFbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUNqQixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQzVCLGFBQWEsQ0FBQyxPQUFPLENBQUM7YUFDdEIsV0FBVyxDQUFDLEtBQUssQ0FBQzthQUNsQixLQUFLLEVBQUUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFVLEVBQUUsTUFBbUI7UUFDOUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQ3pCLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDdkMsRUFBRSxFQUNGLE1BQU0sQ0FDUCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQW1CO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMzQyxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FHRjtBQUVELE1BQU0sT0FBTyxlQUF3QixTQUFRLFVBQWtCO0lBRTdEOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFlBQW9CLEVBQ3BCLElBQWdCLEVBQ2hCLE1BQXlCO1FBRXpCLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsWUFBWSxDQUFDLFFBQWtCLEVBQUUsT0FBa0IsRUFBRSxNQUFtQjtRQUM3RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVSxFQUFFLE1BQW1CO1FBQzlDLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUN0QixJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUMzQixDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZDLE1BQU0sQ0FDUCxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQzFCLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFHNUU7Ozs7OztPQU1HO0lBQ0ssUUFBUSxDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFFLE9BQWtCLEVBQUUsTUFBbUI7UUFDdkYsTUFBTSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDckMsY0FBYyxDQUFDLFFBQVEsQ0FBQzthQUN4QixhQUFhLENBQUMsT0FBTyxDQUFDO2FBQ3RCLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVSxHQUFHLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBRUY7QUFFRCxNQUFNLE9BQU8scUJBQThCLFNBQVEsVUFBa0I7SUFFbkU7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsWUFBb0IsRUFDcEIsSUFBZ0IsRUFDaEIsTUFBeUI7UUFFekIsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxrQkFBa0IsQ0FBQyxPQUEwQixFQUFFLE1BQW1CO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdCLElBQUksQ0FBQyxZQUFZLEVBQzNEO1lBQ0UsTUFBTSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7aUJBQ3BDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztpQkFDbEMsS0FBSyxFQUFFO1NBQ1gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFVLEVBQUUsTUFBbUI7UUFDOUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQ2pCLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDdkMsRUFBRSxFQUNGLE1BQU0sQ0FDUCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUNiLE9BQWtCLEVBQ2xCLEtBQWMsRUFDZCxNQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUMzQyxNQUFNLENBQ1AsQ0FBQyxJQUFJLENBQ0osTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDakIsT0FBTyxPQUFPLENBQUMscUJBQXFCLENBQUMsd0ZBQXdGO2dCQUMzSCxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUN2QixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQ3BFLE1BQU0sQ0FDUDtnQkFDRCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUMvQixNQUFNLENBQ0osQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDZixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0ksRUFBRSxDQUNSLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZXhwYW5kLCBtYXAsIG1lcmdlQWxsLCByZWR1Y2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIdHRwUGFyYW1zQnVpbGRlcn0gZnJvbSAnLi4vLi4vaHR0cC1wYXJhbXMtYnVpbGRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7UGFnZSwgUGFnZWFibGV9IGZyb20gJy4uLy4uL3BhZ2UnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0NvbnRpbnVhYmxlTGlzdGluZ30gZnJvbSAnLi4vLi4vY29udGludWFibGUtbGlzdGluZyc7XG5pbXBvcnQge1Rva2VuQ2h1bmtSZXF1ZXN0fSBmcm9tICcuLi8uLi90b2tlbi1jaHVuay1yZXF1ZXN0JztcbmltcG9ydCB7SUNvbnRpbnVhYmxlRGF0YVNvdXJjZSwgSURhdGFTb3VyY2UsIElMaXN0RGF0YVNvdXJjZSwgSVBhZ2VkRGF0YVNvdXJjZX0gZnJvbSAnLi4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtFbnRpdHlJZFV0aWx9IGZyb20gJy4uL2VudGl0eS1pZC11dGlsJztcbmltcG9ydCB7QmF0Y2hlcn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYmF0Y2hlcic7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFJlc3RDbGllbnRDb25maWcge1xuXG4gIHB1YmxpYyBpZEZpZWxkID0gJ2lkJztcbiAgcHVibGljIGlkc1BhcmFtID0gJ2lkcyc7XG5cbiAgY29uc3RydWN0b3IodXNlckNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBpZiAodXNlckNvbmZpZykge1xuICAgICAgaWYgKHVzZXJDb25maWcuaWRGaWVsZCkge1xuICAgICAgICB0aGlzLmlkRmllbGQgPSB1c2VyQ29uZmlnLmlkRmllbGQ7XG4gICAgICB9XG4gICAgICBpZiAodXNlckNvbmZpZy5pZHNQYXJhbSkge1xuICAgICAgICB0aGlzLmlkc1BhcmFtID0gdXNlckNvbmZpZy5pZHNQYXJhbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBbGxvd3MgdG8gY3VzdG9taXplIHRoZSByZXN0IGNsaWVudFxuICovXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudENvbmZpZyB7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byB1c2UgYXMgaWQuIERlZmF1bHRzIHRvICdpZCcuXG4gICAqL1xuICBwdWJsaWMgaWRGaWVsZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHBhcmFtIHRvIHVzZSBmb3IgbXVsdGlwbGUgaWRzLiBEZWZhdWx0cyB0byAnaWRzJ1xuICAgKi9cbiAgcHVibGljIGlkc1BhcmFtPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJRGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsQ2hhbmdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEludGVybmFsUmVzdENsaWVudENvbmZpZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICB0aGlzLmNvbmZpZyA9IG5ldyBJbnRlcm5hbFJlc3RDbGllbnRDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YUNoYW5nZWQoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxDaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBkYXRhQ2hhbmdlZFxuICAgKi9cbiAgcHVibGljIGdldCBsb2NhbENoYW5nZWQoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZWQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IFRJRCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmdldEVudGl0eVVybChpZCksIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICB0aGlzLl9sb2dnZXIud2FybignVmVyeSBpbmVmZmljaWVudCBmaW5kQnlJZHMgaGFuZGxpbmcgJyArIGlkcy5sZW5ndGgpO1xuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGlkcy5tYXAoaWQgPT4gdGhpcy5maW5kQnlJZChpZCwgcGFyYW1zKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSk7XG4gICAgcmV0dXJuICgoISFpZCkgPyB0aGlzLnVwZGF0ZShlbnRpdHksIHBhcmFtcykgOiB0aGlzLmNyZWF0ZShlbnRpdHksIHBhcmFtcykpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZTxUQyA9IFQ+KG5ld0VudGl0eTogVEMsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5yZXN0RW5kcG9pbnQsIG5ld0VudGl0eSwge1xuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChlID0+IHRoaXMub25Mb2NhbENoYW5nZWQoZSkpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSh1cGRhdGVkRW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHVwZGF0ZWRFbnRpdHkpLFxuICAgICAgdXBkYXRlZEVudGl0eSxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGUgPT4gdGhpcy5vbkxvY2FsQ2hhbmdlZChlKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWxsKHVwZGF0ZWRFbnRpdGllczogVFtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFRbXT4oXG4gICAgICB0aGlzLnJlc3RFbmRwb2ludCwgdXBkYXRlZEVudGl0aWVzLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChlID0+IHRoaXMub25Mb2NhbENoYW5nZWQoKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGVudGl0eTogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSxcbiAgICAgIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMub25Mb2NhbENoYW5nZWQoZW50aXR5KSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUFsbChlbnRpdGllczogVFtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBpZHMgPSBlbnRpdGllcy5tYXAoZSA9PiBTdHJpbmcodGhpcy5nZXRJZChlKSkpO1xuXG4gICAgY29uc3QgbWF4QmF0Y2hTaXplID0gMTAwO1xuICAgIGNvbnN0IGRlbGV0ZVJlcXVlc3RzID0gQmF0Y2hlci5iYXRjaE1hcChcbiAgICAgIGlkcyxcbiAgICAgIG1heEJhdGNoU2l6ZSxcbiAgICAgIGJhdGNoID0+IHRoaXMuZGVsZXRlSWRCYXRjaChiYXRjaCwgcGFyYW1zKVxuICAgICk7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdEZWxldGluZyAnICsgZW50aXRpZXMubGVuZ3RoICsgJyBpbiAnICsgZGVsZXRlUmVxdWVzdHMubGVuZ3RoICsgJyBiYXRjaGVzOiAnLCBkZWxldGVSZXF1ZXN0cyk7XG4gICAgcmV0dXJuIGZvcmtKb2luKGRlbGV0ZVJlcXVlc3RzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJZChlbnRpdHk6IFQpOiBUSUQge1xuICAgIHJldHVybiBFbnRpdHlJZFV0aWwuZ2V0SWQoZW50aXR5LCB0aGlzLmNvbmZpZy5pZEZpZWxkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdWIgUmVzb3VyY2UgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZUxpc3Q8VFMsIFRTSUQ+KHBhcmVudDogVCwgc3ViUGF0aDogc3RyaW5nLCBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKTogUmVzdENsaWVudExpc3Q8VFMsIFRTSUQ+IHtcbiAgICByZXR1cm4gbmV3IFJlc3RDbGllbnRMaXN0KFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCxcbiAgICAgIHRoaXMuaHR0cCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VQYWdlZDxUUywgVFNJRD4ocGFyZW50OiBULCBzdWJQYXRoOiBzdHJpbmcsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpOiBSZXN0Q2xpZW50UGFnZWQ8VFMsIFRTSUQ+IHtcbiAgICByZXR1cm4gbmV3IFJlc3RDbGllbnRQYWdlZChcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsXG4gICAgICB0aGlzLmh0dHAsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YlJlc291cmNlQ29udGludWFibGU8VFMsIFRTSUQ+KHBhcmVudDogVCwgc3ViUGF0aDogc3RyaW5nLCBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKTogUmVzdENsaWVudENvbnRpbnVhYmxlPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50Q29udGludWFibGUoXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLFxuICAgICAgdGhpcy5odHRwLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm90ZWN0ZWQgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBwYXRjaEludGVybmFsPFAsIFIgPSBUPihpZDogVElELCBlbnRpdHlQYXRjaDogUCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8Uj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8Uj4oXG4gICAgICB0aGlzLmdldEVudGl0eVVybChpZCksXG4gICAgICBlbnRpdHlQYXRjaCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoZSA9PiB0aGlzLm9uTG9jYWxDaGFuZ2VkKCkpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXRjaEFsbEludGVybmFsPFAsIFIgPSBUPihlbnRpdHlQYXRjaGVzOiBQW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFJbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8UltdPihcbiAgICAgIHRoaXMucmVzdEVuZHBvaW50LFxuICAgICAgZW50aXR5UGF0Y2hlcyxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoZSA9PiB0aGlzLm9uTG9jYWxDaGFuZ2VkKCkpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkxvY2FsQ2hhbmdlZChlbnRpdHk/OiBUKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbENoYW5nZVN1YmplY3QubmV4dChlbnRpdHkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eVVybEJ5KGVudGl0eTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5VXJsKHRoaXMuZ2V0SWQoZW50aXR5KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5VXJsKGlkOiBUSUQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc3RFbmRwb2ludCArICcvJyArIGlkO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgdGhlIGdpdmVuIGlkcyBpbiBhIGJhdGNoIGNhbGwuXG4gICAqIE5vdGUgdGhhdCBkdWUgSFRUUCBSZXF1ZXN0IFVSSSBsaW1pdGF0aW9ucyxcbiAgICogdGhlIG51bWJlciBvZiBpZHMgdGhhdCBjYW4gYmUgZGVsZXRlZCBpbiBhIHNpbmdsZSBiYXRjaCBpc1xuICAgKiBsaW1pdGVkIChhcm91bmQgMTUwLCBkZXBlbmRpbmcgb24gaWQgbGVuZ3RoLCBzaW5jZSB0aGV5IGFyZVxuICAgKiBwYXJ0IG9mIHRoZSByZXF1ZXN0IHVyaSBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWxldGVJZEJhdGNoKGlkczogc3RyaW5nW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBIdHRwUGFyYW1zQnVpbGRlci5zdGFydChwYXJhbXMpO1xuICAgIGJ1aWxkZXIuYXBwZW5kRmlsdGVyKG5ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcykpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHRoaXMucmVzdEVuZHBvaW50LFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IGJ1aWxkZXIuYnVpbGQoKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMub25Mb2NhbENoYW5nZWQoKSlcbiAgICAgICk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudExpc3Q8VCwgVElEPiBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPiBpbXBsZW1lbnRzIElMaXN0RGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsRmlsdGVyZWQoXG4gICAgZmlsdGVycz86IEZpbHRlcltdLFxuICAgIHNvcnRzPzogU29ydFtdLFxuICAgIHBhcmFtcz86IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsKFxuICAgICAgSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgICAuYXBwZW5kRmlsdGVycyhmaWx0ZXJzKVxuICAgICAgICAuYXBwZW5kU29ydHMoc29ydHMpXG4gICAgICAgIC5idWlsZCgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEFsbEZpbHRlcmVkKFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIFtdLFxuICAgICAgICBwYXJhbXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmRBbGwocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KTtcbiAgfVxuXG5cbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRQYWdlZDxULCBUSUQ+IGV4dGVuZHMgUmVzdENsaWVudDxULCBUSUQ+IGltcGxlbWVudHMgSVBhZ2VkRGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQocGFnZWFibGU6IFBhZ2VhYmxlLCBmaWx0ZXJzPzogRmlsdGVyW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlZCh0aGlzLnJlc3RFbmRwb2ludCwgcGFnZWFibGUsIGZpbHRlcnMsIHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRBbGxQYWdlZChcbiAgICAgICAgbmV3IFBhZ2VhYmxlKDAsIGlkcy5sZW5ndGgpLFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKS5waXBlKFxuICAgICAgICBtYXAocGFnZSA9PiBwYWdlLmNvbnRlbnQpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlcXVlc3RlZCBkYXRhIHBhZ2UgYXMgUGFnZTxUPlxuICAgKiBAcGFyYW0gdXJsIFRoZSByZXNvdXJjZSB1cmxcbiAgICogQHBhcmFtIHBhZ2VhYmxlIFRoZSBwYWdlIHJlcXVlc3RcbiAgICogQHBhcmFtIGZpbHRlcnMgVGhlIGZpbHRlcnNTbmFwc2hvdCByZXF1ZXN0XG4gICAqIEBwYXJhbSBwYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICBwcml2YXRlIGdldFBhZ2VkKHVybDogc3RyaW5nLCBwYWdlYWJsZTogUGFnZWFibGUsIGZpbHRlcnM/OiBGaWx0ZXJbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICAgIC5hcHBlbmRQYWdlYWJsZShwYWdlYWJsZSlcbiAgICAgIC5hcHBlbmRGaWx0ZXJzKGZpbHRlcnMpXG4gICAgICAuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWdlPFQ+Pih1cmwsIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRDb250aW51YWJsZTxULCBUSUQ+IGV4dGVuZHMgUmVzdENsaWVudDxULCBUSUQ+IGltcGxlbWVudHMgSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsQ29udGludWFibGUocmVxdWVzdDogVG9rZW5DaHVua1JlcXVlc3QsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPENvbnRpbnVhYmxlTGlzdGluZzxUPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRpbnVhYmxlTGlzdGluZzxUPj4odGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICB7XG4gICAgICAgIHBhcmFtczogSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgICAgIC5hcHBlbmRDb250aW51YXRpb25SZXF1ZXN0KHJlcXVlc3QpXG4gICAgICAgICAgLmJ1aWxkKClcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsKFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIFtdLFxuICAgICAgICBwYXJhbXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQWxsKFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBzb3J0cz86IFNvcnRbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKFxuICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KG51bGwsIGZpbHRlcnMsIHNvcnRzKSxcbiAgICAgIHBhcmFtc1xuICAgICkucGlwZShcbiAgICAgIGV4cGFuZCgobGlzdGluZykgPT4geyAvLyB0aGUgcHJldmlvdXMgXCJsaXN0aW5nXCIgLT4gVGhpcyBpcyByZWN1cnNpdmVcbiAgICAgICAgcmV0dXJuIGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuIC8vIGlmIHRoZXJlJ3MgXCJuZXh0Q29udGludWF0aW9uVG9rZW5cIiwgd2UgcmVmZXRjaCBvciB3ZSBFTVBUWSB0byBjb21wbGV0ZSB0aGUgXCJleHBhbmQoKVwiXG4gICAgICAgICAgPyB0aGlzLmZpbmRBbGxDb250aW51YWJsZShcbiAgICAgICAgICAgIG5ldyBUb2tlbkNodW5rUmVxdWVzdChsaXN0aW5nLm5leHRDb250aW51YXRpb25Ub2tlbiwgZmlsdGVycywgc29ydHMpLFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgKVxuICAgICAgICAgIDogRU1QVFk7XG4gICAgICB9KSxcbiAgICAgIG1hcChsaXN0aW5nID0+IGxpc3RpbmcuY29udGVudCksXG4gICAgICByZWR1Y2UoXG4gICAgICAgIChhZ2csIGxpc3RpbmcpID0+IHtcbiAgICAgICAgICBhZ2cucHVzaCguLi5saXN0aW5nKTtcbiAgICAgICAgICByZXR1cm4gYWdnO1xuICAgICAgICB9LFxuICAgICAgICA8VFtdPltdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Filter } from './filter';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
+
export class FilterContext {
|
|
5
|
+
constructor() {
|
|
6
|
+
/***************************************************************************
|
|
7
|
+
* *
|
|
8
|
+
* Fields *
|
|
9
|
+
* *
|
|
10
|
+
**************************************************************************/
|
|
11
|
+
this._filters$ = new BehaviorSubject([]);
|
|
12
|
+
}
|
|
13
|
+
/***************************************************************************
|
|
14
|
+
* *
|
|
15
|
+
* Static Utilities *
|
|
16
|
+
* *
|
|
17
|
+
**************************************************************************/
|
|
18
|
+
/**
|
|
19
|
+
* Update the given filters with new ones, merging the two.
|
|
20
|
+
* The updated filters take precedence.
|
|
21
|
+
* @param filters
|
|
22
|
+
* @param updatedFilters
|
|
23
|
+
*/
|
|
24
|
+
static updateFilters(filters, updatedFilters) {
|
|
25
|
+
const filterMap = new Map();
|
|
26
|
+
if (filters) {
|
|
27
|
+
filters.forEach(f => filterMap.set(f.key, f));
|
|
28
|
+
}
|
|
29
|
+
if (updatedFilters) {
|
|
30
|
+
updatedFilters.forEach(f => {
|
|
31
|
+
if (Filter.hasValue(f)) {
|
|
32
|
+
filterMap.set(f.key, f);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
if (filterMap.has(f.key)) {
|
|
36
|
+
filterMap.delete(f.key);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return Array.from(filterMap.values());
|
|
42
|
+
}
|
|
43
|
+
/***************************************************************************
|
|
44
|
+
* *
|
|
45
|
+
* Read API *
|
|
46
|
+
* *
|
|
47
|
+
**************************************************************************/
|
|
48
|
+
get filters() {
|
|
49
|
+
return this._filters$.asObservable().pipe(distinctUntilChanged((a, b) => this.equals(a, b)));
|
|
50
|
+
}
|
|
51
|
+
get filtersSnapshot() {
|
|
52
|
+
return this._filters$.getValue();
|
|
53
|
+
}
|
|
54
|
+
findFilterValue(key) {
|
|
55
|
+
const f = this.findFilter(key);
|
|
56
|
+
return f ? f.value : undefined;
|
|
57
|
+
}
|
|
58
|
+
findFilter(key) {
|
|
59
|
+
return this.filtersSnapshot
|
|
60
|
+
.filter(f => f.key === key)
|
|
61
|
+
.find(first => true);
|
|
62
|
+
}
|
|
63
|
+
/***************************************************************************
|
|
64
|
+
* *
|
|
65
|
+
* Public API *
|
|
66
|
+
* *
|
|
67
|
+
**************************************************************************/
|
|
68
|
+
removeFilter(key) {
|
|
69
|
+
const current = this.filtersSnapshot;
|
|
70
|
+
const newFilters = current.filter(f => f.key !== key);
|
|
71
|
+
if (current.length !== newFilters.length) {
|
|
72
|
+
this.replaceFilters(newFilters);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* This method updatees / adds the given filter, leaving
|
|
77
|
+
* existing ones untouched.
|
|
78
|
+
* @param updatedFilter
|
|
79
|
+
*/
|
|
80
|
+
updateFilter(updatedFilter) {
|
|
81
|
+
if (updatedFilter) {
|
|
82
|
+
this.updateFilters([updatedFilter]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* This method updates / adds the given filters, leaving
|
|
87
|
+
* existing ones untouched.
|
|
88
|
+
* @param updatedFilters
|
|
89
|
+
*/
|
|
90
|
+
updateFilters(updatedFilters) {
|
|
91
|
+
if (updatedFilters && updatedFilters.length > 0) {
|
|
92
|
+
this.replaceFilters(FilterContext.updateFilters(this.filtersSnapshot, updatedFilters));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Replace all existing filters with the given new ones.
|
|
97
|
+
* @param newFilters
|
|
98
|
+
*/
|
|
99
|
+
replaceFilters(newFilters) {
|
|
100
|
+
this._filters$.next(newFilters || []);
|
|
101
|
+
}
|
|
102
|
+
clear() {
|
|
103
|
+
this.replaceFilters([]);
|
|
104
|
+
}
|
|
105
|
+
mergeFilters(filters) {
|
|
106
|
+
filters.forEach(filter => this.mergeFilter(filter));
|
|
107
|
+
}
|
|
108
|
+
mergeFilter(filter) {
|
|
109
|
+
const existing = this.findFilter(filter.key);
|
|
110
|
+
if (!existing) {
|
|
111
|
+
this.updateFilter(filter);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.updateFilter(Filter.merge(existing, filter));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/***************************************************************************
|
|
118
|
+
* *
|
|
119
|
+
* Private methods *
|
|
120
|
+
* *
|
|
121
|
+
**************************************************************************/
|
|
122
|
+
equals(aFilters, bFilters) {
|
|
123
|
+
if (aFilters.length !== bFilters.length) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
if (aFilters.length === 0 && bFilters.length === 0) {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
// The both filter arrays have the same length, so we must compare them by value
|
|
130
|
+
const bIndex = new Map();
|
|
131
|
+
bFilters.forEach(f => bIndex.set(f.key, f));
|
|
132
|
+
for (const fa of aFilters) {
|
|
133
|
+
const bFilter = bIndex.get(fa.key);
|
|
134
|
+
if (!Filter.equals(bFilter, fa)) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUVFOzs7O29GQUk0RTtRQUUzRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7SUFzSmpFLENBQUM7SUFwSkM7Ozs7Z0ZBSTRFO0lBRTVFOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFpQixFQUFFLGNBQXdCO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBRTVDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN0QixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO3FCQUFNO29CQUNMLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFD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QUMzQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1NBQ2xEO0lBQ0gsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxNQUFNLENBQUMsUUFBa0IsRUFBRSxRQUFrQjtRQUVuRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFDMUQsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFFcEUsZ0ZBQWdGO1FBRWhGLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1QyxLQUFLLE1BQU0sRUFBRSxJQUFJLFFBQVEsRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIEZpbHRlckNvbnRleHQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgVXRpbGl0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGdpdmVuIGZpbHRlcnMgd2l0aCBuZXcgb25lcywgbWVyZ2luZyB0aGUgdHdvLlxuICAgKiBUaGUgdXBkYXRlZCBmaWx0ZXJzIHRha2UgcHJlY2VkZW5jZS5cbiAgICogQHBhcmFtIGZpbHRlcnNcbiAgICogQHBhcmFtIHVwZGF0ZWRGaWx0ZXJzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVwZGF0ZUZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10sIHVwZGF0ZWRGaWx0ZXJzOiBGaWx0ZXJbXSk6IEZpbHRlcltdIHtcbiAgICBjb25zdCBmaWx0ZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgRmlsdGVyPigpO1xuXG4gICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgIGZpbHRlcnMuZm9yRWFjaChmID0+IGZpbHRlck1hcC5zZXQoZi5rZXksIGYpKTtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlZEZpbHRlcnMpIHtcbiAgICAgIHVwZGF0ZWRGaWx0ZXJzLmZvckVhY2goZiA9PiB7XG4gICAgICAgIGlmIChGaWx0ZXIuaGFzVmFsdWUoZikpIHtcbiAgICAgICAgICBmaWx0ZXJNYXAuc2V0KGYua2V5LCBmKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZmlsdGVyTWFwLmhhcyhmLmtleSkpIHtcbiAgICAgICAgICAgIGZpbHRlck1hcC5kZWxldGUoZi5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsdGVyTWFwLnZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBSZWFkIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZmlsdGVycygpOiBPYnNlcnZhYmxlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gdGhpcy5lcXVhbHMoYSwgYikpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyc1NuYXBzaG90KCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kRmlsdGVyVmFsdWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZiA9IHRoaXMuZmluZEZpbHRlcihrZXkpO1xuICAgIHJldHVybiBmID8gZi52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kRmlsdGVyKGtleTogc3RyaW5nKTogRmlsdGVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzU25hcHNob3RcbiAgICAgIC5maWx0ZXIoZiA9PiBmLmtleSA9PT0ga2V5KVxuICAgICAgLmZpbmQoZmlyc3QgPT4gdHJ1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVtb3ZlRmlsdGVyKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZmlsdGVyc1NuYXBzaG90O1xuICAgIGNvbnN0IG5ld0ZpbHRlcnMgPSBjdXJyZW50LmZpbHRlcihmID0+IGYua2V5ICE9PSBrZXkpO1xuICAgIGlmIChjdXJyZW50Lmxlbmd0aCAhPT0gbmV3RmlsdGVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmVwbGFjZUZpbHRlcnMobmV3RmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZWVzIC8gYWRkcyB0aGUgZ2l2ZW4gZmlsdGVyLCBsZWF2aW5nXG4gICAqIGV4aXN0aW5nIG9uZXMgdW50b3VjaGVkLlxuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlclxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyPzogRmlsdGVyKTogdm9pZCB7XG4gICAgaWYgKHVwZGF0ZWRGaWx0ZXIpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVycyhbdXBkYXRlZEZpbHRlcl0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB1cGRhdGVzIC8gYWRkcyB0aGUgZ2l2ZW4gZmlsdGVycywgbGVhdmluZ1xuICAgKiBleGlzdGluZyBvbmVzIHVudG91Y2hlZC5cbiAgICogQHBhcmFtIHVwZGF0ZWRGaWx0ZXJzXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRmlsdGVycyh1cGRhdGVkRmlsdGVycz86IEZpbHRlcltdKTogdm9pZCB7XG4gICAgaWYgKHVwZGF0ZWRGaWx0ZXJzICYmIHVwZGF0ZWRGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVwbGFjZUZpbHRlcnMoXG4gICAgICAgIEZpbHRlckNvbnRleHQudXBkYXRlRmlsdGVycyh0aGlzLmZpbHRlcnNTbmFwc2hvdCwgdXBkYXRlZEZpbHRlcnMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIGFsbCBleGlzdGluZyBmaWx0ZXJzIHdpdGggdGhlIGdpdmVuIG5ldyBvbmVzLlxuICAgKiBAcGFyYW0gbmV3RmlsdGVyc1xuICAgKi9cbiAgcHVibGljIHJlcGxhY2VGaWx0ZXJzKG5ld0ZpbHRlcnM/OiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuX2ZpbHRlcnMkLm5leHQobmV3RmlsdGVycyB8fCBbXSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBsYWNlRmlsdGVycyhbXSk7XG4gIH1cblxuICBwdWJsaWMgbWVyZ2VGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKXtcbiAgICBmaWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHRoaXMubWVyZ2VGaWx0ZXIoZmlsdGVyKSk7XG4gIH1cblxuICBwdWJsaWMgbWVyZ2VGaWx0ZXIoZmlsdGVyOiBGaWx0ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZmluZEZpbHRlcihmaWx0ZXIua2V5KTtcbiAgICBpZighZXhpc3Rpbmcpe1xuICAgICAgdGhpcy51cGRhdGVGaWx0ZXIoZmlsdGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVGaWx0ZXIoRmlsdGVyLm1lcmdlKGV4aXN0aW5nLCBmaWx0ZXIpKVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZXF1YWxzKGFGaWx0ZXJzOiBGaWx0ZXJbXSwgYkZpbHRlcnM6IEZpbHRlcltdKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoYUZpbHRlcnMubGVuZ3RoICE9PSBiRmlsdGVycy5sZW5ndGgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgaWYgKGFGaWx0ZXJzLmxlbmd0aCA9PT0gMCAmJiBiRmlsdGVycy5sZW5ndGggPT09IDApIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIC8vIFRoZSBib3RoIGZpbHRlciBhcnJheXMgaGF2ZSB0aGUgc2FtZSBsZW5ndGgsIHNvIHdlIG11c3QgY29tcGFyZSB0aGVtIGJ5IHZhbHVlXG5cbiAgICBjb25zdCBiSW5kZXggPSBuZXcgTWFwPHN0cmluZywgRmlsdGVyPigpO1xuICAgIGJGaWx0ZXJzLmZvckVhY2goZiA9PiBiSW5kZXguc2V0KGYua2V5LCBmKSk7XG5cbiAgICBmb3IgKGNvbnN0IGZhIG9mIGFGaWx0ZXJzKSB7XG4gICAgICBjb25zdCBiRmlsdGVyID0gYkluZGV4LmdldChmYS5rZXkpO1xuICAgICAgaWYgKCFGaWx0ZXIuZXF1YWxzKGJGaWx0ZXIsIGZhKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Objects } from '../../objects';
|
|
2
|
+
import { CollectionUtil } from '../../utils/collection-util';
|
|
3
|
+
export class Filter {
|
|
4
|
+
/***************************************************************************
|
|
5
|
+
* *
|
|
6
|
+
* Constructor *
|
|
7
|
+
* *
|
|
8
|
+
**************************************************************************/
|
|
9
|
+
constructor(key, value) {
|
|
10
|
+
if (!key) {
|
|
11
|
+
throw new Error('ArgumentNull: Filter.key can not be null!');
|
|
12
|
+
}
|
|
13
|
+
this.key = key;
|
|
14
|
+
this.value = value;
|
|
15
|
+
}
|
|
16
|
+
/***************************************************************************
|
|
17
|
+
* *
|
|
18
|
+
* Public API *
|
|
19
|
+
* *
|
|
20
|
+
**************************************************************************/
|
|
21
|
+
static merge(current, forcedFilter) {
|
|
22
|
+
let newFilterValue;
|
|
23
|
+
if (Filter.isMulti(current) || Filter.isMulti(forcedFilter)) {
|
|
24
|
+
// We have a list of values. We just have to ensure our forced values are in there
|
|
25
|
+
const valueSet = new Set();
|
|
26
|
+
Filter.addValuesToSet(valueSet, current);
|
|
27
|
+
Filter.addValuesToSet(valueSet, forcedFilter);
|
|
28
|
+
newFilterValue = Array.from(valueSet);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
newFilterValue = forcedFilter.value;
|
|
32
|
+
}
|
|
33
|
+
return new Filter(current.key, newFilterValue);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Checks if this filter supports multiple values.
|
|
37
|
+
* @param filter
|
|
38
|
+
*/
|
|
39
|
+
static isMulti(filter) {
|
|
40
|
+
return Array.isArray(filter.value);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Checks if this filter has a value.
|
|
44
|
+
* This is the case when the value is non-null and
|
|
45
|
+
* in case it's an array, also non-empty.
|
|
46
|
+
*/
|
|
47
|
+
static hasValue(self) {
|
|
48
|
+
if (!self) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
if (Objects.nonNull(self.value)) {
|
|
52
|
+
if (self.value instanceof Array) {
|
|
53
|
+
return self.value.length > 0;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Checks this filter has the same value as the other given filter.
|
|
63
|
+
* @param self
|
|
64
|
+
* @param other
|
|
65
|
+
*/
|
|
66
|
+
static equals(self, other) {
|
|
67
|
+
if (self === other) {
|
|
68
|
+
return true;
|
|
69
|
+
} // Same obj reference
|
|
70
|
+
if (!self) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (!other) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (self.key !== other.key) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (self.value === other.value) {
|
|
80
|
+
return true;
|
|
81
|
+
} // Same key and same value reference
|
|
82
|
+
// In case the filter has a multi value array, we need to compare those by value
|
|
83
|
+
if (Array.isArray(self.value) || Array.isArray(other.value)) {
|
|
84
|
+
const valueArr = Array.isArray(self.value) ? self.value : [self.value];
|
|
85
|
+
const otherArr = Array.isArray(other.value) ? other.value : [other.value];
|
|
86
|
+
return CollectionUtil.equalSetDeep(new Set(valueArr), new Set(otherArr));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return false; // Otherwise, they are not equal
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/***************************************************************************
|
|
93
|
+
* *
|
|
94
|
+
* Private methods *
|
|
95
|
+
* *
|
|
96
|
+
**************************************************************************/
|
|
97
|
+
static addValuesToSet(valueSet, filter) {
|
|
98
|
+
const filterValue = filter.value;
|
|
99
|
+
if (Array.isArray(filterValue)) {
|
|
100
|
+
const values = filterValue;
|
|
101
|
+
values.forEach(v => valueSet.add(v));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const value = filterValue;
|
|
105
|
+
valueSet.add(value);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsTUFBTSxPQUFPLE1BQU07SUFvQmpCOzs7O2dGQUk0RTtJQUU1RSxZQUNJLEdBQVcsRUFDWCxLQUErQjtRQUVqQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1NBQUU7UUFFM0UsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxLQUFLLENBQ2pCLE9BQWUsRUFDZixZQUFvQjtRQUVwQixJQUFJLGNBQWlDLENBQUM7UUFDdEMsSUFBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUM7WUFDekQsa0ZBQWtGO1lBQ2xGLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7WUFDbkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDekMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDOUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLGNBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1NBQ3JD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cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnLi4vLi4vb2JqZWN0cyc7XG5pbXBvcnQge0NvbGxlY3Rpb25VdGlsfSBmcm9tICcuLi8uLi91dGlscy9jb2xsZWN0aW9uLXV0aWwnO1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogVGhlIGZpbHRlciBrZXkuXG4gICAqIFVuaXF1ZSBpbnNpZGUgYSBGaWx0ZXJDb250ZXh0IG9yIEZpbHRlciByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsdGVyIHZhbHVlIGFzIHN0cmluZy5cbiAgICogTXVsdGlwbGUgc3RyaW5nIHZhbHVlcyBhcmUgc3VwcG9ydGVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGw7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBrZXk6IHN0cmluZyxcbiAgICAgIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpIHtcblxuICAgIGlmICgha2V5KSB7IHRocm93IG5ldyBFcnJvcignQXJndW1lbnROdWxsOiBGaWx0ZXIua2V5IGNhbiBub3QgYmUgbnVsbCEnKTsgfVxuXG4gICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBtZXJnZShcbiAgICBjdXJyZW50OiBGaWx0ZXIsXG4gICAgZm9yY2VkRmlsdGVyOiBGaWx0ZXJcbiAgKTogRmlsdGVyIHtcbiAgICBsZXQgbmV3RmlsdGVyVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIGlmKEZpbHRlci5pc011bHRpKGN1cnJlbnQpIHx8IEZpbHRlci5pc011bHRpKGZvcmNlZEZpbHRlcikpe1xuICAgICAgLy8gV2UgaGF2ZSBhIGxpc3Qgb2YgdmFsdWVzLiBXZSBqdXN0IGhhdmUgdG8gZW5zdXJlIG91ciBmb3JjZWQgdmFsdWVzIGFyZSBpbiB0aGVyZVxuICAgICAgY29uc3QgdmFsdWVTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgIEZpbHRlci5hZGRWYWx1ZXNUb1NldCh2YWx1ZVNldCwgY3VycmVudCk7XG4gICAgICBGaWx0ZXIuYWRkVmFsdWVzVG9TZXQodmFsdWVTZXQsIGZvcmNlZEZpbHRlcik7XG4gICAgICBuZXdGaWx0ZXJWYWx1ZSA9IEFycmF5LmZyb20odmFsdWVTZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdGaWx0ZXJWYWx1ZSA9IGZvcmNlZEZpbHRlci52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXIoY3VycmVudC5rZXksIG5ld0ZpbHRlclZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBmaWx0ZXIgc3VwcG9ydHMgbXVsdGlwbGUgdmFsdWVzLlxuICAgKiBAcGFyYW0gZmlsdGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTXVsdGkoZmlsdGVyOiBGaWx0ZXIpe1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGZpbHRlci52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgZmlsdGVyIGhhcyBhIHZhbHVlLlxuICAgKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlIHZhbHVlIGlzIG5vbi1udWxsIGFuZFxuICAgKiBpbiBjYXNlIGl0J3MgYW4gYXJyYXksIGFsc28gbm9uLWVtcHR5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoYXNWYWx1ZShzZWxmOiBGaWx0ZXIpOiBib29sZWFuIHtcblxuICAgIGlmICghc2VsZikgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGlmIChPYmplY3RzLm5vbk51bGwoc2VsZi52YWx1ZSkpIHtcbiAgICAgICBpZiAoc2VsZi52YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICByZXR1cm4gc2VsZi52YWx1ZS5sZW5ndGggPiAwO1xuICAgICAgIH0gZWxzZSB7XG4gICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhpcyBmaWx0ZXIgaGFzIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBvdGhlciBnaXZlbiBmaWx0ZXIuXG4gICAqIEBwYXJhbSBzZWxmXG4gICAqIEBwYXJhbSBvdGhlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbHMoc2VsZjogRmlsdGVyLCBvdGhlcjogRmlsdGVyKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoc2VsZiA9PT0gb3RoZXIpIHsgcmV0dXJuIHRydWU7IH0gLy8gU2FtZSBvYmogcmVmZXJlbmNlXG5cbiAgICBpZiAoIXNlbGYpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgaWYgKCFvdGhlcikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICBpZiAoc2VsZi5rZXkgIT09IG90aGVyLmtleSkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICBpZiAoc2VsZi52YWx1ZSA9PT0gb3RoZXIudmFsdWUpIHsgcmV0dXJuIHRydWU7IH0gLy8gU2FtZSBrZXkgYW5kIHNhbWUgdmFsdWUgcmVmZXJlbmNlXG5cbiAgICAvLyBJbiBjYXNlIHRoZSBmaWx0ZXIgaGFzIGEgbXVsdGkgdmFsdWUgYXJyYXksIHdlIG5lZWQgdG8gY29tcGFyZSB0aG9zZSBieSB2YWx1ZVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZi52YWx1ZSkgfHwgQXJyYXkuaXNBcnJheShvdGhlci52YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlQXJyID0gQXJyYXkuaXNBcnJheShzZWxmLnZhbHVlKSA/IHNlbGYudmFsdWUgYXMgc3RyaW5nW10gOiBbc2VsZi52YWx1ZV07XG4gICAgICBjb25zdCBvdGhlckFyciA9IEFycmF5LmlzQXJyYXkob3RoZXIudmFsdWUpID8gb3RoZXIudmFsdWUgYXMgc3RyaW5nW10gOiBbb3RoZXIudmFsdWVdO1xuICAgICAgcmV0dXJuIENvbGxlY3Rpb25VdGlsLmVxdWFsU2V0RGVlcChcbiAgICAgICAgbmV3IFNldDxzdHJpbmc+KHZhbHVlQXJyKSxcbiAgICAgICAgbmV3IFNldDxzdHJpbmc+KG90aGVyQXJyKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlOyAvLyBPdGhlcndpc2UsIHRoZXkgYXJlIG5vdCBlcXVhbFxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIGFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0OiBTZXQ8c3RyaW5nPiwgZmlsdGVyOiBGaWx0ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlci52YWx1ZTtcbiAgICBpZihBcnJheS5pc0FycmF5KGZpbHRlclZhbHVlKSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gZmlsdGVyVmFsdWUgYXMgc3RyaW5nW107XG4gICAgICB2YWx1ZXMuZm9yRWFjaCh2ID0+IHZhbHVlU2V0LmFkZCh2KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyVmFsdWUgYXMgc3RyaW5nO1xuICAgICAgdmFsdWVTZXQuYWRkKHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuIl19
|