@hmcts/ccd-case-ui-toolkit 7.1.74 → 7.1.75-angular-upgrade-rc2
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 +16 -8
- 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 +15 -10
- 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 +357 -340
- 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/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -0
- package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -424,7 +424,7 @@ export class SelectFlagTypeComponent extends AbstractJourneyComponent {
|
|
|
424
424
|
super.previous();
|
|
425
425
|
}
|
|
426
426
|
}
|
|
427
|
-
static ɵfac = function SelectFlagTypeComponent_Factory(
|
|
427
|
+
static ɵfac = function SelectFlagTypeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectFlagTypeComponent)(i0.ɵɵdirectiveInject(i1.CaseFlagRefdataService), i0.ɵɵdirectiveInject(i1.MultipageComponentStateService)); };
|
|
428
428
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectFlagTypeComponent, selectors: [["ccd-select-flag-type"]], inputs: { formGroup: "formGroup", jurisdiction: "jurisdiction", caseTypeId: "caseTypeId", hmctsServiceId: "hmctsServiceId", isDisplayContextParameterExternal: "isDisplayContextParameterExternal", isDisplayContextParameter2Point1Enabled: "isDisplayContextParameter2Point1Enabled", selectedFlagsLocation: "selectedFlagsLocation" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter", flagCommentsOptionalEmitter: "flagCommentsOptionalEmitter", flagTypeSubJourneyEmitter: "flagTypeSubJourneyEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["priorFlagTypeSelected", ""], [3, "formGroup", 4, "ngIf"], [3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "flag-type-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--m"], ["id", "flag-type-heading", 1, "govuk-fieldset__heading", "govuk-!-margin-bottom-1"], [4, "ngIf", "ngIfElse"], ["id", "flag-type-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "govuk-radios__conditional", "id", "conditional-flagType", 4, "ngIf"], ["id", "flag-type-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for"], ["id", "conditional-flagType", 1, "govuk-radios__conditional"], ["for", "other-flag-type-description", 1, "govuk-label"], ["id", "flag-type-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "other-flag-type-description", "type", "text", 1, "govuk-input", "govuk-!-width-one-half", 3, "ngClass", "name", "formControlName"], ["class", "govuk-checkboxes__item govuk-!-margin-top-4", 4, "ngIf"], ["id", "flag-type-error-message", 1, "govuk-error-message"], [1, "govuk-checkboxes__item", "govuk-!-margin-top-4"], ["id", "is-visible-externally", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "name", "formControlName"], ["for", "is-visible-externally", 1, "govuk-label", "govuk-checkboxes__label"]], template: function SelectFlagTypeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
429
429
|
i0.ɵɵtemplate(0, SelectFlagTypeComponent_ng_container_0_Template, 12, 10, "ng-container", 1);
|
|
430
430
|
} if (rf & 2) {
|
|
@@ -456,4 +456,4 @@ export class SelectFlagTypeComponent extends AbstractJourneyComponent {
|
|
|
456
456
|
type: Output
|
|
457
457
|
}] }); })();
|
|
458
458
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectFlagTypeComponent, { className: "SelectFlagTypeComponent", filePath: "lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.ts", lineNumber: 19 }); })();
|
|
459
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZsYWctdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZsYWcvY29tcG9uZW50cy9zZWxlY3QtZmxhZy10eXBlL3NlbGVjdC1mbGFnLXR5cGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctdHlwZS9zZWxlY3QtZmxhZy10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQ0FBcUMs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UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO2lGQXhVVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2xCcEMsNEZBQWdFOztZQUFqRCwwRUFBdUI7OztpRkRrQnpCLHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLHNCQUFzQjtvR0FNekIsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxjQUFjO2tCQURwQixLQUFLO1lBSUMsaUNBQWlDO2tCQUR2QyxLQUFLO1lBSUMsdUNBQXVDO2tCQUQ3QyxLQUFLO1lBSUMscUJBQXFCO2tCQUQzQixLQUFLO1lBSUMsb0JBQW9CO2tCQUQxQixNQUFNO1lBSUEsMkJBQTJCO2tCQURqQyxNQUFNO1lBSUEseUJBQXlCO2tCQUQvQixNQUFNOztrRkE1QkksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRmxhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vY2FzZS1mbGFnJztcbmltcG9ydCB7IENhc2VGbGFnUmVmZGF0YVNlcnZpY2UsIE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFJlZmRhdGFDYXNlRmxhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jYXNlLWZsYWcvcmVmZGF0YS1jYXNlLWZsYWctdHlwZS5lbnVtJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ0Zvcm1GaWVsZHMsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQvYWJzdHJhY3Qtam91cm5leS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcyB9IGZyb20gJy4uL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXItY29udHJvbC1uYW1lcy5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlbGVjdC1mbGFnLXR5cGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZsYWctdHlwZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1mbGFnLXR5cGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGbGFnVHlwZUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBKb3VybmV5IHtcbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVR5cGVJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBobWN0c1NlcnZpY2VJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxhZ1R5cGVTdWJKb3VybmV5RW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGZsYWdUeXBlczogRmxhZ1R5cGVbXTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdO1xuICBwdWJsaWMgZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgZmxhZ1R5cGVFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGZsYWdSZWZkYXRhJDogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgcmVmZGF0YUVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBjYWNoZWRQYXRoOiAoRmxhZ1R5cGUgfCBmYWxzZSlbXTtcbiAgcHVibGljIGNhY2hlZEZsYWdUeXBlOiBGbGFnVHlwZTtcbiAgcHVibGljIGZsYWdUeXBlQ29udHJvbENoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNhc2VGbGFnRm9ybUZpZWxkID0gQ2FzZUZsYWdGb3JtRmllbGRzO1xuICBwdWJsaWMgaXNDYXNlTGV2ZWxGbGFnID0gZmFsc2U7XG4gIHB1YmxpYyBjYWNoZWRSREZsYWdUeXBlczogRmxhZ1R5cGVbXTtcbiAgcHVibGljIHN1YkpvdXJuZXlJbmRleDogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1heENoYXJhY3RlcnNGb3JPdGhlckZsYWdUeXBlID0gODA7XG4gIC8vIENvZGUgZm9yIFwiT3RoZXJcIiBmbGFnIHR5cGUgYXMgZGVmaW5lZCBpbiBSZWZlcmVuY2UgRGF0YVxuICBwcml2YXRlIHJlYWRvbmx5IG90aGVyRmxhZ1R5cGVDb2RlID0gJ09UMDAwMSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIHB1YmxpYyBnZXQgY2FzZUZsYWdXaXphcmRTdGVwVGl0bGUoKTogdHlwZW9mIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlIHtcbiAgICByZXR1cm4gQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlOiBDYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlLCBwYWdlU3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcihwYWdlU3RhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLmhhbmRsZUJhY2tCdXR0b25TdWJKb3VybmV5ID0gdGhpcy5oYW5kbGVCYWNrQnV0dG9uU3ViSm91cm5leS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZEZsYWdUeXBlKCk6IEZsYWdUeXBlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuRkxBR19UWVBFKT8udmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG90aGVyRmxhZ1R5cGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy52YWx1ZT8uZmxhZ0NvZGUgPT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0Nhc2VMZXZlbEZsYWcgPSB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbj8uZmxhZ3M/LmZsYWdzQ2FzZUZpZWxkSWQgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZDtcbiAgICB0aGlzLmZsYWdUeXBlU3ViSm91cm5leUVtaXR0ZXIuZW1pdCh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5mbGFnVHlwZXMgPSBbXTtcbiAgICBjb25zdCBmbGFnVHlwZSA9IHRoaXMuaXNDYXNlTGV2ZWxGbGFnID8gUmVmZGF0YUNhc2VGbGFnVHlwZS5DQVNFIDogUmVmZGF0YUNhc2VGbGFnVHlwZS5QQVJUWTtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT04sIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICAgIC8vIEZvcm1Db250cm9sIGlzIGxpbmtlZCB0byBhIGNoZWNrYm94IGlucHV0IGVsZW1lbnQsIHNvIGluaXRpYWwgdmFsdWUgc2hvdWxkIGJlIGZhbHNlXG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfVklTSUJMRV9JTlRFUk5BTExZX09OTFksIG5ldyBGb3JtQ29udHJvbChmYWxzZSkpO1xuXG4gICAgLy8gU2hvdWxkIGNsZWFyIGRlc2NyaXB0aW9uQ29udHJvbE5hbWUgaWYgZmxhZ1R5cGVDb250cm9sTmFtZSBpcyBjaGFuZ2VkXG4gICAgdGhpcy5mbGFnVHlwZUNvbnRyb2xDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OKT8uc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLmNhY2hlZFBhdGggPSBbXTtcblxuICAgICAgICAvLyByZXF1aXJlZCB0byBjbGVhciBsYW5ndWFnZSBpbnRlcnByZXRlclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBbU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5MQU5HVUFHRV9TRUFSQ0hfVEVSTV06ICcnLFxuICAgICAgICAgIFtTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLk1BTlVBTF9MQU5HVUFHRV9FTlRSWV06ICcnXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgKTtcblxuICAgIC8vIElmIGhtY3RzU2VydmljZUlkIGlzIHByZXNlbnQsIHVzZSB0aGlzIHRvIHJldHJpZXZlIHRoZSByZWxldmFudCBsaXN0IG9mIGZsYWcgdHlwZXNcbiAgICBpZiAodGhpcy5obWN0c1NlcnZpY2VJZCkge1xuICAgICAgdGhpcy5mbGFnUmVmZGF0YSQgPSB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2VcbiAgICAgICAgLmdldENhc2VGbGFnc1JlZmRhdGEodGhpcy5obWN0c1NlcnZpY2VJZCwgZmxhZ1R5cGUsIHRydWUsIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoZmxhZ1R5cGVzKSA9PiB0aGlzLnByb2Nlc3NGbGFnVHlwZXMoZmxhZ1R5cGVzKSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLm9uUmVmZGF0YUVycm9yKGVycm9yKVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRWxzZSwgSE1DVFMgc2VydmljZSBjb2RlIGlzIHJlcXVpcmVkIHRvIHJldHJpZXZlIHRoZSByZWxldmFudCBsaXN0IG9mIGZsYWcgdHlwZXM7IGF0dGVtcHQgdG8gb2J0YWluIGl0IGJ5IGNhc2UgdHlwZSBJRCBmaXJzdFxuICAgICAgdGhpcy5mbGFnUmVmZGF0YSQgPSB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0SG1jdHNTZXJ2aWNlRGV0YWlsc0J5Q2FzZVR5cGUodGhpcy5jYXNlVHlwZUlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgcmV0cmlldmluZyBITUNUUyBzZXJ2aWNlIGRldGFpbHMgYnkgY2FzZSB0eXBlIElELCB0cnkgYnkgc2VydmljZSBuYW1lIGluc3RlYWRcbiAgICAgICAgICBjYXRjaEVycm9yKChfKSA9PiB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0SG1jdHNTZXJ2aWNlRGV0YWlsc0J5U2VydmljZU5hbWUodGhpcy5qdXJpc2RpY3Rpb24pKSxcbiAgICAgICAgICAvLyBVc2Ugc3dpdGNoTWFwIHRvIHJldHVybiBhbiBpbm5lciBPYnNlcnZhYmxlIG9mIHRoZSBmbGFnIHR5cGVzIGRhdGEsIGhhdmluZyByZWNlaXZlZCB0aGUgc2VydmljZSBkZXRhaWxzXG4gICAgICAgICAgLy8gaW5jbHVkaW5nIHNlcnZpY2VfY29kZS4gVGhpcyBhdm9pZHMgaGF2aW5nIG5lc3RlZCBgc3Vic2NyaWJlYHMsIHdoaWNoIGlzIGFuIGFudGktcGF0dGVybiFcbiAgICAgICAgICBzd2l0Y2hNYXAoKHNlcnZpY2VEZXRhaWxzKSA9PiB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0Q2FzZUZsYWdzUmVmZGF0YShzZXJ2aWNlRGV0YWlsc1swXS5zZXJ2aWNlX2NvZGUsIGZsYWdUeXBlLFxuICAgICAgICAgICAgdHJ1ZSwgdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChmbGFnVHlwZXMpID0+IHRoaXMucHJvY2Vzc0ZsYWdUeXBlcyhmbGFnVHlwZXMpLFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMub25SZWZkYXRhRXJyb3IoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmFkZFN0YXRlKHRoaXMuc3ViSm91cm5leUluZGV4KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLmhhbmRsZUJhY2tCdXR0b25TdWJKb3VybmV5KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrQnV0dG9uU3ViSm91cm5leShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucHJldmlvdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTdGF0ZShkYXRhOiBudW1iZXIsIHVybD86IHN0cmluZyk6IHZvaWQge1xuICAgIGhpc3RvcnkucHVzaFN0YXRlKCcxJytkYXRhLCAnJywgdXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdSZWZkYXRhJD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZsYWdUeXBlQ29udHJvbENoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gY2hlY2sgaWYgdGhlIHVzZXIgaGFzIGFuIGV4aXN0aW5nIHBhdGggd2hlbiBuYXZpZ2F0aW5nIGF3YXkgZnJvbSB0aGUgcGFnZVxuICAgIC8vIGlmIHNvIHdlIG1heSBuZWVkIHRvIGVuc3VyZSB0aGUgdmFsdWVzIGFyZSBzZXQgY29ycmVjdGx5LlxuICAgIHRoaXMuY2hlY2tGb3JFeGlzdGluZ1BhdGgoKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLmhhbmRsZUJhY2tCdXR0b25TdWJKb3VybmV5KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0ZvckV4aXN0aW5nUGF0aCgpOiB2b2lkIHtcbiAgICAvLyBSZXN0b3JlIHZhbHVlcyBmcm9tIGNhY2hlZFBhdGhcbiAgICBpZiAodGhpcy5zdWJKb3VybmV5SW5kZXggPD0gMCkge1xuICAgICAgLy8gY2hlY2sgaWYgdGhlIHVzZXIgaXMgbmF2aWdhdGluZyB0byB0aGUgcHJldmlvdXMgcGFnZSBpbiB0aGUgam91bnJleS5cbiAgICAgIC8vIGluIHRoaXMgc2l0dWF0aW9uIHdlIG5lZWQgdG8gcmVzdG9yZSB0aGUgZnVsbCBwYXRoIGZvciBkYXRhIHJldGVudGlvbiBhY3Jvc3MgcGFnZXMuXG4gICAgICBpZiAodGhpcy5jYWNoZWRQYXRoICYmIHRoaXMuY2FjaGVkUGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY2FjaGVkUGF0aC5mb3JFYWNoKChmbGFnVHlwZSkgPT4ge1xuICAgICAgICAgIGlmIChmbGFnVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy5zZXRWYWx1ZShmbGFnVHlwZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICAgIHRoaXMuZW1pdENhc2VGbGFnU3RhdGUoKTtcbiAgICB0aGlzLmVtaXRGbGFnQ29tbWVudHNPcHRpb25hbCgpO1xuICAgIHRoaXMuaGFuZGxlRmxhZ1R5cGVTZWxlY3Rpb24oKTtcbiAgICB0aGlzLmZsYWdUeXBlU3ViSm91cm5leUVtaXR0ZXIuZW1pdCh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDYXNlRmxhZ1N0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFLFxuICAgICAgaXNQYXJlbnRGbGFnVHlwZTogdGhpcy5zZWxlY3RlZEZsYWdUeXBlID8gdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmlzUGFyZW50IDogbnVsbCxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmxhZ0NvbW1lbnRzT3B0aW9uYWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGbGFnVHlwZSAmJiAhdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmlzUGFyZW50ICYmICF0aGlzLnNlbGVjdGVkRmxhZ1R5cGUuZmxhZ0NvbW1lbnQpIHtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzT3B0aW9uYWxFbWl0dGVyLmVtaXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGbGFnVHlwZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWdUeXBlPy5pc1BhcmVudCkge1xuICAgICAgdGhpcy5sb2FkQ2hpbGRGbGFnVHlwZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21wbGV0ZVN1YkpvdXJuZXkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRDaGlsZEZsYWdUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlZEZsYWdUeXBlID0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlO1xuICAgIHRoaXMuZmxhZ1R5cGVzID0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmNoaWxkRmxhZ3M7XG4gICAgaWYgKHRoaXMuY2FjaGVkUGF0aC5sZW5ndGggIT09IDAgJiYgdGhpcy5jYWNoZWRQYXRoW3RoaXMuc3ViSm91cm5leUluZGV4XSA9PT0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkZMQUdfVFlQRSk/LnNldFZhbHVlKHRoaXMuY2FjaGVkUGF0aFt0aGlzLnN1YkpvdXJuZXlJbmRleCArIDFdLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FjaGVkUGF0aD8uc2hpZnQoKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYWNoZWRQYXRoPy5sZW5ndGggPyB0aGlzLmNhY2hlZFBhdGhbMF0gOiBudWxsO1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgICB0aGlzLnN1YkpvdXJuZXlJbmRleCsrO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZVN1YkpvdXJuZXkoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkRmxhZyA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmZsYWdUeXBlO1xuICAgIGNvbnN0IGFkZGVkRmxhZ1ZhbHVlID0gdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb24/LmNhc2VGaWVsZD8udmFsdWU/LmRldGFpbHM7XG4gICAgaWYgKGFkZGVkRmxhZ1ZhbHVlICYmIChhZGRlZEZsYWdWYWx1ZVtPYmplY3Qua2V5cyhhZGRlZEZsYWdWYWx1ZSkubGVuZ3RoXT8ubmFtZSAhPT0gY3VycmVudFNlbGVjdGVkRmxhZy52YWx1ZS5uYW1lKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb25bJ2Nhc2VGaWVsZCddLnZhbHVlLmRldGFpbHMucG9wKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvblsnY2FzZUZpZWxkJ10uZm9ybWF0dGVkX3ZhbHVlPy5kZXRhaWxzLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpbXBsaWZpZWQgdmVyc2lvbiBvZiB0aGUgb25QcmV2aW91cyBtZXRob2Qgd2l0aCBvcHRpbWl6ZWQgY29kZVxuICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYWNoZWRGbGFnVHlwZSkge1xuICAgICAgaWYgKHRoaXMuY2FjaGVkRmxhZ1R5cGUuUGF0aD8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuRkxBR19UWVBFKT8uc2V0VmFsdWUodGhpcy5jYWNoZWRGbGFnVHlwZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLmZsYWdUeXBlcyA9IHRoaXMuY2FjaGVkUkRGbGFnVHlwZXNbMF0uY2hpbGRGbGFncztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjdXJyZW50UGF0aCA9IHRoaXMuY2FjaGVkUkRGbGFnVHlwZXNbMF07XG4gICAgICAgIGNvbnN0IHBhdGhUb1NlYXJjaCA9IHRoaXMuY2FjaGVkRmxhZ1R5cGUuUGF0aC5zbGljZSgxKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoRWxlbWVudCBvZiBwYXRoVG9TZWFyY2gpIHtcbiAgICAgICAgICBjb25zdCBmb3VuZEZsYWcgPSBjdXJyZW50UGF0aC5jaGlsZEZsYWdzLmZpbmQoKGZsYWcpID0+IGZsYWcubmFtZSA9PT0gcGF0aEVsZW1lbnQpO1xuICAgICAgICAgIGlmIChmb3VuZEZsYWcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRQYXRoID0gZm91bmRGbGFnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkZMQUdfVFlQRSk/LnNldFZhbHVlKHRoaXMuY2FjaGVkRmxhZ1R5cGUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5mbGFnVHlwZXMgPSBjdXJyZW50UGF0aC5jaGlsZEZsYWdzO1xuICAgICAgICB0aGlzLmNhY2hlZEZsYWdUeXBlID0gY3VycmVudFBhdGg7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViSm91cm5leUluZGV4ID0gTWF0aC5tYXgoMCwgdGhpcy5zdWJKb3VybmV5SW5kZXggLSAxKTtcbiAgICBpZiAodGhpcy5zdWJKb3VybmV5SW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuZmxhZ1R5cGVzID0gdGhpcy5mbGFnVHlwZXMuZmlsdGVyKChmbGFnKSA9PlxuICAgICAgICB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA/IGZsYWcuZmxhZ0NvZGUgIT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgOiB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5mbGFnVHlwZVN1YkpvdXJuZXlFbWl0dGVyLmVtaXQodGhpcy5zdWJKb3VybmV5SW5kZXgpO1xuICB9XG5cbiAgLy8gSWRlbnRpdHkgZnVuY3Rpb24gZm9yIHRyYWNrQnkgdXNlIGJ5ICpuZ0ZvciBmb3IgZmxhZ1R5cGVzIGluIEhUTUwgdGVtcGxhdGVcbiAgcHVibGljIGlkZW50aWZ5RmxhZ1R5cGUoXzogbnVtYmVyLCBmbGFnVHlwZTogRmxhZ1R5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtmbGFnVHlwZS5mbGFnQ29kZX1fJHtmbGFnVHlwZS5uYW1lfV8ke2ZsYWdUeXBlLm5hbWVfY3l9YDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMuZmxhZ1R5cGVFcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcblxuICAgIGlmICghdGhpcy5zZWxlY3RlZEZsYWdUeXBlKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBhbnkgcHJpb3IgZmxhZyB0eXBlIHNlbGVjdGlvbiB0aGVuIHRoZSBtZXNzYWdlIHdpbGwgZGlmZmVyXG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgICBpZiAodGhpcy5jYWNoZWRGbGFnVHlwZSkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfT1BUSU9OX05PVF9TRUxFQ1RFRDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXG4gICAgICAgICAgPyBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfTk9UX1NFTEVDVEVEX0VYVEVSTkFMXG4gICAgICAgICAgOiBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfTk9UX1NFTEVDVEVEO1xuICAgICAgfVxuICAgICAgdGhpcy5mbGFnVHlwZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goeyB0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBlcnJvck1lc3NhZ2UsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCcgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm90aGVyRmxhZ1R5cGVTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OKT8udmFsdWU7XG4gICAgICBpZiAoIW90aGVyRmxhZ1R5cGVEZXNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLmZsYWdUeXBlRXJyb3JNZXNzYWdlID0gdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxcbiAgICAgICAgICA/IFNlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9OT1RfRU5URVJFRF9FWFRFUk5BTFxuICAgICAgICAgIDogU2VsZWN0RmxhZ1R5cGVFcnJvck1lc3NhZ2UuRkxBR19UWVBFX05PVF9FTlRFUkVEO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IGAke3RoaXMuZmxhZ1R5cGVFcnJvck1lc3NhZ2V9YCwgZmllbGRJZDogJ290aGVyLWZsYWctdHlwZS1kZXNjcmlwdGlvbicgfSk7XG4gICAgICB9XG4gICAgICBpZiAob3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uLmxlbmd0aCA+IHRoaXMubWF4Q2hhcmFjdGVyc0Zvck90aGVyRmxhZ1R5cGUpIHtcbiAgICAgICAgdGhpcy5mbGFnVHlwZUVycm9yTWVzc2FnZSA9IFNlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9MSU1JVF9FWENFRURFRDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goeyB0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBgJHtTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfTElNSVRfRVhDRUVERUR9YCwgZmllbGRJZDogJ290aGVyLWZsYWctdHlwZS1kZXNjcmlwdGlvbicgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb2Nlc3NGbGFnVHlwZXMoZmxhZ1R5cGVzOiBGbGFnVHlwZVtdKTogdm9pZCB7XG4gICAgY29uc3QgcHJldkpvdXJuZXlQYWdlID0gdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0Sm91cm5leUNvbGxlY3Rpb24oKVswXTtcbiAgICBjb25zdCB7IGpvdXJuZXlQcmV2aW91c1BhZ2VOdW1iZXIsIGpvdXJuZXlQYWdlTnVtYmVyIH0gPSBwcmV2Sm91cm5leVBhZ2U7XG4gICAgdGhpcy5jYWNoZWRSREZsYWdUeXBlcyA9IGZsYWdUeXBlcztcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWdUeXBlICYmIChqb3VybmV5UHJldmlvdXNQYWdlTnVtYmVyID4gam91cm5leVBhZ2VOdW1iZXIpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEZsYWdUeXBlID0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlO1xuICAgICAgY29uc3QgcGF0aFRvU2VhcmNoID0gc2VsZWN0ZWRGbGFnVHlwZS5QYXRoLnNsaWNlKDEpO1xuICAgICAgbGV0IGN1cnJlbnRQYXRoID0gZmxhZ1R5cGVzWzBdO1xuICAgICAgZm9yIChjb25zdCBwYXRoRWxlbWVudCBvZiBwYXRoVG9TZWFyY2gpIHtcbiAgICAgICAgY29uc3QgZm91bmRGbGFnID0gY3VycmVudFBhdGguY2hpbGRGbGFncy5maW5kKChmbGFnKSA9PiBmbGFnLm5hbWUgPT09IHBhdGhFbGVtZW50KTtcbiAgICAgICAgaWYgKGZvdW5kRmxhZykge1xuICAgICAgICAgIGN1cnJlbnRQYXRoID0gZm91bmRGbGFnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmZsYWdUeXBlcyA9IGN1cnJlbnRQYXRoLmNoaWxkRmxhZ3M7XG4gICAgICB0aGlzLmNhY2hlZEZsYWdUeXBlID0gY3VycmVudFBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmxhZ1R5cGVzID0gZmxhZ1R5cGVzWzBdLmNoaWxkRmxhZ3MuZmlsdGVyKChmbGFnKSA9PlxuICAgICAgICB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA/IGZsYWcuZmxhZ0NvZGUgIT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgOiB0cnVlKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkZMQUdfVFlQRSk7XG4gICAgaWYgKGZvcm1Db250cm9sPy52YWx1ZSkge1xuICAgICAgY29uc3QgW2ZvdW5kRmxhZ1R5cGUsIHBhdGhdID0gRmxhZ1R5cGUuc2VhcmNoUGF0aEJ5RmxhZ1R5cGVPYmplY3QoZm9ybUNvbnRyb2wudmFsdWUgYXMgRmxhZ1R5cGUsIHRoaXMuY2FjaGVkUkRGbGFnVHlwZXNbMF0uY2hpbGRGbGFncyk7XG4gICAgICB0aGlzLmNhY2hlZFBhdGggPSBbLi4ucGF0aCwgZm91bmRGbGFnVHlwZV07XG4gICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSgodGhpcy5zZWxlY3RlZEZsYWdUeXBlICYmIChqb3VybmV5UHJldmlvdXNQYWdlTnVtYmVyID4gam91cm5leVBhZ2VOdW1iZXIpKSA/IHRoaXMuY2FjaGVkUGF0aFt0aGlzLmNhY2hlZFBhdGgubGVuZ3RoIC0gMV0gOiB0aGlzLmNhY2hlZFBhdGhbMF0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIGlmICh0aGlzLmNhY2hlZFBhdGgubGVuZ3RoICE9PSAwICYmIChqb3VybmV5UHJldmlvdXNQYWdlTnVtYmVyID4gam91cm5leVBhZ2VOdW1iZXIpKSB7XG4gICAgICAgIHRoaXMuc3ViSm91cm5leUluZGV4ID0gdGhpcy5jYWNoZWRQYXRoLmxlbmd0aC0xO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmZsYWdUeXBlU3ViSm91cm5leUVtaXR0ZXIuZW1pdCh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIG9uUmVmZGF0YUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBTZXQgZXJyb3IgZmxhZyBvbiBjb21wb25lbnQgdG8gcmVtb3ZlIHRoZSBcIk5leHRcIiBidXR0b24gKHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBmbGFnIGNyZWF0aW9uKVxuICAgIHRoaXMucmVmZGF0YUVycm9yID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCcgfSk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7IGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUsIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIHRoaXMub25OZXh0KCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgdGhpcy5vblByZXZpb3VzKCk7XG5cbiAgICBpZiAodGhpcy5zdWJKb3VybmV5SW5kZXggPD0gMCkge1xuICAgICAgc3VwZXIucHJldmlvdXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmbGFnVHlwZXM/Lmxlbmd0aFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZS5sZW5ndGggPiAwfVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cImZsYWctdHlwZS1oZWFkaW5nXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tXCI+XG4gICAgICAgIDxoMSBpZD1cImZsYWctdHlwZS1oZWFkaW5nXCIgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZyBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2FjaGVkRmxhZ1R5cGUgfHwgc3ViSm91cm5leUluZGV4ID09IDA7IGVsc2UgcHJpb3JGbGFnVHlwZVNlbGVjdGVkXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXG4gICAgICAgICAgICA/IChjYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5TRUxFQ1RfQ0FTRV9GTEFHX0VYVEVSTkFMIHwgcnB4VHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoY2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuU0VMRUNUX0NBU0VfRkxBRyB8IHJweFRyYW5zbGF0ZSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmlvckZsYWdUeXBlU2VsZWN0ZWQ+XG4gICAgICAgICAgICB7e2NhY2hlZEZsYWdUeXBlIHwgZmxhZ0ZpZWxkRGlzcGxheTonbmFtZSd9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLXR5cGUtbm90LXNlbGVjdGVkLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAqbmdJZj1cImZsYWdUeXBlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UubGVuZ3RoID4gMFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tmbGFnVHlwZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlIHxcbiAgICAgICAgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIiBpZD1cImNvbmRpdGlvbmFsLXJhZGlvcy1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZmxhZ1R5cGUgb2YgZmxhZ1R5cGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiBpZGVudGlmeUZsYWdUeXBlXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwiZmxhZy10eXBlLXt7aX19XCIgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGQuRkxBR19UWVBFXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmbGFnVHlwZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGQuRkxBR19UWVBFXCIgLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwiZmxhZy10eXBlLXt7aX19XCI+XG4gICAgICAgICAgICB7e2ZsYWdUeXBlIHwgZmxhZ0ZpZWxkRGlzcGxheTonbmFtZSd9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19jb25kaXRpb25hbFwiICpuZ0lmPVwib3RoZXJGbGFnVHlwZVNlbGVjdGVkXCIgaWQ9XCJjb25kaXRpb25hbC1mbGFnVHlwZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZmxhZ1R5cGVFcnJvck1lc3NhZ2UubGVuZ3RoID4gMH1cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsXCIgZm9yPVwib3RoZXItZmxhZy10eXBlLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbFxuICAgICAgICAgICAgICA/IChjYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5PVEhFUl9GTEFHX1RZUEVfREVTQ1JJUFRJT05fRVhURVJOQUwgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKGNhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLk9USEVSX0ZMQUdfVFlQRV9ERVNDUklQVElPTiB8IHJweFRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiZmxhZy10eXBlLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZsYWdUeXBlRXJyb3JNZXNzYWdlLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7ZmxhZ1R5cGVFcnJvck1lc3NhZ2UgfFxuICAgICAgICAgICAgICBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS1oYWxmXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBmbGFnVHlwZUVycm9yTWVzc2FnZS5sZW5ndGggPiAwfVwiIGlkPVwib3RoZXItZmxhZy10eXBlLWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGQuT1RIRVJfRkxBR19ERVNDUklQVElPTlwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZC5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtIGdvdnVrLSEtbWFyZ2luLXRvcC00XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsICYmICFpc0Nhc2VMZXZlbEZsYWcgJiYgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJpcy12aXNpYmxlLWV4dGVybmFsbHlcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkLklTX1ZJU0lCTEVfSU5URVJOQUxMWV9PTkxZXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkLklTX1ZJU0lCTEVfSU5URVJOQUxMWV9PTkxZXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwiaXMtdmlzaWJsZS1leHRlcm5hbGx5XCI+XG4gICAgICAgICAgICAgICAge3snVGhpcyBmbGFnIHNob3VsZCBvbmx5IGJlIHZpc2libGUgdG8gSE1DVFMgU3RhZmYnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZsYWctdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZsYWcvY29tcG9uZW50cy9zZWxlY3QtZmxhZy10eXBlL3NlbGVjdC1mbGFnLXR5cGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctdHlwZS9zZWxlY3QtZmxhZy10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtFQUErRSxDQUFDOzs7Ozs7SUNONUgsNkJBQTBGO0lBQ3hGLFlBS0Y7Ozs7OztJQUxFLGNBS0Y7SUFMRSxrT0FLRjs7O0lBRUUsWUFDRjs7OztJQURFLG9GQUNGOzs7SUFLRixBQUZGLCtCQUNxRCxlQUNmO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87SUFBQyxZQUV6RTs7SUFBQSxpQkFBTTs7O0lBRmdDLGVBQTJCO0lBQTNCLG9EQUEyQjtJQUFRLGVBRXpFO0lBRnlFLDZGQUV6RTs7O0lBRUUsK0JBQTBHO0lBQ3hHLDRCQUN1RTtJQUN2RSxpQ0FBcUU7SUFDbkUsWUFDRjs7SUFDRixBQURFLGlCQUFRLEVBQ0o7Ozs7O0lBTCtCLGNBQW9CO0lBQXBCLHVEQUFvQjtJQUNsQyxBQUFuQixBQURzRCx5REFBb0Msc0JBQ3hFLHVEQUFnRDtJQUNyQixjQUFxQjtJQUFyQix3REFBcUI7SUFDbEUsY0FDRjtJQURFLDBFQUNGOzs7SUFZSSxBQURGLCtCQUFzRyxlQUNoRTtJQUFBLFlBQTJCOztJQUFBLGlCQUFPO0lBQUMsWUFFekU7O0lBQUEsaUJBQU07OztJQUZnQyxlQUEyQjtJQUEzQixvREFBMkI7SUFBUSxlQUV6RTtJQUZ5RSxrRkFFekU7OztJQUtBLCtCQUM0RztJQUMxRyw0QkFFbUU7SUFDbkUsaUNBQStFO0lBQzdFLFlBQ0Y7O0lBQ0YsQUFERSxpQkFBUSxFQUNKOzs7SUFMRixjQUFxRDtJQUNyRCxBQURBLDBFQUFxRCx3RUFDVztJQUVoRSxlQUNGO0lBREUsd0dBQ0Y7OztJQXRCRixBQURGLEFBREYsK0JBQStGLGFBQ0csZ0JBQ2pDO0lBQzNELFlBS0Y7OztJQUFBLGlCQUFRO0lBQ1IsK0ZBQXNHO0lBSXRHLDRCQUdpRTtJQUNqRSwrRkFDNEc7SUFTaEgsQUFERSxpQkFBTSxFQUNGOzs7SUExQjBCLGNBQWlFO0lBQWpFLDZGQUFpRTtJQUUzRixlQUtGO0lBTEUsd1BBS0Y7SUFDK0QsZUFBcUM7SUFBckMsNkRBQXFDO0lBS2xHLGNBQW1FO0lBRW5FLEFBREEsQUFEQSw2RkFBbUUseURBQ2xCLG9FQUNXO0lBRTNELGNBQXVHO0lBQXZHLDZJQUF1Rzs7O0lBaER0SCxnQ0FBZ0U7SUFJeEQsQUFERixBQURGLEFBREYsOEJBQTJHLGtCQUNuQyxnQkFDSCxZQUNvQjtJQVFqRixBQVBBLHlHQUEwRiwySEFPdEQ7SUFJeEMsQUFERSxpQkFBSyxFQUNFO0lBQ1QsdUZBQ3FEO0lBSXJELDhCQUE0RztJQVExRyxBQVBBLDJGQUEwRyw4RUFPWDtJQThCckcsQUFERSxBQURFLGlCQUFNLEVBQ0csRUFDUDs7Ozs7SUE1RGdDLDRDQUF1QjtJQUMvQixjQUE0RTtJQUE1RSx1R0FBNEU7SUFJbkYsZUFBK0M7SUFBQSxBQUEvQyw0RUFBK0Msc0NBQTBCO0lBYXpGLGVBQWdEO0lBQWhELHdFQUFnRDtJQUtJLGVBQWM7SUFBWSxBQUExQiwwQ0FBYyx5Q0FBcUM7SUFPaEUsY0FBMkI7SUFBM0IsbURBQTJCOztBRFozRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBc0QvQjtJQXBEN0IsU0FBUyxDQUFZO0lBR3JCLFlBQVksQ0FBUztJQUdyQixVQUFVLENBQVM7SUFHbkIsY0FBYyxDQUFTO0lBR3ZCLGlDQUFpQyxHQUFHLEtBQUssQ0FBQztJQUcxQyx1Q0FBdUMsR0FBRyxLQUFLLENBQUM7SUFHaEQscUJBQXFCLENBQXlCO0lBRzlDLG9CQUFvQixHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUd0RiwyQkFBMkIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUdwRSx5QkFBeUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVsRSxTQUFTLENBQWE7SUFDdEIsYUFBYSxDQUFpQjtJQUM5QiwrQkFBK0IsR0FBRyxFQUFFLENBQUM7SUFDckMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQzFCLFlBQVksQ0FBZTtJQUMzQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFVBQVUsQ0FBdUI7SUFDakMsY0FBYyxDQUFXO0lBQ3pCLGtDQUFrQyxDQUFlO0lBQ2pELGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0lBQ3ZDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsaUJBQWlCLENBQWE7SUFDOUIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUVsQiw2QkFBNkIsR0FBRyxFQUFFLENBQUM7SUFDcEQsMERBQTBEO0lBQ3pDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztJQUM3Qix5QkFBeUIsR0FBRyxXQUFXLENBQUM7SUFFekQsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBb0Msc0JBQThDLEVBQUUsZ0JBQWdEO1FBQ2xJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRFUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUVoRixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDakUsQ0FBQztJQUVELElBQVcscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDdEcsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLHlCQUF5QixDQUFDO1FBQzlHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBQzdGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUYsc0ZBQXNGO1FBQ3RGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLDBCQUEwQixFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFakcsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZO2FBQ3JHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFFckIseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUN4QixDQUFDLHFDQUFxQyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRTtnQkFDaEUsQ0FBQyxxQ0FBcUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7YUFDbEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUNBLENBQUM7UUFFSixxRkFBcUY7UUFDckYsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCO2lCQUM1QyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGlDQUFpQyxDQUFDO2lCQUNoRyxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUNyRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2FBQzdDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ04sK0hBQStIO1lBQy9ILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQzlGLElBQUk7WUFDSCxtR0FBbUc7WUFDbkcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JHLDBHQUEwRztZQUMxRyw0RkFBNEY7WUFDNUYsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQ3BILElBQUksRUFBRSxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUNqRDtpQkFDQSxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUNyRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2FBQzdDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxLQUFZO1FBQzVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZLEVBQUUsR0FBWTtRQUN4QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELDRFQUE0RTtRQUM1RSw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsdUVBQXVFO1lBQ3ZFLHNGQUFzRjtZQUN0RixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ25DLElBQUksUUFBUSxFQUFFLENBQUM7d0JBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUM3RixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDN0IseUJBQXlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUztZQUN2RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDL0UsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25HLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDN0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1FBQzdFLElBQUksY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxLQUFLLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBRUQsa0VBQWtFO0lBQzNELFVBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkQsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDdkMsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUM7b0JBQ25GLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQ2QsV0FBVyxHQUFHLFNBQVMsQ0FBQztvQkFDMUIsQ0FBQztnQkFDSCxDQUFDO2dCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RHLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDcEMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDZFQUE2RTtJQUN0RSxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsUUFBa0I7UUFDbkQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQix5RUFBeUU7WUFDekUsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN4QixZQUFZLEdBQUcsMEJBQTBCLENBQUMsNkJBQTZCLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFlBQVksR0FBRyxJQUFJLENBQUMsaUNBQWlDO29CQUNuRCxDQUFDLENBQUMsMEJBQTBCLENBQUMsK0JBQStCO29CQUM1RCxDQUFDLENBQUMsMEJBQTBCLENBQUMsc0JBQXNCLENBQUM7WUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQywrQkFBK0IsR0FBRyxZQUFZLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUN4RyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQ3RHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGlDQUFpQztvQkFDaEUsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLDhCQUE4QjtvQkFDM0QsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLHFCQUFxQixDQUFDO2dCQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQztZQUM5SCxDQUFDO1lBQ0QsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxvQkFBb0IsR0FBRywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLDBCQUEwQixDQUFDLHdCQUF3QixFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQztZQUN4SixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxTQUFxQjtRQUMzQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLHlCQUF5QixHQUFHLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM3RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUMvQyxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUN2QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztnQkFDbkYsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDZCxXQUFXLEdBQUcsU0FBUyxDQUFDO2dCQUMxQixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN2RCxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLEtBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMseUJBQXlCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUwsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFVO1FBQy9CLG1HQUFtRztRQUNuRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUN2RyxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakksQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO2lIQXhVVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2xCcEMsNEZBQWdFOztZQUFqRCwwRUFBdUI7OztpRkRrQnpCLHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLHNCQUFzQjtvR0FNekIsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxjQUFjO2tCQURwQixLQUFLO1lBSUMsaUNBQWlDO2tCQUR2QyxLQUFLO1lBSUMsdUNBQXVDO2tCQUQ3QyxLQUFLO1lBSUMscUJBQXFCO2tCQUQzQixLQUFLO1lBSUMsb0JBQW9CO2tCQUQxQixNQUFNO1lBSUEsMkJBQTJCO2tCQURqQyxNQUFNO1lBSUEseUJBQXlCO2tCQUQvQixNQUFNOztrRkE1QkksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRmxhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vY2FzZS1mbGFnJztcbmltcG9ydCB7IENhc2VGbGFnUmVmZGF0YVNlcnZpY2UsIE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFJlZmRhdGFDYXNlRmxhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jYXNlLWZsYWcvcmVmZGF0YS1jYXNlLWZsYWctdHlwZS5lbnVtJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ0Zvcm1GaWVsZHMsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQvYWJzdHJhY3Qtam91cm5leS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcyB9IGZyb20gJy4uL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXItY29udHJvbC1uYW1lcy5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlbGVjdC1mbGFnLXR5cGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZsYWctdHlwZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1mbGFnLXR5cGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGbGFnVHlwZUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBKb3VybmV5IHtcbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVR5cGVJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBobWN0c1NlcnZpY2VJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxhZ1R5cGVTdWJKb3VybmV5RW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGZsYWdUeXBlczogRmxhZ1R5cGVbXTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdO1xuICBwdWJsaWMgZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgZmxhZ1R5cGVFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGZsYWdSZWZkYXRhJDogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgcmVmZGF0YUVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBjYWNoZWRQYXRoOiAoRmxhZ1R5cGUgfCBmYWxzZSlbXTtcbiAgcHVibGljIGNhY2hlZEZsYWdUeXBlOiBGbGFnVHlwZTtcbiAgcHVibGljIGZsYWdUeXBlQ29udHJvbENoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNhc2VGbGFnRm9ybUZpZWxkID0gQ2FzZUZsYWdGb3JtRmllbGRzO1xuICBwdWJsaWMgaXNDYXNlTGV2ZWxGbGFnID0gZmFsc2U7XG4gIHB1YmxpYyBjYWNoZWRSREZsYWdUeXBlczogRmxhZ1R5cGVbXTtcbiAgcHVibGljIHN1YkpvdXJuZXlJbmRleDogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1heENoYXJhY3RlcnNGb3JPdGhlckZsYWdUeXBlID0gODA7XG4gIC8vIENvZGUgZm9yIFwiT3RoZXJcIiBmbGFnIHR5cGUgYXMgZGVmaW5lZCBpbiBSZWZlcmVuY2UgRGF0YVxuICBwcml2YXRlIHJlYWRvbmx5IG90aGVyRmxhZ1R5cGVDb2RlID0gJ09UMDAwMSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIHB1YmxpYyBnZXQgY2FzZUZsYWdXaXphcmRTdGVwVGl0bGUoKTogdHlwZW9mIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlIHtcbiAgICByZXR1cm4gQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlOiBDYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlLCBwYWdlU3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcihwYWdlU3RhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLmhhbmRsZUJhY2tCdXR0b25TdWJKb3VybmV5ID0gdGhpcy5oYW5kbGVCYWNrQnV0dG9uU3ViSm91cm5leS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZEZsYWdUeXBlKCk6IEZsYWdUeXBlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuRkxBR19UWVBFKT8udmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG90aGVyRmxhZ1R5cGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy52YWx1ZT8uZmxhZ0NvZGUgPT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0Nhc2VMZXZlbEZsYWcgPSB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbj8uZmxhZ3M/LmZsYWdzQ2FzZUZpZWxkSWQgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZDtcbiAgICB0aGlzLmZsYWdUeXBlU3ViSm91cm5leUVtaXR0ZXIuZW1pdCh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5mbGFnVHlwZXMgPSBbXTtcbiAgICBjb25zdCBmbGFnVHlwZSA9IHRoaXMuaXNDYXNlTGV2ZWxGbGFnID8gUmVmZGF0YUNhc2VGbGFnVHlwZS5DQVNFIDogUmVmZGF0YUNhc2VGbGFnVHlwZS5QQVJUWTtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT04sIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICAgIC8vIEZvcm1Db250cm9sIGlzIGxpbmtlZCB0byBhIGNoZWNrYm94IGlucHV0IGVsZW1lbnQsIHNvIGluaXRpYWwgdmFsdWUgc2hvdWxkIGJlIGZhbHNlXG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfVklTSUJMRV9JTlRFUk5BTExZX09OTFksIG5ldyBGb3JtQ29udHJvbChmYWxzZSkpO1xuXG4gICAgLy8gU2hvdWxkIGNsZWFyIGRlc2NyaXB0aW9uQ29udHJvbE5hbWUgaWYgZmxhZ1R5cGVDb250cm9sTmFtZSBpcyBjaGFuZ2VkXG4gICAgdGhpcy5mbGFnVHlwZUNvbnRyb2xDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy52YWx1ZUNoYW5nZXNcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OKT8uc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLmNhY2hlZFBhdGggPSBbXTtcblxuICAgICAgICAvLyByZXF1aXJlZCB0byBjbGVhciBsYW5ndWFnZSBpbnRlcnByZXRlclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBbU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5MQU5HVUFHRV9TRUFSQ0hfVEVSTV06ICcnLFxuICAgICAgICAgIFtTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLk1BTlVBTF9MQU5HVUFHRV9FTlRSWV06ICcnXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgKTtcblxuICAgIC8vIElmIGhtY3RzU2VydmljZUlkIGlzIHByZXNlbnQsIHVzZSB0aGlzIHRvIHJldHJpZXZlIHRoZSByZWxldmFudCBsaXN0IG9mIGZsYWcgdHlwZXNcbiAgICBpZiAodGhpcy5obWN0c1NlcnZpY2VJZCkge1xuICAgICAgdGhpcy5mbGFnUmVmZGF0YSQgPSB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2VcbiAgICAgICAgLmdldENhc2VGbGFnc1JlZmRhdGEodGhpcy5obWN0c1NlcnZpY2VJZCwgZmxhZ1R5cGUsIHRydWUsIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoZmxhZ1R5cGVzKSA9PiB0aGlzLnByb2Nlc3NGbGFnVHlwZXMoZmxhZ1R5cGVzKSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLm9uUmVmZGF0YUVycm9yKGVycm9yKVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRWxzZSwgSE1DVFMgc2VydmljZSBjb2RlIGlzIHJlcXVpcmVkIHRvIHJldHJpZXZlIHRoZSByZWxldmFudCBsaXN0IG9mIGZsYWcgdHlwZXM7IGF0dGVtcHQgdG8gb2J0YWluIGl0IGJ5IGNhc2UgdHlwZSBJRCBmaXJzdFxuICAgICAgdGhpcy5mbGFnUmVmZGF0YSQgPSB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0SG1jdHNTZXJ2aWNlRGV0YWlsc0J5Q2FzZVR5cGUodGhpcy5jYXNlVHlwZUlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgcmV0cmlldmluZyBITUNUUyBzZXJ2aWNlIGRldGFpbHMgYnkgY2FzZSB0eXBlIElELCB0cnkgYnkgc2VydmljZSBuYW1lIGluc3RlYWRcbiAgICAgICAgICBjYXRjaEVycm9yKChfKSA9PiB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0SG1jdHNTZXJ2aWNlRGV0YWlsc0J5U2VydmljZU5hbWUodGhpcy5qdXJpc2RpY3Rpb24pKSxcbiAgICAgICAgICAvLyBVc2Ugc3dpdGNoTWFwIHRvIHJldHVybiBhbiBpbm5lciBPYnNlcnZhYmxlIG9mIHRoZSBmbGFnIHR5cGVzIGRhdGEsIGhhdmluZyByZWNlaXZlZCB0aGUgc2VydmljZSBkZXRhaWxzXG4gICAgICAgICAgLy8gaW5jbHVkaW5nIHNlcnZpY2VfY29kZS4gVGhpcyBhdm9pZHMgaGF2aW5nIG5lc3RlZCBgc3Vic2NyaWJlYHMsIHdoaWNoIGlzIGFuIGFudGktcGF0dGVybiFcbiAgICAgICAgICBzd2l0Y2hNYXAoKHNlcnZpY2VEZXRhaWxzKSA9PiB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0Q2FzZUZsYWdzUmVmZGF0YShzZXJ2aWNlRGV0YWlsc1swXS5zZXJ2aWNlX2NvZGUsIGZsYWdUeXBlLFxuICAgICAgICAgICAgdHJ1ZSwgdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChmbGFnVHlwZXMpID0+IHRoaXMucHJvY2Vzc0ZsYWdUeXBlcyhmbGFnVHlwZXMpLFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMub25SZWZkYXRhRXJyb3IoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmFkZFN0YXRlKHRoaXMuc3ViSm91cm5leUluZGV4KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLmhhbmRsZUJhY2tCdXR0b25TdWJKb3VybmV5KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrQnV0dG9uU3ViSm91cm5leShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucHJldmlvdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTdGF0ZShkYXRhOiBudW1iZXIsIHVybD86IHN0cmluZyk6IHZvaWQge1xuICAgIGhpc3RvcnkucHVzaFN0YXRlKCcxJytkYXRhLCAnJywgdXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdSZWZkYXRhJD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZsYWdUeXBlQ29udHJvbENoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gY2hlY2sgaWYgdGhlIHVzZXIgaGFzIGFuIGV4aXN0aW5nIHBhdGggd2hlbiBuYXZpZ2F0aW5nIGF3YXkgZnJvbSB0aGUgcGFnZVxuICAgIC8vIGlmIHNvIHdlIG1heSBuZWVkIHRvIGVuc3VyZSB0aGUgdmFsdWVzIGFyZSBzZXQgY29ycmVjdGx5LlxuICAgIHRoaXMuY2hlY2tGb3JFeGlzdGluZ1BhdGgoKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLmhhbmRsZUJhY2tCdXR0b25TdWJKb3VybmV5KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0ZvckV4aXN0aW5nUGF0aCgpOiB2b2lkIHtcbiAgICAvLyBSZXN0b3JlIHZhbHVlcyBmcm9tIGNhY2hlZFBhdGhcbiAgICBpZiAodGhpcy5zdWJKb3VybmV5SW5kZXggPD0gMCkge1xuICAgICAgLy8gY2hlY2sgaWYgdGhlIHVzZXIgaXMgbmF2aWdhdGluZyB0byB0aGUgcHJldmlvdXMgcGFnZSBpbiB0aGUgam91bnJleS5cbiAgICAgIC8vIGluIHRoaXMgc2l0dWF0aW9uIHdlIG5lZWQgdG8gcmVzdG9yZSB0aGUgZnVsbCBwYXRoIGZvciBkYXRhIHJldGVudGlvbiBhY3Jvc3MgcGFnZXMuXG4gICAgICBpZiAodGhpcy5jYWNoZWRQYXRoICYmIHRoaXMuY2FjaGVkUGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY2FjaGVkUGF0aC5mb3JFYWNoKChmbGFnVHlwZSkgPT4ge1xuICAgICAgICAgIGlmIChmbGFnVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy5zZXRWYWx1ZShmbGFnVHlwZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICAgIHRoaXMuZW1pdENhc2VGbGFnU3RhdGUoKTtcbiAgICB0aGlzLmVtaXRGbGFnQ29tbWVudHNPcHRpb25hbCgpO1xuICAgIHRoaXMuaGFuZGxlRmxhZ1R5cGVTZWxlY3Rpb24oKTtcbiAgICB0aGlzLmZsYWdUeXBlU3ViSm91cm5leUVtaXR0ZXIuZW1pdCh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDYXNlRmxhZ1N0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFLFxuICAgICAgaXNQYXJlbnRGbGFnVHlwZTogdGhpcy5zZWxlY3RlZEZsYWdUeXBlID8gdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmlzUGFyZW50IDogbnVsbCxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmxhZ0NvbW1lbnRzT3B0aW9uYWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGbGFnVHlwZSAmJiAhdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmlzUGFyZW50ICYmICF0aGlzLnNlbGVjdGVkRmxhZ1R5cGUuZmxhZ0NvbW1lbnQpIHtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzT3B0aW9uYWxFbWl0dGVyLmVtaXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGbGFnVHlwZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWdUeXBlPy5pc1BhcmVudCkge1xuICAgICAgdGhpcy5sb2FkQ2hpbGRGbGFnVHlwZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21wbGV0ZVN1YkpvdXJuZXkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRDaGlsZEZsYWdUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlZEZsYWdUeXBlID0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlO1xuICAgIHRoaXMuZmxhZ1R5cGVzID0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmNoaWxkRmxhZ3M7XG4gICAgaWYgKHRoaXMuY2FjaGVkUGF0aC5sZW5ndGggIT09IDAgJiYgdGhpcy5jYWNoZWRQYXRoW3RoaXMuc3ViSm91cm5leUluZGV4XSA9PT0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkZMQUdfVFlQRSk/LnNldFZhbHVlKHRoaXMuY2FjaGVkUGF0aFt0aGlzLnN1YkpvdXJuZXlJbmRleCArIDFdLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FjaGVkUGF0aD8uc2hpZnQoKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYWNoZWRQYXRoPy5sZW5ndGggPyB0aGlzLmNhY2hlZFBhdGhbMF0gOiBudWxsO1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgICB0aGlzLnN1YkpvdXJuZXlJbmRleCsrO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZVN1YkpvdXJuZXkoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkRmxhZyA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmZsYWdUeXBlO1xuICAgIGNvbnN0IGFkZGVkRmxhZ1ZhbHVlID0gdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb24/LmNhc2VGaWVsZD8udmFsdWU/LmRldGFpbHM7XG4gICAgaWYgKGFkZGVkRmxhZ1ZhbHVlICYmIChhZGRlZEZsYWdWYWx1ZVtPYmplY3Qua2V5cyhhZGRlZEZsYWdWYWx1ZSkubGVuZ3RoXT8ubmFtZSAhPT0gY3VycmVudFNlbGVjdGVkRmxhZy52YWx1ZS5uYW1lKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb25bJ2Nhc2VGaWVsZCddLnZhbHVlLmRldGFpbHMucG9wKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvblsnY2FzZUZpZWxkJ10uZm9ybWF0dGVkX3ZhbHVlPy5kZXRhaWxzLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpbXBsaWZpZWQgdmVyc2lvbiBvZiB0aGUgb25QcmV2aW91cyBtZXRob2Qgd2l0aCBvcHRpbWl6ZWQgY29kZVxuICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYWNoZWRGbGFnVHlwZSkge1xuICAgICAgaWYgKHRoaXMuY2FjaGVkRmxhZ1R5cGUuUGF0aD8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuRkxBR19UWVBFKT8uc2V0VmFsdWUodGhpcy5jYWNoZWRGbGFnVHlwZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLmZsYWdUeXBlcyA9IHRoaXMuY2FjaGVkUkRGbGFnVHlwZXNbMF0uY2hpbGRGbGFncztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjdXJyZW50UGF0aCA9IHRoaXMuY2FjaGVkUkRGbGFnVHlwZXNbMF07XG4gICAgICAgIGNvbnN0IHBhdGhUb1NlYXJjaCA9IHRoaXMuY2FjaGVkRmxhZ1R5cGUuUGF0aC5zbGljZSgxKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoRWxlbWVudCBvZiBwYXRoVG9TZWFyY2gpIHtcbiAgICAgICAgICBjb25zdCBmb3VuZEZsYWcgPSBjdXJyZW50UGF0aC5jaGlsZEZsYWdzLmZpbmQoKGZsYWcpID0+IGZsYWcubmFtZSA9PT0gcGF0aEVsZW1lbnQpO1xuICAgICAgICAgIGlmIChmb3VuZEZsYWcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRQYXRoID0gZm91bmRGbGFnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkZMQUdfVFlQRSk/LnNldFZhbHVlKHRoaXMuY2FjaGVkRmxhZ1R5cGUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5mbGFnVHlwZXMgPSBjdXJyZW50UGF0aC5jaGlsZEZsYWdzO1xuICAgICAgICB0aGlzLmNhY2hlZEZsYWdUeXBlID0gY3VycmVudFBhdGg7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViSm91cm5leUluZGV4ID0gTWF0aC5tYXgoMCwgdGhpcy5zdWJKb3VybmV5SW5kZXggLSAxKTtcbiAgICBpZiAodGhpcy5zdWJKb3VybmV5SW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuZmxhZ1R5cGVzID0gdGhpcy5mbGFnVHlwZXMuZmlsdGVyKChmbGFnKSA9PlxuICAgICAgICB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA/IGZsYWcuZmxhZ0NvZGUgIT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgOiB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5mbGFnVHlwZVN1YkpvdXJuZXlFbWl0dGVyLmVtaXQodGhpcy5zdWJKb3VybmV5SW5kZXgpO1xuICB9XG5cbiAgLy8gSWRlbnRpdHkgZnVuY3Rpb24gZm9yIHRyYWNrQnkgdXNlIGJ5ICpuZ0ZvciBmb3IgZmxhZ1R5cGVzIGluIEhUTUwgdGVtcGxhdGVcbiAgcHVibGljIGlkZW50aWZ5RmxhZ1R5cGUoXzogbnVtYmVyLCBmbGFnVHlwZTogRmxhZ1R5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtmbGFnVHlwZS5mbGFnQ29kZX1fJHtmbGFnVHlwZS5uYW1lfV8ke2ZsYWdUeXBlLm5hbWVfY3l9YDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMuZmxhZ1R5cGVFcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcblxuICAgIGlmICghdGhpcy5zZWxlY3RlZEZsYWdUeXBlKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBhbnkgcHJpb3IgZmxhZyB0eXBlIHNlbGVjdGlvbiB0aGVuIHRoZSBtZXNzYWdlIHdpbGwgZGlmZmVyXG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgICBpZiAodGhpcy5jYWNoZWRGbGFnVHlwZSkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfT1BUSU9OX05PVF9TRUxFQ1RFRDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXG4gICAgICAgICAgPyBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfTk9UX1NFTEVDVEVEX0VYVEVSTkFMXG4gICAgICAgICAgOiBTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfTk9UX1NFTEVDVEVEO1xuICAgICAgfVxuICAgICAgdGhpcy5mbGFnVHlwZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goeyB0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBlcnJvck1lc3NhZ2UsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCcgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm90aGVyRmxhZ1R5cGVTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OKT8udmFsdWU7XG4gICAgICBpZiAoIW90aGVyRmxhZ1R5cGVEZXNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLmZsYWdUeXBlRXJyb3JNZXNzYWdlID0gdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxcbiAgICAgICAgICA/IFNlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9OT1RfRU5URVJFRF9FWFRFUk5BTFxuICAgICAgICAgIDogU2VsZWN0RmxhZ1R5cGVFcnJvck1lc3NhZ2UuRkxBR19UWVBFX05PVF9FTlRFUkVEO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IGAke3RoaXMuZmxhZ1R5cGVFcnJvck1lc3NhZ2V9YCwgZmllbGRJZDogJ290aGVyLWZsYWctdHlwZS1kZXNjcmlwdGlvbicgfSk7XG4gICAgICB9XG4gICAgICBpZiAob3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uLmxlbmd0aCA+IHRoaXMubWF4Q2hhcmFjdGVyc0Zvck90aGVyRmxhZ1R5cGUpIHtcbiAgICAgICAgdGhpcy5mbGFnVHlwZUVycm9yTWVzc2FnZSA9IFNlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9MSU1JVF9FWENFRURFRDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goeyB0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBgJHtTZWxlY3RGbGFnVHlwZUVycm9yTWVzc2FnZS5GTEFHX1RZUEVfTElNSVRfRVhDRUVERUR9YCwgZmllbGRJZDogJ290aGVyLWZsYWctdHlwZS1kZXNjcmlwdGlvbicgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb2Nlc3NGbGFnVHlwZXMoZmxhZ1R5cGVzOiBGbGFnVHlwZVtdKTogdm9pZCB7XG4gICAgY29uc3QgcHJldkpvdXJuZXlQYWdlID0gdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0Sm91cm5leUNvbGxlY3Rpb24oKVswXTtcbiAgICBjb25zdCB7IGpvdXJuZXlQcmV2aW91c1BhZ2VOdW1iZXIsIGpvdXJuZXlQYWdlTnVtYmVyIH0gPSBwcmV2Sm91cm5leVBhZ2U7XG4gICAgdGhpcy5jYWNoZWRSREZsYWdUeXBlcyA9IGZsYWdUeXBlcztcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWdUeXBlICYmIChqb3VybmV5UHJldmlvdXNQYWdlTnVtYmVyID4gam91cm5leVBhZ2VOdW1iZXIpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEZsYWdUeXBlID0gdGhpcy5zZWxlY3RlZEZsYWdUeXBlO1xuICAgICAgY29uc3QgcGF0aFRvU2VhcmNoID0gc2VsZWN0ZWRGbGFnVHlwZS5QYXRoLnNsaWNlKDEpO1xuICAgICAgbGV0IGN1cnJlbnRQYXRoID0gZmxhZ1R5cGVzWzBdO1xuICAgICAgZm9yIChjb25zdCBwYXRoRWxlbWVudCBvZiBwYXRoVG9TZWFyY2gpIHtcbiAgICAgICAgY29uc3QgZm91bmRGbGFnID0gY3VycmVudFBhdGguY2hpbGRGbGFncy5maW5kKChmbGFnKSA9PiBmbGFnLm5hbWUgPT09IHBhdGhFbGVtZW50KTtcbiAgICAgICAgaWYgKGZvdW5kRmxhZykge1xuICAgICAgICAgIGN1cnJlbnRQYXRoID0gZm91bmRGbGFnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmZsYWdUeXBlcyA9IGN1cnJlbnRQYXRoLmNoaWxkRmxhZ3M7XG4gICAgICB0aGlzLmNhY2hlZEZsYWdUeXBlID0gY3VycmVudFBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmxhZ1R5cGVzID0gZmxhZ1R5cGVzWzBdLmNoaWxkRmxhZ3MuZmlsdGVyKChmbGFnKSA9PlxuICAgICAgICB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA/IGZsYWcuZmxhZ0NvZGUgIT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgOiB0cnVlKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkZMQUdfVFlQRSk7XG4gICAgaWYgKGZvcm1Db250cm9sPy52YWx1ZSkge1xuICAgICAgY29uc3QgW2ZvdW5kRmxhZ1R5cGUsIHBhdGhdID0gRmxhZ1R5cGUuc2VhcmNoUGF0aEJ5RmxhZ1R5cGVPYmplY3QoZm9ybUNvbnRyb2wudmFsdWUgYXMgRmxhZ1R5cGUsIHRoaXMuY2FjaGVkUkRGbGFnVHlwZXNbMF0uY2hpbGRGbGFncyk7XG4gICAgICB0aGlzLmNhY2hlZFBhdGggPSBbLi4ucGF0aCwgZm91bmRGbGFnVHlwZV07XG4gICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSgodGhpcy5zZWxlY3RlZEZsYWdUeXBlICYmIChqb3VybmV5UHJldmlvdXNQYWdlTnVtYmVyID4gam91cm5leVBhZ2VOdW1iZXIpKSA/IHRoaXMuY2FjaGVkUGF0aFt0aGlzLmNhY2hlZFBhdGgubGVuZ3RoIC0gMV0gOiB0aGlzLmNhY2hlZFBhdGhbMF0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIGlmICh0aGlzLmNhY2hlZFBhdGgubGVuZ3RoICE9PSAwICYmIChqb3VybmV5UHJldmlvdXNQYWdlTnVtYmVyID4gam91cm5leVBhZ2VOdW1iZXIpKSB7XG4gICAgICAgIHRoaXMuc3ViSm91cm5leUluZGV4ID0gdGhpcy5jYWNoZWRQYXRoLmxlbmd0aC0xO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmZsYWdUeXBlU3ViSm91cm5leUVtaXR0ZXIuZW1pdCh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIG9uUmVmZGF0YUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBTZXQgZXJyb3IgZmxhZyBvbiBjb21wb25lbnQgdG8gcmVtb3ZlIHRoZSBcIk5leHRcIiBidXR0b24gKHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBmbGFnIGNyZWF0aW9uKVxuICAgIHRoaXMucmVmZGF0YUVycm9yID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCcgfSk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7IGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUsIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIHRoaXMub25OZXh0KCk7XG4gICAgdGhpcy5hZGRTdGF0ZSh0aGlzLnN1YkpvdXJuZXlJbmRleCk7XG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgdGhpcy5vblByZXZpb3VzKCk7XG5cbiAgICBpZiAodGhpcy5zdWJKb3VybmV5SW5kZXggPD0gMCkge1xuICAgICAgc3VwZXIucHJldmlvdXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmbGFnVHlwZXM/Lmxlbmd0aFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZS5sZW5ndGggPiAwfVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cImZsYWctdHlwZS1oZWFkaW5nXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tXCI+XG4gICAgICAgIDxoMSBpZD1cImZsYWctdHlwZS1oZWFkaW5nXCIgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZyBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2FjaGVkRmxhZ1R5cGUgfHwgc3ViSm91cm5leUluZGV4ID09IDA7IGVsc2UgcHJpb3JGbGFnVHlwZVNlbGVjdGVkXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXG4gICAgICAgICAgICA/IChjYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5TRUxFQ1RfQ0FTRV9GTEFHX0VYVEVSTkFMIHwgcnB4VHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoY2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuU0VMRUNUX0NBU0VfRkxBRyB8IHJweFRyYW5zbGF0ZSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmlvckZsYWdUeXBlU2VsZWN0ZWQ+XG4gICAgICAgICAgICB7e2NhY2hlZEZsYWdUeXBlIHwgZmxhZ0ZpZWxkRGlzcGxheTonbmFtZSd9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLXR5cGUtbm90LXNlbGVjdGVkLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAqbmdJZj1cImZsYWdUeXBlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UubGVuZ3RoID4gMFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tmbGFnVHlwZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlIHxcbiAgICAgICAgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIiBpZD1cImNvbmRpdGlvbmFsLXJhZGlvcy1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZmxhZ1R5cGUgb2YgZmxhZ1R5cGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiBpZGVudGlmeUZsYWdUeXBlXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwiZmxhZy10eXBlLXt7aX19XCIgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGQuRkxBR19UWVBFXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmbGFnVHlwZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGQuRkxBR19UWVBFXCIgLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwiZmxhZy10eXBlLXt7aX19XCI+XG4gICAgICAgICAgICB7e2ZsYWdUeXBlIHwgZmxhZ0ZpZWxkRGlzcGxheTonbmFtZSd9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19jb25kaXRpb25hbFwiICpuZ0lmPVwib3RoZXJGbGFnVHlwZVNlbGVjdGVkXCIgaWQ9XCJjb25kaXRpb25hbC1mbGFnVHlwZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZmxhZ1R5cGVFcnJvck1lc3NhZ2UubGVuZ3RoID4gMH1cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsXCIgZm9yPVwib3RoZXItZmxhZy10eXBlLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbFxuICAgICAgICAgICAgICA/IChjYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5PVEhFUl9GTEFHX1RZUEVfREVTQ1JJUFRJT05fRVhURVJOQUwgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKGNhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLk9USEVSX0ZMQUdfVFlQRV9ERVNDUklQVElPTiB8IHJweFRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiZmxhZy10eXBlLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZsYWdUeXBlRXJyb3JNZXNzYWdlLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7ZmxhZ1R5cGVFcnJvck1lc3NhZ2UgfFxuICAgICAgICAgICAgICBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS1oYWxmXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBmbGFnVHlwZUVycm9yTWVzc2FnZS5sZW5ndGggPiAwfVwiIGlkPVwib3RoZXItZmxhZy10eXBlLWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGQuT1RIRVJfRkxBR19ERVNDUklQVElPTlwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZC5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtIGdvdnVrLSEtbWFyZ2luLXRvcC00XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsICYmICFpc0Nhc2VMZXZlbEZsYWcgJiYgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJpcy12aXNpYmxlLWV4dGVybmFsbHlcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkLklTX1ZJU0lCTEVfSU5URVJOQUxMWV9PTkxZXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkLklTX1ZJU0lCTEVfSU5URVJOQUxMWV9PTkxZXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwiaXMtdmlzaWJsZS1leHRlcm5hbGx5XCI+XG4gICAgICAgICAgICAgICAge3snVGhpcyBmbGFnIHNob3VsZCBvbmx5IGJlIHZpc2libGUgdG8gSE1DVFMgU3RhZmYnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -151,7 +151,7 @@ export class UpdateFlagAddTranslationFormComponent extends AbstractJourneyCompon
|
|
|
151
151
|
super.next();
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵUpdateFlagAddTranslationFormComponent_BaseFactory; return function UpdateFlagAddTranslationFormComponent_Factory(
|
|
154
|
+
static ɵfac = /*@__PURE__*/ (() => { let ɵUpdateFlagAddTranslationFormComponent_BaseFactory; return function UpdateFlagAddTranslationFormComponent_Factory(__ngFactoryType__) { return (ɵUpdateFlagAddTranslationFormComponent_BaseFactory || (ɵUpdateFlagAddTranslationFormComponent_BaseFactory = i0.ɵɵgetInheritedFactory(UpdateFlagAddTranslationFormComponent)))(__ngFactoryType__ || UpdateFlagAddTranslationFormComponent); }; })();
|
|
155
155
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UpdateFlagAddTranslationFormComponent, selectors: [["ccd-update-flag-add-translation-form"]], inputs: { formGroup: "formGroup" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 50, vars: 54, consts: [[3, "formGroup"], ["data-module", "govuk-character-count", "data-maxlength", "200", 1, "govuk-character-count"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper", "govuk-!-margin-bottom-6"], [1, "govuk-label", "govuk-label--m"], ["id", "add-translation-form-hint", 1, "govuk-hint"], [1, "govuk-!-margin-bottom-4"], [1, "govuk-label", "govuk-label--s", 3, "for"], ["id", "add-translation-other-flag-description-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "add-translation-other-flag-description-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], ["id", "add-translation-other-flag-description-welsh-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["id", "add-translation-other-flag-description-welsh-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], ["id", "add-translation-flag-comments-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["id", "add-translation-flag-comments-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], ["id", "add-translation-flag-comments-welsh-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["id", "add-translation-flag-comments-welsh-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], ["id", "add-translation-other-flag-description-char-limit-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "add-translation-other-flag-description-welsh-char-limit-error", 1, "govuk-error-message"], ["id", "add-translation-flag-comments-char-limit-error", 1, "govuk-error-message"], ["id", "add-translation-flag-comments-welsh-char-limit-error", 1, "govuk-error-message"]], template: function UpdateFlagAddTranslationFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
156
156
|
i0.ɵɵelementContainerStart(0, 0);
|
|
157
157
|
i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "h1", 3)(4, "label", 4);
|
|
@@ -270,4 +270,4 @@ export class UpdateFlagAddTranslationFormComponent extends AbstractJourneyCompon
|
|
|
270
270
|
type: Output
|
|
271
271
|
}] }); })();
|
|
272
272
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UpdateFlagAddTranslationFormComponent, { className: "UpdateFlagAddTranslationFormComponent", filePath: "lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.ts", lineNumber: 18 }); })();
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0vdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0vdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixvQ0FBb0MsRUFDcEMsNEJBQTRCLEVBQzdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7SUNLeEQsQUFGRiwrQkFDd0QsZUFDbEI7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTztJQUFDLFlBQ3pFOztJQUFBLGlCQUFNOzs7SUFEZ0MsZUFBMkI7SUFB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TyxlQUF1RDtZQUF2RCx5RUFBdUQ7WUFBb0MsY0FBOEM7WUFBOUMseUVBQThDO1lBRXpJLGVBQW9EO1lBQXBELHlFQUFvRDtZQUt6RCxjQUFzRDtZQUV0RCxBQURBLEFBREEsd0VBQXNELDZEQUNFLHdFQUNXO1lBR25FLGVBQ0Y7WUFERSxrSEFDRjtZQUlPLGVBQW1DO1lBQW5DLHFEQUFtQztZQUFvQyxjQUFrQztZQUFsQyw2REFBa0M7WUFFekcsZUFBdUM7WUFBdkMsNERBQXVDO1lBSzVDLGNBQWtDO1lBRWxDLEFBREEsQUFEQSxvREFBa0MseUNBQ0Usb0RBQ1c7WUFHL0MsZUFDRjtZQURFLGtIQUNGO1lBSU8sZUFBeUM7WUFBekMsMkRBQXlDO1lBQW9DLGNBQTBDO1lBQTFDLHFFQUEwQztZQUV2SCxlQUE0QztZQUE1QyxpRUFBNEM7WUFLakQsY0FBd0M7WUFFeEMsQUFEQSxBQURBLDBEQUF3QywrQ0FDRSwwREFDVztZQUdyRCxlQUNGO1lBREUsa0hBQ0Y7OztpRkQ1REsscUNBQXFDO2NBSmpELFNBQVM7MkJBQ0Usc0NBQXNDO2dCQUloQyxTQUFTO2tCQUF4QixLQUFLO1lBRVcsb0JBQW9CO2tCQUFwQyxNQUFNOztrRkFISSxxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBKb3VybmV5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHtcbiAgQ2FzZUZsYWdGaWVsZFN0YXRlLFxuICBDYXNlRmxhZ0Zvcm1GaWVsZHMsXG4gIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLFxuICBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UsXG4gIFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvblN0ZXBcbn0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vYmFzZS1maWVsZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC11cGRhdGUtZmxhZy1hZGQtdHJhbnNsYXRpb24tZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGRhdGUtZmxhZy1hZGQtdHJhbnNsYXRpb24tZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRm9ybUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBAT3V0cHV0KCkgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIHNlbGVjdGVkRmxhZzogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHVibGljIHVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvblRpdGxlOiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyBvdGhlckZsYWdEZXNjcmlwdGlvbkNoYXJMaW1pdEVycm9yTWVzc2FnZTogVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIG90aGVyRmxhZ0Rlc2NyaXB0aW9uV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnQ29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnQ29tbWVudHNXZWxzaENoYXJMaW1pdEVycm9yTWVzc2FnZTogVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvblN0ZXBFbnVtID0gVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uU3RlcDtcbiAgcHVibGljIHJlYWRvbmx5IGNhc2VGbGFnRm9ybUZpZWxkcyA9IENhc2VGbGFnRm9ybUZpZWxkcztcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0TWF4Q2hhckxpbWl0ID0gMjAwO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uID0gJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJztcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25UaXRsZSA9IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlVQREFURV9GTEFHX0FERF9UUkFOU0xBVElPTjtcbiAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uKS52YWx1ZSBhcyBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoO1xuICAgIHRoaXMubXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlLmdldEpvdXJuZXlDb2xsZWN0aW9uTWFpbk9iamVjdCgpLmpvdXJuZXlFbmRQYWdlTnVtYmVyKys7XG4gICAgY29uc3QgZmxhZ0RldGFpbCA9IHRoaXMuc2VsZWN0ZWRGbGFnPy5mbGFnRGV0YWlsRGlzcGxheT8uZmxhZ0RldGFpbDtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OLCBuZXcgRm9ybUNvbnRyb2woZmxhZ0RldGFpbD8ub3RoZXJEZXNjcmlwdGlvbikpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05fV0VMU0gsIG5ldyBGb3JtQ29udHJvbChmbGFnRGV0YWlsPy5vdGhlckRlc2NyaXB0aW9uX2N5KSk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFMsIG5ldyBGb3JtQ29udHJvbChmbGFnRGV0YWlsPy5mbGFnQ29tbWVudCkpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNILCBuZXcgRm9ybUNvbnRyb2woZmxhZ0RldGFpbD8uZmxhZ0NvbW1lbnRfY3kpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5nZXRKb3VybmV5Q29sbGVjdGlvbk1haW5PYmplY3QoKS5qb3VybmV5RW5kUGFnZU51bWJlci0tO1xuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSB0cmFuc2xhdGlvbiBlbnRyaWVzXG4gICAgdGhpcy52YWxpZGF0ZVRleHRFbnRyeSgpO1xuXG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgZXJyb3IgbWVzc2FnZXMsIGFuZCBzZWxlY3RlZCBmbGFnIGRldGFpbCB0byB0aGUgcGFyZW50LiBUaGUgc2VsZWN0ZWQgZmxhZyBtdXN0IGJlXG4gICAgLy8gcmUtZW1pdHRlZCBiZWNhdXNlIHRoZSBwYXJlbnQgY29tcG9uZW50IHJlcG9wdWxhdGVzIHRoaXMgb24gaGFuZGxpbmcgdGhpcyBFdmVudEVtaXR0ZXJcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFX1dFTFNIX1RSQU5TTEFUSU9OLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgc2VsZWN0ZWRGbGFnOiB0aGlzLnNlbGVjdGVkRmxhZyxcbiAgICB9KTtcblxuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUZXh0RW50cnkoKTogdm9pZCB7XG4gICAgdGhpcy5vdGhlckZsYWdEZXNjcmlwdGlvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5vdGhlckZsYWdEZXNjcmlwdGlvbldlbHNoQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmZsYWdDb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5mbGFnQ29tbWVudHNXZWxzaENoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OKT8udmFsdWU/Lmxlbmd0aCA+IHRoaXMudGV4dE1heENoYXJMaW1pdCkge1xuICAgICAgdGhpcy5vdGhlckZsYWdEZXNjcmlwdGlvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZS5ERVNDUklQVElPTl9DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UuREVTQ1JJUFRJT05fQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05fV0VMU0gpPy52YWx1ZT8ubGVuZ3RoID4gdGhpcy50ZXh0TWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLm90aGVyRmxhZ0Rlc2NyaXB0aW9uV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UuREVTQ1JJUFRJT05fQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlLkRFU0NSSVBUSU9OX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UUyk/LnZhbHVlPy5sZW5ndGggPiB0aGlzLnRleHRNYXhDaGFyTGltaXQpIHtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlLkNPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZS5DT01NRU5UU19DSEFSX0xJTUlUX0VYQ0VFREVELFxuICAgICAgICBmaWVsZElkOiBDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIKT8udmFsdWU/Lmxlbmd0aCA+IHRoaXMudGV4dE1heENoYXJMaW1pdCkge1xuICAgICAgdGhpcy5mbGFnQ29tbWVudHNXZWxzaENoYXJMaW1pdEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZS5DT01NRU5UU19DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UuQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpIHtcbiAgICB0aGlzLm9uTmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hhcmFjdGVyLWNvdW50XCIgZGF0YS1tYXhsZW5ndGg9XCIyMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXIgZ292dWstIS1tYXJnaW4tYm90dG9tLTZcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLW1cIj5cbiAgICAgICAgICB7eyB1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25UaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2gxPlxuICAgICAgPGRpdiBpZD1cImFkZC10cmFuc2xhdGlvbi1mb3JtLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgICAge3sgdXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uU3RlcEVudW0uSElOVF9URVhUIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05cIiBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1zXCI+e3snT3RoZXIgZGVzY3JpcHRpb24nIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICA8ZGl2IGlkPVwiYWRkLXRyYW5zbGF0aW9uLW90aGVyLWZsYWctZGVzY3JpcHRpb24tY2hhci1saW1pdC1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwib3RoZXJGbGFnRGVzY3JpcHRpb25DaGFyTGltaXRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tvdGhlckZsYWdEZXNjcmlwdGlvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLXRleHRhcmVhXCIgcm93cz1cIjVcIlxuICAgICAgICAgIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTlwiXG4gICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05cIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05cIj5cbiAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPGRpdiBpZD1cImFkZC10cmFuc2xhdGlvbi1vdGhlci1mbGFnLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtaW5mb1wiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICB7e3VwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvblN0ZXBFbnVtLkNIQVJBQ1RFUl9MSU1JVF9JTkZPIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCI+XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIXCIgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tc1wiPnt7J090aGVyIGRlc2NyaXB0aW9uIChXZWxzaCknIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICA8ZGl2IGlkPVwiYWRkLXRyYW5zbGF0aW9uLW90aGVyLWZsYWctZGVzY3JpcHRpb24td2Vsc2gtY2hhci1saW1pdC1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwib3RoZXJGbGFnRGVzY3JpcHRpb25XZWxzaENoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e290aGVyRmxhZ0Rlc2NyaXB0aW9uV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYVwiIHJvd3M9XCI1XCJcbiAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05fV0VMU0hcIlxuICAgICAgICAgIFtuYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tb3RoZXItZmxhZy1kZXNjcmlwdGlvbi13ZWxzaC1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25TdGVwRW51bS5DSEFSQUNURVJfTElNSVRfSU5GTyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcIiBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1zXCI+e3snRmxhZyBjb21tZW50cycgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tZmxhZy1jb21tZW50cy1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmbGFnQ29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tmbGFnQ29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYVwiIHJvd3M9XCI1XCJcbiAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCJcbiAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tZmxhZy1jb21tZW50cy1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25TdGVwRW51bS5DSEFSQUNURVJfTElNSVRfSU5GTyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNfV0VMU0hcIiBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1zXCI+e3snRmxhZyBjb21tZW50cyAoV2Vsc2gpJyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgPGRpdiBpZD1cImFkZC10cmFuc2xhdGlvbi1mbGFnLWNvbW1lbnRzLXdlbHNoLWNoYXItbGltaXQtZXJyb3JcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAqbmdJZj1cImZsYWdDb21tZW50c1dlbHNoQ2hhckxpbWl0RXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7ZmxhZ0NvbW1lbnRzV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYVwiIHJvd3M9XCI1XCJcbiAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIXCJcbiAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNfV0VMU0hcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tZmxhZy1jb21tZW50cy13ZWxzaC1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25TdGVwRW51bS5DSEFSQUNURVJfTElNSVRfSU5GTyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0vdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0vdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixvQ0FBb0MsRUFDcEMsNEJBQTRCLEVBQzdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7SUNLeEQsQUFGRiwrQkFDd0QsZUFDbEI7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTztJQUFDLFlBQ3pFOztJQUFBLGlCQUFNOzs7SUFEZ0MsZUFBMkI7SUFB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SU8sZUFBdUQ7WUFBdkQseUVBQXVEO1lBQW9DLGNBQThDO1lBQTlDLHlFQUE4QztZQUV6SSxlQUFvRDtZQUFwRCx5RUFBb0Q7WUFLekQsY0FBc0Q7WUFFdEQsQUFEQSxBQURBLHdFQUFzRCw2REFDRSx3RUFDVztZQUduRSxlQUNGO1lBREUsa0hBQ0Y7WUFJTyxlQUFtQztZQUFuQyxxREFBbUM7WUFBb0MsY0FBa0M7WUFBbEMsNkRBQWtDO1lBRXpHLGVBQXVDO1lBQXZDLDREQUF1QztZQUs1QyxjQUFrQztZQUVsQyxBQURBLEFBREEsb0RBQWtDLHlDQUNFLG9EQUNXO1lBRy9DLGVBQ0Y7WUFERSxrSEFDRjtZQUlPLGVBQXlDO1lBQXpDLDJEQUF5QztZQUFvQyxjQUEwQztZQUExQyxxRUFBMEM7WUFFdkgsZUFBNEM7WUFBNUMsaUVBQTRDO1lBS2pELGNBQXdDO1lBRXhDLEFBREEsQUFEQSwwREFBd0MsK0NBQ0UsMERBQ1c7WUFHckQsZUFDRjtZQURFLGtIQUNGOzs7aUZENURLLHFDQUFxQztjQUpqRCxTQUFTOzJCQUNFLHNDQUFzQztnQkFJaEMsU0FBUztrQkFBeEIsS0FBSztZQUVXLG9CQUFvQjtrQkFBcEMsTUFBTTs7a0ZBSEkscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlLCBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VGbGFnRmllbGRTdGF0ZSxcbiAgQ2FzZUZsYWdGb3JtRmllbGRzLFxuICBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSxcbiAgVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlLFxuICBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25TdGVwXG59IGZyb20gJy4uLy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkZvcm1Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEpvdXJuZXkge1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjYXNlRmxhZ1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPigpO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZsYWc6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGg7XG4gIHB1YmxpYyB1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25UaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgb3RoZXJGbGFnRGVzY3JpcHRpb25DaGFyTGltaXRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBvdGhlckZsYWdEZXNjcmlwdGlvbldlbHNoQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmxhZ0NvbW1lbnRzV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyB1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25TdGVwRW51bSA9IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvblN0ZXA7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlRmxhZ0Zvcm1GaWVsZHMgPSBDYXNlRmxhZ0Zvcm1GaWVsZHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1heENoYXJMaW1pdCA9IDIwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbiA9ICdzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbic7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uVGl0bGUgPSBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5VUERBVEVfRkxBR19BRERfVFJBTlNMQVRJT047XG4gICAgdGhpcy5zZWxlY3RlZEZsYWcgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbikudmFsdWUgYXMgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbiAgICB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5nZXRKb3VybmV5Q29sbGVjdGlvbk1haW5PYmplY3QoKS5qb3VybmV5RW5kUGFnZU51bWJlcisrO1xuICAgIGNvbnN0IGZsYWdEZXRhaWwgPSB0aGlzLnNlbGVjdGVkRmxhZz8uZmxhZ0RldGFpbERpc3BsYXk/LmZsYWdEZXRhaWw7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTiwgbmV3IEZvcm1Db250cm9sKGZsYWdEZXRhaWw/Lm90aGVyRGVzY3JpcHRpb24pKTtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNILCBuZXcgRm9ybUNvbnRyb2woZmxhZ0RldGFpbD8ub3RoZXJEZXNjcmlwdGlvbl9jeSkpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTLCBuZXcgRm9ybUNvbnRyb2woZmxhZ0RldGFpbD8uZmxhZ0NvbW1lbnQpKTtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSCwgbmV3IEZvcm1Db250cm9sKGZsYWdEZXRhaWw/LmZsYWdDb21tZW50X2N5KSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0Sm91cm5leUNvbGxlY3Rpb25NYWluT2JqZWN0KCkuam91cm5leUVuZFBhZ2VOdW1iZXItLTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgdHJhbnNsYXRpb24gZW50cmllc1xuICAgIHRoaXMudmFsaWRhdGVUZXh0RW50cnkoKTtcblxuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUsIGVycm9yIG1lc3NhZ2VzLCBhbmQgc2VsZWN0ZWQgZmxhZyBkZXRhaWwgdG8gdGhlIHBhcmVudC4gVGhlIHNlbGVjdGVkIGZsYWcgbXVzdCBiZVxuICAgIC8vIHJlLWVtaXR0ZWQgYmVjYXVzZSB0aGUgcGFyZW50IGNvbXBvbmVudCByZXBvcHVsYXRlcyB0aGlzIG9uIGhhbmRsaW5nIHRoaXMgRXZlbnRFbWl0dGVyXG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURV9XRUxTSF9UUkFOU0xBVElPTixcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIHNlbGVjdGVkRmxhZzogdGhpcy5zZWxlY3RlZEZsYWcsXG4gICAgfSk7XG5cbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVGV4dEVudHJ5KCk6IHZvaWQge1xuICAgIHRoaXMub3RoZXJGbGFnRGVzY3JpcHRpb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMub3RoZXJGbGFnRGVzY3JpcHRpb25XZWxzaENoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5mbGFnQ29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZmxhZ0NvbW1lbnRzV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTik/LnZhbHVlPy5sZW5ndGggPiB0aGlzLnRleHRNYXhDaGFyTGltaXQpIHtcbiAgICAgIHRoaXMub3RoZXJGbGFnRGVzY3JpcHRpb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UuREVTQ1JJUFRJT05fQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlLkRFU0NSSVBUSU9OX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIKT8udmFsdWU/Lmxlbmd0aCA+IHRoaXMudGV4dE1heENoYXJMaW1pdCkge1xuICAgICAgdGhpcy5vdGhlckZsYWdEZXNjcmlwdGlvbldlbHNoQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlLkRFU0NSSVBUSU9OX0NIQVJfTElNSVRfRVhDRUVERUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZS5ERVNDUklQVElPTl9DSEFSX0xJTUlUX0VYQ0VFREVELFxuICAgICAgICBmaWVsZElkOiBDYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTl9XRUxTSFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFMpPy52YWx1ZT8ubGVuZ3RoID4gdGhpcy50ZXh0TWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLmZsYWdDb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkVycm9yTWVzc2FnZS5DT01NRU5UU19DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UuQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSCk/LnZhbHVlPy5sZW5ndGggPiB0aGlzLnRleHRNYXhDaGFyTGltaXQpIHtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25FcnJvck1lc3NhZ2UuQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRXJyb3JNZXNzYWdlLkNPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5leHQoKSB7XG4gICAgdGhpcy5vbk5leHQoKTtcblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBzdXBlci5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGFyYWN0ZXItY291bnRcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbWF4bGVuZ3RoPVwiMjAwXCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1sYWJlbC13cmFwcGVyIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS02XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1tXCI+XG4gICAgICAgICAge3sgdXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uVGl0bGUgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9oMT5cbiAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tZm9ybS1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICAgIHt7IHVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvblN0ZXBFbnVtLkhJTlRfVEVYVCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCI+XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OXCIgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tc1wiPnt7J090aGVyIGRlc2NyaXB0aW9uJyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgPGRpdiBpZD1cImFkZC10cmFuc2xhdGlvbi1vdGhlci1mbGFnLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtZXJyb3JcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAqbmdJZj1cIm90aGVyRmxhZ0Rlc2NyaXB0aW9uQ2hhckxpbWl0RXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7b3RoZXJGbGFnRGVzY3JpcHRpb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYVwiIHJvd3M9XCI1XCJcbiAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05cIlxuICAgICAgICAgIFtuYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tb3RoZXItZmxhZy1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnQWRkVHJhbnNsYXRpb25TdGVwRW51bS5DSEFSQUNURVJfTElNSVRfSU5GTyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTl9XRUxTSFwiIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLXNcIj57eydPdGhlciBkZXNjcmlwdGlvbiAoV2Vsc2gpJyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgPGRpdiBpZD1cImFkZC10cmFuc2xhdGlvbi1vdGhlci1mbGFnLWRlc2NyaXB0aW9uLXdlbHNoLWNoYXItbGltaXQtZXJyb3JcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAqbmdJZj1cIm90aGVyRmxhZ0Rlc2NyaXB0aW9uV2Vsc2hDaGFyTGltaXRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tvdGhlckZsYWdEZXNjcmlwdGlvbldlbHNoQ2hhckxpbWl0RXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIiByb3dzPVwiNVwiXG4gICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIXCJcbiAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTl9XRUxTSFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTl9XRUxTSFwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGlkPVwiYWRkLXRyYW5zbGF0aW9uLW90aGVyLWZsYWctZGVzY3JpcHRpb24td2Vsc2gtY2hhci1saW1pdC1pbmZvXCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uU3RlcEVudW0uQ0hBUkFDVEVSX0xJTUlUX0lORk8gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCIgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tc1wiPnt7J0ZsYWcgY29tbWVudHMnIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICA8ZGl2IGlkPVwiYWRkLXRyYW5zbGF0aW9uLWZsYWctY29tbWVudHMtY2hhci1saW1pdC1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7ZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIiByb3dzPVwiNVwiXG4gICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiXG4gICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGlkPVwiYWRkLXRyYW5zbGF0aW9uLWZsYWctY29tbWVudHMtY2hhci1saW1pdC1pbmZvXCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uU3RlcEVudW0uQ0hBUkFDVEVSX0xJTUlUX0lORk8gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIXCIgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tc1wiPnt7J0ZsYWcgY29tbWVudHMgKFdlbHNoKScgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGQtdHJhbnNsYXRpb24tZmxhZy1jb21tZW50cy13ZWxzaC1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmbGFnQ29tbWVudHNXZWxzaENoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e2ZsYWdDb21tZW50c1dlbHNoQ2hhckxpbWl0RXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIiByb3dzPVwiNVwiXG4gICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSFwiXG4gICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSFwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGlkPVwiYWRkLXRyYW5zbGF0aW9uLWZsYWctY29tbWVudHMtd2Vsc2gtY2hhci1saW1pdC1pbmZvXCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uU3RlcEVudW0uQ0hBUkFDVEVSX0xJTUlUX0lORk8gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -470,7 +470,7 @@ export class UpdateFlagComponent extends AbstractJourneyComponent {
|
|
|
470
470
|
super.next();
|
|
471
471
|
}
|
|
472
472
|
}
|
|
473
|
-
static ɵfac = function UpdateFlagComponent_Factory(
|
|
473
|
+
static ɵfac = function UpdateFlagComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UpdateFlagComponent)(i0.ɵɵdirectiveInject(i1.RpxTranslationService), i0.ɵɵdirectiveInject(i2.MultipageComponentStateService)); };
|
|
474
474
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UpdateFlagComponent, selectors: [["ccd-update-flag"]], inputs: { formGroup: "formGroup", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 23, vars: 22, consts: [["externalUser", ""], ["updateFlagStatusReason", ""], [3, "formGroup"], ["data-module", "govuk-character-count", "data-maxlength", "200", 1, "govuk-character-count"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper", "govuk-!-margin-bottom-4"], [1, "govuk-label", "govuk-label--m"], ["id", "update-flag-hint-external", "class", "govuk-hint", 4, "ngIf"], [1, "govuk-!-margin-bottom-4"], [1, "govuk-label", "govuk-label--s", 3, "for"], ["id", "update-flag-comments-hint-external", "class", "govuk-hint", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["id", "flag-status-container-v2_1", "class", "govuk-!-margin-bottom-4", 4, "ngIf"], ["id", "translation-checkbox-container", "class", "govuk-!-margin-bottom-6", 4, "ngIf"], ["id", "flag-status-container-v1", "class", "govuk-grid-row", 4, "ngIf"], ["id", "update-flag-hint-external", 1, "govuk-hint"], ["id", "update-flag-comments-hint-external", 1, "govuk-hint"], ["id", "update-flag-comments-hint", 1, "govuk-hint"], ["class", "govuk-warning-text", 4, "ngIf"], ["id", "update-flag-comments-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "update-flag-comments-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", "aria-describedby", "update-flag-comments-hint update-flag-comments-char-limit-info update-flag-comments-char-limit-error", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "update-flag-comments-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["id", "update-flag-comments-not-entered-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "update-flag-comments-char-limit-error", 1, "govuk-error-message"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["id", "update-flag-status-reason-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "update-flag-status-reason-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", "aria-describedby", "update-flag-comments-hint-external update-flag-status-hint update-flag-status-reason-char-limit-info\n update-flag-status-reason-char-limit-error", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "update-flag-status-reason-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], ["id", "update-flag-status-reason-not-entered-error-message", 1, "govuk-error-message"], ["id", "update-flag-status-reason-char-limit-error", 1, "govuk-error-message"], ["id", "flag-status-container-v2_1", 1, "govuk-!-margin-bottom-4"], ["aria-describedby", "update-flag-status-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--s"], ["id", "update-flag-status-heading", 1, "govuk-fieldset__heading"], ["data-module", "govuk-radios", 1, "govuk-radios", "govuk-radios--conditional", "govuk-!-margin-bottom-4", 3, "id"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["id", "update-flag-status-hint", 1, "govuk-hint"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "formControlName", "value"], [1, "govuk-label", "govuk-radios__label", 3, "for"], ["id", "translation-checkbox-container", 1, "govuk-!-margin-bottom-6"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes"], [1, "govuk-checkboxes__item"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "formControlName", "id", "name"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["id", "flag-status-container-v1", 1, "govuk-grid-row"], [1, "govuk-grid-column-one-half"], [1, "govuk-tag", 3, "ngClass"], ["class", "button button-secondary", "type", "button", 3, "click", 4, "ngIf"], ["type", "button", 1, "button", "button-secondary", 3, "click"]], template: function UpdateFlagComponent_Template(rf, ctx) { if (rf & 1) {
|
|
475
475
|
i0.ɵɵelementContainerStart(0, 2);
|
|
476
476
|
i0.ɵɵelementStart(1, "div", 3)(2, "div", 4)(3, "h1", 5)(4, "label", 6);
|
|
@@ -525,4 +525,4 @@ export class UpdateFlagComponent extends AbstractJourneyComponent {
|
|
|
525
525
|
type: Output
|
|
526
526
|
}] }); })();
|
|
527
527
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UpdateFlagComponent, { className: "UpdateFlagComponent", filePath: "lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.ts", lineNumber: 22 }); })();
|
|
528
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzVELE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7SUNQbkUsK0JBQWtGO0lBQ2hGLFlBQ0Y7O0lBQUEsaUJBQU07OztJQURKLGNBQ0Y7SUFERSxtTUFDRjs7O0lBVUUsK0JBQTJGO0lBQ3pGLFlBQ0Y7O0lBQUEsaUJBQU07OztJQURKLGNBQ0Y7SUFERSwy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eUNBQXVCO1lBRUgsZUFBMEQ7WUFBMUQsbUZBQTBEO1lBR2xGLGVBQ0Y7WUFERSwyRUFDRjtZQUVzRCxlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFLcEMsZUFBbUM7WUFBbkMscURBQW1DO1lBQzNFLGNBS0Y7WUFMRSx5TkFLRjtZQUNpRSxlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFHMUUsY0FDYjtZQUFBLEFBRGEsMkhBQ2IsNkJBQWlCO1lBMkRpRCxlQUFzQztZQUF0QywyREFBc0M7WUEyQmxDLGNBQXNDO1lBQXRDLDJEQUFzQztZQWVyRCxjQUF3QjtZQUF4Qiw2Q0FBd0I7OztpRkR4RzVFLG1CQUFtQjtjQUovQixTQUFTOzJCQUNFLGlCQUFpQjttR0FJWCxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBRVcsb0JBQW9CO2tCQUFwQyxNQUFNOztrRkFKSSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLFxuICBDYXNlRmxhZ0ZpZWxkU3RhdGUsXG4gIENhc2VGbGFnRm9ybUZpZWxkcyxcbiAgQ2FzZUZsYWdTdGF0dXMsXG4gIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLFxuICBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLFxuICBVcGRhdGVGbGFnU3RlcFxufSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlLWZpZWxkJztcbmltcG9ydCB7IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtdXBkYXRlLWZsYWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLWZsYWcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZUZsYWdDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEpvdXJuZXkge1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgc2VsZWN0ZWRGbGFnOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoO1xuICBwdWJsaWMgdXBkYXRlRmxhZ1RpdGxlID0gJyc7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgY29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIGNvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHN0YXR1c1JlYXNvbk5vdEVudGVyZWRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgc3RhdHVzUmVhc29uQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHVwZGF0ZUZsYWdTdGVwRW51bSA9IFVwZGF0ZUZsYWdTdGVwO1xuICBwdWJsaWMgdmFsaWRTdGF0dXNQcm9ncmVzc2lvbnM6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZUZsYWdTdGF0dXNFbnVtID0gQ2FzZUZsYWdTdGF0dXM7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlRmxhZ0Zvcm1GaWVsZHMgPSBDYXNlRmxhZ0Zvcm1GaWVsZHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1heENoYXJMaW1pdCA9IDIwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbiA9ICdzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbic7XG4gIHByaXZhdGUgZmxhZ0RldGFpbDogRmxhZ0RldGFpbDtcbiAgcHVibGljIGNhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyO1xuICBwdWJsaWMgZXh0ZXJuYWxVc2VyVXBkYXRlID0gZmFsc2U7XG4gIHB1YmxpYyBpbnRlcm5hbFVzZXJVcGRhdGUgPSBmYWxzZTtcbiAgcHVibGljIGludGVybmFsVXNlcjJQb2ludDFFbmFibGVkVXBkYXRlID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBleHRlcm5hbGx5VmlzaWJsZUZsYWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LnZpc2liaWxpdHk/LnRvTG93ZXJDYXNlKCkgPT09ICdleHRlcm5hbCc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJweFRyYW5zbGF0aW9uU2VydmljZTogUnB4VHJhbnNsYXRpb25TZXJ2aWNlLCBcbiAgICBtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2U6IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgd2hldGhlciB0aGlzIGlzIGFuIGV4dGVybmFsLCBpbnRlcm5hbCwgb3IgaW50ZXJuYWwgQ2FzZSBGbGFncyB2Mi4xIGVuYWJsZWQgdXNlciB1cGRhdGVcbiAgICB0aGlzLmV4dGVybmFsVXNlclVwZGF0ZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMO1xuICAgIHRoaXMuaW50ZXJuYWxVc2VyVXBkYXRlID0gdGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU7XG4gICAgdGhpcy5pbnRlcm5hbFVzZXIyUG9pbnQxRW5hYmxlZFVwZGF0ZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTtcbiAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uKT8udmFsdWUgYXMgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWc/LmZsYWdEZXRhaWxEaXNwbGF5Py5mbGFnRGV0YWlsKSB7XG4gICAgICB0aGlzLmZsYWdEZXRhaWwgPSB0aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsO1xuICAgICAgLy8gSWYgcHJlc2VudCwgdXNlIHRoZSAqb3JpZ2luYWwqIGZsYWcgc3RhdHVzLCBub3QgdGhlIG9uZSBpbiB0aGUgZmxhZ0RldGFpbCBvYmplY3QsIGJlY2F1c2UgdGhlIHN0YXR1cyBjb3VsZCBoYXZlXG4gICAgICAvLyBiZWVuIG1vZGlmaWVkIHZpYSBhIHByZXZpb3VzIFwiVXBkYXRlIEZsYWdcIiBqb3VybmV5IHRocm91Z2ggdGhlIFVJIGJ1dCBub3QgcGVyc2lzdGVkIHlldCAodGh1cyBub3QgdGhlICp0cnVlKiBmbGFnXG4gICAgICAvLyBzdGF0dXMpLiBPdGhlcndpc2UsIHVzZSB0aGUgc3RhdHVzIGZyb20gdGhlIGZsYWdEZXRhaWwgb2JqZWN0IChpbml0aWFsbHksIHRoZSBvcmlnaW5hbCBmbGFnIHN0YXR1cyB3b24ndCBiZVxuICAgICAgLy8gcHJlc2VudCBiZWNhdXNlIGl0IGdldHMgY2FjaGVkIG9ubHkgb24gZmlyc3QgdXBkYXRlIGJ5IFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudClcbiAgICAgIGNvbnN0IGN1cnJlbnRGbGFnU3RhdHVzS2V5ID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpLmZpbmQoXG4gICAgICAgIChrZXkpID0+IENhc2VGbGFnU3RhdHVzW2tleV0gPT09ICh0aGlzLnNlbGVjdGVkRmxhZy5vcmlnaW5hbFN0YXR1cyB8fCB0aGlzLmZsYWdEZXRhaWwuc3RhdHVzKSk7XG5cbiAgICAgIC8vIFBvcHVsYXRlIGZsYWcgY29tbWVudHMgdGV4dCBhcmVhIHdpdGggZXhpc3RpbmcgY29tbWVudHM7IHVzZSB0aGUgY29tbWVudHMgYXBwcm9wcmlhdGUgZm9yIHRoZSBzZWxlY3RlZCBsYW5ndWFnZSxcbiAgICAgIC8vIGZhbGxpbmcgYmFjayBvbiB0aGVpciBhbHRlcm5hdGUgY291bnRlcnBhcnQgaWYgbm9uZSBhcmUgYXZhaWxhYmxlLiBDb21tZW50cyBhcmUgdG8gYmUgcG9wdWxhdGVkIG9uZSB0aW1lIG9ubHkgLVxuICAgICAgLy8gd2hlbiB0aGUgdXNlciBmaXJzdCB2aXNpdHMgdGhlIHBhZ2UgLSBldmVuIGlmIHRoZXkgc3dpdGNoIGxhbmd1YWdlIHN1YnNlcXVlbnRseVxuICAgICAgbGV0IGV4aXN0aW5nQ29tbWVudHM6IHN0cmluZztcbiAgICAgIGlmICh0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5Jykge1xuICAgICAgICBleGlzdGluZ0NvbW1lbnRzID0gdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5IHx8IHRoaXMuZmxhZ0RldGFpbC5mbGFnQ29tbWVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aXN0aW5nQ29tbWVudHMgPSB0aGlzLmZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgfHwgdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5O1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFMsIG5ldyBGb3JtQ29udHJvbChleGlzdGluZ0NvbW1lbnRzKSk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVMsIG5ldyBGb3JtQ29udHJvbChjdXJyZW50RmxhZ1N0YXR1c0tleSkpO1xuICAgICAgLy8gUG9wdWxhdGUgc3RhdHVzIHJlYXNvbiBvbmx5IGlmIHRoZSB1c2VyIGlzIG5vdCBleHRlcm5hbFxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT04sIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgdGhpcy5leHRlcm5hbFVzZXJVcGRhdGUgPyAnJyA6IHRoaXMuZmxhZ0RldGFpbC5mbGFnVXBkYXRlQ29tbWVudCkpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVELCBuZXcgRm9ybUNvbnRyb2woZmFsc2UpKTtcblxuICAgICAgdGhpcy51cGRhdGVGbGFnVGl0bGUgPSB0aGlzLnNldFVwZGF0ZUNhc2VGbGFnVGl0bGUodGhpcy5mbGFnRGV0YWlsKTtcblxuICAgICAgLy8gU2V0IHRoZSB2YWxpZCBzdGF0dXMgb3B0aW9ucyBmb3IgZGlzcGxheSwgYmFzZWQgb24gY3VycmVudCBzdGF0dXMgb2YgdGhlIHNlbGVjdGVkIGZsYWcuIFwiQWN0aXZlXCIgZmxhZ3MgY2FuXG4gICAgICAvLyByZW1haW4gXCJBY3RpdmVcIiBvciBtb3ZlIHRvIFwiSW5hY3RpdmVcIiBvbmx5OyBcIlJlcXVlc3RlZFwiIGZsYWdzIGNhbiByZW1haW4gXCJSZXF1ZXN0ZWRcIiBvciBtb3ZlIHRvIFwiQWN0aXZlXCIsXG4gICAgICAvLyBcIkluYWN0aXZlXCIsIG9yIFwiTm90IGFwcHJvdmVkXCIuIE5vIG90aGVyIHN0YXR1cyBwcm9ncmVzc2lvbnMgYXJlIHZhbGlkXG4gICAgICBpZiAoY3VycmVudEZsYWdTdGF0dXNLZXkpIHtcbiAgICAgICAgc3dpdGNoIChjdXJyZW50RmxhZ1N0YXR1c0tleSkge1xuICAgICAgICAgIGNhc2UgJ0FDVElWRSc6XG4gICAgICAgICAgICB0aGlzLnZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpLmZpbHRlcigoa2V5KSA9PiAhWydSRVFVRVNURUQnLCAnTk9UX0FQUFJPVkVEJ10uaW5jbHVkZXMoa2V5KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdSRVFVRVNURUQnOlxuICAgICAgICAgICAgdGhpcy52YWxpZFN0YXR1c1Byb2dyZXNzaW9ucyA9IE9iamVjdC5rZXlzKENhc2VGbGFnU3RhdHVzKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aGlzLnZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0VXBkYXRlQ2FzZUZsYWdUaXRsZShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTpcbiAgICAgICAgaWYgKGZsYWdEZXRhaWw/Lm5hbWUpIHtcbiAgICAgICAgICBjb25zdCBzdWJUeXBlVmFsdWUgPSBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSB8fCBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZV9jeVxuICAgICAgICAgICAgPyBgLCAke2ZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlIHx8IGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlX2N5fWBcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgY29uc3Qgb3RoZXJEZXNjcmlwdGlvbiA9IGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbiB8fCBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb25fY3lcbiAgICAgICAgICAgID8gYCwgJHtmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb24gfHwgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uX2N5fWBcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgcmV0dXJuIHN1YlR5cGVWYWx1ZVxuICAgICAgICAgICAgPyBgJHtDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5VUERBVEVfRkxBR19USVRMRX0gXCIke2ZsYWdEZXRhaWwubmFtZX0ke3N1YlR5cGVWYWx1ZX1cImBcbiAgICAgICAgICAgIDogYCR7Q2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuVVBEQVRFX0ZMQUdfVElUTEV9IFwiJHtmbGFnRGV0YWlsLm5hbWV9JHtvdGhlckRlc2NyaXB0aW9ufVwiYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7Q2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuVVBEQVRFX0ZMQUdfVElUTEV9YDtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5VUERBVEVfRkxBR19USVRMRV9FWFRFUk5BTDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5OT05FO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBjb21tZW50cyBhbmQgc3RhdHVzIHJlYXNvbiBlbnRyeVxuICAgIHRoaXMudmFsaWRhdGVUZXh0RW50cnkoKTtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNsYXRpb25OZWVkZWQoKTtcblxuICAgIC8vIFNldCBzZWxlY3RlZCBmbGFnIHN0YXR1cyB0byBcIkluYWN0aXZlXCIgaWYgdXBkYXRlIGlzIGJ5IGV4dGVybmFsIHVzZXJcbiAgICBpZiAodGhpcy5leHRlcm5hbFVzZXJVcGRhdGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTKT8uc2V0VmFsdWUoT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpWzJdKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlLCBlcnJvciBtZXNzYWdlcywgYW5kIHNlbGVjdGVkIGZsYWcgZGV0YWlsIHRvIHRoZSBwYXJlbnQuIFRoZSBzZWxlY3RlZCBmbGFnIG11c3QgYmVcbiAgICAvLyByZS1lbWl0dGVkIGJlY2F1c2UgdGhlIHBhcmVudCBjb21wb25lbnQgcmVwb3B1bGF0ZXMgdGhpcyBvbiBoYW5kbGluZyB0aGlzIEV2ZW50RW1pdHRlclxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBzZWxlY3RlZEZsYWc6IHRoaXMuc2VsZWN0ZWRGbGFnLFxuICAgIH0pO1xuXG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlVHJhbnNsYXRpb25OZWVkZWQoKTogdm9pZCB7XG4gICAgLy8gaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgdXNlciBjYW4gc2VsZWN0IHRvIGhhdmUgdHJhbnNsYXRpb24gYW5kIHRoZW4gbmF2aWdhdGUgYmFjayB0byByZW1vdmUgdGhlIHJlcXVpcmVkIHRyYW5zbGF0aW9uIGluIHRoZSBzYW1lIGpvdXJuZXlcbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBhbnkgb2YgdGhlIHRyYW5zbGF0aW9uIGZpZWxkcyBhcHBsaWVkIGFuZCByZW1vdmUgaWYgdGhleSBkb1xuICAgIGNvbnN0IGZsYWdEZXRhaWxzID0gdGhpcy5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbDtcbiAgICBjb25zdCBpc1RyYW5zbGF0aW9uUmVxdWlyZWQgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZS5mbGFnSXNXZWxzaFRyYW5zbGF0aW9uTmVlZGVkO1xuICAgIGNvbnN0IGhhc1RyYW5zbGF0aW9uRmllbGRzID0gKGZsYWdEZXRhaWxzLmZsYWdDb21tZW50X2N5IHx8IGZsYWdEZXRhaWxzLm90aGVyRGVzY3JpcHRpb24gfHwgZmxhZ0RldGFpbHMub3RoZXJEZXNjcmlwdGlvbl9jeSk7XG4gICAgaWYgKCFpc1RyYW5zbGF0aW9uUmVxdWlyZWQgJiYgaGFzVHJhbnNsYXRpb25GaWVsZHMpIHtcbiAgICAgIGZsYWdEZXRhaWxzLmZsYWdDb21tZW50X2N5ID0gbnVsbDtcbiAgICAgIGZsYWdEZXRhaWxzLm90aGVyRGVzY3JpcHRpb24gPSBudWxsO1xuICAgICAgZmxhZ0RldGFpbHMub3RoZXJEZXNjcmlwdGlvbl9jeSA9IG51bGw7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdmbGFnQ29tbWVudF9jeScpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnb3RoZXJEZXNjcmlwdGlvbicpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnb3RoZXJEZXNjcmlwdGlvbl9jeScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1ha2VJbmFjdGl2ZSgpOiB2b2lkIHtcbiAgICAvLyBTZXQgc2VsZWN0ZWQgZmxhZyBzdGF0dXMgdG8gXCJJbmFjdGl2ZVwiIG9uIHNjcmVlbiBhbmQgaW4gdGhlIEZvcm1Hcm91cFxuICAgIHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwuc3RhdHVzID0gQ2FzZUZsYWdTdGF0dXMuSU5BQ1RJVkU7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVMpPy5zZXRWYWx1ZShPYmplY3Qua2V5cyhDYXNlRmxhZ1N0YXR1cylbMl0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRleHRFbnRyeSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1lbnRzTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5jb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5zdGF0dXNSZWFzb25Ob3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLnN0YXR1c1JlYXNvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgLy8gVmFsaWRhdGlvbiBzaG91bGQgZmFpbCBpZiB0aGUgZmxhZyBoYXMgYW4gZXhpc3RpbmcgY29tbWVudCBhbmQgaXQgaGFzIGJlZW4gZGVsZXRlZCBvbiBzY3JlZW47IGNvbnZlcnNlbHksIGlmIHRoZXJlXG4gICAgLy8gaXMgbm8gZXhpc3RpbmcgY29tbWVudCB0aGVuIG9uZSBpcyBub3QgcmVxdWlyZWQgZm9yIHZhbGlkYXRpb24gdG8gcGFzc1xuICAgIGNvbnN0IGNvbW1lbnQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTKT8udmFsdWU7XG4gICAgaWYgKCFjb21tZW50ICYmICh0aGlzLmZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgfHwgdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5KSkge1xuICAgICAgdGhpcy5jb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSAhdGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlclxuICAgICAgICA/IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuTk9ORVxuICAgICAgICA6IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19OT1RfRU5URVJFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5jb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbW1lbnQgJiYgY29tbWVudC5sZW5ndGggPiB0aGlzLnRleHRNYXhDaGFyTGltaXQpIHtcbiAgICAgIHRoaXMuY29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdHVzUmVhc29uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTik/LnZhbHVlO1xuICAgIGNvbnN0IGZsYWdTdGF0dXNOb3RBcHByb3ZlZEtleSA9IE9iamVjdC5rZXlzKENhc2VGbGFnU3RhdHVzKS5maW5kKChrZXkpID0+IENhc2VGbGFnU3RhdHVzW2tleV0gPT09IENhc2VGbGFnU3RhdHVzLk5PVF9BUFBST1ZFRCk7XG4gICAgLy8gU3RhdHVzIHJlYXNvbiBpcyBtYW5kYXRvcnkgaWYgZmxhZyBzdGF0dXMgaXMgXCJOb3QgYXBwcm92ZWRcIiBvciB1c2VyIGlzIGV4dGVybmFsXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTKT8udmFsdWUgPT09IGZsYWdTdGF0dXNOb3RBcHByb3ZlZEtleSAmJiAhc3RhdHVzUmVhc29uKSB7XG4gICAgICB0aGlzLnN0YXR1c1JlYXNvbk5vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fTk9UX0VOVEVSRUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuU1RBVFVTX1JFQVNPTl9OT1RfRU5URVJFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFVzZXJVcGRhdGUgJiYgIXN0YXR1c1JlYXNvbikge1xuICAgICAgdGhpcy5zdGF0dXNSZWFzb25Ob3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5TVEFUVVNfUkVBU09OX05PVF9FTlRFUkVEX0VYVEVSTkFMO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fTk9UX0VOVEVSRURfRVhURVJOQUwsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTlxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1c1JlYXNvbiAmJiBzdGF0dXNSZWFzb24ubGVuZ3RoID4gdGhpcy50ZXh0TWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLnN0YXR1c1JlYXNvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuU1RBVFVTX1JFQVNPTl9DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpIHtcbiAgICB0aGlzLm9uTmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hhcmFjdGVyLWNvdW50XCIgZGF0YS1tYXhsZW5ndGg9XCIyMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXIgZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLW1cIj5cbiAgICAgICAgICB7e3VwZGF0ZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2gxPlxuICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWhpbnQtZXh0ZXJuYWxcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cImV4dGVybmFsVXNlclVwZGF0ZVwiPlxuICAgICAgICB7e3NlbGVjdGVkRmxhZz8uZmxhZ0RldGFpbERpc3BsYXk/LmZsYWdEZXRhaWwgfCB1cGRhdGVGbGFnVGl0bGVEaXNwbGF5fX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLXNcIiBbZm9yXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBleHRlcm5hbFVzZXJVcGRhdGVcbiAgICAgICAgICAgICAgPyAodXBkYXRlRmxhZ1N0ZXBFbnVtLkNPTU1FTlRfRklFTERfTEFCRUxfRVhURVJOQUwgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKHVwZGF0ZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZSkgKyAoJyBjb21tZW50cycgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWhpbnQtZXh0ZXJuYWxcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cImV4dGVybmFsVXNlclVwZGF0ZVwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLkNPTU1FTlRfSElOVF9URVhUX0VYVEVSTkFMIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnRlcm5hbFVzZXJVcGRhdGUgfHwgaW50ZXJuYWxVc2VyMlBvaW50MUVuYWJsZWRVcGRhdGUgfHwgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09ICcnO1xuICAgICAgICAgIGVsc2UgZXh0ZXJuYWxVc2VyXCI+XG4gICAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIGludGVybmFsVXNlclVwZGF0ZVxuICAgICAgICAgICAgICAgID8gKHVwZGF0ZUZsYWdTdGVwRW51bS5DT01NRU5UX0hJTlRfVEVYVF9JTlRFUk5BTCB8IHJweFRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6ICh1cGRhdGVGbGFnU3RlcEVudW0uQ09NTUVOVF9ISU5UX1RFWFRfSU5URVJOQUxfMl9QT0lOVF8xIHwgcnB4VHJhbnNsYXRlKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCIgKm5nSWY9XCJpbnRlcm5hbFVzZXIyUG9pbnQxRW5hYmxlZFVwZGF0ZSAmJiBleHRlcm5hbGx5VmlzaWJsZUZsYWdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+ITwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZVwiPnt7J1dhcm5pbmcnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLldBUk5JTkdfVEVYVCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctY29tbWVudHMtbm90LWVudGVyZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tjb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1jb21tZW50cy1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7Y29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImdvdnVrLXRleHRhcmVhXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCJcbiAgICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwidXBkYXRlLWZsYWctY29tbWVudHMtaGludCB1cGRhdGUtZmxhZy1jb21tZW50cy1jaGFyLWxpbWl0LWluZm8gdXBkYXRlLWZsYWctY29tbWVudHMtY2hhci1saW1pdC1lcnJvclwiPlxuICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWNoYXItbGltaXQtaW5mb1wiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLkNIQVJBQ1RFUl9MSU1JVF9JTkZPIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZXh0ZXJuYWxVc2VyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHRlcm5hbFVzZXJVcGRhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGRhdGVGbGFnU3RhdHVzUmVhc29uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLXRlbXBsYXRlICN1cGRhdGVGbGFnU3RhdHVzUmVhc29uPlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1ub3QtZW50ZXJlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzdGF0dXNSZWFzb25Ob3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7c3RhdHVzUmVhc29uTm90RW50ZXJlZEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tzdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTlwiXG4gICAgICAgICAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT05cIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT05cIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWhpbnQtZXh0ZXJuYWwgdXBkYXRlLWZsYWctc3RhdHVzLWhpbnQgdXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1jaGFyLWxpbWl0LWluZm9cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZS1mbGFnLXN0YXR1cy1yZWFzb24tY2hhci1saW1pdC1lcnJvclwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnU3RlcEVudW0uQ0hBUkFDVEVSX0xJTUlUX0lORk8gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLXN0YXR1cy1jb250YWluZXItdjJfMVwiIGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIiAqbmdJZj1cImludGVybmFsVXNlcjJQb2ludDFFbmFibGVkVXBkYXRlXCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cInVwZGF0ZS1mbGFnLXN0YXR1cy1oZWFkaW5nXCI+XG4gICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tc1wiPlxuICAgICAgICAgICAgPGgxIGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLWhlYWRpbmdcIiBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19oZWFkaW5nXCI+XG4gICAgICAgICAgICAgIHt7dXBkYXRlRmxhZ1RpdGxlIHwgcnB4VHJhbnNsYXRlfX0ge3snc3RhdHVzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgc3RhdHVzIG9mIHZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTICsgJ18nICsgc3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVUyArICdfJyArIHN0YXR1c1wiPlxuICAgICAgICAgICAgICAgIHt7Y2FzZUZsYWdTdGF0dXNFbnVtW3N0YXR1c10gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLXN0YXR1cy1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnU3RlcEVudW0uU1RBVFVTX0hJTlRfVEVYVCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBkYXRlRmxhZ1N0YXR1c1JlYXNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgaWQ9XCJ0cmFuc2xhdGlvbi1jaGVja2JveC1jb250YWluZXJcIiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS02XCIgKm5nSWY9XCJpbnRlcm5hbFVzZXIyUG9pbnQxRW5hYmxlZFVwZGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEXCJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRFwiXG4gICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRFwiPlxuICAgICAgICAgICAgICB7eydJIG5lZWQgdG8gYWRkIGEgdHJhbnNsYXRpb24nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLXN0YXR1cy1jb250YWluZXItdjFcIiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCIgKm5nSWY9XCJpbnRlcm5hbFVzZXJVcGRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS1oYWxmXCI+XG4gICAgICAgICAgPHA+e3snRmxhZyBzdGF0dXM6JyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXRhZ1wiIFtuZ0NsYXNzXT1cInsnZ292dWstdGFnLS1ncmV5Jzogc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwuc3RhdHVzID09PSAnSW5hY3RpdmUnfVwiPlxuICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRGbGFnPy5mbGFnRGV0YWlsRGlzcGxheT8uZmxhZ0RldGFpbD8uc3RhdHVzIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS1oYWxmXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk1ha2VJbmFjdGl2ZSgpXCIgKm5nSWY9XCJzZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbC5zdGF0dXMgPT09ICdBY3RpdmUnXCI+XG4gICAgICAgICAgICB7eydNYWtlIGluYWN0aXZlJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
528
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvdXBkYXRlLWZsYWcvdXBkYXRlLWZsYWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzVELE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7SUNQbkUsK0JBQWtGO0lBQ2hGLFlBQ0Y7O0lBQUEsaUJBQU07OztJQURKLGNBQ0Y7SUFERSxtTUFDRjs7O0lBVUUsK0JBQTJGO0lBQ3pGLFlBQ0Y7O0lBQUEsaUJBQU07OztJQURKLGNBQ0Y7SUFERSwy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eUNBQXVCO1lBRUgsZUFBMEQ7WUFBMUQsbUZBQTBEO1lBR2xGLGVBQ0Y7WUFERSwyRUFDRjtZQUVzRCxlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFLcEMsZUFBbUM7WUFBbkMscURBQW1DO1lBQzNFLGNBS0Y7WUFMRSx5TkFLRjtZQUNpRSxlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFHMUUsY0FDYjtZQUFBLEFBRGEsMkhBQ2IsNkJBQWlCO1lBMkRpRCxlQUFzQztZQUF0QywyREFBc0M7WUEyQmxDLGNBQXNDO1lBQXRDLDJEQUFzQztZQWVyRCxjQUF3QjtZQUF4Qiw2Q0FBd0I7OztpRkR4RzVFLG1CQUFtQjtjQUovQixTQUFTOzJCQUNFLGlCQUFpQjttR0FJWCxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBRVcsb0JBQW9CO2tCQUFwQyxNQUFNOztrRkFKSSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLFxuICBDYXNlRmxhZ0ZpZWxkU3RhdGUsXG4gIENhc2VGbGFnRm9ybUZpZWxkcyxcbiAgQ2FzZUZsYWdTdGF0dXMsXG4gIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLFxuICBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLFxuICBVcGRhdGVGbGFnU3RlcFxufSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlLWZpZWxkJztcbmltcG9ydCB7IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtdXBkYXRlLWZsYWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLWZsYWcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZUZsYWdDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEpvdXJuZXkge1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgc2VsZWN0ZWRGbGFnOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoO1xuICBwdWJsaWMgdXBkYXRlRmxhZ1RpdGxlID0gJyc7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgY29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIGNvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHN0YXR1c1JlYXNvbk5vdEVudGVyZWRFcnJvck1lc3NhZ2U6IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgc3RhdHVzUmVhc29uQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIHVwZGF0ZUZsYWdTdGVwRW51bSA9IFVwZGF0ZUZsYWdTdGVwO1xuICBwdWJsaWMgdmFsaWRTdGF0dXNQcm9ncmVzc2lvbnM6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZUZsYWdTdGF0dXNFbnVtID0gQ2FzZUZsYWdTdGF0dXM7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlRmxhZ0Zvcm1GaWVsZHMgPSBDYXNlRmxhZ0Zvcm1GaWVsZHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1heENoYXJMaW1pdCA9IDIwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbiA9ICdzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbic7XG4gIHByaXZhdGUgZmxhZ0RldGFpbDogRmxhZ0RldGFpbDtcbiAgcHVibGljIGNhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyO1xuICBwdWJsaWMgZXh0ZXJuYWxVc2VyVXBkYXRlID0gZmFsc2U7XG4gIHB1YmxpYyBpbnRlcm5hbFVzZXJVcGRhdGUgPSBmYWxzZTtcbiAgcHVibGljIGludGVybmFsVXNlcjJQb2ludDFFbmFibGVkVXBkYXRlID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBleHRlcm5hbGx5VmlzaWJsZUZsYWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LnZpc2liaWxpdHk/LnRvTG93ZXJDYXNlKCkgPT09ICdleHRlcm5hbCc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJweFRyYW5zbGF0aW9uU2VydmljZTogUnB4VHJhbnNsYXRpb25TZXJ2aWNlLCBcbiAgICBtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2U6IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgd2hldGhlciB0aGlzIGlzIGFuIGV4dGVybmFsLCBpbnRlcm5hbCwgb3IgaW50ZXJuYWwgQ2FzZSBGbGFncyB2Mi4xIGVuYWJsZWQgdXNlciB1cGRhdGVcbiAgICB0aGlzLmV4dGVybmFsVXNlclVwZGF0ZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMO1xuICAgIHRoaXMuaW50ZXJuYWxVc2VyVXBkYXRlID0gdGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU7XG4gICAgdGhpcy5pbnRlcm5hbFVzZXIyUG9pbnQxRW5hYmxlZFVwZGF0ZSA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTtcbiAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uKT8udmFsdWUgYXMgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWc/LmZsYWdEZXRhaWxEaXNwbGF5Py5mbGFnRGV0YWlsKSB7XG4gICAgICB0aGlzLmZsYWdEZXRhaWwgPSB0aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsO1xuICAgICAgLy8gSWYgcHJlc2VudCwgdXNlIHRoZSAqb3JpZ2luYWwqIGZsYWcgc3RhdHVzLCBub3QgdGhlIG9uZSBpbiB0aGUgZmxhZ0RldGFpbCBvYmplY3QsIGJlY2F1c2UgdGhlIHN0YXR1cyBjb3VsZCBoYXZlXG4gICAgICAvLyBiZWVuIG1vZGlmaWVkIHZpYSBhIHByZXZpb3VzIFwiVXBkYXRlIEZsYWdcIiBqb3VybmV5IHRocm91Z2ggdGhlIFVJIGJ1dCBub3QgcGVyc2lzdGVkIHlldCAodGh1cyBub3QgdGhlICp0cnVlKiBmbGFnXG4gICAgICAvLyBzdGF0dXMpLiBPdGhlcndpc2UsIHVzZSB0aGUgc3RhdHVzIGZyb20gdGhlIGZsYWdEZXRhaWwgb2JqZWN0IChpbml0aWFsbHksIHRoZSBvcmlnaW5hbCBmbGFnIHN0YXR1cyB3b24ndCBiZVxuICAgICAgLy8gcHJlc2VudCBiZWNhdXNlIGl0IGdldHMgY2FjaGVkIG9ubHkgb24gZmlyc3QgdXBkYXRlIGJ5IFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudClcbiAgICAgIGNvbnN0IGN1cnJlbnRGbGFnU3RhdHVzS2V5ID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpLmZpbmQoXG4gICAgICAgIChrZXkpID0+IENhc2VGbGFnU3RhdHVzW2tleV0gPT09ICh0aGlzLnNlbGVjdGVkRmxhZy5vcmlnaW5hbFN0YXR1cyB8fCB0aGlzLmZsYWdEZXRhaWwuc3RhdHVzKSk7XG5cbiAgICAgIC8vIFBvcHVsYXRlIGZsYWcgY29tbWVudHMgdGV4dCBhcmVhIHdpdGggZXhpc3RpbmcgY29tbWVudHM7IHVzZSB0aGUgY29tbWVudHMgYXBwcm9wcmlhdGUgZm9yIHRoZSBzZWxlY3RlZCBsYW5ndWFnZSxcbiAgICAgIC8vIGZhbGxpbmcgYmFjayBvbiB0aGVpciBhbHRlcm5hdGUgY291bnRlcnBhcnQgaWYgbm9uZSBhcmUgYXZhaWxhYmxlLiBDb21tZW50cyBhcmUgdG8gYmUgcG9wdWxhdGVkIG9uZSB0aW1lIG9ubHkgLVxuICAgICAgLy8gd2hlbiB0aGUgdXNlciBmaXJzdCB2aXNpdHMgdGhlIHBhZ2UgLSBldmVuIGlmIHRoZXkgc3dpdGNoIGxhbmd1YWdlIHN1YnNlcXVlbnRseVxuICAgICAgbGV0IGV4aXN0aW5nQ29tbWVudHM6IHN0cmluZztcbiAgICAgIGlmICh0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5Jykge1xuICAgICAgICBleGlzdGluZ0NvbW1lbnRzID0gdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5IHx8IHRoaXMuZmxhZ0RldGFpbC5mbGFnQ29tbWVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aXN0aW5nQ29tbWVudHMgPSB0aGlzLmZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgfHwgdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5O1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFMsIG5ldyBGb3JtQ29udHJvbChleGlzdGluZ0NvbW1lbnRzKSk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVMsIG5ldyBGb3JtQ29udHJvbChjdXJyZW50RmxhZ1N0YXR1c0tleSkpO1xuICAgICAgLy8gUG9wdWxhdGUgc3RhdHVzIHJlYXNvbiBvbmx5IGlmIHRoZSB1c2VyIGlzIG5vdCBleHRlcm5hbFxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT04sIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgdGhpcy5leHRlcm5hbFVzZXJVcGRhdGUgPyAnJyA6IHRoaXMuZmxhZ0RldGFpbC5mbGFnVXBkYXRlQ29tbWVudCkpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVELCBuZXcgRm9ybUNvbnRyb2woZmFsc2UpKTtcblxuICAgICAgdGhpcy51cGRhdGVGbGFnVGl0bGUgPSB0aGlzLnNldFVwZGF0ZUNhc2VGbGFnVGl0bGUodGhpcy5mbGFnRGV0YWlsKTtcblxuICAgICAgLy8gU2V0IHRoZSB2YWxpZCBzdGF0dXMgb3B0aW9ucyBmb3IgZGlzcGxheSwgYmFzZWQgb24gY3VycmVudCBzdGF0dXMgb2YgdGhlIHNlbGVjdGVkIGZsYWcuIFwiQWN0aXZlXCIgZmxhZ3MgY2FuXG4gICAgICAvLyByZW1haW4gXCJBY3RpdmVcIiBvciBtb3ZlIHRvIFwiSW5hY3RpdmVcIiBvbmx5OyBcIlJlcXVlc3RlZFwiIGZsYWdzIGNhbiByZW1haW4gXCJSZXF1ZXN0ZWRcIiBvciBtb3ZlIHRvIFwiQWN0aXZlXCIsXG4gICAgICAvLyBcIkluYWN0aXZlXCIsIG9yIFwiTm90IGFwcHJvdmVkXCIuIE5vIG90aGVyIHN0YXR1cyBwcm9ncmVzc2lvbnMgYXJlIHZhbGlkXG4gICAgICBpZiAoY3VycmVudEZsYWdTdGF0dXNLZXkpIHtcbiAgICAgICAgc3dpdGNoIChjdXJyZW50RmxhZ1N0YXR1c0tleSkge1xuICAgICAgICAgIGNhc2UgJ0FDVElWRSc6XG4gICAgICAgICAgICB0aGlzLnZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zID0gT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpLmZpbHRlcigoa2V5KSA9PiAhWydSRVFVRVNURUQnLCAnTk9UX0FQUFJPVkVEJ10uaW5jbHVkZXMoa2V5KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdSRVFVRVNURUQnOlxuICAgICAgICAgICAgdGhpcy52YWxpZFN0YXR1c1Byb2dyZXNzaW9ucyA9IE9iamVjdC5rZXlzKENhc2VGbGFnU3RhdHVzKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aGlzLnZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0VXBkYXRlQ2FzZUZsYWdUaXRsZShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU6XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTpcbiAgICAgICAgaWYgKGZsYWdEZXRhaWw/Lm5hbWUpIHtcbiAgICAgICAgICBjb25zdCBzdWJUeXBlVmFsdWUgPSBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSB8fCBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZV9jeVxuICAgICAgICAgICAgPyBgLCAke2ZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlIHx8IGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlX2N5fWBcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgY29uc3Qgb3RoZXJEZXNjcmlwdGlvbiA9IGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbiB8fCBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb25fY3lcbiAgICAgICAgICAgID8gYCwgJHtmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb24gfHwgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uX2N5fWBcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgcmV0dXJuIHN1YlR5cGVWYWx1ZVxuICAgICAgICAgICAgPyBgJHtDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5VUERBVEVfRkxBR19USVRMRX0gXCIke2ZsYWdEZXRhaWwubmFtZX0ke3N1YlR5cGVWYWx1ZX1cImBcbiAgICAgICAgICAgIDogYCR7Q2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuVVBEQVRFX0ZMQUdfVElUTEV9IFwiJHtmbGFnRGV0YWlsLm5hbWV9JHtvdGhlckRlc2NyaXB0aW9ufVwiYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7Q2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuVVBEQVRFX0ZMQUdfVElUTEV9YDtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5VUERBVEVfRkxBR19USVRMRV9FWFRFUk5BTDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5OT05FO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBjb21tZW50cyBhbmQgc3RhdHVzIHJlYXNvbiBlbnRyeVxuICAgIHRoaXMudmFsaWRhdGVUZXh0RW50cnkoKTtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNsYXRpb25OZWVkZWQoKTtcblxuICAgIC8vIFNldCBzZWxlY3RlZCBmbGFnIHN0YXR1cyB0byBcIkluYWN0aXZlXCIgaWYgdXBkYXRlIGlzIGJ5IGV4dGVybmFsIHVzZXJcbiAgICBpZiAodGhpcy5leHRlcm5hbFVzZXJVcGRhdGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTKT8uc2V0VmFsdWUoT2JqZWN0LmtleXMoQ2FzZUZsYWdTdGF0dXMpWzJdKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlLCBlcnJvciBtZXNzYWdlcywgYW5kIHNlbGVjdGVkIGZsYWcgZGV0YWlsIHRvIHRoZSBwYXJlbnQuIFRoZSBzZWxlY3RlZCBmbGFnIG11c3QgYmVcbiAgICAvLyByZS1lbWl0dGVkIGJlY2F1c2UgdGhlIHBhcmVudCBjb21wb25lbnQgcmVwb3B1bGF0ZXMgdGhpcyBvbiBoYW5kbGluZyB0aGlzIEV2ZW50RW1pdHRlclxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBzZWxlY3RlZEZsYWc6IHRoaXMuc2VsZWN0ZWRGbGFnLFxuICAgIH0pO1xuXG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlVHJhbnNsYXRpb25OZWVkZWQoKTogdm9pZCB7XG4gICAgLy8gaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgdXNlciBjYW4gc2VsZWN0IHRvIGhhdmUgdHJhbnNsYXRpb24gYW5kIHRoZW4gbmF2aWdhdGUgYmFjayB0byByZW1vdmUgdGhlIHJlcXVpcmVkIHRyYW5zbGF0aW9uIGluIHRoZSBzYW1lIGpvdXJuZXlcbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBhbnkgb2YgdGhlIHRyYW5zbGF0aW9uIGZpZWxkcyBhcHBsaWVkIGFuZCByZW1vdmUgaWYgdGhleSBkb1xuICAgIGNvbnN0IGZsYWdEZXRhaWxzID0gdGhpcy5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbDtcbiAgICBjb25zdCBpc1RyYW5zbGF0aW9uUmVxdWlyZWQgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZS5mbGFnSXNXZWxzaFRyYW5zbGF0aW9uTmVlZGVkO1xuICAgIGNvbnN0IGhhc1RyYW5zbGF0aW9uRmllbGRzID0gKGZsYWdEZXRhaWxzLmZsYWdDb21tZW50X2N5IHx8IGZsYWdEZXRhaWxzLm90aGVyRGVzY3JpcHRpb24gfHwgZmxhZ0RldGFpbHMub3RoZXJEZXNjcmlwdGlvbl9jeSk7XG4gICAgaWYgKCFpc1RyYW5zbGF0aW9uUmVxdWlyZWQgJiYgaGFzVHJhbnNsYXRpb25GaWVsZHMpIHtcbiAgICAgIGZsYWdEZXRhaWxzLmZsYWdDb21tZW50X2N5ID0gbnVsbDtcbiAgICAgIGZsYWdEZXRhaWxzLm90aGVyRGVzY3JpcHRpb24gPSBudWxsO1xuICAgICAgZmxhZ0RldGFpbHMub3RoZXJEZXNjcmlwdGlvbl9jeSA9IG51bGw7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdmbGFnQ29tbWVudF9jeScpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnb3RoZXJEZXNjcmlwdGlvbicpO1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnb3RoZXJEZXNjcmlwdGlvbl9jeScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1ha2VJbmFjdGl2ZSgpOiB2b2lkIHtcbiAgICAvLyBTZXQgc2VsZWN0ZWQgZmxhZyBzdGF0dXMgdG8gXCJJbmFjdGl2ZVwiIG9uIHNjcmVlbiBhbmQgaW4gdGhlIEZvcm1Hcm91cFxuICAgIHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwuc3RhdHVzID0gQ2FzZUZsYWdTdGF0dXMuSU5BQ1RJVkU7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVMpPy5zZXRWYWx1ZShPYmplY3Qua2V5cyhDYXNlRmxhZ1N0YXR1cylbMl0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRleHRFbnRyeSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1lbnRzTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5jb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5zdGF0dXNSZWFzb25Ob3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLnN0YXR1c1JlYXNvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgLy8gVmFsaWRhdGlvbiBzaG91bGQgZmFpbCBpZiB0aGUgZmxhZyBoYXMgYW4gZXhpc3RpbmcgY29tbWVudCBhbmQgaXQgaGFzIGJlZW4gZGVsZXRlZCBvbiBzY3JlZW47IGNvbnZlcnNlbHksIGlmIHRoZXJlXG4gICAgLy8gaXMgbm8gZXhpc3RpbmcgY29tbWVudCB0aGVuIG9uZSBpcyBub3QgcmVxdWlyZWQgZm9yIHZhbGlkYXRpb24gdG8gcGFzc1xuICAgIGNvbnN0IGNvbW1lbnQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTKT8udmFsdWU7XG4gICAgaWYgKCFjb21tZW50ICYmICh0aGlzLmZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgfHwgdGhpcy5mbGFnRGV0YWlsLmZsYWdDb21tZW50X2N5KSkge1xuICAgICAgdGhpcy5jb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSAhdGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlclxuICAgICAgICA/IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuTk9ORVxuICAgICAgICA6IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19OT1RfRU5URVJFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5jb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbW1lbnQgJiYgY29tbWVudC5sZW5ndGggPiB0aGlzLnRleHRNYXhDaGFyTGltaXQpIHtcbiAgICAgIHRoaXMuY29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdHVzUmVhc29uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTik/LnZhbHVlO1xuICAgIGNvbnN0IGZsYWdTdGF0dXNOb3RBcHByb3ZlZEtleSA9IE9iamVjdC5rZXlzKENhc2VGbGFnU3RhdHVzKS5maW5kKChrZXkpID0+IENhc2VGbGFnU3RhdHVzW2tleV0gPT09IENhc2VGbGFnU3RhdHVzLk5PVF9BUFBST1ZFRCk7XG4gICAgLy8gU3RhdHVzIHJlYXNvbiBpcyBtYW5kYXRvcnkgaWYgZmxhZyBzdGF0dXMgaXMgXCJOb3QgYXBwcm92ZWRcIiBvciB1c2VyIGlzIGV4dGVybmFsXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTKT8udmFsdWUgPT09IGZsYWdTdGF0dXNOb3RBcHByb3ZlZEtleSAmJiAhc3RhdHVzUmVhc29uKSB7XG4gICAgICB0aGlzLnN0YXR1c1JlYXNvbk5vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fTk9UX0VOVEVSRUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuU1RBVFVTX1JFQVNPTl9OT1RfRU5URVJFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFVzZXJVcGRhdGUgJiYgIXN0YXR1c1JlYXNvbikge1xuICAgICAgdGhpcy5zdGF0dXNSZWFzb25Ob3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gVXBkYXRlRmxhZ0Vycm9yTWVzc2FnZS5TVEFUVVNfUkVBU09OX05PVF9FTlRFUkVEX0VYVEVSTkFMO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fTk9UX0VOVEVSRURfRVhURVJOQUwsXG4gICAgICAgIGZpZWxkSWQ6IENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTlxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1c1JlYXNvbiAmJiBzdGF0dXNSZWFzb24ubGVuZ3RoID4gdGhpcy50ZXh0TWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLnN0YXR1c1JlYXNvbkNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IFVwZGF0ZUZsYWdFcnJvck1lc3NhZ2UuU1RBVFVTX1JFQVNPTl9DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBVcGRhdGVGbGFnRXJyb3JNZXNzYWdlLlNUQVRVU19SRUFTT05fQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgZmllbGRJZDogQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpIHtcbiAgICB0aGlzLm9uTmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hhcmFjdGVyLWNvdW50XCIgZGF0YS1tYXhsZW5ndGg9XCIyMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXIgZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLW1cIj5cbiAgICAgICAgICB7e3VwZGF0ZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2gxPlxuICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWhpbnQtZXh0ZXJuYWxcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cImV4dGVybmFsVXNlclVwZGF0ZVwiPlxuICAgICAgICB7e3NlbGVjdGVkRmxhZz8uZmxhZ0RldGFpbERpc3BsYXk/LmZsYWdEZXRhaWwgfCB1cGRhdGVGbGFnVGl0bGVEaXNwbGF5fX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLXNcIiBbZm9yXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBleHRlcm5hbFVzZXJVcGRhdGVcbiAgICAgICAgICAgICAgPyAodXBkYXRlRmxhZ1N0ZXBFbnVtLkNPTU1FTlRfRklFTERfTEFCRUxfRVhURVJOQUwgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKHVwZGF0ZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZSkgKyAoJyBjb21tZW50cycgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWhpbnQtZXh0ZXJuYWxcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cImV4dGVybmFsVXNlclVwZGF0ZVwiPlxuICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLkNPTU1FTlRfSElOVF9URVhUX0VYVEVSTkFMIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnRlcm5hbFVzZXJVcGRhdGUgfHwgaW50ZXJuYWxVc2VyMlBvaW50MUVuYWJsZWRVcGRhdGUgfHwgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09ICcnO1xuICAgICAgICAgIGVsc2UgZXh0ZXJuYWxVc2VyXCI+XG4gICAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIGludGVybmFsVXNlclVwZGF0ZVxuICAgICAgICAgICAgICAgID8gKHVwZGF0ZUZsYWdTdGVwRW51bS5DT01NRU5UX0hJTlRfVEVYVF9JTlRFUk5BTCB8IHJweFRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6ICh1cGRhdGVGbGFnU3RlcEVudW0uQ09NTUVOVF9ISU5UX1RFWFRfSU5URVJOQUxfMl9QT0lOVF8xIHwgcnB4VHJhbnNsYXRlKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCIgKm5nSWY9XCJpbnRlcm5hbFVzZXIyUG9pbnQxRW5hYmxlZFVwZGF0ZSAmJiBleHRlcm5hbGx5VmlzaWJsZUZsYWdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+ITwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZVwiPnt7J1dhcm5pbmcnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLldBUk5JTkdfVEVYVCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctY29tbWVudHMtbm90LWVudGVyZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tjb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgaWQ9XCJ1cGRhdGUtZmxhZy1jb21tZW50cy1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7Y29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImdvdnVrLXRleHRhcmVhXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU1wiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTXCJcbiAgICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwidXBkYXRlLWZsYWctY29tbWVudHMtaGludCB1cGRhdGUtZmxhZy1jb21tZW50cy1jaGFyLWxpbWl0LWluZm8gdXBkYXRlLWZsYWctY29tbWVudHMtY2hhci1saW1pdC1lcnJvclwiPlxuICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWNoYXItbGltaXQtaW5mb1wiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICAgIHt7dXBkYXRlRmxhZ1N0ZXBFbnVtLkNIQVJBQ1RFUl9MSU1JVF9JTkZPIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZXh0ZXJuYWxVc2VyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHRlcm5hbFVzZXJVcGRhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGRhdGVGbGFnU3RhdHVzUmVhc29uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLXRlbXBsYXRlICN1cGRhdGVGbGFnU3RhdHVzUmVhc29uPlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1ub3QtZW50ZXJlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzdGF0dXNSZWFzb25Ob3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7c3RhdHVzUmVhc29uTm90RW50ZXJlZEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1jaGFyLWxpbWl0LWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tzdGF0dXNSZWFzb25DaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTlwiXG4gICAgICAgICAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT05cIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTX0NIQU5HRV9SRUFTT05cIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cInVwZGF0ZS1mbGFnLWNvbW1lbnRzLWhpbnQtZXh0ZXJuYWwgdXBkYXRlLWZsYWctc3RhdHVzLWhpbnQgdXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1jaGFyLWxpbWl0LWluZm9cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZS1mbGFnLXN0YXR1cy1yZWFzb24tY2hhci1saW1pdC1lcnJvclwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLXJlYXNvbi1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnU3RlcEVudW0uQ0hBUkFDVEVSX0xJTUlUX0lORk8gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLXN0YXR1cy1jb250YWluZXItdjJfMVwiIGNsYXNzPVwiZ292dWstIS1tYXJnaW4tYm90dG9tLTRcIiAqbmdJZj1cImludGVybmFsVXNlcjJQb2ludDFFbmFibGVkVXBkYXRlXCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cInVwZGF0ZS1mbGFnLXN0YXR1cy1oZWFkaW5nXCI+XG4gICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tc1wiPlxuICAgICAgICAgICAgPGgxIGlkPVwidXBkYXRlLWZsYWctc3RhdHVzLWhlYWRpbmdcIiBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19oZWFkaW5nXCI+XG4gICAgICAgICAgICAgIHt7dXBkYXRlRmxhZ1RpdGxlIHwgcnB4VHJhbnNsYXRlfX0ge3snc3RhdHVzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgW2lkXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgc3RhdHVzIG9mIHZhbGlkU3RhdHVzUHJvZ3Jlc3Npb25zXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTICsgJ18nICsgc3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVUyArICdfJyArIHN0YXR1c1wiPlxuICAgICAgICAgICAgICAgIHt7Y2FzZUZsYWdTdGF0dXNFbnVtW3N0YXR1c10gfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgICAgPGRpdiBpZD1cInVwZGF0ZS1mbGFnLXN0YXR1cy1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICAgICAge3t1cGRhdGVGbGFnU3RlcEVudW0uU1RBVFVTX0hJTlRfVEVYVCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBkYXRlRmxhZ1N0YXR1c1JlYXNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgaWQ9XCJ0cmFuc2xhdGlvbi1jaGVja2JveC1jb250YWluZXJcIiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS02XCIgKm5nSWY9XCJpbnRlcm5hbFVzZXIyUG9pbnQxRW5hYmxlZFVwZGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEXCJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwiY2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRFwiXG4gICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRFwiPlxuICAgICAgICAgICAgICB7eydJIG5lZWQgdG8gYWRkIGEgdHJhbnNsYXRpb24nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLXN0YXR1cy1jb250YWluZXItdjFcIiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCIgKm5nSWY9XCJpbnRlcm5hbFVzZXJVcGRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS1oYWxmXCI+XG4gICAgICAgICAgPHA+e3snRmxhZyBzdGF0dXM6JyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXRhZ1wiIFtuZ0NsYXNzXT1cInsnZ292dWstdGFnLS1ncmV5Jzogc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwuc3RhdHVzID09PSAnSW5hY3RpdmUnfVwiPlxuICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRGbGFnPy5mbGFnRGV0YWlsRGlzcGxheT8uZmxhZ0RldGFpbD8uc3RhdHVzIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS1oYWxmXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk1ha2VJbmFjdGl2ZSgpXCIgKm5nSWY9XCJzZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbC5zdGF0dXMgPT09ICdBY3RpdmUnXCI+XG4gICAgICAgICAgICB7eydNYWtlIGluYWN0aXZlJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|