@hmcts/ccd-case-ui-toolkit 7.1.80 → 7.2.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/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +2 -2
- package/esm2022/lib/components/banners/alert/alert.component.mjs +2 -2
- package/esm2022/lib/components/banners/alert/alert.module.mjs +2 -2
- package/esm2022/lib/components/banners/banners.module.mjs +2 -2
- package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +2 -2
- package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +2 -2
- package/esm2022/lib/components/body/body.component.mjs +2 -2
- package/esm2022/lib/components/body/body.module.mjs +2 -2
- package/esm2022/lib/components/footer/footer.component.mjs +2 -2
- package/esm2022/lib/components/footer/footers.module.mjs +2 -2
- package/esm2022/lib/components/form/date-input/date-input.component.mjs +2 -2
- package/esm2022/lib/components/form/form.module.mjs +2 -2
- package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +2 -2
- package/esm2022/lib/components/header/headers.module.mjs +2 -2
- package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +2 -2
- package/esm2022/lib/components/header/navigation/navigation.component.mjs +2 -2
- package/esm2022/lib/components/header/phase/phase.component.mjs +2 -2
- package/esm2022/lib/components/tabs/tab.component.mjs +2 -2
- package/esm2022/lib/components/tabs/tabs.component.mjs +2 -2
- package/esm2022/lib/components/tabs/tabs.module.mjs +2 -2
- package/esm2022/lib/shared/commons/address-validation-constants.mjs +2 -2
- package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +2 -2
- package/esm2022/lib/shared/commons/constants.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity.component.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-header/case-header.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-header/case-header.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-history/case-history.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-history/case-history.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-list/case-list.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-list/case-list.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +2 -2
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/error/callback-errors.component.mjs +2 -2
- package/esm2022/lib/shared/components/error/errors.module.mjs +2 -2
- package/esm2022/lib/shared/components/error-message/error-message.component.mjs +2 -2
- package/esm2022/lib/shared/components/error-message/error-message.module.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/event-start.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/event-start.module.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +2 -2
- package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +2 -2
- package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +2 -2
- package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +2 -2
- package/esm2022/lib/shared/components/pagination/pagination.component.mjs +2 -2
- package/esm2022/lib/shared/components/pagination/pagination.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +9 -5
- package/esm2022/lib/shared/components/palette/markdown/routerlink.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/palette.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/services/qualifying-question.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +2 -2
- package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +2 -2
- package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +2 -2
- package/esm2022/lib/shared/components/search-result/search-result.component.mjs +2 -2
- package/esm2022/lib/shared/components/search-result/search-result.module.mjs +2 -2
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +2 -2
- package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +2 -2
- package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +2 -2
- package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +2 -2
- package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/pipes.module.mjs +2 -2
- package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +2 -2
- package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +2 -2
- package/esm2022/lib/shared/services/activity/activity.service.mjs +2 -2
- package/esm2022/lib/shared/services/addresses/addresses.service.mjs +2 -2
- package/esm2022/lib/shared/services/alert/alert.service.mjs +2 -2
- package/esm2022/lib/shared/services/auth/auth.service.mjs +2 -2
- package/esm2022/lib/shared/services/banners/banners.service.mjs +2 -2
- package/esm2022/lib/shared/services/browser/browser.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +2 -2
- package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +2 -2
- package/esm2022/lib/shared/services/cookie/read-cookie-service.mjs +2 -2
- package/esm2022/lib/shared/services/definitions/definitions.module.mjs +2 -2
- package/esm2022/lib/shared/services/definitions/definitions.service.mjs +2 -2
- package/esm2022/lib/shared/services/document-management/document-management.service.mjs +2 -2
- package/esm2022/lib/shared/services/draft/draft.service.mjs +2 -2
- package/esm2022/lib/shared/services/error/error-notifier.service.mjs +2 -2
- package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +2 -2
- package/esm2022/lib/shared/services/fields/fields.purger.mjs +2 -2
- package/esm2022/lib/shared/services/fields/fields.utils.mjs +2 -2
- package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +2 -2
- package/esm2022/lib/shared/services/form/form-error.service.mjs +2 -2
- package/esm2022/lib/shared/services/form/form-validators.service.mjs +2 -2
- package/esm2022/lib/shared/services/form/form-value.service.mjs +2 -2
- package/esm2022/lib/shared/services/http/http-error.service.mjs +2 -2
- package/esm2022/lib/shared/services/http/http.service.mjs +2 -2
- package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +2 -2
- package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +2 -2
- package/esm2022/lib/shared/services/loading/loading.module.mjs +2 -2
- package/esm2022/lib/shared/services/loading/loading.service.mjs +2 -2
- package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +2 -2
- package/esm2022/lib/shared/services/order/order.service.mjs +2 -2
- package/esm2022/lib/shared/services/organisation/organisation.service.mjs +2 -2
- package/esm2022/lib/shared/services/profile/profile.notifier.mjs +2 -2
- package/esm2022/lib/shared/services/profile/profile.service.mjs +2 -2
- package/esm2022/lib/shared/services/request/request.options.builder.mjs +2 -2
- package/esm2022/lib/shared/services/router/router-helper.service.mjs +2 -2
- package/esm2022/lib/shared/services/search/search.service.mjs +2 -2
- package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +2 -2
- package/esm2022/lib/shared/services/session/session-storage.service.mjs +2 -2
- package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +2 -2
- package/esm2022/lib/shared/services/window/window.service.mjs +2 -2
- package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +2 -2
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +330 -326
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -2
- package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -270,7 +270,7 @@ export class SearchFiltersComponent {
|
|
|
270
270
|
this.caseFields = this.searchInputs.map(item => FieldsUtils.convertToCaseField(item.field));
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
|
-
static ɵfac = function SearchFiltersComponent_Factory(
|
|
273
|
+
static ɵfac = function SearchFiltersComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchFiltersComponent)(i0.ɵɵdirectiveInject(i1.SearchService), i0.ɵɵdirectiveInject(i2.OrderService), i0.ɵɵdirectiveInject(i3.JurisdictionService), i0.ɵɵdirectiveInject(i4.WindowService)); };
|
|
274
274
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchFiltersComponent, selectors: [["ccd-search-filters"]], inputs: { jurisdictions: "jurisdictions", autoApply: "autoApply" }, outputs: { onApply: "onApply", onReset: "onReset", onJurisdiction: "onJurisdiction" }, decls: 28, vars: 34, consts: [["aria-label", "Filters", 1, "heading-h2"], [1, "global-display"], [1, "form-group", 2, "margin-top", "13px"], ["for", "s-jurisdiction", 1, "form-label"], ["id", "s-jurisdiction", "name", "jurisdiction", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModelChange", "change", "ngModel"], [3, "ngValue", 4, "ngFor", "ngForOf"], [1, "form-group"], ["for", "s-case-type", 1, "form-label"], ["id", "s-case-type", "name", "case-type", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModelChange", "change", "disabled", "ngModel"], ["ccdConditionalShowForm", "", 3, "formGroup", "contextFields", 4, "ngIf"], ["type", "button", 1, "button", 3, "click", "keyup.enter", "disabled", "title"], ["id", "reset", "type", "button", 1, "button", "button-secondary", 3, "click", "title"], [3, "ngValue"], ["ccdConditionalShowForm", "", 3, "formGroup", "contextFields"], ["id", "dynamicFilters"], ["class", "form-group", 4, "ngFor", "ngForOf"], [3, "keyup.enter", "caseField", "formGroup", "isExpanded"]], template: function SearchFiltersComponent_Template(rf, ctx) { if (rf & 1) {
|
|
275
275
|
i0.ɵɵelementStart(0, "h2", 0);
|
|
276
276
|
i0.ɵɵtext(1);
|
|
@@ -355,4 +355,4 @@ export class SearchFiltersComponent {
|
|
|
355
355
|
type: Output
|
|
356
356
|
}] }); })();
|
|
357
357
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchFiltersComponent, { className: "SearchFiltersComponent", filePath: "lib/shared/components/search-filters/search-filters.component.ts", lineNumber: 26 }); })();
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVycy9zZWFyY2gtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQU1oRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7SUNOL0Qsa0NBQXNEO0lBQUEsWUFBeUI7O0lBQUEsaUJBQVM7OztJQUFoRCw4QkFBYTtJQUFDLGNBQXlCO0lBQXpCLHFEQUF5Qjs7O0lBUS9FLGtDQUF3RTtJQUFBLFlBQTBCOztJQUFBLGlCQUFTOzs7SUFBbEQsK0JB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WUFBckMsdURBQXFDO1lBQ0gscURBQStCO1lBRWhELGNBQWdDO1lBQWhDLDJEQUFnQztZQUlyQixjQUF3QztZQUF4Qyw2REFBd0M7WUFTdEUsY0FBZ0Q7WUFBd0UsQUFBeEgsa0VBQWdELGlEQUErRzs7WUFFckssZUFDRjtZQURFLGdFQUNGO1lBRVEsZUFBdUM7WUFBdkMsOERBQXVDOztZQUM3QyxlQUNGO1lBREUsZ0VBQ0Y7OztpRkRWVyxzQkFBc0I7Y0FMbEMsU0FBUzsyQkFDRSxvQkFBb0I7dUlBV3ZCLGFBQWE7a0JBRG5CLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxPQUFPO2tCQURiLE1BQU07WUFJQSxPQUFPO2tCQURiLE1BQU07WUFJQSxjQUFjO2tCQURwQixNQUFNOztrRkFsQkksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tcHJlc3NUb1VURjE2LCBkZWNvbXByZXNzRnJvbVVURjE2fSBmcm9tICdsei1zdHJpbmcnO1xuXG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENhc2VTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVR5cGVMaXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS10eXBlLWxpdGUubW9kZWwnO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vanVyaXNkaWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyL29yZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93L3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnLi9kb21haW4vc2VhcmNoLWlucHV0Lm1vZGVsJztcblxuY29uc3QgSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1qdXJpc2RpY3Rpb24nO1xuY29uc3QgTUVUQV9GSUVMRFNfTE9DX1NUT1JBR0UgPSAnc2VhcmNoLW1ldGFkYXRhLWZpZWxkcyc7XG5jb25zdCBGT1JNX0dST1VQX1ZBTFVFX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1mb3JtLWdyb3VwLXZhbHVlJztcbmNvbnN0IENBU0VfVFlQRV9MT0NfU1RPUkFHRSA9ICdzZWFyY2gtY2FzZVR5cGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9UWVBFID0gJ2Nhc2UtdHlwZSc7XG4gIHB1YmxpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGp1cmlzZGljdGlvbnM6IEp1cmlzZGljdGlvbltdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvQXBwbHk6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uUmVzZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25KdXJpc2RpY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBzZWFyY2hJbnB1dHM6IFNlYXJjaElucHV0W107XG4gIHB1YmxpYyBzZWFyY2hJbnB1dHNSZWFkeTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2VsZWN0ZWQ6IHtcbiAgICBqdXJpc2RpY3Rpb24/OiBKdXJpc2RpY3Rpb24sXG4gICAgY2FzZVR5cGU/OiBDYXNlVHlwZUxpdGUsXG4gICAgZm9ybUdyb3VwPzogRm9ybUdyb3VwLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBwYWdlPzogbnVtYmVyLFxuICAgIG1ldGFkYXRhRmllbGRzPzogc3RyaW5nW11cbiAgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXM/OiBDYXNlVHlwZUxpdGVbXTtcblxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbiA9IHRoaXMuZ2V0VmFsdWVzRnJvbUxvY2FsU3RvcmFnZSgpO1xuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbnMubGVuZ3RoID09PSAxIHx8IGp1cmlzZGljdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbnNbMF07XG4gICAgICBpZihqdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbnNcbiAgICAgICAgICAuZmlsdGVyKGogPT4gai5pZCA9PT0ganVyaXNkaWN0aW9uLmlkKVswXTtcbiAgICAgICAgaWYoanVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZSAmJlxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmNhc2VUeXBlcy5maW5kKGN0ID0+IGN0LmlkID09PSBqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlLmlkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZSA9IGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY2FzZVR5cGVzWzBdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLm9uSnVyaXNkaWN0aW9uSWRDaGFuZ2UoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgICAgdGhpcy5zZWxlY3RlZC5tZXRhZGF0YUZpZWxkcyA9IHRoaXMuZ2V0TWV0YWRhdGFGaWVsZHMoKTtcbiAgICB9XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5yZW1vdmVMb2NhbFN0b3JhZ2UoQ0FTRV9UWVBFX0xPQ19TVE9SQUdFKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlbW92ZUxvY2FsU3RvcmFnZShNRVRBX0ZJRUxEU19MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uc1swXTtcbiAgICAgIHRoaXMub25KdXJpc2RpY3Rpb25JZENoYW5nZSgpO1xuICAgIH1cbiAgICB0aGlzLm9uUmVzZXQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gMTtcbiAgICB0aGlzLnNlbGVjdGVkLm1ldGFkYXRhRmllbGRzID0gdGhpcy5nZXRNZXRhZGF0YUZpZWxkcygpO1xuICAgIHRoaXMucG9wdWxhdGVWYWx1ZXNJbkxvY2FsU3RvcmFnZSgpO1xuICAgIHRoaXMub25BcHBseS5lbWl0KHtcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgcXVlcnlQYXJhbXM6IHRoaXMuZ2V0UXVlcnlQYXJhbXMoKVxuICAgIH0pO1xuICAgIHRoaXMuc2V0Rm9jdXNUb1RvcCgpO1xuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlVmFsdWVzSW5Mb2NhbFN0b3JhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShGT1JNX0dST1VQX1ZBTFVFX0xPQ19TVE9SQUdFLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAudmFsdWUpKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKE1FVEFfRklFTERTX0xPQ19TVE9SQUdFLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkLm1ldGFkYXRhRmllbGRzKSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbXBKdXJpc2QgPSBjb21wcmVzc1RvVVRGMTYoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24pKTtcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFLCBjb21wSnVyaXNkKTtcbiAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShKVVJJU0RJQ1RJT05fTE9DX1NUT1JBR0UsIG51bGwpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkge1xuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShDQVNFX1RZUEVfTE9DX1NUT1JBR0UsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVzRnJvbUxvY2FsU3RvcmFnZSgpOiBKdXJpc2RpY3Rpb24ge1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbiA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFKTtcbiAgICBpZiAoanVyaXNkaWN0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBsb2NhbFN0b3JhZ2VKdXJpc2RpY3Rpb24gPSBKU09OLnBhcnNlKGRlY29tcHJlc3NGcm9tVVRGMTYoanVyaXNkaWN0aW9uKSk7XG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2VKdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlSnVyaXNkaWN0aW9uO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRmFpbGVkIHRvIHJldHJpZXZlIGp1cmlzZGljdGlvbiBmcm9tIGxvY2FsIHN0b3JhZ2VcIik7XG4gICAgICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFLCBudWxsKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZXRhZGF0YUZpZWxkcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbnB1dHNcbiAgICAgICAgLmZpbHRlcihzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5tZXRhZGF0YSA9PT0gdHJ1ZSlcbiAgICAgICAgLm1hcChzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoYWJsZSgpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICAgIHJlc3VsdCA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gIT09IG51bGw7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlICE9PSBudWxsO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hhYmxlQW5kU2VhcmNoSW5wdXRzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hhYmxlKCkgJiYgdGhpcy5zZWFyY2hJbnB1dHNSZWFkeTtcbiAgfVxuXG4gIHB1YmxpYyBvbkp1cmlzZGljdGlvbklkQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXMgPSB0aGlzLnNlbGVjdGVkPy5qdXJpc2RpY3Rpb24/LmNhc2VUeXBlcztcbiAgICB0aGlzLnNlbGVjdENhc2VUeXBlKHRoaXMuc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXMpO1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5hbm5vdW5jZVNlbGVjdGVkSnVyaXNkaWN0aW9uKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKTtcbiAgICB0aGlzLm9uSnVyaXNkaWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIG9uQ2FzZVR5cGVJZENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gJiYgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZTtcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5hbm5vdW5jZVNlbGVjdGVkSnVyaXNkaWN0aW9uKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKVxuICAgIH1cbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuc2VhcmNoSW5wdXRzUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaElucHV0cyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5nZXRTZWFyY2hJbnB1dHMoXG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZCxcbiAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWRcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hJbnB1dHNSZWFkeSA9IHRydWUpXG4gICAgKS5zdWJzY3JpYmUoc2VhcmNoSW5wdXRzID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXRzID0gc2VhcmNoSW5wdXRzLnNvcnQodGhpcy5vcmRlclNlcnZpY2Uuc29ydEFzYyk7XG5cbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoRk9STV9HUk9VUF9WQUxVRV9MT0NfU1RPUkFHRSk7XG4gICAgICBsZXQgZm9ybVZhbHVlT2JqZWN0ID0gbnVsbDtcbiAgICAgIGlmIChmb3JtVmFsdWUpIHtcbiAgICAgICAgZm9ybVZhbHVlT2JqZWN0ID0gSlNPTi5wYXJzZShmb3JtVmFsdWUpO1xuICAgICAgfVxuICAgICAgc2VhcmNoSW5wdXRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmZpZWxkLmVsZW1lbnRQYXRoKSB7XG4gICAgICAgICAgaXRlbS5maWVsZC5pZCA9IGAke2l0ZW0uZmllbGQuaWR9LiR7aXRlbS5maWVsZC5lbGVtZW50UGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0uZmllbGQubGFiZWwgPSBpdGVtLmxhYmVsO1xuICAgICAgICBpZiAoZm9ybVZhbHVlT2JqZWN0KSB7XG4gICAgICAgICAgaXRlbS5maWVsZC52YWx1ZSA9IGZvcm1WYWx1ZU9iamVjdFtpdGVtLmZpZWxkLmlkXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmdldENhc2VGaWVsZHMoKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnU2VhcmNoIGlucHV0IGZpZWxkcyByZXF1ZXN0IHdpbGwgYmUgZGlzY2FyZGVkIHJlYXNvbjogJywgZXJyb3IubWVzc2FnZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaXNKdXJpc2RpY3Rpb25TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPT09IG51bGwgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKCkge1xuICAgIC8vIFNhdmUgZmlsdGVycyBhcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciBjdXJyZW50IHJvdXRlXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZD8uanVyaXNkaWN0aW9uKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQ/LmNhc2VUeXBlKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0NBU0VfVFlQRV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZD8uY2FzZVN0YXRlKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0NBU0VfU1RBVEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUuaWQ7XG4gICAgfVxuICAgIHJldHVybiBxdWVyeVBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0Q2FzZVR5cGUoY2FzZVR5cGVzOiBDYXNlVHlwZUxpdGVbXSkge1xuICAgIGlmIChjYXNlVHlwZXMgJiYgY2FzZVR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBjYXNlVHlwZXNbMF07XG4gICAgICBjb25zdCBjYXNlVHlwZSA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoQ0FTRV9UWVBFX0xPQ19TVE9SQUdFKTtcbiAgICAgIGlmIChjYXNlVHlwZSkge1xuICAgICAgICBjb25zdCBjYXNlVHlwZU9iamVjdCA9IEpTT04ucGFyc2UoY2FzZVR5cGUpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjYXNlVHlwZXMuZmlsdGVyKGMgPT4gYy5pZCA9PT0gY2FzZVR5cGVPYmplY3QuaWQpO1xuICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gcmVzdWx0WzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBjYXNlVHlwZXNbMF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBjYXNlVHlwZXNbMF07XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUgPSB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlO1xuICAgICAgdGhpcy5vbkNhc2VUeXBlSWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZvY3VzVG9Ub3AoKSB7XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dHMpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuc2VhcmNoSW5wdXRzLm1hcChpdGVtID0+IEZpZWxkc1V0aWxzLmNvbnZlcnRUb0Nhc2VGaWVsZChpdGVtLmZpZWxkKSk7XG4gICAgfVxuICB9XG59XG4iLCI8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCIgYXJpYS1sYWJlbD1cIkZpbHRlcnNcIj57eydGaWx0ZXJzJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbjxmb3JtIGNsYXNzPVwiZ2xvYmFsLWRpc3BsYXlcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEzcHg7XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInMtanVyaXNkaWN0aW9uXCI+e3snSnVyaXNkaWN0aW9uJyB8IHJweFRyYW5zbGF0ZX19KjwvbGFiZWw+XG4gICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtMy00IGNjZC1kcm9wZG93blwiIGlkPVwicy1qdXJpc2RpY3Rpb25cIlxuICAgICAgICAgICAgbmFtZT1cImp1cmlzZGljdGlvblwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWQuanVyaXNkaWN0aW9uXCIgYXJpYS1jb250cm9scz1cInNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkp1cmlzZGljdGlvbklkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGogb2YganVyaXNkaWN0aW9uc1wiIFtuZ1ZhbHVlXT1cImpcIj57e2oubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJzLWNhc2UtdHlwZVwiPnt7J0Nhc2UgdHlwZSonIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxzZWxlY3QgW2Rpc2FibGVkXT1cImlzSnVyaXNkaWN0aW9uU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC0zLTQgY2NkLWRyb3Bkb3duXCJcbiAgICAgICAgICAgIGlkPVwicy1jYXNlLXR5cGVcIiBuYW1lPVwiY2FzZS10eXBlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZC5jYXNlVHlwZVwiIGFyaWEtY29udHJvbHM9XCJzZWFyY2gtcmVzdWx0XCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DYXNlVHlwZUlkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGN0IG9mIHNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzXCIgW25nVmFsdWVdPVwiY3RcIj57e2N0Lm5hbWUgfCBycHhUcmFuc2xhdGV9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyIGNjZENvbmRpdGlvbmFsU2hvd0Zvcm0gKm5nSWY9XCJpc1NlYXJjaGFibGVBbmRTZWFyY2hJbnB1dHNSZWFkeSgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY29udGV4dEZpZWxkc109XCJjYXNlRmllbGRzXCI+XG4gICAgPGRpdiBpZD1cImR5bmFtaWNGaWx0ZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiICpuZ0Zvcj1cImxldCBzZWFyY2hJbnB1dCBvZiBzZWFyY2hJbnB1dHNcIj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cInNlYXJjaElucHV0LmZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbaXNFeHBhbmRlZF09XCJ0cnVlXCIgKGtleXVwLmVudGVyKT1cImFwcGx5KClcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzU2VhcmNoYWJsZUFuZFNlYXJjaElucHV0c1JlYWR5KClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiYXBwbHkoKVwiIChrZXl1cC5lbnRlcik9XCJhcHBseSgpXCIgW3RpdGxlXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snQXBwbHknIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+ICZuYnNwOyZuYnNwOyZuYnNwO1xuICA8YnV0dG9uIGlkPVwicmVzZXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0KClcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ1Jlc2V0IGZpbHRlcicgfCBycHhUcmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXNldCBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snUmVzZXQnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVycy9zZWFyY2gtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQU1oRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7SUNOL0Qsa0NBQXNEO0lBQUEsWUFBeUI7O0lBQUEsaUJBQVM7OztJQUFoRCw4QkFBYTtJQUFDLGNBQXlCO0lBQXpCLHFEQUF5Qjs7O0lBUS9FLGtDQUF3RTtJQUFBLFlBQTBCOztJQUFBLGlCQUFTOzs7SUFBbEQsK0JB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WUFBckMsdURBQXFDO1lBQ0gscURBQStCO1lBRWhELGNBQWdDO1lBQWhDLDJEQUFnQztZQUlyQixjQUF3QztZQUF4Qyw2REFBd0M7WUFTdEUsY0FBZ0Q7WUFBd0UsQUFBeEgsa0VBQWdELGlEQUErRzs7WUFFckssZUFDRjtZQURFLGdFQUNGO1lBRVEsZUFBdUM7WUFBdkMsOERBQXVDOztZQUM3QyxlQUNGO1lBREUsZ0VBQ0Y7OztpRkRWVyxzQkFBc0I7Y0FMbEMsU0FBUzsyQkFDRSxvQkFBb0I7dUlBV3ZCLGFBQWE7a0JBRG5CLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxPQUFPO2tCQURiLE1BQU07WUFJQSxPQUFPO2tCQURiLE1BQU07WUFJQSxjQUFjO2tCQURwQixNQUFNOztrRkFsQkksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tcHJlc3NUb1VURjE2LCBkZWNvbXByZXNzRnJvbVVURjE2fSBmcm9tICdsei1zdHJpbmcnO1xuXG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENhc2VTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVR5cGVMaXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS10eXBlLWxpdGUubW9kZWwnO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vanVyaXNkaWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyL29yZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93L3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnLi9kb21haW4vc2VhcmNoLWlucHV0Lm1vZGVsJztcblxuY29uc3QgSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1qdXJpc2RpY3Rpb24nO1xuY29uc3QgTUVUQV9GSUVMRFNfTE9DX1NUT1JBR0UgPSAnc2VhcmNoLW1ldGFkYXRhLWZpZWxkcyc7XG5jb25zdCBGT1JNX0dST1VQX1ZBTFVFX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1mb3JtLWdyb3VwLXZhbHVlJztcbmNvbnN0IENBU0VfVFlQRV9MT0NfU1RPUkFHRSA9ICdzZWFyY2gtY2FzZVR5cGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9UWVBFID0gJ2Nhc2UtdHlwZSc7XG4gIHB1YmxpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGp1cmlzZGljdGlvbnM6IEp1cmlzZGljdGlvbltdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvQXBwbHk6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uUmVzZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25KdXJpc2RpY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBzZWFyY2hJbnB1dHM6IFNlYXJjaElucHV0W107XG4gIHB1YmxpYyBzZWFyY2hJbnB1dHNSZWFkeTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2VsZWN0ZWQ6IHtcbiAgICBqdXJpc2RpY3Rpb24/OiBKdXJpc2RpY3Rpb24sXG4gICAgY2FzZVR5cGU/OiBDYXNlVHlwZUxpdGUsXG4gICAgZm9ybUdyb3VwPzogRm9ybUdyb3VwLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBwYWdlPzogbnVtYmVyLFxuICAgIG1ldGFkYXRhRmllbGRzPzogc3RyaW5nW11cbiAgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXM/OiBDYXNlVHlwZUxpdGVbXTtcblxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbiA9IHRoaXMuZ2V0VmFsdWVzRnJvbUxvY2FsU3RvcmFnZSgpO1xuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbnMubGVuZ3RoID09PSAxIHx8IGp1cmlzZGljdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbnNbMF07XG4gICAgICBpZihqdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbnNcbiAgICAgICAgICAuZmlsdGVyKGogPT4gai5pZCA9PT0ganVyaXNkaWN0aW9uLmlkKVswXTtcbiAgICAgICAgaWYoanVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZSAmJlxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmNhc2VUeXBlcy5maW5kKGN0ID0+IGN0LmlkID09PSBqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlLmlkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZSA9IGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY2FzZVR5cGVzWzBdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLm9uSnVyaXNkaWN0aW9uSWRDaGFuZ2UoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgICAgdGhpcy5zZWxlY3RlZC5tZXRhZGF0YUZpZWxkcyA9IHRoaXMuZ2V0TWV0YWRhdGFGaWVsZHMoKTtcbiAgICB9XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5yZW1vdmVMb2NhbFN0b3JhZ2UoQ0FTRV9UWVBFX0xPQ19TVE9SQUdFKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlbW92ZUxvY2FsU3RvcmFnZShNRVRBX0ZJRUxEU19MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uc1swXTtcbiAgICAgIHRoaXMub25KdXJpc2RpY3Rpb25JZENoYW5nZSgpO1xuICAgIH1cbiAgICB0aGlzLm9uUmVzZXQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gMTtcbiAgICB0aGlzLnNlbGVjdGVkLm1ldGFkYXRhRmllbGRzID0gdGhpcy5nZXRNZXRhZGF0YUZpZWxkcygpO1xuICAgIHRoaXMucG9wdWxhdGVWYWx1ZXNJbkxvY2FsU3RvcmFnZSgpO1xuICAgIHRoaXMub25BcHBseS5lbWl0KHtcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgcXVlcnlQYXJhbXM6IHRoaXMuZ2V0UXVlcnlQYXJhbXMoKVxuICAgIH0pO1xuICAgIHRoaXMuc2V0Rm9jdXNUb1RvcCgpO1xuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlVmFsdWVzSW5Mb2NhbFN0b3JhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShGT1JNX0dST1VQX1ZBTFVFX0xPQ19TVE9SQUdFLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAudmFsdWUpKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKE1FVEFfRklFTERTX0xPQ19TVE9SQUdFLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkLm1ldGFkYXRhRmllbGRzKSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbXBKdXJpc2QgPSBjb21wcmVzc1RvVVRGMTYoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24pKTtcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFLCBjb21wSnVyaXNkKTtcbiAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShKVVJJU0RJQ1RJT05fTE9DX1NUT1JBR0UsIG51bGwpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkge1xuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShDQVNFX1RZUEVfTE9DX1NUT1JBR0UsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVzRnJvbUxvY2FsU3RvcmFnZSgpOiBKdXJpc2RpY3Rpb24ge1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbiA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFKTtcbiAgICBpZiAoanVyaXNkaWN0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBsb2NhbFN0b3JhZ2VKdXJpc2RpY3Rpb24gPSBKU09OLnBhcnNlKGRlY29tcHJlc3NGcm9tVVRGMTYoanVyaXNkaWN0aW9uKSk7XG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2VKdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlSnVyaXNkaWN0aW9uO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRmFpbGVkIHRvIHJldHJpZXZlIGp1cmlzZGljdGlvbiBmcm9tIGxvY2FsIHN0b3JhZ2VcIik7XG4gICAgICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFLCBudWxsKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZXRhZGF0YUZpZWxkcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbnB1dHNcbiAgICAgICAgLmZpbHRlcihzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5tZXRhZGF0YSA9PT0gdHJ1ZSlcbiAgICAgICAgLm1hcChzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoYWJsZSgpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICAgIHJlc3VsdCA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gIT09IG51bGw7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlICE9PSBudWxsO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hhYmxlQW5kU2VhcmNoSW5wdXRzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hhYmxlKCkgJiYgdGhpcy5zZWFyY2hJbnB1dHNSZWFkeTtcbiAgfVxuXG4gIHB1YmxpYyBvbkp1cmlzZGljdGlvbklkQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXMgPSB0aGlzLnNlbGVjdGVkPy5qdXJpc2RpY3Rpb24/LmNhc2VUeXBlcztcbiAgICB0aGlzLnNlbGVjdENhc2VUeXBlKHRoaXMuc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXMpO1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5hbm5vdW5jZVNlbGVjdGVkSnVyaXNkaWN0aW9uKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKTtcbiAgICB0aGlzLm9uSnVyaXNkaWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIG9uQ2FzZVR5cGVJZENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gJiYgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZTtcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5hbm5vdW5jZVNlbGVjdGVkSnVyaXNkaWN0aW9uKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKVxuICAgIH1cbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuc2VhcmNoSW5wdXRzUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaElucHV0cyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5nZXRTZWFyY2hJbnB1dHMoXG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZCxcbiAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWRcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hJbnB1dHNSZWFkeSA9IHRydWUpXG4gICAgKS5zdWJzY3JpYmUoc2VhcmNoSW5wdXRzID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXRzID0gc2VhcmNoSW5wdXRzLnNvcnQodGhpcy5vcmRlclNlcnZpY2Uuc29ydEFzYyk7XG5cbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoRk9STV9HUk9VUF9WQUxVRV9MT0NfU1RPUkFHRSk7XG4gICAgICBsZXQgZm9ybVZhbHVlT2JqZWN0ID0gbnVsbDtcbiAgICAgIGlmIChmb3JtVmFsdWUpIHtcbiAgICAgICAgZm9ybVZhbHVlT2JqZWN0ID0gSlNPTi5wYXJzZShmb3JtVmFsdWUpO1xuICAgICAgfVxuICAgICAgc2VhcmNoSW5wdXRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmZpZWxkLmVsZW1lbnRQYXRoKSB7XG4gICAgICAgICAgaXRlbS5maWVsZC5pZCA9IGAke2l0ZW0uZmllbGQuaWR9LiR7aXRlbS5maWVsZC5lbGVtZW50UGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0uZmllbGQubGFiZWwgPSBpdGVtLmxhYmVsO1xuICAgICAgICBpZiAoZm9ybVZhbHVlT2JqZWN0KSB7XG4gICAgICAgICAgaXRlbS5maWVsZC52YWx1ZSA9IGZvcm1WYWx1ZU9iamVjdFtpdGVtLmZpZWxkLmlkXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmdldENhc2VGaWVsZHMoKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnU2VhcmNoIGlucHV0IGZpZWxkcyByZXF1ZXN0IHdpbGwgYmUgZGlzY2FyZGVkIHJlYXNvbjogJywgZXJyb3IubWVzc2FnZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaXNKdXJpc2RpY3Rpb25TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPT09IG51bGwgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKCkge1xuICAgIC8vIFNhdmUgZmlsdGVycyBhcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciBjdXJyZW50IHJvdXRlXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZD8uanVyaXNkaWN0aW9uKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQ/LmNhc2VUeXBlKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0NBU0VfVFlQRV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZD8uY2FzZVN0YXRlKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0NBU0VfU1RBVEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUuaWQ7XG4gICAgfVxuICAgIHJldHVybiBxdWVyeVBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0Q2FzZVR5cGUoY2FzZVR5cGVzOiBDYXNlVHlwZUxpdGVbXSkge1xuICAgIGlmIChjYXNlVHlwZXMgJiYgY2FzZVR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBjYXNlVHlwZXNbMF07XG4gICAgICBjb25zdCBjYXNlVHlwZSA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoQ0FTRV9UWVBFX0xPQ19TVE9SQUdFKTtcbiAgICAgIGlmIChjYXNlVHlwZSkge1xuICAgICAgICBjb25zdCBjYXNlVHlwZU9iamVjdCA9IEpTT04ucGFyc2UoY2FzZVR5cGUpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjYXNlVHlwZXMuZmlsdGVyKGMgPT4gYy5pZCA9PT0gY2FzZVR5cGVPYmplY3QuaWQpO1xuICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gcmVzdWx0WzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBjYXNlVHlwZXNbMF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBjYXNlVHlwZXNbMF07XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUgPSB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlO1xuICAgICAgdGhpcy5vbkNhc2VUeXBlSWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZvY3VzVG9Ub3AoKSB7XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dHMpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuc2VhcmNoSW5wdXRzLm1hcChpdGVtID0+IEZpZWxkc1V0aWxzLmNvbnZlcnRUb0Nhc2VGaWVsZChpdGVtLmZpZWxkKSk7XG4gICAgfVxuICB9XG59XG4iLCI8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCIgYXJpYS1sYWJlbD1cIkZpbHRlcnNcIj57eydGaWx0ZXJzJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbjxmb3JtIGNsYXNzPVwiZ2xvYmFsLWRpc3BsYXlcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEzcHg7XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInMtanVyaXNkaWN0aW9uXCI+e3snSnVyaXNkaWN0aW9uJyB8IHJweFRyYW5zbGF0ZX19KjwvbGFiZWw+XG4gICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtMy00IGNjZC1kcm9wZG93blwiIGlkPVwicy1qdXJpc2RpY3Rpb25cIlxuICAgICAgICAgICAgbmFtZT1cImp1cmlzZGljdGlvblwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWQuanVyaXNkaWN0aW9uXCIgYXJpYS1jb250cm9scz1cInNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkp1cmlzZGljdGlvbklkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGogb2YganVyaXNkaWN0aW9uc1wiIFtuZ1ZhbHVlXT1cImpcIj57e2oubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJzLWNhc2UtdHlwZVwiPnt7J0Nhc2UgdHlwZSonIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxzZWxlY3QgW2Rpc2FibGVkXT1cImlzSnVyaXNkaWN0aW9uU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC0zLTQgY2NkLWRyb3Bkb3duXCJcbiAgICAgICAgICAgIGlkPVwicy1jYXNlLXR5cGVcIiBuYW1lPVwiY2FzZS10eXBlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZC5jYXNlVHlwZVwiIGFyaWEtY29udHJvbHM9XCJzZWFyY2gtcmVzdWx0XCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DYXNlVHlwZUlkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGN0IG9mIHNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzXCIgW25nVmFsdWVdPVwiY3RcIj57e2N0Lm5hbWUgfCBycHhUcmFuc2xhdGV9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyIGNjZENvbmRpdGlvbmFsU2hvd0Zvcm0gKm5nSWY9XCJpc1NlYXJjaGFibGVBbmRTZWFyY2hJbnB1dHNSZWFkeSgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY29udGV4dEZpZWxkc109XCJjYXNlRmllbGRzXCI+XG4gICAgPGRpdiBpZD1cImR5bmFtaWNGaWx0ZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiICpuZ0Zvcj1cImxldCBzZWFyY2hJbnB1dCBvZiBzZWFyY2hJbnB1dHNcIj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cInNlYXJjaElucHV0LmZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbaXNFeHBhbmRlZF09XCJ0cnVlXCIgKGtleXVwLmVudGVyKT1cImFwcGx5KClcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzU2VhcmNoYWJsZUFuZFNlYXJjaElucHV0c1JlYWR5KClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiYXBwbHkoKVwiIChrZXl1cC5lbnRlcik9XCJhcHBseSgpXCIgW3RpdGxlXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snQXBwbHknIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+ICZuYnNwOyZuYnNwOyZuYnNwO1xuICA8YnV0dG9uIGlkPVwicmVzZXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0KClcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ1Jlc2V0IGZpbHRlcicgfCBycHhUcmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXNldCBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snUmVzZXQnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -18,7 +18,7 @@ import * as i3 from "@angular/forms";
|
|
|
18
18
|
import * as i4 from "../palette/base-field/field-write.component";
|
|
19
19
|
import * as i5 from "../../directives/conditional-show/conditional-show-form.directive";
|
|
20
20
|
export class SearchFiltersModule {
|
|
21
|
-
static ɵfac = function SearchFiltersModule_Factory(
|
|
21
|
+
static ɵfac = function SearchFiltersModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchFiltersModule)(); };
|
|
22
22
|
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SearchFiltersModule });
|
|
23
23
|
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
|
|
24
24
|
SearchService,
|
|
@@ -68,4 +68,4 @@ export class SearchFiltersModule {
|
|
|
68
68
|
ConditionalShowModule, i1.RpxTranslationModule], exports: [SearchFiltersWrapperComponent] }); })();
|
|
69
69
|
i0.ɵɵsetComponentScope(SearchFiltersComponent, function () { return [i2.NgForOf, i2.NgIf, i3.ɵNgNoValidate, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.SelectControlValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.NgModel, i3.NgForm, i3.FormGroupDirective, i4.FieldWriteComponent, i5.ConditionalShowFormDirective]; }, function () { return [i1.RpxTranslatePipe]; });
|
|
70
70
|
i0.ɵɵsetComponentScope(SearchFiltersWrapperComponent, function () { return [i2.NgIf, SearchFiltersComponent]; }, []);
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBMEJwRSxNQUFNLE9BQU8sbUJBQW1COzZHQUFuQixtQkFBbUI7NERBQW5CLG1CQUFtQjtpRUFSakI7WUFDUCxhQUFhO1lBQ2IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsYUFBYTtTQUNoQixZQXBCRyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLG9CQUFvQixDQUFDLFFBQVEsRUFBRTs7aUZBaUIxQixtQkFBbUI7Y0F4Qi9CLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsYUFBYTtvQkFDYixxQkFBcUI7b0JBQ3JCLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtpQkFDbEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHNCQUFzQjtvQkFDdEIsNkJBQTZCO2lCQUNoQztnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsNkJBQTZCO2lCQUNoQztnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsYUFBYTtvQkFDYixZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsa0JBQWtCO29CQUNsQixhQUFhO2lCQUNoQjthQUNKOzt3RkFDWSxtQkFBbUIsbUJBZHhCLHNCQUFzQjtRQUN0Qiw2QkFBNkIsYUFUN0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLHFCQUFxQixzQ0FRckIsNkJBQTZCO3VCQUo3QixzQkFBc0I7dUJBQ3RCLDZCQUE2QixpQ0FEN0Isc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJweFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvY29uZGl0aW9uYWwtc2hvdy5tb2R1bGUnO1xuaW1wb3J0IHsgRGVmaW5pdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGVmaW5pdGlvbnMvZGVmaW5pdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyL29yZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93L3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFBhbGV0dGVNb2R1bGUgfSBmcm9tICcuLi9wYWxldHRlL3BhbGV0dGUubW9kdWxlJztcblxuaW1wb3J0IHsgU2VhcmNoRmlsdGVyc1dyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXJzLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBQYWxldHRlTW9kdWxlLFxuICAgICAgICBDb25kaXRpb25hbFNob3dNb2R1bGUsXG4gICAgICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlLmZvckNoaWxkKClcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hGaWx0ZXJzV3JhcHBlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBTZWFyY2hGaWx0ZXJzV3JhcHBlckNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIE9yZGVyU2VydmljZSxcbiAgICAgICAgSnVyaXNkaWN0aW9uU2VydmljZSxcbiAgICAgICAgRGVmaW5pdGlvbnNTZXJ2aWNlLFxuICAgICAgICBXaW5kb3dTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -768,7 +768,7 @@ export class SearchResultComponent {
|
|
|
768
768
|
}
|
|
769
769
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
770
770
|
noop() { }
|
|
771
|
-
static ɵfac = function SearchResultComponent_Factory(
|
|
771
|
+
static ɵfac = function SearchResultComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultComponent)(i0.ɵɵdirectiveInject(i1.SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(i2.AbstractAppConfig), i0.ɵɵdirectiveInject(i1.ActivityService), i0.ɵɵdirectiveInject(i3.CaseReferencePipe), i0.ɵɵdirectiveInject(i4.PlaceholderService), i0.ɵɵdirectiveInject(i1.BrowserService), i0.ɵɵdirectiveInject(i1.SessionStorageService)); };
|
|
772
772
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [["case_reference", ""], [4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", 4, "ngIf"], ["class", "search-result-column-header", "scope", "col", 4, "ngFor", "ngForOf"], ["style", "width: 110px;", "scope", "col", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], [1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "javascript:void(0)", 1, "search-result-reset-link", 3, "click"], [1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["scope", "col", 1, "search-result-column-header"], [1, "search-result-column-label", 3, "click", "keyup"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "javascript:void(0)", 1, "sort-widget", 3, "click", "keyup.enter", "innerHTML"], ["scope", "col", 2, "width", "110px"], [4, "ngFor", "ngForOf"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["scope", "col", 1, "govuk-table__checkbox"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [3, "pageChange", "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
|
|
773
773
|
i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 16, 11, "table", 1)(1, SearchResultComponent_ccd_pagination_1_Template, 1, 6, "ccd-pagination", 2)(2, SearchResultComponent_div_2_Template, 4, 6, "div", 3);
|
|
774
774
|
} if (rf & 2) {
|
|
@@ -818,4 +818,4 @@ export class SearchResultComponent {
|
|
|
818
818
|
type: Output
|
|
819
819
|
}] }); })();
|
|
820
820
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultComponent, { className: "SearchResultComponent", filePath: "lib/shared/components/search-result/search-result.component.ts", lineNumber: 18 }); })();
|
|
821
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUMzQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQ2hGLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxxQ0FBcUMsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lDTHRJLEFBREYsK0JBQXlGLGVBQzdCO0lBQUEsaUJBQUM7SUFBQSxpQkFBTztJQUVoRSxBQURGLGtDQUF5QyxlQUNLO0lBQUEsWUFBNEI7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WUFDMUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLElBQUksS0FBVSxDQUFDOytFQS9hSixxQkFBcUI7NkRBQXJCLHFCQUFxQjtZQ3lIbEMsQUFWQSxBQWhJQSw0RUFBMkMsK0VBd0lNLHlEQUd1Qzs7WUEzSWhGLDBEQUFpQztZQWlJdEMsY0FBa0I7WUFBbEIsdUNBQWtCO1lBU2YsY0FBb0M7WUFBcEMsNkRBQW9DOzs7aUZEekg3QixxQkFBcUI7Y0FMakMsU0FBUzsyQkFDRSxtQkFBbUI7c1FBZXRCLG1CQUFtQjtrQkFEekIsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxRQUFRO2tCQURkLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLElBQUk7a0JBRFYsS0FBSztZQUlDLGtCQUFrQjtrQkFEeEIsS0FBSztZQUlDLGNBQWM7a0JBRHBCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxzQkFBc0I7a0JBRDVCLEtBQUs7WUFJQyxTQUFTO2tCQURmLE1BQU07WUFJQSxVQUFVO2tCQURoQixNQUFNO1lBSUEsU0FBUztrQkFEZixNQUFNO1lBSUEsV0FBVztrQkFEakIsTUFBTTs7a0ZBMURJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFBsYWNlaG9sZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUZpZWxkLCBDYXNlU3RhdGUsIENhc2VUeXBlLCBEaXNwbGF5TW9kZSxcbiAgRFJBRlRfUFJFRklYLCBKdXJpc2RpY3Rpb24sIFBhZ2luYXRpb25NZXRhZGF0YSwgU2VhcmNoUmVzdWx0VmlldywgU2VhcmNoUmVzdWx0Vmlld0NvbHVtbixcbiAgU2VhcmNoUmVzdWx0Vmlld0l0ZW0sIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciwgU29ydE9yZGVyLCBTb3J0UGFyYW1ldGVyc1xufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UsIEJyb3dzZXJTZXJ2aWNlLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VhcmNoLXJlc3VsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfVFlQRSA9ICdjYXNlLXR5cGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfU1RBVEUgPSAnY2FzZS1zdGF0ZSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBQQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA9IDEwMDAwO1xuXG4gIHB1YmxpYyBJQ09OID0gRGlzcGxheU1vZGUuSUNPTjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUxpbmtVcmxUZW1wbGF0ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IEp1cmlzZGljdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVR5cGU6IENhc2VUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlU3RhdGU6IENhc2VTdGF0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpbHRlckZHOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFZpZXc6IFNlYXJjaFJlc3VsdFZpZXc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2U6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnaW5hdGlvbk1ldGFkYXRhOiBQYWdpbmF0aW9uTWV0YWRhdGE7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1ldGFkYXRhRmllbGRzOiBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93T25seVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByZVNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uc3VtZXJTb3J0aW5nRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHRWaWV3SXRlbVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGlja0Nhc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc29ydEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTGltaXRFbmZvcmNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlcjtcblxuICBwdWJsaWMgaGlkZVJvd3M6IGJvb2xlYW47XG5cbiAgcHVibGljIHNlbGVjdGVkOiB7XG4gICAgaW5pdD86IGJvb2xlYW4sXG4gICAganVyaXNkaWN0aW9uPzogSnVyaXNkaWN0aW9uLFxuICAgIGNhc2VUeXBlPzogQ2FzZVR5cGUsXG4gICAgY2FzZVN0YXRlPzogQ2FzZVN0YXRlLFxuICAgIGZvcm1Hcm91cD86IEZvcm1Hcm91cCxcbiAgICBtZXRhZGF0YUZpZWxkcz86IHN0cmluZ1tdLFxuICAgIHBhZ2U/OiBudW1iZXJcbiAgfSA9IHt9O1xuXG4gIHB1YmxpYyBzb3J0UGFyYW1ldGVyczogU29ydFBhcmFtZXRlcnM7XG4gIHB1YmxpYyBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICBwdWJsaWMgZHJhZnRzQ291bnQ6IG51bWJlcjtcblxuICBwdWJsaWMgY29uc3VtZXJTb3J0UGFyYW1ldGVyczogeyBjb2x1bW46IHN0cmluZywgb3JkZXI6IFNvcnRPcmRlciwgdHlwZTogc3RyaW5nIH0gPSB7IGNvbHVtbjogbnVsbCwgb3JkZXI6IG51bGwsIHR5cGU6IG51bGwgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDYXNlczogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksXG4gICAgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZVJlZmVyZW5jZVBpcGU6IENhc2VSZWZlcmVuY2VQaXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTZXJ2aWNlOiBQbGFjZWhvbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicm93c2VyU2VydmljZTogQnJvd3NlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkgPSBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID0gYXBwQ29uZmlnLmdldFBhZ2luYXRpb25QYWdlU2l6ZSgpO1xuICAgIHRoaXMuaGlkZVJvd3MgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByZVNlbGVjdGVkQ2FzZSBvZiB0aGlzLnByZVNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcyAmJiAhdGhpcy5zZWxlY3RlZENhc2VzLnNvbWUoYUNhc2UgPT4gYUNhc2UuY2FzZV9pZCA9PT0gcHJlU2VsZWN0ZWRDYXNlLmNhc2VfaWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2gocHJlU2VsZWN0ZWRDYXNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBpZiAoY2hhbmdlc1sncmVzdWx0VmlldyddKSB7XG4gICAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAvLyBDbG9uZSBgcmVzdWx0Vmlld2AgdG8gcHJldmVudCBzb3J0aW5nIHRoZSBleHRlcm5hbCB2YXJpYWJsZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3ID0ge1xuICAgICAgICBjb2x1bW5zOiB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zbGljZSgwKSxcbiAgICAgICAgcmVzdWx0czogdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuc2xpY2UoMCksXG4gICAgICAgIGhhc0RyYWZ0czogdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0c1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMgPSB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zb3J0KChhOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLCBiOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSA9PiB7XG4gICAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlcjtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmh5ZHJhdGVSZXN1bHRWaWV3KCk7XG4gICAgICB0aGlzLmRyYWZ0c0NvdW50ID0gdGhpcy5kcmFmdHNDb3VudCA/IHRoaXMuZHJhZnRzQ291bnQgOiB0aGlzLm51bWJlck9mRHJhZnRzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydwYWdlJ10pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IChjaGFuZ2VzWydwYWdlJ10pLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNUcmFuc2xhdGFibGUoY29sOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc1V0aWxzLmlzVHJhbnNsYXRhYmxlKGNvbC5jYXNlX2ZpZWxkX3R5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXN1bHRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQ7XG4gICAgY29uc3QgbWF4aW11bVJlc3VsdFJlYWNoZWQgPSB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUO1xuICAgIHRoaXMucGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBtYXhpbXVtUmVzdWx0UmVhY2hlZDtcblxuICAgIHJldHVybiBtYXhpbXVtUmVzdWx0UmVhY2hlZCA/IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgOiB0b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQmVTaGFyZWQoY2FzZVZpZXc6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VWaWV3LnN1cHBsZW1lbnRhcnlfZGF0YSAmJiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEuaGFzT3duUHJvcGVydHkoJ29yZ3NfYXNzaWduZWRfdXNlcnMnKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5BbnlCZVNoYXJlZCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQodGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbE9uUGFnZVNlbGVjdGVkKCkpIHtcbiAgICAgIC8vIGFsbCBjYXNlcyBhbHJlYWR5IHNlbGVjdGVkLCBzbyB1bnNlbGVjdCBhbGwgb24gdGhpcyBwYWdlXG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICAgIGlmIChjLmNhc2VfaWQgPT09IHMuY2FzZV9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKGMpICYmIHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnNlbGVjdGVkQ2FzZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5jYXNlX2lkID09PSB0aGlzLnNlbGVjdGVkQ2FzZXNbaV0uY2FzZV9pZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFsbE9uUGFnZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGxldCBjYW5CZVNoYXJlZENvdW50ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgciA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldO1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQocikpIHtcbiAgICAgICAgY2FuQmVTaGFyZWRDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQocikgJiYgdGhpcy5jYW5CZVNoYXJlZChyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjYW5CZVNoYXJlZENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHJlc3VsdCB2aWV3IHdpdGggY2FzZSBmaWVsZCBkZWZpbml0aW9ucy5cbiAgICovXG4gIC8vIEEgbG9uZ2VyIHRlcm0gcmVzb2x1dGlvbiBpcyB0byBtb3ZlIHRoaXMgcGllY2Ugb2YgbG9naWMgdG8gdGhlIGJhY2tlbmRcbiAgcHVibGljIGh5ZHJhdGVSZXN1bHRWaWV3KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZHMgPSBbXTtcblxuICAgICAgT2JqZWN0LmtleXMocmVzdWx0LmNhc2VfZmllbGRzKS5mb3JFYWNoKGZpZWxkSWQgPT4ge1xuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gcmVzdWx0LmNhc2VfZmllbGRzW2ZpZWxkSWRdO1xuXG4gICAgICAgIGNhc2VGaWVsZHMucHVzaChPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgICAgIGlkOiBmaWVsZElkLFxuICAgICAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgICAgIGZpZWxkX3R5cGU6IHt9LFxuICAgICAgICAgIHZhbHVlOiBmaWVsZCxcbiAgICAgICAgICBkaXNwbGF5X2NvbnRleHQ6IG51bGwsXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHMgPSBjYXNlRmllbGRzO1xuICAgICAgcmVzdWx0LmNvbHVtbnMgPSB7fTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICByZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0gPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGNvbCwgcmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVJvd3MgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWQuaW5pdCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb247XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA9IHRoaXMuY2FzZVR5cGU7XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUgPSB0aGlzLmNhc2VTdGF0ZTtcbiAgICB0aGlzLnNlbGVjdGVkLmZvcm1Hcm91cCA9IHRoaXMuY2FzZUZpbHRlckZHO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLm1ldGFkYXRhRmllbGRzO1xuICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IHBhZ2U7XG4gICAgLy8gQXBwbHkgZmlsdGVyc1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA/IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9UWVBFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPyB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9TVEFURV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZVBhZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgIHF1ZXJ5UGFyYW1zXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3BDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9wJyk7XG4gICAgaWYgKHRvcENvbnRhaW5lcikge1xuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgIH1cbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VGaWVsZChjb2w6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgaWQ6IGNvbC5jYXNlX2ZpZWxkX2lkLFxuICAgICAgbGFiZWw6IGNvbC5sYWJlbCxcbiAgICAgIGZpZWxkX3R5cGU6IGNvbC5jYXNlX2ZpZWxkX3R5cGUsXG4gICAgICB2YWx1ZTogcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSxcbiAgICAgIGRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI6IGNvbC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBjb2wuZGlzcGxheV9jb250ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldENvbHVtbnNXaXRoUHJlZml4KGNvbDogQ2FzZUZpZWxkLCByZXN1bHQ6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogQ2FzZUZpZWxkIHtcbiAgICBjb2wudmFsdWUgPSB0aGlzLmRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpO1xuICAgIGNvbC52YWx1ZSA9IHRoaXMucGxhY2Vob2xkZXJTZXJ2aWNlLnJlc29sdmVQbGFjZWhvbGRlcnMocmVzdWx0LmNhc2VfZmllbGRzLCBjb2wudmFsdWUpO1xuICAgIHJldHVybiBjb2w7XG4gIH1cblxuICBwdWJsaWMgaGFzUmVzdWx0cygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggJiYgdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxQYWdlc0NvdW50O1xuICB9XG5cbiAgcHVibGljIGhhc0RyYWZ0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0cygpO1xuICB9XG5cbiAgcHVibGljIGNvbXBhcmF0b3IoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LmNyZWF0ZVNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvcihjb2x1bW4pO1xuICB9XG5cbiAgcHVibGljIHNvcnQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgaWYgKHRoaXMuY29uc3VtZXJTb3J0aW5nRW5hYmxlZCkge1xuICAgICAgaWYgKGNvbHVtbi5jYXNlX2ZpZWxkX2lkICE9PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID09PSBTb3J0T3JkZXIuREVTQ0VORElORyA/XG4gICAgICAgICAgU29ydE9yZGVyLkFTQ0VORElORyA6XG4gICAgICAgICAgU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQ7XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMudHlwZSA9IGNvbHVtbi5jYXNlX2ZpZWxkX3R5cGUudHlwZTtcbiAgICAgIHRoaXMuc29ydEhhbmRsZXIuZW1pdCh0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gbmV3IFNvcnRQYXJhbWV0ZXJzKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQgPT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW47XG4gICAgICBjb25zdCBpc0FzY2VuZGluZyA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgIGNvbmRpdGlvbiA9ICFpc0NvbHVtbiB8fCAoaXNDb2x1bW4gJiYgaXNBc2NlbmRpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25kaXRpb24gPSB0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb24gPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5U2VydmljZS5pc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpOiBhbnkge1xuICAgIGlmIChjb2wuY2FzZV9maWVsZF9pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0ocmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuaWQpIHtcbiAgICAgICAgaWYgKGNvbC5pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICByZXR1cm4gcmVzdWx0LmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpID8gRFJBRlRfUFJFRklYIDogdGhpcy5oeXBoZW5hdGVJZkNhc2VSZWZlcmVuY2VPckdldChjb2wsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgaXNTb3J0QXNjZW5kaW5nKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIC8vIHNpbXBsZSB3YXkgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb2x1bW4gcGFyYW0gaXMgc29ydGVkIGFuZCBpZiBpdHMgYXNjL2Rlc2NcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9PT0gY29sdW1uLmNhc2VfZmllbGRfaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldEZpcnN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIDEgKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUmVzdWx0cygpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgKyB0aGlzLmRyYWZ0c0NvdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsID49IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZUNhc2VMaW5rVXJsKGNhc2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5jYXNlTGlua1VybFRlbXBsYXRlO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdqdXJpc2RpY3Rpb25faWQnLCB0aGlzLmp1cmlzZGljdGlvbi5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VUeXBlX2lkJywgdGhpcy5jYXNlVHlwZS5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VfaWQnLCBjYXNlSWQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpOiBudW1iZXIge1xuICAgIHJldHVybiBjdXJyZW50UGFnZSA+IDEgPyB0aGlzLmRyYWZ0c0NvdW50IDogMDtcbiAgfVxuXG4gIHByaXZhdGUgbnVtYmVyT2ZEcmFmdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZmlsdGVyKF8gPT4gXy5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdvVG9DYXNlKGNhc2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGlja0Nhc2UuZW1pdCh7XG4gICAgICBjYXNlSWRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuYnJvd3NlclNlcnZpY2UuaXNGaXJlZm94IHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNTYWZhcmkgfHwgdGhpcy5icm93c2VyU2VydmljZS5pc0lFT3JFZGdlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0aW9uKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgbm9vcCgpOiB2b2lkIHt9XG59XG4iLCI8dGFibGUgKm5nSWY9XCJoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKClcIj5cbiAgPGNhcHRpb24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiIGlkPVwic2VhcmNoLXJlc3VsdC1oZWFkaW5nX190ZXh0XCIgdGFiaW5kZXg9XCItMVwiPnt7IChjYXNlU3RhdGUgPyAnWW91ciBjYXNlcycgOiAnU2VhcmNoIHJlc3VsdCcpIHwgcnB4VHJhbnNsYXRlfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dCBwYWdpbmF0aW9uLWxpbWl0LXdhcm5pbmdcIiAqbmdJZj1cInBhZ2luYXRpb25MaW1pdEVuZm9yY2VkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj57eydXYXJuaW5nJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICB7eydUaGUgdG90YWwgc2l6ZSBvZiB0aGUgcmVzdWx0IHNldCBpcycgfCBycHhUcmFuc2xhdGV9fSB7e3BhZ2luYXRpb25NZXRhZGF0YS50b3RhbFJlc3VsdHNDb3VudCB8IG51bWJlcn19LiB7eydPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCI+XG4gICAgICA8b3V0cHV0IFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VG90YWxSZXN1bHRzKCkgKyAnICcgKyAoJ3Jlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kJyB8IHJweFRyYW5zbGF0ZSlcIj48L291dHB1dD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIiBpZD1cInNlYXJjaC1yZXN1bHQtc3VtbWFyeV9fdGV4dFwiPnt7J1Nob3dpbmcnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRGaXJzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICB7eyd0bycgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldExhc3RSZXN1bHQoKSB9fTwvc3Bhbj5cbiAgICAgICAge3snb2YnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRUb3RhbFJlc3VsdHMoKSB9fTwvc3Bhbj4ge3sncmVzdWx0cycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSkgJiYgc2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwicmVzZXQtc2VsZWN0aW9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXNldCBzZWxlY3Rpb24nIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAgICA8c3Bhbj48YSBjbGFzcz1cInNlYXJjaC1yZXN1bHQtcmVzZXQtbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiPnt7J1Jlc2V0IGNhc2Ugc2VsZWN0aW9uJyB8IHJweFRyYW5zbGF0ZX19PC9hPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9jYXB0aW9uPlxuICA8dGhlYWQ+XG4gICAgPHRyIHNjb3BlPVwicm93XCI+XG4gICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LWFsbFwiIG5hbWU9XCJzZWxlY3QtYWxsXCIgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJzZWxlY3RBbGwoKVwiIFtjaGVja2VkXT1cImFsbE9uUGFnZVNlbGVjdGVkKClcIiBbZGlzYWJsZWRdPVwiIWNhbkFueUJlU2hhcmVkKClcIiAvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LWFsbFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc2VsZWN0LWFsbCdcIj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnNcIiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWhlYWRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtc29ydF09XCJpc1NvcnRBc2NlbmRpbmcoY29sKSA9PT0gbnVsbCA/IG51bGwgOiAoaXNTb3J0QXNjZW5kaW5nKGNvbCkgPyAnYXNjZW5kaW5nJyA6ICdkZXNjZW5kaW5nJylcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1sYWJlbFwiIChjbGljayk9XCJzb3J0KGNvbClcIiAoa2V5dXApPVwibm9vcCgpXCI+XG4gICAgICAgICAgICB7eyBpc1RyYW5zbGF0YWJsZShjb2wpID8gKGNvbC5sYWJlbCB8IHJweFRyYW5zbGF0ZSkgOiBjb2wubGFiZWwgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwic29ydChjb2wpXCIgKGtleXVwLmVudGVyKT1cInNvcnQoY29sKVwiIGNsYXNzPVwic29ydC13aWRnZXRcIiBbaW5uZXJIVE1MXT1cInNvcnRXaWRnZXQoY29sKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NvcnQgJyArIGNvbC5sYWJlbCB8IHJweFRyYW5zbGF0ZVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj48L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCIgc3R5bGU9XCJ3aWR0aDogMTEwcHg7XCIgc2NvcGU9XCJjb2xcIj4mWmVyb1dpZHRoU3BhY2U7PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keT5cbiAgICA8IS0tIHNvcnRlZCBieSBjb25zdW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uc3VtZXJTb3J0aW5nRW5hYmxlZFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXN1bHQgb2YgcmVzdWx0Vmlldy5yZXN1bHRzIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdpbmF0aW9uUGFnZVNpemUsIGN1cnJlbnRQYWdlOiBzZWxlY3RlZC5wYWdlLCB0b3RhbEl0ZW1zOiByZXN1bHRUb3RhbCB9XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBuYW1lPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24ocmVzdWx0KVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQocmVzdWx0KVwiIFtkaXNhYmxlZF09XCIhY2FuQmVTaGFyZWQocmVzdWx0KVwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc2VsZWN0LScgKyByZXN1bHQuY2FzZV9pZFwiPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zOyBsZXQgY29sSW5kZXggPSBpbmRleFwiIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gc29ydGVkIGJ5IHRvb2xraXQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBjY2RTb3J0U2VhcmNoUmVzdWx0IDogc29ydFBhcmFtZXRlcnMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCByZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWxlY3QtJyArIHJlc3VsdC5jYXNlX2lkXCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cblxuICAgICAgICAgIDxhICpuZ0lmPVwiY29sSW5kZXggPT0gMFwiIFtyb3V0ZXJMaW5rXT1cInByZXBhcmVDYXNlTGlua1VybChyZXN1bHQuY2FzZV9pZClcIlxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiZ28gdG8gY2FzZSB3aXRoIENhc2UgcmVmZXJlbmNlOnt7IHJlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fVwiIGNsYXNzPVwiZ292dWstbGlua1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFoaWRlUm93c1wiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgKm5nSWY9XCJkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTsgZWxzZSBjYXNlX3JlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZ2V0Q29sdW1uc1dpdGhQcmVmaXgocmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdLCByZXN1bHQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXNlX3JlZmVyZW5jZT57e3Jlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sSW5kZXggIT0gMFwiIGNsYXNzPVwidGV4dC0xNlwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBjY2RMYWJlbFN1YnN0aXR1dG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCI+XG4gICAgICAgICAgPGRpdiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwicmVzdWx0LmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiSUNPTlwiPjwvY2NkLWFjdGl2aXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGNjZC1wYWdpbmF0aW9uXG4gICpuZ0lmPVwiaGFzUmVzdWx0cygpXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gIFt2aXNpYmlsaXR5TGFiZWxdPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXG4gIFthdXRvSGlkZV09XCJ0cnVlXCJcbiAgW21heFNpemVdPVwiOFwiXG4gIFtzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWxdPVwiJ1BhZ2luYXRpb24nXCJcbiAgW3NjcmVlblJlYWRlclBhZ2VMYWJlbF09XCJwYWdlXCJcbiAgW3NjcmVlblJlYWRlckN1cnJlbnRMYWJlbF09XCInWW91XFwncmUgb24gcGFnZSdcIj48L2NjZC1wYWdpbmF0aW9uPlxuXG48ZGl2ICpuZ0lmPVwiIShoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIlxuW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy4nIHwgcnB4VHJhbnNsYXRlXCI+XG57eydObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLicgfCBycHhUcmFuc2xhdGV9fVxuPC9kaXY+XG4iXX0=
|
|
821
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUMzQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQ2hGLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxxQ0FBcUMsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lDTHRJLEFBREYsK0JBQXlGLGVBQzdCO0lBQUEsaUJBQUM7SUFBQSxpQkFBTztJQUVoRSxBQURGLGtDQUF5QyxlQUNLO0lBQUEsWUFBNEI7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WUFDMUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLElBQUksS0FBVSxDQUFDOytHQS9hSixxQkFBcUI7NkRBQXJCLHFCQUFxQjtZQ3lIbEMsQUFWQSxBQWhJQSw0RUFBMkMsK0VBd0lNLHlEQUd1Qzs7WUEzSWhGLDBEQUFpQztZQWlJdEMsY0FBa0I7WUFBbEIsdUNBQWtCO1lBU2YsY0FBb0M7WUFBcEMsNkRBQW9DOzs7aUZEekg3QixxQkFBcUI7Y0FMakMsU0FBUzsyQkFDRSxtQkFBbUI7c1FBZXRCLG1CQUFtQjtrQkFEekIsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxRQUFRO2tCQURkLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLElBQUk7a0JBRFYsS0FBSztZQUlDLGtCQUFrQjtrQkFEeEIsS0FBSztZQUlDLGNBQWM7a0JBRHBCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxzQkFBc0I7a0JBRDVCLEtBQUs7WUFJQyxTQUFTO2tCQURmLE1BQU07WUFJQSxVQUFVO2tCQURoQixNQUFNO1lBSUEsU0FBUztrQkFEZixNQUFNO1lBSUEsV0FBVztrQkFEakIsTUFBTTs7a0ZBMURJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFBsYWNlaG9sZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUZpZWxkLCBDYXNlU3RhdGUsIENhc2VUeXBlLCBEaXNwbGF5TW9kZSxcbiAgRFJBRlRfUFJFRklYLCBKdXJpc2RpY3Rpb24sIFBhZ2luYXRpb25NZXRhZGF0YSwgU2VhcmNoUmVzdWx0VmlldywgU2VhcmNoUmVzdWx0Vmlld0NvbHVtbixcbiAgU2VhcmNoUmVzdWx0Vmlld0l0ZW0sIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciwgU29ydE9yZGVyLCBTb3J0UGFyYW1ldGVyc1xufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UsIEJyb3dzZXJTZXJ2aWNlLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VhcmNoLXJlc3VsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfVFlQRSA9ICdjYXNlLXR5cGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfU1RBVEUgPSAnY2FzZS1zdGF0ZSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBQQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA9IDEwMDAwO1xuXG4gIHB1YmxpYyBJQ09OID0gRGlzcGxheU1vZGUuSUNPTjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUxpbmtVcmxUZW1wbGF0ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IEp1cmlzZGljdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVR5cGU6IENhc2VUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlU3RhdGU6IENhc2VTdGF0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpbHRlckZHOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFZpZXc6IFNlYXJjaFJlc3VsdFZpZXc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2U6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnaW5hdGlvbk1ldGFkYXRhOiBQYWdpbmF0aW9uTWV0YWRhdGE7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1ldGFkYXRhRmllbGRzOiBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93T25seVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByZVNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uc3VtZXJTb3J0aW5nRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHRWaWV3SXRlbVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGlja0Nhc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc29ydEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTGltaXRFbmZvcmNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlcjtcblxuICBwdWJsaWMgaGlkZVJvd3M6IGJvb2xlYW47XG5cbiAgcHVibGljIHNlbGVjdGVkOiB7XG4gICAgaW5pdD86IGJvb2xlYW4sXG4gICAganVyaXNkaWN0aW9uPzogSnVyaXNkaWN0aW9uLFxuICAgIGNhc2VUeXBlPzogQ2FzZVR5cGUsXG4gICAgY2FzZVN0YXRlPzogQ2FzZVN0YXRlLFxuICAgIGZvcm1Hcm91cD86IEZvcm1Hcm91cCxcbiAgICBtZXRhZGF0YUZpZWxkcz86IHN0cmluZ1tdLFxuICAgIHBhZ2U/OiBudW1iZXJcbiAgfSA9IHt9O1xuXG4gIHB1YmxpYyBzb3J0UGFyYW1ldGVyczogU29ydFBhcmFtZXRlcnM7XG4gIHB1YmxpYyBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICBwdWJsaWMgZHJhZnRzQ291bnQ6IG51bWJlcjtcblxuICBwdWJsaWMgY29uc3VtZXJTb3J0UGFyYW1ldGVyczogeyBjb2x1bW46IHN0cmluZywgb3JkZXI6IFNvcnRPcmRlciwgdHlwZTogc3RyaW5nIH0gPSB7IGNvbHVtbjogbnVsbCwgb3JkZXI6IG51bGwsIHR5cGU6IG51bGwgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDYXNlczogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksXG4gICAgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZVJlZmVyZW5jZVBpcGU6IENhc2VSZWZlcmVuY2VQaXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTZXJ2aWNlOiBQbGFjZWhvbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicm93c2VyU2VydmljZTogQnJvd3NlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkgPSBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID0gYXBwQ29uZmlnLmdldFBhZ2luYXRpb25QYWdlU2l6ZSgpO1xuICAgIHRoaXMuaGlkZVJvd3MgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByZVNlbGVjdGVkQ2FzZSBvZiB0aGlzLnByZVNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcyAmJiAhdGhpcy5zZWxlY3RlZENhc2VzLnNvbWUoYUNhc2UgPT4gYUNhc2UuY2FzZV9pZCA9PT0gcHJlU2VsZWN0ZWRDYXNlLmNhc2VfaWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2gocHJlU2VsZWN0ZWRDYXNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBpZiAoY2hhbmdlc1sncmVzdWx0VmlldyddKSB7XG4gICAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAvLyBDbG9uZSBgcmVzdWx0Vmlld2AgdG8gcHJldmVudCBzb3J0aW5nIHRoZSBleHRlcm5hbCB2YXJpYWJsZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3ID0ge1xuICAgICAgICBjb2x1bW5zOiB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zbGljZSgwKSxcbiAgICAgICAgcmVzdWx0czogdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuc2xpY2UoMCksXG4gICAgICAgIGhhc0RyYWZ0czogdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0c1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMgPSB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zb3J0KChhOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLCBiOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSA9PiB7XG4gICAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlcjtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmh5ZHJhdGVSZXN1bHRWaWV3KCk7XG4gICAgICB0aGlzLmRyYWZ0c0NvdW50ID0gdGhpcy5kcmFmdHNDb3VudCA/IHRoaXMuZHJhZnRzQ291bnQgOiB0aGlzLm51bWJlck9mRHJhZnRzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydwYWdlJ10pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IChjaGFuZ2VzWydwYWdlJ10pLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNUcmFuc2xhdGFibGUoY29sOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc1V0aWxzLmlzVHJhbnNsYXRhYmxlKGNvbC5jYXNlX2ZpZWxkX3R5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXN1bHRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQ7XG4gICAgY29uc3QgbWF4aW11bVJlc3VsdFJlYWNoZWQgPSB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUO1xuICAgIHRoaXMucGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBtYXhpbXVtUmVzdWx0UmVhY2hlZDtcblxuICAgIHJldHVybiBtYXhpbXVtUmVzdWx0UmVhY2hlZCA/IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgOiB0b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQmVTaGFyZWQoY2FzZVZpZXc6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VWaWV3LnN1cHBsZW1lbnRhcnlfZGF0YSAmJiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEuaGFzT3duUHJvcGVydHkoJ29yZ3NfYXNzaWduZWRfdXNlcnMnKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5BbnlCZVNoYXJlZCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQodGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbE9uUGFnZVNlbGVjdGVkKCkpIHtcbiAgICAgIC8vIGFsbCBjYXNlcyBhbHJlYWR5IHNlbGVjdGVkLCBzbyB1bnNlbGVjdCBhbGwgb24gdGhpcyBwYWdlXG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICAgIGlmIChjLmNhc2VfaWQgPT09IHMuY2FzZV9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKGMpICYmIHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnNlbGVjdGVkQ2FzZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5jYXNlX2lkID09PSB0aGlzLnNlbGVjdGVkQ2FzZXNbaV0uY2FzZV9pZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFsbE9uUGFnZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGxldCBjYW5CZVNoYXJlZENvdW50ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgciA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldO1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQocikpIHtcbiAgICAgICAgY2FuQmVTaGFyZWRDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQocikgJiYgdGhpcy5jYW5CZVNoYXJlZChyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjYW5CZVNoYXJlZENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHJlc3VsdCB2aWV3IHdpdGggY2FzZSBmaWVsZCBkZWZpbml0aW9ucy5cbiAgICovXG4gIC8vIEEgbG9uZ2VyIHRlcm0gcmVzb2x1dGlvbiBpcyB0byBtb3ZlIHRoaXMgcGllY2Ugb2YgbG9naWMgdG8gdGhlIGJhY2tlbmRcbiAgcHVibGljIGh5ZHJhdGVSZXN1bHRWaWV3KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZHMgPSBbXTtcblxuICAgICAgT2JqZWN0LmtleXMocmVzdWx0LmNhc2VfZmllbGRzKS5mb3JFYWNoKGZpZWxkSWQgPT4ge1xuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gcmVzdWx0LmNhc2VfZmllbGRzW2ZpZWxkSWRdO1xuXG4gICAgICAgIGNhc2VGaWVsZHMucHVzaChPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgICAgIGlkOiBmaWVsZElkLFxuICAgICAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgICAgIGZpZWxkX3R5cGU6IHt9LFxuICAgICAgICAgIHZhbHVlOiBmaWVsZCxcbiAgICAgICAgICBkaXNwbGF5X2NvbnRleHQ6IG51bGwsXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHMgPSBjYXNlRmllbGRzO1xuICAgICAgcmVzdWx0LmNvbHVtbnMgPSB7fTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICByZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0gPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGNvbCwgcmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVJvd3MgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWQuaW5pdCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb247XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA9IHRoaXMuY2FzZVR5cGU7XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUgPSB0aGlzLmNhc2VTdGF0ZTtcbiAgICB0aGlzLnNlbGVjdGVkLmZvcm1Hcm91cCA9IHRoaXMuY2FzZUZpbHRlckZHO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLm1ldGFkYXRhRmllbGRzO1xuICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IHBhZ2U7XG4gICAgLy8gQXBwbHkgZmlsdGVyc1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA/IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9UWVBFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPyB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9TVEFURV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZVBhZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgIHF1ZXJ5UGFyYW1zXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3BDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9wJyk7XG4gICAgaWYgKHRvcENvbnRhaW5lcikge1xuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgIH1cbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VGaWVsZChjb2w6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgaWQ6IGNvbC5jYXNlX2ZpZWxkX2lkLFxuICAgICAgbGFiZWw6IGNvbC5sYWJlbCxcbiAgICAgIGZpZWxkX3R5cGU6IGNvbC5jYXNlX2ZpZWxkX3R5cGUsXG4gICAgICB2YWx1ZTogcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSxcbiAgICAgIGRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI6IGNvbC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBjb2wuZGlzcGxheV9jb250ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldENvbHVtbnNXaXRoUHJlZml4KGNvbDogQ2FzZUZpZWxkLCByZXN1bHQ6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogQ2FzZUZpZWxkIHtcbiAgICBjb2wudmFsdWUgPSB0aGlzLmRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpO1xuICAgIGNvbC52YWx1ZSA9IHRoaXMucGxhY2Vob2xkZXJTZXJ2aWNlLnJlc29sdmVQbGFjZWhvbGRlcnMocmVzdWx0LmNhc2VfZmllbGRzLCBjb2wudmFsdWUpO1xuICAgIHJldHVybiBjb2w7XG4gIH1cblxuICBwdWJsaWMgaGFzUmVzdWx0cygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggJiYgdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxQYWdlc0NvdW50O1xuICB9XG5cbiAgcHVibGljIGhhc0RyYWZ0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0cygpO1xuICB9XG5cbiAgcHVibGljIGNvbXBhcmF0b3IoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LmNyZWF0ZVNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvcihjb2x1bW4pO1xuICB9XG5cbiAgcHVibGljIHNvcnQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgaWYgKHRoaXMuY29uc3VtZXJTb3J0aW5nRW5hYmxlZCkge1xuICAgICAgaWYgKGNvbHVtbi5jYXNlX2ZpZWxkX2lkICE9PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID09PSBTb3J0T3JkZXIuREVTQ0VORElORyA/XG4gICAgICAgICAgU29ydE9yZGVyLkFTQ0VORElORyA6XG4gICAgICAgICAgU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQ7XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMudHlwZSA9IGNvbHVtbi5jYXNlX2ZpZWxkX3R5cGUudHlwZTtcbiAgICAgIHRoaXMuc29ydEhhbmRsZXIuZW1pdCh0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gbmV3IFNvcnRQYXJhbWV0ZXJzKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQgPT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW47XG4gICAgICBjb25zdCBpc0FzY2VuZGluZyA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgIGNvbmRpdGlvbiA9ICFpc0NvbHVtbiB8fCAoaXNDb2x1bW4gJiYgaXNBc2NlbmRpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25kaXRpb24gPSB0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb24gPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5U2VydmljZS5pc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpOiBhbnkge1xuICAgIGlmIChjb2wuY2FzZV9maWVsZF9pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0ocmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuaWQpIHtcbiAgICAgICAgaWYgKGNvbC5pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICByZXR1cm4gcmVzdWx0LmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpID8gRFJBRlRfUFJFRklYIDogdGhpcy5oeXBoZW5hdGVJZkNhc2VSZWZlcmVuY2VPckdldChjb2wsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgaXNTb3J0QXNjZW5kaW5nKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIC8vIHNpbXBsZSB3YXkgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb2x1bW4gcGFyYW0gaXMgc29ydGVkIGFuZCBpZiBpdHMgYXNjL2Rlc2NcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9PT0gY29sdW1uLmNhc2VfZmllbGRfaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldEZpcnN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIDEgKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUmVzdWx0cygpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgKyB0aGlzLmRyYWZ0c0NvdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsID49IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZUNhc2VMaW5rVXJsKGNhc2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5jYXNlTGlua1VybFRlbXBsYXRlO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdqdXJpc2RpY3Rpb25faWQnLCB0aGlzLmp1cmlzZGljdGlvbi5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VUeXBlX2lkJywgdGhpcy5jYXNlVHlwZS5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VfaWQnLCBjYXNlSWQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpOiBudW1iZXIge1xuICAgIHJldHVybiBjdXJyZW50UGFnZSA+IDEgPyB0aGlzLmRyYWZ0c0NvdW50IDogMDtcbiAgfVxuXG4gIHByaXZhdGUgbnVtYmVyT2ZEcmFmdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZmlsdGVyKF8gPT4gXy5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdvVG9DYXNlKGNhc2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGlja0Nhc2UuZW1pdCh7XG4gICAgICBjYXNlSWRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuYnJvd3NlclNlcnZpY2UuaXNGaXJlZm94IHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNTYWZhcmkgfHwgdGhpcy5icm93c2VyU2VydmljZS5pc0lFT3JFZGdlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0aW9uKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgbm9vcCgpOiB2b2lkIHt9XG59XG4iLCI8dGFibGUgKm5nSWY9XCJoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKClcIj5cbiAgPGNhcHRpb24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiIGlkPVwic2VhcmNoLXJlc3VsdC1oZWFkaW5nX190ZXh0XCIgdGFiaW5kZXg9XCItMVwiPnt7IChjYXNlU3RhdGUgPyAnWW91ciBjYXNlcycgOiAnU2VhcmNoIHJlc3VsdCcpIHwgcnB4VHJhbnNsYXRlfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dCBwYWdpbmF0aW9uLWxpbWl0LXdhcm5pbmdcIiAqbmdJZj1cInBhZ2luYXRpb25MaW1pdEVuZm9yY2VkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj57eydXYXJuaW5nJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICB7eydUaGUgdG90YWwgc2l6ZSBvZiB0aGUgcmVzdWx0IHNldCBpcycgfCBycHhUcmFuc2xhdGV9fSB7e3BhZ2luYXRpb25NZXRhZGF0YS50b3RhbFJlc3VsdHNDb3VudCB8IG51bWJlcn19LiB7eydPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCI+XG4gICAgICA8b3V0cHV0IFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VG90YWxSZXN1bHRzKCkgKyAnICcgKyAoJ3Jlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kJyB8IHJweFRyYW5zbGF0ZSlcIj48L291dHB1dD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIiBpZD1cInNlYXJjaC1yZXN1bHQtc3VtbWFyeV9fdGV4dFwiPnt7J1Nob3dpbmcnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRGaXJzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICB7eyd0bycgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldExhc3RSZXN1bHQoKSB9fTwvc3Bhbj5cbiAgICAgICAge3snb2YnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRUb3RhbFJlc3VsdHMoKSB9fTwvc3Bhbj4ge3sncmVzdWx0cycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSkgJiYgc2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwicmVzZXQtc2VsZWN0aW9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXNldCBzZWxlY3Rpb24nIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAgICA8c3Bhbj48YSBjbGFzcz1cInNlYXJjaC1yZXN1bHQtcmVzZXQtbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiPnt7J1Jlc2V0IGNhc2Ugc2VsZWN0aW9uJyB8IHJweFRyYW5zbGF0ZX19PC9hPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9jYXB0aW9uPlxuICA8dGhlYWQ+XG4gICAgPHRyIHNjb3BlPVwicm93XCI+XG4gICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LWFsbFwiIG5hbWU9XCJzZWxlY3QtYWxsXCIgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJzZWxlY3RBbGwoKVwiIFtjaGVja2VkXT1cImFsbE9uUGFnZVNlbGVjdGVkKClcIiBbZGlzYWJsZWRdPVwiIWNhbkFueUJlU2hhcmVkKClcIiAvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LWFsbFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc2VsZWN0LWFsbCdcIj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnNcIiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWhlYWRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtc29ydF09XCJpc1NvcnRBc2NlbmRpbmcoY29sKSA9PT0gbnVsbCA/IG51bGwgOiAoaXNTb3J0QXNjZW5kaW5nKGNvbCkgPyAnYXNjZW5kaW5nJyA6ICdkZXNjZW5kaW5nJylcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1sYWJlbFwiIChjbGljayk9XCJzb3J0KGNvbClcIiAoa2V5dXApPVwibm9vcCgpXCI+XG4gICAgICAgICAgICB7eyBpc1RyYW5zbGF0YWJsZShjb2wpID8gKGNvbC5sYWJlbCB8IHJweFRyYW5zbGF0ZSkgOiBjb2wubGFiZWwgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwic29ydChjb2wpXCIgKGtleXVwLmVudGVyKT1cInNvcnQoY29sKVwiIGNsYXNzPVwic29ydC13aWRnZXRcIiBbaW5uZXJIVE1MXT1cInNvcnRXaWRnZXQoY29sKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NvcnQgJyArIGNvbC5sYWJlbCB8IHJweFRyYW5zbGF0ZVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj48L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCIgc3R5bGU9XCJ3aWR0aDogMTEwcHg7XCIgc2NvcGU9XCJjb2xcIj4mWmVyb1dpZHRoU3BhY2U7PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keT5cbiAgICA8IS0tIHNvcnRlZCBieSBjb25zdW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uc3VtZXJTb3J0aW5nRW5hYmxlZFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXN1bHQgb2YgcmVzdWx0Vmlldy5yZXN1bHRzIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdpbmF0aW9uUGFnZVNpemUsIGN1cnJlbnRQYWdlOiBzZWxlY3RlZC5wYWdlLCB0b3RhbEl0ZW1zOiByZXN1bHRUb3RhbCB9XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBuYW1lPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24ocmVzdWx0KVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQocmVzdWx0KVwiIFtkaXNhYmxlZF09XCIhY2FuQmVTaGFyZWQocmVzdWx0KVwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc2VsZWN0LScgKyByZXN1bHQuY2FzZV9pZFwiPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zOyBsZXQgY29sSW5kZXggPSBpbmRleFwiIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gc29ydGVkIGJ5IHRvb2xraXQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBjY2RTb3J0U2VhcmNoUmVzdWx0IDogc29ydFBhcmFtZXRlcnMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCByZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWxlY3QtJyArIHJlc3VsdC5jYXNlX2lkXCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cblxuICAgICAgICAgIDxhICpuZ0lmPVwiY29sSW5kZXggPT0gMFwiIFtyb3V0ZXJMaW5rXT1cInByZXBhcmVDYXNlTGlua1VybChyZXN1bHQuY2FzZV9pZClcIlxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiZ28gdG8gY2FzZSB3aXRoIENhc2UgcmVmZXJlbmNlOnt7IHJlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fVwiIGNsYXNzPVwiZ292dWstbGlua1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFoaWRlUm93c1wiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgKm5nSWY9XCJkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTsgZWxzZSBjYXNlX3JlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZ2V0Q29sdW1uc1dpdGhQcmVmaXgocmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdLCByZXN1bHQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXNlX3JlZmVyZW5jZT57e3Jlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sSW5kZXggIT0gMFwiIGNsYXNzPVwidGV4dC0xNlwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBjY2RMYWJlbFN1YnN0aXR1dG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCI+XG4gICAgICAgICAgPGRpdiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwicmVzdWx0LmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiSUNPTlwiPjwvY2NkLWFjdGl2aXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGNjZC1wYWdpbmF0aW9uXG4gICpuZ0lmPVwiaGFzUmVzdWx0cygpXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gIFt2aXNpYmlsaXR5TGFiZWxdPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXG4gIFthdXRvSGlkZV09XCJ0cnVlXCJcbiAgW21heFNpemVdPVwiOFwiXG4gIFtzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWxdPVwiJ1BhZ2luYXRpb24nXCJcbiAgW3NjcmVlblJlYWRlclBhZ2VMYWJlbF09XCJwYWdlXCJcbiAgW3NjcmVlblJlYWRlckN1cnJlbnRMYWJlbF09XCInWW91XFwncmUgb24gcGFnZSdcIj48L2NjZC1wYWdpbmF0aW9uPlxuXG48ZGl2ICpuZ0lmPVwiIShoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIlxuW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy4nIHwgcnB4VHJhbnNsYXRlXCI+XG57eydObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLicgfCBycHhUcmFuc2xhdGV9fVxuPC9kaXY+XG4iXX0=
|
|
@@ -24,7 +24,7 @@ import * as i8 from "ngx-pagination";
|
|
|
24
24
|
import * as i9 from "../../pipes/case-reference/case-reference.pipe";
|
|
25
25
|
import * as i10 from "../../pipes/search-result/sorting/sort-search-result.pipe";
|
|
26
26
|
export class SearchResultModule {
|
|
27
|
-
static ɵfac = function SearchResultModule_Factory(
|
|
27
|
+
static ɵfac = function SearchResultModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultModule)(); };
|
|
28
28
|
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SearchResultModule });
|
|
29
29
|
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
|
|
30
30
|
SearchResultViewItemComparatorFactory,
|
|
@@ -79,4 +79,4 @@ export class SearchResultModule {
|
|
|
79
79
|
ActivityModule,
|
|
80
80
|
PaginationModule, i1.RpxTranslationModule, PaletteModule], exports: [SearchResultComponent] }); })();
|
|
81
81
|
i0.ɵɵsetComponentScope(SearchResultComponent, function () { return [i2.NgForOf, i2.NgIf, i3.RouterLink, i4.LabelSubstitutorDirective, i5.ActivityComponent, i6.PaginationComponent, i7.FieldReadComponent]; }, function () { return [i2.DecimalPipe, i8.PaginatePipe, i9.CaseReferencePipe, i10.SortSearchResultPipe, i1.RpxTranslatePipe]; });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUZBQWlGLENBQUM7QUFDeEksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBMkJsRSxNQUFNLE9BQU8sa0JBQWtCOzRHQUFsQixrQkFBa0I7NERBQWxCLGtCQUFrQjtpRUFMbEI7WUFDVCxxQ0FBcUM7WUFDckMsY0FBYztTQUNmLFlBckJDLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLFdBQVc7WUFDWCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtZQUMvQixhQUFhOztpRkFhSixrQkFBa0I7Y0F6QjlCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLHNCQUFzQjtvQkFDdEIsV0FBVztvQkFDWCxjQUFjO29CQUNkLGdCQUFnQjtvQkFDaEIsb0JBQW9CLENBQUMsUUFBUSxFQUFFO29CQUMvQixhQUFhO2lCQUNkO2dCQUNELFlBQVksRUFBRTtvQkFDWixxQkFBcUI7aUJBQ3RCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxxQkFBcUI7aUJBQ3RCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxxQ0FBcUM7b0JBQ3JDLGNBQWM7aUJBQ2Y7YUFDRjs7d0ZBQ1ksa0JBQWtCLG1CQVYzQixxQkFBcUIsYUFickIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixzQkFBc0I7UUFDdEIsV0FBVztRQUNYLGNBQWM7UUFDZCxnQkFBZ0IsMkJBRWhCLGFBQWEsYUFNYixxQkFBcUI7dUJBSHJCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcbmltcG9ydCB7IFJweFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBMYWJlbFN1YnN0aXR1dG9yTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zdWJzdGl0dXRvci9sYWJlbC1zdWJzdGl0dXRvci5tb2R1bGUnO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9icm93c2VyL2Jyb3dzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoLXJlc3VsdC9zb3J0aW5nL3NlYXJjaC1yZXN1bHQtdmlldy1pdGVtLWNvbXBhcmF0b3ItZmFjdG9yeSc7XG5pbXBvcnQgeyBBY3Rpdml0eU1vZHVsZSB9IGZyb20gJy4uL2FjdGl2aXR5L2FjdGl2aXR5Lm1vZHVsZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBQYWxldHRlTW9kdWxlIH0gZnJvbSAnLi4vcGFsZXR0ZS9wYWxldHRlLm1vZHVsZSc7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ3hQYWdpbmF0aW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIExhYmVsU3Vic3RpdHV0b3JNb2R1bGUsXG4gICAgUGlwZXNNb2R1bGUsXG4gICAgQWN0aXZpdHlNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgICBScHhUcmFuc2xhdGlvbk1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFBhbGV0dGVNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2VhcmNoUmVzdWx0Q29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTZWFyY2hSZXN1bHRDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksXG4gICAgQnJvd3NlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXN1bHRNb2R1bGUge31cbiJdfQ==
|