@sumaris-net/ngx-components 2.7.0-rc1 → 2.7.0-rc11
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/public_api.mjs +2 -3
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +1 -1
- package/esm2022/src/app/admin/services/person.service.mjs +2 -2
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +1 -1
- package/esm2022/src/app/admin/users/users.mjs +3 -3
- package/esm2022/src/app/core/about/about.modal.mjs +1 -1
- package/esm2022/src/app/core/account/account.page.mjs +1 -1
- package/esm2022/src/app/core/account/new-token.modal.mjs +2 -2
- package/esm2022/src/app/core/account/token.table.mjs +1 -1
- package/esm2022/src/app/core/auth/auth.form.mjs +1 -1
- package/esm2022/src/app/core/auth/auth.modal.mjs +1 -1
- package/esm2022/src/app/core/form/entity/editor.class.mjs +1 -1
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +1 -1
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +3 -3
- package/esm2022/src/app/core/form/form.class.mjs +1 -1
- package/esm2022/src/app/core/form/form.utils.mjs +1 -1
- package/esm2022/src/app/core/form/list/list.form.mjs +1 -1
- package/esm2022/src/app/core/form/properties/properties.form.mjs +1 -1
- package/esm2022/src/app/core/form/properties/properties.table.mjs +2 -2
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +1 -1
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +1 -1
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +1 -1
- package/esm2022/src/app/core/graphql/graphql.service.mjs +1 -1
- package/esm2022/src/app/core/graphql/graphql.utils.mjs +1 -1
- package/esm2022/src/app/core/home/home.mjs +3 -3
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +1 -1
- package/esm2022/src/app/core/menu/menu.component.mjs +3 -3
- package/esm2022/src/app/core/menu/menu.model.mjs +1 -1
- package/esm2022/src/app/core/menu/menu.service.mjs +1 -1
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +1 -1
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +1 -1
- package/esm2022/src/app/core/register/register-confirm.page.mjs +3 -3
- package/esm2022/src/app/core/register/register.form.mjs +1 -1
- package/esm2022/src/app/core/register/register.modal.mjs +1 -1
- package/esm2022/src/app/core/services/account.service.mjs +1 -1
- package/esm2022/src/app/core/services/auth-guard.service.mjs +1 -1
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +1 -1
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +1 -1
- package/esm2022/src/app/core/services/base58.mjs +1 -1
- package/esm2022/src/app/core/services/config.service.mjs +1 -1
- package/esm2022/src/app/core/services/errors.mjs +3 -3
- package/esm2022/src/app/core/services/local-settings.service.mjs +1 -1
- package/esm2022/src/app/core/services/model/account.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/config.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +1 -1
- package/esm2022/src/app/core/services/model/entity.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/filter.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/person.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/referential.model.mjs +3 -3
- package/esm2022/src/app/core/services/model/token.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +1 -1
- package/esm2022/src/app/core/services/network.service.mjs +1 -1
- package/esm2022/src/app/core/services/network.types.mjs +1 -1
- package/esm2022/src/app/core/services/network.utils.mjs +1 -1
- package/esm2022/src/app/core/services/platform.service.mjs +2 -2
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +1 -1
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +1 -1
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +1 -1
- package/esm2022/src/app/core/services/validator/account.validator.mjs +1 -1
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +1 -1
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +1 -1
- package/esm2022/src/app/core/settings/settings.page.mjs +2 -2
- package/esm2022/src/app/core/table/actions-column.component.mjs +1 -1
- package/esm2022/src/app/core/table/async-table.class.mjs +1 -1
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +1 -1
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +2 -2
- package/esm2022/src/app/core/table/memory-table.class.mjs +1 -1
- package/esm2022/src/app/core/table/table.class.mjs +1 -1
- package/esm2022/src/app/core/table/table.utils.mjs +1 -1
- package/esm2022/src/app/core/table/testing/table.testing.mjs +2 -2
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +4 -4
- package/esm2022/src/app/shared/alerts.mjs +1 -1
- package/esm2022/src/app/shared/audio/audio.mjs +1 -1
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +1 -1
- package/esm2022/src/app/shared/dates.mjs +1 -1
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +1 -1
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +1 -1
- package/esm2022/src/app/shared/events.mjs +1 -1
- package/esm2022/src/app/shared/file/csv.utils.mjs +1 -1
- package/esm2022/src/app/shared/file/file.service.mjs +1 -1
- package/esm2022/src/app/shared/file/file.utils.mjs +1 -1
- package/esm2022/src/app/shared/file/images.utils.mjs +1 -1
- package/esm2022/src/app/shared/file/json.utils.mjs +1 -1
- package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
- package/esm2022/src/app/shared/form/field.component.mjs +3 -3
- package/esm2022/src/app/shared/forms.mjs +1 -1
- package/esm2022/src/app/shared/functions.mjs +1 -1
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +1 -1
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +2 -2
- package/esm2022/src/app/shared/graph/colors.utils.mjs +1 -1
- package/esm2022/src/app/shared/graph/graph-colors.mjs +8 -8
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +1 -1
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +1 -1
- package/esm2022/src/app/shared/http/http.utils.mjs +1 -1
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +1 -1
- package/esm2022/src/app/shared/image/image.service.mjs +1 -1
- package/esm2022/src/app/shared/inputs.mjs +1 -1
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +1 -1
- package/esm2022/src/app/shared/logging/logger.model.mjs +1 -1
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +10 -4
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +1 -1
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +6 -11
- package/esm2022/src/app/shared/material/boolean/material-boolean.mjs +262 -0
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +4 -5
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +1 -1
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +2 -2
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +4 -5
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +46 -18
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +46 -20
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +145 -82
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +4 -4
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +3 -3
- package/esm2022/src/app/shared/material/duration/duration.utils.mjs +1 -1
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +2 -2
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +2 -2
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +1 -1
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +2 -2
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +1 -1
- package/esm2022/src/app/shared/material/material.module.mjs +5 -5
- package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +1 -1
- package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +1 -1
- package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +1 -1
- package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +1 -1
- package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +1 -1
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +1 -1
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +1 -1
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +1 -1
- package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +9 -3
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +1 -1
- package/esm2022/src/app/shared/observables.mjs +1 -1
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +2 -51
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +1 -1
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +1 -1
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +4 -8
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +1 -1
- package/esm2022/src/app/shared/platforms.mjs +1 -1
- package/esm2022/src/app/shared/services/job.utils.mjs +1 -1
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +3 -3
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +1 -1
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +1 -1
- package/esm2022/src/app/shared/services/startable-service.class.mjs +1 -1
- package/esm2022/src/app/shared/services/translate-context.service.mjs +1 -1
- package/esm2022/src/app/shared/services.mjs +2 -2
- package/esm2022/src/app/shared/shared-routing.module.mjs +1 -1
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +1 -1
- package/esm2022/src/app/shared/storage/storage.service.mjs +1 -1
- package/esm2022/src/app/shared/testing/observable.test.mjs +1 -1
- package/esm2022/src/app/shared/toast/toast.testing.mjs +2 -2
- package/esm2022/src/app/shared/toast/toasts.mjs +1 -1
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +1 -1
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +1 -1
- package/esm2022/src/app/shared/validator/validators.mjs +3 -3
- package/esm2022/src/app/shared/version/versions.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +1 -1
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +1 -1
- package/esm2022/src/app/social/message/message.form.mjs +1 -1
- package/esm2022/src/app/social/message/message.modal.mjs +1 -1
- package/esm2022/src/app/social/message/message.service.mjs +1 -1
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +1 -1
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +1 -1
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +1 -1
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +1 -1
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +1 -1
- package/esm2022/src/app/social/user-event/user-event.service.mjs +1 -1
- package/esm2022/src/environments/environment.loader.mjs +1 -1
- package/esm2022/src/environments/environment.mjs +3 -3
- package/fesm2022/sumaris-net.ngx-components.mjs +433 -622
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +6 -6
- package/public_api.d.ts +1 -2
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +3 -1
- package/src/app/shared/material/boolean/boolean.module.d.ts +14 -15
- package/src/app/shared/material/boolean/{material.boolean.d.ts → material-boolean.d.ts} +16 -20
- package/src/app/shared/material/datetime/datetime.module.d.ts +1 -1
- package/src/app/shared/material/datetime/material.date.d.ts +5 -3
- package/src/app/shared/material/datetime/material.dateshort.d.ts +5 -3
- package/src/app/shared/material/datetime/material.datetime.d.ts +12 -8
- package/src/app/shared/material/latlong/material.latlong.d.ts +1 -1
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +3 -1
- package/src/app/shared/pipes/maskito.pipe.d.ts +1 -8
- package/src/app/shared/pipes/pipes.module.d.ts +1 -1
- package/src/theme/_ngx-components.scss +16 -20
- package/src/theme/_ngx-components.table.scss +4 -5
- package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +0 -266
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -271
- package/src/app/shared/material/boolean/material-boolean2.d.ts +0 -66
|
@@ -668,4 +668,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
668
668
|
type: Inject,
|
|
669
669
|
args: [APP_MENU_ITEMS]
|
|
670
670
|
}] }] });
|
|
671
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRyxPQUFPLEVBQWEsUUFBUSxFQUFFLFNBQVMsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFHbEQs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RyxRQUFRLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2FBQ3ZCO1NBQ0Y7YUFDSTtZQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckIsc0JBQXNCO1lBQ3RCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDdkI7SUFDSCxDQUFDO3VHQTV0QlUsV0FBVyxrUUF5QlosV0FBVyxhQUNDLGdCQUFnQiw2QkFDaEIsY0FBYzsyR0EzQnpCLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN4Qzs7MEJBMEJJLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDbkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tLCBtZXJnZSwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElNZW51SXRlbSwgTWVudUl0ZW0sIE1lbnVJdGVtcywgTWVudU9wdGlvbnMgfSBmcm9tICcuL21lbnUubW9kZWwnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVudmlyb25tZW50LCBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQgeyBEYXRlVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGF0ZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBDT1JFX0NPTkZJR19PUFRJT05TIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnL2NvcmUuY29uZmlnJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFuaywgdG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvYWNjb3VudC5tb2RlbCc7XG5pbXBvcnQgeyBTdGFydGFibGVPYnNlcnZhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtb2JzZXJ2YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IGZpcnN0Tm90TmlsUHJvbWlzZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBJY29uUmVmIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBUcmVlSXRlbUVudGl0eVV0aWxzIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvdHJlZS1pdGVtLWVudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIsIE1vZGFsQ29udHJvbGxlciwgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFib3V0TW9kYWwgfSBmcm9tICcuLi9hYm91dC9hYm91dC5tb2RhbCc7XG5cbmV4cG9ydCB0eXBlIFNwbGl0UGFuZVNob3dXaGVuID0gYm9vbGVhbiB8ICdsZyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NRU5VX1NIT1dfV0hFTjogU3BsaXRQYW5lU2hvd1doZW4gPSAnbGcnO1xuZXhwb3J0IGNvbnN0IEFQUF9NRU5VX0lURU1TID0gbmV3IEluamVjdGlvblRva2VuPElNZW51SXRlbVtdPignbWVudUl0ZW1zJyk7XG5leHBvcnQgY29uc3QgQVBQX01FTlVfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZW51T3B0aW9ucz4oJ21lbnVPcHRpb25zJyk7XG5cblxuZXhwb3J0IGludGVyZmFjZSBNZW51UGF0aFBhcmFtIHtcbiAgcGF0aDogc3RyaW5nO1xuICBwYXJhbXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JywgZGVwczogW0VOVklST05NRU5UXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51U2VydmljZSBleHRlbmRzIFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlPE1lbnVJdGVtW10+IHtcblxuICByZWFkb25seSBhY2NvdW50Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWNjb3VudD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgb25QaW5uZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVJdGVtPih0cnVlKTtcblxuICBwcml2YXRlIF9zdGF0aWNJdGVtczogTWVudUl0ZW1bXTtcbiAgcHJpdmF0ZSBfZGV0YWNoZWRTdWJJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9pdGVtQ291bnRlciA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnM6IE1lbnVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dQcmVmaXggPSAnW21lbnUtc2VydmljZV0gJztcbiAgcHJpdmF0ZSByZWFkb25seSBfJG9wZW5lZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgXyRzcGxpdFBhbmVXaGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTcGxpdFBhbmVTaG93V2hlbj4oREVGQVVMVF9NRU5VX1NIT1dfV0hFTik7XG4gIHByaXZhdGUgcmVhZG9ubHkgXyRlbmFibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfJGVuYWJsZVN1Yk1lbnU6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfJGxpc3RlblJvdXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICBwcm90ZWN0ZWQgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIGFsZXJ0Q29udHJvbGxlcjogQWxlcnRDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9NRU5VX09QVElPTlMpIG9wdGlvbnM/OiBNZW51T3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9NRU5VX0lURU1TKSBzdGF0aWNJdGVtcz86IElNZW51SXRlbVtdXG4gICkge1xuICAgIHN1cGVyKHNldHRpbmdzKTtcbiAgICB0aGlzLl9vcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHN1Yk1lbnU6IHtcbiAgICAgICAgZGlzYWJsZUljb246IGZhbHNlLFxuICAgICAgICBzYXZlUGlubmVkOiB0cnVlLFxuICAgICAgICAuLi4ob3B0aW9ucz8uc3ViTWVudSB8fCB7fSksXG4gICAgICAgIC8vIEZvcmNlIGRpc2FibGUgb24gbW9iaWxlXG4gICAgICAgIGVuYWJsZTogb3B0aW9ucz8uc3ViTWVudT8uZW5hYmxlICE9PSBmYWxzZSAmJiAhdGhpcy5zZXR0aW5ncy5tb2JpbGUsXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLl8kZW5hYmxlU3ViTWVudSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5fb3B0aW9ucy5zdWJNZW51LmVuYWJsZSk7XG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSBbXTtcbiAgICB0aGlzLl9zdGF0aWNJdGVtcyA9IChzdGF0aWNJdGVtcyB8fCBbXSkubWFwKHNvdXJjZSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmZyb21PYmplY3Qoe3N0YXRpYzogdHJ1ZSwgLi4uc291cmNlfSwge2NvbXB1dGVJZDogdHJ1ZSwgZmlsbFBhcmVudDogdHJ1ZSwgZmlsbERlZmF1bHRGcm9tUGFyZW50OiB0cnVlfSk7XG5cbiAgICAgIGNvbnN0IGRldGFjaGVkSXRlbXMgPSBUcmVlSXRlbUVudGl0eVV0aWxzLmRlbGV0ZVJlY3Vyc2l2ZWx5KHRhcmdldCwgKGl0ZW0pID0+IGl0ZW0uc3RhdGljICE9PSB0cnVlKTtcbiAgICAgIGlmIChkZXRhY2hlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnRGV0YWNoZWQgaW5pdCBpdGVtcycsIGRldGFjaGVkSXRlbXMpO1xuICAgICAgICBkZXRhY2hlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLl9kZXRhY2hUb1BhcmVudChpdGVtKSk7XG5cbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcy5wdXNoKC4uLmRldGFjaGVkSXRlbXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBvcGVuZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuXyRvcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3BsaXRQYW5lV2hlbigpOiBPYnNlcnZhYmxlPFNwbGl0UGFuZVNob3dXaGVuPiB7XG4gICAgcmV0dXJuIHRoaXMuXyRzcGxpdFBhbmVXaGVuLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuXyRlbmFibGVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHN1Yk1lbnVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl8kZW5hYmxlU3ViTWVudS52YWx1ZTtcbiAgfVxuXG4gIGdldCBzdWJJdGVtcygpOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YSB8fCBbXSkucmVkdWNlKChyZXMsIHJvb3RFbGVtZW50KSA9PiByZXMuY29uY2F0KHJvb3RFbGVtZW50LmNoaWxkcmVuKSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3N0YXRpY1N1Ykl0ZW1zKCk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiAodGhpcy5fc3RhdGljSXRlbXMgfHwgW10pLnJlZHVjZSgocmVzLCByb290RWxlbWVudCkgPT4gcmVzLmNvbmNhdChyb290RWxlbWVudC5jaGlsZHJlbiksIFtdKTtcbiAgfVxuXG4gIGVuYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuXyRlbmFibGVkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZW5hYmxlU3ViTWVudSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuXyRlbmFibGVTdWJNZW51Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgc2V0U3BsaXRQYW5lU2hvd1doZW4odmFsdWU6IFNwbGl0UGFuZVNob3dXaGVuKSB7XG4gICAgaWYgKHRoaXMuXyRzcGxpdFBhbmVXaGVuLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fJHNwbGl0UGFuZVdoZW4ubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU3BsaXRQYW5lV2hlbigpIHtcbiAgICBpZiAodGhpcy5fJHNwbGl0UGFuZVdoZW4udmFsdWUgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLl8kc3BsaXRQYW5lV2hlbi5uZXh0KGZhbHNlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl8kc3BsaXRQYW5lV2hlbi5uZXh0KERFRkFVTFRfTUVOVV9TSE9XX1dIRU4pO1xuICAgIH1cbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiB7d2l0aENoaWxkcmVuPzogYm9vbGVhbjsgY29tcHV0ZUlkPzogYm9vbGVhbjsgZmlsbFBhcmVudD86IGJvb2xlYW47IGZpbGxEZWZhdWx0RnJvbVBhcmVudD86IGJvb2xlYW59KTogTWVudUl0ZW0ge1xuICAgIGNvbnN0IHRhcmdldCA9IE1lbnVJdGVtLmZyb21PYmplY3Qoc291cmNlLCB7d2l0aENoaWxkcmVuOiBmYWxzZX0pO1xuICAgIC8vIENvbXB1dGUgaWQgaWYgbmVlZFxuICAgIGlmIChvcHRzPy5jb21wdXRlSWQgJiYgaXNOaWwodGFyZ2V0LmlkKSkgdGFyZ2V0LmlkID0gdGhpcy5fY29tcHV0ZU5ld0lkKCk7XG5cbiAgICAvLyBSZW1vdmUgaWNvbiBpZiBkaXNhYmxlZFxuICAgIGlmICh0aGlzLl9vcHRpb25zLnN1Yk1lbnUuZGlzYWJsZUljb24pIHtcbiAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCA8SWNvblJlZj57aWNvbjogdW5kZWZpbmVkLCBtYXRJY29uOiB1bmRlZmluZWQsIG1hdFN2Z0ljb246IHVuZGVmaW5lZH0pO1xuICAgIH1cblxuICAgIC8vIFJlY3Vyc2l2ZVxuICAgIHRhcmdldC5jaGlsZHJlbiA9IChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLm1hcCgoanNvbjogYW55KSA9PiB0aGlzLmZyb21PYmplY3QoanNvbiwgey4uLm9wdHMsIGZpbGxQYXJlbnQ6IGZhbHNlfSkpO1xuXG4gICAgLy8gRmlsbCBwYXJlbnQgKG9uY2UsIHdoZW4gdGhlIGZ1bGwgdHJlZSBpcyByZWFkeSlcbiAgICBpZiAob3B0cz8uZmlsbFBhcmVudCkge1xuICAgICAgVHJlZUl0ZW1FbnRpdHlVdGlscy50cmVlRmlsbFBhcmVudCh0YXJnZXQpO1xuXG4gICAgICAvLyBGaWxsIGRlZmF1bHRzIGZyb20gdGhlIHBhcmVudCAob25jZSBmaWxsZWQpXG4gICAgICBpZiAob3B0cz8uZmlsbERlZmF1bHRGcm9tUGFyZW50KSB7XG4gICAgICAgIFRyZWVJdGVtRW50aXR5VXRpbHMudmlzaXQodGFyZ2V0LCAoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5wYXJlbnQpIHJldHVybjsgLy8gU2tpcCBpZiBubyBwYXJlbnRcbiAgICAgICAgICBpdGVtLnBhcmVudFBhdGggPSBpdGVtLnBhcmVudFBhdGggfHwgaXRlbS5wYXJlbnQucGF0aDtcbiAgICAgICAgICBpdGVtLnBhcmVudFBhdGhQYXJhbXMgPSBpdGVtLnBhcmVudFBhdGhQYXJhbXMgfHwgaXRlbS5wYXJlbnQucGF0aFBhcmFtcztcbiAgICAgICAgICBpdGVtLnN0YXRpYyA9IHRvQm9vbGVhbihpdGVtLnN0YXRpYywgaXRlbS5wYXJlbnQuc3RhdGljKTtcbiAgICAgICAgICAvLyBDb21wdXRlIHBhdGgsIGZyb20gcGFyZW50IHBhdGggKyBhY3Rpb25cbiAgICAgICAgICBpZiAoIWl0ZW0ucGF0aCAmJiAhIWl0ZW0uYWN0aW9uKSB7XG4gICAgICAgICAgICBpdGVtLnBhdGggPSBpdGVtLnBhcmVudC5wYXRoO1xuICAgICAgICAgICAgaXRlbS5wYXRoUGFyYW1zID0gKHR5cGVvZiBpdGVtLmFjdGlvbiA9PT0gJ3N0cmluZycpID8ge2FjdGlvbjogaXRlbS5hY3Rpb259IDoge2FjdGlvbklkOiBpdGVtLmlkLnRvU3RyaW5nKCksIGFjdGlvblRpdGxlOiBpdGVtLnRpdGxlfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuXG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgY3JlYXRlU3ViTWVudShzb3VyY2U6IFBhcnRpYWw8SU1lbnVJdGVtPik6IE1lbnVJdGVtIHtcbiAgICBpZiAoIXRoaXMuc3ViTWVudUVuYWJsZWQpIHJldHVybiBudWxsOyAvLyBTa2lwIGlmIGRpc2FibGVkXG5cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmZyb21PYmplY3Qoc291cmNlKTtcblxuICAgIC8vIENoZWNrIGlmIGV4aXN0c1xuICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nSXRlbSA9IHRoaXMuX2ZpbmRFeGlzdGluZ0l0ZW0odGFyZ2V0KTtcbiAgICAgIGlmIChleGlzdGluZ0l0ZW0pIHJldHVybiBleGlzdGluZ0l0ZW07XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlXG4gICAgaWYgKGlzTmlsKHRhcmdldC5pZCkpIHRhcmdldC5pZCA9IHRoaXMuX2NvbXB1dGVOZXdJZCgpO1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGFzeW5jIGFkZFN1Yk1lbnVJdGVtcyhzb3VyY2VzOiBJTWVudUl0ZW1bXSwgb3B0cz86IHtza2lwSWZFeGlzdHM/OiBib29sZWFufSkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgaWYgKCF0aGlzLnN1Yk1lbnVFbmFibGVkKSByZXR1cm47IC8vIFNraXBcbiAgICByZXR1cm4gc291cmNlcy5tYXAoc291cmNlID0+IHRoaXMuX2FkZFN1Yk1lbnVJdGVtKHRoaXMuZnJvbU9iamVjdChzb3VyY2UpLCBvcHRzKSk7XG4gIH1cblxuICBhc3luYyBhZGRTdWJNZW51SXRlbShpdGVtOiBJTWVudUl0ZW0sIG9wdHM/OiB7c2tpcElmRXhpc3RzPzogYm9vbGVhbn0pIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIGlmICghdGhpcy5zdWJNZW51RW5hYmxlZCkgcmV0dXJuOyAvLyBTa2lwXG4gICAgcmV0dXJuIHRoaXMuX2FkZFN1Yk1lbnVJdGVtKHRoaXMuZnJvbU9iamVjdChpdGVtKSwgb3B0cyk7XG4gIH1cblxuICBhc3luYyByZW1vdmVTdWJNZW51SXRlbXMoaXRlbXM6IElNZW51SXRlbVtdKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcbiAgICByZXR1cm4gKGl0ZW1zIHx8IFtdKS5tYXAoaXRlbSA9PiB0aGlzLl9yZW1vdmVTdWJNZW51SXRlbSh0aGlzLmZyb21PYmplY3QoaXRlbSkpKTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVN1Yk1lbnVJdGVtKGl0ZW06IElNZW51SXRlbSkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW92ZVN1Yk1lbnVJdGVtKHRoaXMuZnJvbU9iamVjdChpdGVtKSk7XG4gIH1cblxuICB0b2dnbGVQaW5uZWQoc291cmNlOiBJTWVudUl0ZW0pIHtcbiAgICBjb25zdCBpdGVtID0gKHNvdXJjZSBpbnN0YW5jZW9mIE1lbnVJdGVtKSA/IHNvdXJjZSA6IHRoaXMuX2ZpbmRFeGlzdGluZ0l0ZW0odGhpcy5mcm9tT2JqZWN0KHNvdXJjZSkpO1xuXG4gICAgLy8gU2tpcCBpZiBub3QgZm91bmRcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS53YXJuKHRoaXMuX2xvZ1ByZWZpeCArIGBTdWIgbWVudSB7JHtzb3VyY2UucGF0aH19IGNhbm5vdCBiZSBmb3VuZCAtIHVuYWJsZSB0byB0b2dnbGUgcGlubmVkIWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNraXAgaWYgc3RhdGljXG4gICAgaWYgKGl0ZW0uc3RhdGljKSByZXR1cm47XG5cbiAgICAvLyBVbnBpbm5lZFxuICAgIGlmIChpdGVtLnBpbm5lZCkge1xuICAgICAgaXRlbS5waW5uZWQgPSBmYWxzZTtcbiAgICAgIGlmICghaXRlbS5kZXRhY2hlZCkge1xuXG4gICAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSBbXG4gICAgICAgICAgLi4udGhpcy5fZGV0YWNoZWRTdWJJdGVtcyxcbiAgICAgICAgICAuLi50aGlzLl9kZXRhY2hTdWJNZW51SXRlbXMoKVxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBpbm5lZFxuICAgIGVsc2Uge1xuICAgICAgaXRlbS5waW5uZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMub25QaW5uZWQuZW1pdChpdGVtKTtcbiAgfVxuXG5cbiAgYXN5bmMgZXhlY3V0ZUFjdGlvbihldmVudDogRXZlbnQsIGl0ZW06IE1lbnVJdGVtKSB7XG4gICAgY29uc3QgYWN0aW9uID0gaXRlbT8uYWN0aW9uO1xuICAgIGlmICghYWN0aW9uKSByZXR1cm47IC8vIHNraXBcbiAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN3aXRjaCAoYWN0aW9uIGFzIHN0cmluZykge1xuICAgICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICAgIGF3YWl0IHRoaXMubG9nb3V0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fib3V0JzpcbiAgICAgICAgICBhd2FpdCB0aGlzLm9wZW5BYm91dE1vZGFsKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2V4cGFuZCc6XG4gICAgICAgICAgYXdhaXQgdGhpcy50b2dnbGVFeHBhbmRhYmxlSXRlbShpdGVtKTtcbiAgICAgICAgICBpZiAoaXRlbS5wYXRoKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KGl0ZW0ucGF0aCwge1xuICAgICAgICAgICAgICBxdWVyeVBhcmFtczogaXRlbS5wYXRoUGFyYW1zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBpZiAoaXRlbS5wYXRoKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KGl0ZW0ucGF0aCwge1xuICAgICAgICAgICAgICBxdWVyeVBhcmFtczogaXRlbS5wYXRoUGFyYW1zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gYWN0aW9uOiAnICsgYWN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgKGFjdGlvbiBhcyB1bmtub3duIGFzIGFueSkoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvZ291dCgpIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSBhd2FpdCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFtcbiAgICAgICdBVVRILkxPR09VVC5DT05GSVJNX1RJVExFJyxcbiAgICAgICdBVVRILkxPR09VVC5DT05GSVJNX01FU1NBR0UnLFxuICAgICAgJ0NPTU1PTi5CVE5fQ0FOQ0VMJyxcbiAgICAgICdBVVRILkxPR09VVC5CVE5fQ09ORklSTScsXG4gICAgXSk7XG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFsZXJ0Q29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgaGVhZGVyOiB0cmFuc2xhdGlvbnNbJ0FVVEguTE9HT1VULkNPTkZJUk1fVElUTEUnXSxcbiAgICAgIG1lc3NhZ2U6IHRyYW5zbGF0aW9uc1snQVVUSC5MT0dPVVQuQ09ORklSTV9NRVNTQUdFJ10sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0cmFuc2xhdGlvbnNbJ0NPTU1PTi5CVE5fQ0FOQ0VMJ10sXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXG4gICAgICAgICAgY3NzQ2xhc3M6ICdzZWNvbmRhcnknLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogdHJhbnNsYXRpb25zWydBVVRILkxPR09VVC5CVE5fQ09ORklSTSddLFxuICAgICAgICAgIGNzc0NsYXNzOiAnaW9uLWNvbG9yLXByaW1hcnknLFxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2UubG9nb3V0KCk7XG5cbiAgICAgICAgICAgIC8vIEJhY2sgdG8gaG9tZVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KCcvJyksIDEwMCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBhbGVydC5wcmVzZW50KCk7XG4gIH1cblxuICBhc3luYyBvcGVuQWJvdXRNb2RhbCgpIHtcbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDdHJsLmNyZWF0ZSh7IGNvbXBvbmVudDogQWJvdXRNb2RhbCB9KTtcbiAgICByZXR1cm4gbW9kYWwucHJlc2VudCgpO1xuICB9XG5cbiAgYXN5bmMgdG9nZ2xlRXhwYW5kYWJsZUl0ZW0oaXRlbTogTWVudUl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0uZXhwYW5kZWQpIHtcbiAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnRXhwYW5kIGl0ZW0nLCBpdGVtKTtcblxuICAgICAgaXRlbS5tYXRJY29uID0gJ2V4cGFuZF9sZXNzJztcblxuICAgICAgLy8gVHJ5IHRvIGF0dGFjaCBzb21lIGl0ZW1cbiAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXNcbiAgICAgICAgLmZpbHRlcihjaGlsZEl0ZW0gPT4gISF0aGlzLl9maW5kUGFyZW50KGNoaWxkSXRlbSwgW2l0ZW1dKSlcbiAgICAgICAgLmZvckVhY2goY2hpbGRJdGVtID0+IHRoaXMuX2F0dGFjaE1lbnVUb1BhcmVudChpdGVtLCBjaGlsZEl0ZW0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpdGVtLm1hdEljb24gPSAnZXhwYW5kX21vcmUnO1xuXG4gICAgICB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zID0gW1xuICAgICAgICAuLi50aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLFxuICAgICAgICAuLi50aGlzLl9kZXRhY2hTdWJNZW51SXRlbXMoe3BhdGg6ICcvJywgcGFyYW1zOiB7fX0sIGl0ZW0uY2hpbGRyZW4pXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIF9tYXJrQXNPcGVuZWQoKSB7XG4gICAgdGhpcy5fJG9wZW5lZC5uZXh0KHRydWUpO1xuICB9XG5cbiAgX21hcmtBc0Nsb3NlZCgpIHtcbiAgICB0aGlzLl8kb3BlbmVkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgdGhpcy5fJG9wZW5lZC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW4oKSB7XG4gICAgdGhpcy5fJG9wZW5lZC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydCgpIHtcbiAgICBjb25zb2xlLmluZm8oYCR7dGhpcy5fbG9nUHJlZml4fVN0YXJ0aW5nLi4uYCk7XG5cbiAgICAvLyBSZXN0b3JlIHN1YiBpdGVtcyBmcm9tIHNldHRpbmdzXG4gICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5yZWFkeSgpO1xuICAgIGNvbnN0IHNldHRpbmdzU3ViSXRlbXM6IElNZW51SXRlbVtdID0gdGhpcy5zZXR0aW5ncy5nZXRQYWdlU2V0dGluZ3MoJ21lbnUnLCAnc3ViLWl0ZW1zJyk7XG4gICAgaWYgKGlzTm90RW1wdHlBcnJheShzZXR0aW5nc1N1Ykl0ZW1zKSkge1xuICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnUmVzdG9yaW5nIHBpbm5lZCBpdGVtcyBmcm9tIHNldHRpbmdzLi4uJywgc2V0dGluZ3NTdWJJdGVtcyk7XG4gICAgICB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zID0gc2V0dGluZ3NTdWJJdGVtcy5tYXAoc291cmNlID0+IHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIHtjb21wdXRlSWQ6IHRydWUsIGZpbGxQYXJlbnQ6IHRydWV9KSk7XG4gICAgfVxuXG4gICAgY29uc3QgYWNjb3VudEV2ZW50JCA9IG1lcmdlKFxuICAgICAgZnJvbSh0aGlzLmFjY291bnRTZXJ2aWNlLnJlYWR5KCkpLFxuICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ2luLFxuICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ291dC5waXBlKFxuICAgICAgICBtYXAoXyA9PiBudWxsKVxuICAgICAgKVxuICAgICkucGlwZShcbiAgICAgIG1hcChhY2NvdW50ID0+IGlzTm90TmlsKGFjY291bnQ/LmlkKSA/IGFjY291bnQgOiBudWxsKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhMSwgYTIpID0+IERhdGVVdGlscy5pc1NhbWUoYTE/LnVwZGF0ZURhdGUsIGEyPy51cGRhdGVEYXRlKSlcbiAgICApO1xuXG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIC8vIENvbWJpbmUgY29uZmlnIGFuZCBhY2NvdW50IGV2ZW50c1xuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcsXG4gICAgICAgIGFjY291bnRFdmVudCRcbiAgICAgIF0pLnN1YnNjcmliZSgoW2NvbmZpZywgYWNjb3VudF0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1SZWNlaXZlZCBjb25maWcgb3IgYWNjb3VudCBldmVudC4gUmVmcmVzaGluZyBpdGVtcy4uLmAsIGFjY291bnQpO1xuXG4gICAgICAgIC8vIExvYWQgYWxsIGl0ZW1zXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fbG9hZE1lbnVJdGVtcyhjb25maWcsIGFjY291bnQpO1xuXG4gICAgICAgIC8vIEVtaXQgbmV3IHJvb3QgaXRlbXNcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGl0ZW1zKTtcblxuICAgICAgICAvLyBFbWl0IGFjY291bnQgY2hhbmdlcyBldmVudFxuICAgICAgICB0aGlzLmFjY291bnRDaGFuZ2VzLm5leHQoYWNjb3VudCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgbWVyZ2UoXG4gICAgICAgIHRoaXMuYWNjb3VudENoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLl8kbGlzdGVuUm91dGUucGlwZShcbiAgICAgICAgICBmaWx0ZXIobGlzdGVuID0+IGxpc3RlbiA9PT0gdHJ1ZSAmJiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgICAgIG1lcmdlTWFwKF8gPT4gdGhpcy5yb3V0ZXIuZXZlbnRzKSxcbiAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICBtYXAoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiBNZW51SXRlbXMucGFyc2VQYXRoV2l0aFF1ZXJ5KGV2ZW50LnVybCkpLFxuICAgICAgICApXG4gICAgICApLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgyNTApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHBhdGhQYXJhbSA9PiB7XG4gICAgICAgIGNvbnN0IGRldGFjaGVkU3ViSXRlbXMgPSB0aGlzLl9kZXRhY2hTdWJNZW51SXRlbXMocGF0aFBhcmFtKTtcbiAgICAgICAgaWYgKGRldGFjaGVkU3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLFxuICAgICAgICAgICAgLi4uZGV0YWNoZWRTdWJJdGVtc1xuICAgICAgICAgIF07XG5cbiAgICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fU5ld2x5IGRldGFjaGVkIGl0ZW1zOiBgLCBkZXRhY2hlZFN1Ykl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG5cbiAgICAvLyBTYXZlIHBpbm5lZCBpdGVtc1xuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLm9uUGlubmVkXG4gICAgICAgIC5zdWJzY3JpYmUoaXRlbSA9PiB7XG5cbiAgICAgICAgICAvLyBDb2xsZWN0IHBpbm5lZCBlbGVtZW50cywgdGhlbiBzZXJpYWxpemUgaXQgKHdpdGhvdXQgaWQpXG4gICAgICAgICAgY29uc3QgcGlubmVkU3ViSXRlbXMgPSB0aGlzLnN1Ykl0ZW1zLmZpbHRlcihpID0+IGkuaXNQaW5uZWQoKSlcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLmFzT2JqZWN0KHt3aXRoQ2hpbGRyZW46IHRydWUsIGtlZXBMb2NhbElkOiBmYWxzZX0pKTtcblxuICAgICAgICAgIGlmIChwaW5uZWRTdWJJdGVtcy5sZW5ndGggJiYgdGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcodGhpcy5fbG9nUHJlZml4ICsgYFNhdmluZyAke3Bpbm5lZFN1Ykl0ZW1zLmxlbmd0aH0gcGlubmVkIGl0ZW1zLCBpbiBsb2NhbCBzZXR0aW5nc2AsIHBpbm5lZFN1Ykl0ZW1zKTtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnNhdmVQYWdlU2V0dGluZygnbWVudScsIHBpbm5lZFN1Ykl0ZW1zLCAnc3ViLWl0ZW1zJyk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5kYXRhU3ViamVjdCk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkTWVudUl0ZW1zKGNvbmZpZzogQ29uZmlndXJhdGlvbnxudWxsLCBhY2NvdW50OiBBY2NvdW50fG51bGwpIHtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUxvYWRpbmcgbWVudSBpdGVtcy4uLmApO1xuXG4gICAgLy8gU2F2ZSBwcmV2aW91cyBjaGlsZHJlbiBvZiByb290IGl0ZW1zXG4gICAgY29uc3QgZGV0YWNoZWRTdWJJdGVtcyA9ICh0aGlzLnN1Ykl0ZW1zIHx8IFtdKS5jb25jYXQodGhpcy5fc3RhdGljU3ViSXRlbXMgfHwgW10pXG4gICAgICAucmVkdWNlKChyZXMsIHJvb3RJdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcm9vdEl0ZW0uY2hpbGRyZW47XG4gICAgICAgIGlmIChpc0VtcHR5QXJyYXkoY2hpbGRyZW4pKSByZXR1cm4gcmVzO1xuICAgICAgICAvLyBEZXRhY2ggYWxsIHJvb3QgY2hpbGRyZW5cbiAgICAgICAgcm9vdEl0ZW0uY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC5wYXJlbnQgPSBudWxsKTtcbiAgICAgICAgLy8gUmV0dXJuIHJvb3QgY2hpbGRyZW5cbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoY2hpbGRyZW4pO1xuICAgICAgfSwgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyB8fCBbXSk7XG5cbiAgICAvLyBSZXNldCBiYXNlIHJvb3QgaXRlbXMgKGNsZWFuIGl0ZW1zIGFkZGVkIGJ5IGNvbmZpZylcbiAgICBsZXQgaXRlbXM6IE1lbnVJdGVtW10gPSB0aGlzLl9zdGF0aWNJdGVtcy5zbGljZSgpO1xuXG4gICAgLy8gQ29uY2F0IGNvbmZpZydzIGl0ZW1zXG4gICAgY29uc3QgY29uZmlnVmFsdWU6IHN0cmluZyA9IGNvbmZpZz8uZ2V0UHJvcGVydHkoQ09SRV9DT05GSUdfT1BUSU9OUy5NRU5VX0lURU1TKTtcbiAgICBpZiAoaXNOb3ROaWxPckJsYW5rKGNvbmZpZ1ZhbHVlKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29uZmlnSXRlbXMgPSBKU09OLnBhcnNlKGNvbmZpZ1ZhbHVlKSBhcyBJTWVudUl0ZW1bXTtcbiAgICAgICAgaXRlbXMgPSAoY29uZmlnSXRlbXMgfHwgW10pLnJlZHVjZSgocmVzOiBNZW51SXRlbVtdLCBzb3VyY2UpID0+IHtcblxuICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgaXRlbVxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZyb21PYmplY3Qoe3N0YXRpYzogdHJ1ZSwgLi4uc291cmNlfSwge2NvbXB1dGVJZDogdHJ1ZX0pO1xuXG4gICAgICAgICAgLy8gU2tpcCBpcyBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgIGlmIChyZXMuZmluZCgoaSkgPT4gTWVudUl0ZW1zLmlzU2FtZShpLCBpdGVtKSkpIHJldHVybiByZXM7XG5cbiAgICAgICAgICAvLyBSZXVzZSBleGlzdGluZyBpZCwgaWYgcG9zc2libGVcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0l0ZW0gPSB0aGlzLmRhdGE/LmZpbmQoKGkpID0+IE1lbnVJdGVtcy5pc1NhbWUoaSwgaXRlbSkpO1xuICAgICAgICAgIGlmIChleGlzdGluZ0l0ZW0pIHtcbiAgICAgICAgICAgIGl0ZW0uaWQgPSBleGlzdGluZ0l0ZW0uaWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGl0ZW0uYWZ0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcmVzLmZpbmRJbmRleChpID0+IGkudGl0bGUgPT09IGl0ZW0uYWZ0ZXIpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzLnNsaWNlKDAsIGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAuY29uY2F0KGl0ZW0pXG4gICAgICAgICAgICAgICAgLmNvbmNhdChyZXMuc2xpY2UoaW5kZXggKyAxKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKGl0ZW0uYmVmb3JlKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHJlcy5maW5kSW5kZXgoaSA9PiBpLnRpdGxlID09PSBpdGVtLmJlZm9yZSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXMuc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgICAgICAgICAgLmNvbmNhdChpdGVtKVxuICAgICAgICAgICAgICAgIC5jb25jYXQocmVzLnNsaWNlKGluZGV4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuY29uY2F0KGl0ZW0pO1xuICAgICAgICB9LCBpdGVtcyk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9SW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uICcke0NPUkVfQ09ORklHX09QVElPTlMuTUVOVV9JVEVNUy5rZXl9Jy4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgbWVudSBpdGVtYCwgZXJyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgaXRlbSB1c2luZyBhY2NvdW50IHJpZ2h0c1xuICAgIGNvbnN0IG9wdHMgPSB7ZGVidWc6IHRoaXMuX2RlYnVnfTtcbiAgICBpdGVtcyA9IGl0ZW1zXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gTWVudUl0ZW1zLmNoZWNrSWZWaXNpYmxlKGl0ZW0sIGFjY291bnQsIGNvbmZpZywgb3B0cykpXG4gICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAvLyBSZXBsYWNlIHRpdGxlIHVzaW5nIGEgY29uZmlnIHByb3BlcnR5XG4gICAgICAgIGlmIChpc05vdE5pbE9yQmxhbmsoaXRlbS50aXRsZVByb3BlcnR5KSAmJiBjb25maWcpIHtcbiAgICAgICAgICBpdGVtLnRpdGxlID0gY29uZmlnLnByb3BlcnRpZXNbaXRlbS50aXRsZVByb3BlcnR5XSB8fCBpdGVtLnRpdGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9Rm91bmQgJHtpdGVtcy5sZW5ndGh9IHZpc2libGUgcm9vdCBpdGVtcy4uLmApO1xuXG4gICAgLy8gUmUtYXR0YWNoIHN1YiBtZW51IGl0ZW1zXG4gICAgaWYgKHRoaXMuc3ViTWVudUVuYWJsZWQgJiYgZGV0YWNoZWRTdWJJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGlmIChhY2NvdW50KSB7XG4gICAgICAgIHRoaXMuX2FkZFN1Yk1lbnVJdGVtcyhkZXRhY2hlZFN1Ykl0ZW1zLCB7c2tpcElmRXhpc3RzOiBmYWxzZSwgYXZhaWxhYmxlUGFyZW50czogZGV0YWNoZWRTdWJJdGVtcy5jb25jYXQoaXRlbXMpfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyA9IGRldGFjaGVkU3ViSXRlbXM7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgX2FkZFN1Yk1lbnVJdGVtcyhzb3VyY2VzOiBNZW51SXRlbVtdLCBvcHRzPzoge3NraXBJZkV4aXN0cz86IGJvb2xlYW47IGF2YWlsYWJsZVBhcmVudHM/OiBNZW51SXRlbVtdfSkge1xuICAgIHJldHVybiBzb3VyY2VzLm1hcChzb3VyY2UgPT4gdGhpcy5fYWRkU3ViTWVudUl0ZW0oc291cmNlLCBvcHRzKSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRTdWJNZW51SXRlbShuZXdJdGVtOiBNZW51SXRlbSwgb3B0cz86IHtza2lwSWZFeGlzdHM/OiBib29sZWFuOyBhdmFpbGFibGVQYXJlbnRzPzogTWVudUl0ZW1bXX0pIHtcbiAgICBvcHRzID0ge1xuICAgICAgc2tpcElmRXhpc3RzOiB0cnVlLFxuICAgICAgLi4ub3B0cyxcbiAgICB9O1xuXG4gICAgY29uc3QgcGF0aFBhcmFtID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuXG4gICAgLy8gRmluZCBpZiBpdGVtIGFscmVhZHkgZXhpc3RzXG4gICAgY29uc3QgZXhpc3RpbmdJdGVtID0gdGhpcy5fZmluZEV4aXN0aW5nSXRlbShuZXdJdGVtLCBvcHRzPy5hdmFpbGFibGVQYXJlbnRzKTtcbiAgICBpZiAoZXhpc3RpbmdJdGVtKSB7XG4gICAgICAvLyBObyBjaGFuZ2VzXG4gICAgICBpZiAob3B0cy5za2lwSWZFeGlzdHMgJiYgTWVudUl0ZW1zLmlzU2FtZShleGlzdGluZ0l0ZW0sIG5ld0l0ZW0pICYmIGV4aXN0aW5nSXRlbS52aXNpYmxlKSB7XG4gICAgICAgIC8vIERFQlVHXG4gICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9U2tpcHBpbmcgc3ViIGl0ZW0gKHNhbWUgdmlzaWJsZSBpdGVtIGFscmVhZHkgZXhpc3QpYCwgbmV3SXRlbSk7XG4gICAgICAgIHJldHVybiBleGlzdGluZ0l0ZW07XG4gICAgICB9XG5cblxuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1VcGRhdGluZyBleGlzdGluZyBzdWIgaXRlbSAjYCwgZXhpc3RpbmdJdGVtLmlkKTtcblxuICAgICAgLy8gUmVwbGFjZSBleGlzdGluZyBpdGVtLCBidXQga2VlcCB0aGUgZXhpc3RpbmcgaWRcbiAgICAgIGlmIChuZXdJdGVtICE9PSBleGlzdGluZ0l0ZW0pIHtcbiAgICAgICAgbmV3SXRlbS5pZCA9IGV4aXN0aW5nSXRlbS5pZDtcbiAgICAgICAgbmV3SXRlbS4kY2hpbGRyZW4gPSBleGlzdGluZ0l0ZW0uJGNoaWxkcmVuO1xuICAgICAgICBuZXdJdGVtLnBpbm5lZCA9IGV4aXN0aW5nSXRlbS5waW5uZWQ7XG4gICAgICAgIG5ld0l0ZW0uc3RhdGljID0gZXhpc3RpbmdJdGVtLnN0YXRpYztcbiAgICAgICAgaWYgKG5ld0l0ZW0ucGlubmVkIHx8IG5ld0l0ZW0uc3RhdGljIHx8IGV4aXN0aW5nSXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgIC8vIElmIGxvYWRpbmcsIGtlZXAgZXhpc3RpbmcgdGl0bGUgaWYgcGlubmVkIChhdm9pZCB0byBzaG93IHNrZWxldG9uKVxuICAgICAgICAgIG5ld0l0ZW0udGl0bGUgPSBuZXdJdGVtLnRpdGxlIHx8IGV4aXN0aW5nSXRlbS50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBuZXdJdGVtLnRpdGxlID0gaXNOb3ROaWwobmV3SXRlbS50aXRsZSkgPyBuZXdJdGVtLnRpdGxlIDogZXhpc3RpbmdJdGVtLnRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIC8vIEF1dG8gc2V0IGljb24sIGZvciBleHBhbmQgYWN0aW9uXG4gICAgICAgIGlmIChleGlzdGluZ0l0ZW0uYWN0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgICAgIG5ld0l0ZW0uaWNvbiA9IG51bGw7XG4gICAgICAgICAgbmV3SXRlbS5tYXRJY29uID0gZXhpc3RpbmdJdGVtLmV4cGFuZGVkID8gJ2V4cGFuZF9sZXNzJyA6ICdleHBhbmRfbW9yZSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBpdGVtJ3MgaWQgKGlmIG5lZWQpXG4gICAgZWxzZSBpZiAoaXNOaWwobmV3SXRlbS5pZCkpIHtcbiAgICAgIG5ld0l0ZW0uaWQgPSB0aGlzLl9jb21wdXRlTmV3SWQoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IGljb24gZm9yIGV4cGFuZCBhY3Rpb25cbiAgICBpZiAobmV3SXRlbS5hY3Rpb24gPT09ICdleHBhbmQnICYmICFuZXdJdGVtLm1hdEljb24pIHtcbiAgICAgIG5ld0l0ZW0ubWF0SWNvbiA9ICdleHBhbmRfbW9yZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdmlzaWJsZSwgZ2V0IHRoZSBwYXJlbnQgd2hlcmUgdG8gYXR0YWNoIHRoZSBpdGVtXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZmluZFBhcmVudChuZXdJdGVtLCBvcHRzPy5hdmFpbGFibGVQYXJlbnRzKTtcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5leHBhbmRlZCkge1xuICAgICAgLy8gQXR0YWNoIGl0ZW0gdG8gcGFyZW50XG4gICAgICB0aGlzLl9hdHRhY2hNZW51VG9QYXJlbnQocGFyZW50LCBuZXdJdGVtKTtcblxuICAgICAgLy8gVXBkYXRlIGRldGFjaGVkIGl0ZW1zIDpcbiAgICAgIC8vIC0gZXhjbHVkZWQgbmV3IGl0ZW1cbiAgICAgIC8vIC0gYXR0YWNoIGFuZCBleGNsdWRlIHRob3NlIHRoYW4gY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBuZXcgaXRlbVxuICAgICAgLy8gU2VhcmNoIGluIGRldGFjaGVkIGl0ZW1zIG9uZSBoYXZlIG5ld0l0ZW0gYXMgcGFyZW50XG4gICAgICBpZiAobmV3SXRlbS5leHBhbmRlZCkge1xuICAgICAgICBjb25zdCBhbmNlc3RvciA9IG5ld0l0ZW0uYW5jZXN0b3I7XG4gICAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLmNvbmNhdCguLi5uZXdJdGVtLmNoaWxkcmVuKVxuICAgICAgICAgIC5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICAgICAgLy8gRXhjbHVkZWQgbmV3bHkgYWRkIGl0ZW1cbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSBuZXdJdGVtLmlkKSByZXR1cm4gcmVzO1xuXG4gICAgICAgICAgICAvLyBJZiBzb21lIGRldGFjaGVkIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgbmV3IGl0ZW06IGRvIGl0XG4gICAgICAgICAgICBpZiAoTWVudUl0ZW1zLmNoZWNrSWZTdWJNZW51VmlzaWJsZShpdGVtLCBwYXRoUGFyYW0pKSB7XG5cbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZmluZFBhcmVudChpdGVtLCBbYW5jZXN0b3JdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBpdGVtJ3MgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdGhpcy5fZGV0YWNoU3ViTWVudUl0ZW1zKHBhdGhQYXJhbSwgaXRlbS5jaGlsZHJlbiB8fCBbXSk7XG5cbiAgICAgICAgICAgICAgICAvLyBBdHRhY2ggaXRlbVxuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaE1lbnVUb1BhcmVudChwYXJlbnQsIGl0ZW0pO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVtZW1iZXIgZGV0YWNoZWQgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmNvbmNhdCguLi5kZXRhY2hlZENoaWxkcmVuKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEZXRhY2ggKGlmIG5lZWQpXG4gICAgICAgICAgICB0aGlzLl9kZXRhY2hUb1BhcmVudChpdGVtKTtcblxuICAgICAgICAgICAgLy8gQWRkIHRvIGRldGFjaGVkIGl0ZW1zXG4gICAgICAgICAgICByZXR1cm4gcmVzLmNvbmNhdChpdGVtKTtcbiAgICAgICAgICB9LCBbXSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gZGV0YWNoZWQgZWxlbWVudHNcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyA9IHRoaXMuX2RldGFjaGVkU3ViSXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0gbmV3SXRlbS5pZCk7XG5cbiAgICAgICAgLy8gRGV0YWNoIGNoaWxkcmVuXG4gICAgICAgIG5ld0l0ZW0uY2hpbGRyZW4uZm9yRWFjaChpdGVtID0+IHRoaXMuX2RldGFjaFRvUGFyZW50KGl0ZW0pKTtcblxuICAgICAgfVxuXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgLy8gQWRkIG9yIHVwZGF0ZSBkZXRhY2hlZCBpdGVtXG4gICAgICBjb25zdCBkZXRhY2hlZEluZGV4ID0gaXNOb3ROaWwobmV3SXRlbS5pZCkgPyB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG5ld0l0ZW0uaWQpIDogLTE7XG4gICAgICBpZiAoZGV0YWNoZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtc1tkZXRhY2hlZEluZGV4XSA9IG5ld0l0ZW07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcy5wdXNoKG5ld0l0ZW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0YXJ0IGxpc3RlbmluZyByb3V0ZVxuICAgIGlmICghdGhpcy5fJGxpc3RlblJvdXRlLnZhbHVlKSB0aGlzLl8kbGlzdGVuUm91dGUubmV4dCh0cnVlKTtcblxuICAgIHJldHVybiBuZXdJdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcHV0ZU5ld0lkKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtQ291bnRlcisrO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlU3ViTWVudUl0ZW0oaXRlbTogTWVudUl0ZW0pIHtcbiAgICBjb25zdCBleGlzdGluZ0l0ZW0gPSB0aGlzLl9maW5kRXhpc3RpbmdJdGVtKGl0ZW0pO1xuICAgIGlmIChleGlzdGluZ0l0ZW0pIHtcbiAgICAgIHRoaXMuX2RldGFjaFRvUGFyZW50KGV4aXN0aW5nSXRlbSk7XG4gICAgICByZXR1cm4gZXhpc3RpbmdJdGVtO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGFjaFN1Yk1lbnVJdGVtcyhjdXJyZW50UGF0aFBhcmFtPzogTWVudVBhdGhQYXJhbSwgc3ViSXRlbXM/OiBNZW51SXRlbVtdKSB7XG4gICAgY3VycmVudFBhdGhQYXJhbSA9IGN1cnJlbnRQYXRoUGFyYW0gPyBjdXJyZW50UGF0aFBhcmFtIDogTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIChzdWJJdGVtcyB8fCB0aGlzLnN1Ykl0ZW1zKVxuICAgICAgLnJlZHVjZSgocmVzLCBzdWJJdGVtKSA9PiB7XG5cbiAgICAgICAgLy8gTm90IHZpc2libGUgPT4gc2hvdWxkIGJlIGRldGFjaFxuICAgICAgICBpZiAoIU1lbnVJdGVtcy5jaGVja0lmU3ViTWVudVZpc2libGUoc3ViSXRlbSwgY3VycmVudFBhdGhQYXJhbSkpIHtcblxuICAgICAgICAgIHRoaXMuX2RldGFjaFRvUGFyZW50KHN1Ykl0ZW0pO1xuXG4gICAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoc3ViSXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVmlzaWJsZTogY2hlY2sgY2hpbGRyZW5cbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoXG4gICAgICAgICAgdGhpcy5fZGV0YWNoU3ViTWVudUl0ZW1zKGN1cnJlbnRQYXRoUGFyYW0sIHN1Ykl0ZW0uY2hpbGRyZW4pXG4gICAgICAgICk7XG4gICAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRhY2hUb1BhcmVudChpdGVtOiBNZW51SXRlbSkge1xuICAgIGlmICghaXRlbT8ucGFyZW50KSByZXR1cm47IC8vIFNraXAgaWYgYWxyZWFkeSBkZXRhY2hlZFxuICAgIGxldCBjaGlsZHJlbiA9IGl0ZW0ucGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuXG4gICAgLy8gUmVtb3ZlIGZyb20gcGFyZW50IGNoaWxkcmVuXG4gICAgY29uc3QgaW5kZXhJblBhcmVudCA9IGNoaWxkcmVuLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4SW5QYXJlbnQgIT09IC0xKSB7XG4gICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLnNsaWNlKCk7IC8vIENvcHkgb3JpZ2luYWwgYXJyYXksIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWQgaW4gYSBsb29wXG4gICAgICBjaGlsZHJlbi5zcGxpY2UoaW5kZXhJblBhcmVudCwgMSk7XG4gICAgICBpdGVtLnBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cblxuICAgIGl0ZW0ucGFyZW50ID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRFeGlzdGluZ0l0ZW0oc2VhcmNoSXRlbTogSU1lbnVJdGVtLCBpdGVtcz86IE1lbnVJdGVtW10sIHJlY3Vyc2l2ZSA9IHRydWUpOiBNZW51SXRlbSB7XG4gICAgaXRlbXMgPSBpdGVtcyB8fCBbLi4udGhpcy5fZGV0YWNoZWRTdWJJdGVtcywgLi4udGhpcy5kYXRhXTtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDsgLy8gTm90IGZvdW5kXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoTWVudUl0ZW1zLmlzU2FtZUlkT3JQYXRoQW5kUGFyYW1zKHNlYXJjaEl0ZW0sIGl0ZW0pKSByZXR1cm4gaXRlbTtcbiAgICAgIGlmIChyZWN1cnNpdmUgJiYgaXRlbS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBjaGlsZCA9IHRoaXMuX2ZpbmRFeGlzdGluZ0l0ZW0oc2VhcmNoSXRlbSwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIGlmIChjaGlsZCkgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRQYXJlbnQoY2hpbGRJdGVtOiBNZW51SXRlbSwgYXZhaWxhYmxlUGFyZW50cz86IE1lbnVJdGVtW10pOiBNZW51SXRlbSB7XG4gICAgaWYgKCFjaGlsZEl0ZW0/LnBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKGNoaWxkSXRlbS5wYXJlbnQpIHJldHVybiBjaGlsZEl0ZW0ucGFyZW50O1xuXG4gICAgYXZhaWxhYmxlUGFyZW50cyA9IGF2YWlsYWJsZVBhcmVudHMgfHwgWy4uLnRoaXMuX2RldGFjaGVkU3ViSXRlbXMsIC4uLnRoaXMuZGF0YV07XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlUGFyZW50cy5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgaWYgKCFpdGVtPy5wYXRoKSByZXR1cm4gcmVzO1xuXG4gICAgICAvLyBBIGZvdW5kIGl0ZW0gYWxyZWFkeSBtYXRjaCB3aXRoIHRoZSBtZW51SXRlbS5wYXJlbnRQYXRoIDoga2VlcCBpdCBhcyBpdFxuICAgICAgLy8gVGhlcmUgaXMgYSBmb3VuZCBjYW5kaWRhdGUgdGhhdCBhbHJlYWR5IG1hdGNoIHRoZSBjdXJyZW50IGNhbmRpZGF0ZSA6IGtlZXAgaXRcbiAgICAgIGlmIChNZW51SXRlbXMuaXNQYXJlbnQoY2hpbGRJdGVtLCByZXMpKSByZXR1cm4gcmVzO1xuXG4gICAgICAvLyBJZiB0aGUgbWVudSBpdGVtIGhhcyBleHBsaWNpdCBwYXJlbnRQYXRoIGFuZCBpdHMgcGF0aCBhbmQgcGF0aCBwYXJhbSBhcmUgdGhlIHNhbWUgYXMgdGhlIGNhbmRpZGF0ZSAgOiB1c2UgaXQgYXMgcGFyZW50XG4gICAgICBpZiAoTWVudUl0ZW1zLmlzUGFyZW50KGNoaWxkSXRlbSwgaXRlbSkpIHJldHVybiBpdGVtO1xuXG4gICAgICBpZiAoIXJlcyAmJiBpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmRQYXJlbnQoY2hpbGRJdGVtLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoTWVudVRvUGFyZW50KHBhcmVudDogTWVudUl0ZW0sIGNoaWxkOiBNZW51SXRlbSkge1xuXG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1BdHRhY2ggc3ViLW1lbnUgeyR7TWVudUl0ZW1zLmdldFVybChjaGlsZCl9fSB0byBwYXJlbnQgeyR7TWVudUl0ZW1zLmdldFVybChwYXJlbnQpfX1gKTtcblxuICAgIC8vIEF2b2lkIHRvIGtlZXAgaWRlbnRpY2FsIG1lbnUgaXRlbSAod2UgcmVwbGFjZSBpdCB3aXRoIHRoZSBuZXcgY2hpbGQgbWVudSBpdGVtKVxuICAgIC8vaWYgKCFwYXJlbnQ/LiRjaGlsZHJlbikgcGFyZW50LiRjaGlsZHJlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pO1xuICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBjaGlsZHJlbi5maW5kSW5kZXgoaXRlbSA9PiBNZW51SXRlbXMuaXNTYW1lSWRPclBhdGhBbmRQYXJhbXMoaXRlbSwgY2hpbGQpKTtcblxuICAgIC8vIFVwZGF0ZSBleGlzdGluZyBlbGVtZW50XG4gICAgaWYgKGV4aXN0aW5nSW5kZXggIT09IC0xKSB7XG4gICAgICBpZiAoY2hpbGRyZW5bZXhpc3RpbmdJbmRleF0gIT09IGNoaWxkKSB7XG4gICAgICAgIGNoaWxkcmVuW2V4aXN0aW5nSW5kZXhdID0gY2hpbGQ7XG4gICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgICBjaGlsZC5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7XG5cbiAgICAgIC8vIFNvcnQgYnkgdGFiIChvciBpZClcbiAgICAgIHBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuLnNvcnQoTWVudUl0ZW1zLnNvcnRCeVRhYk9ySWQpO1xuICAgICAgY2hpbGQucGFyZW50ID0gcGFyZW50O1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
671
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRyxPQUFPLEVBQWEsUUFBUSxFQUFFLFNBQVMsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUcvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFHbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXNCLElBQUksQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWMsV0FBVyxDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFXL0UsTUFBTSxPQUFPLFdBQVksU0FBUSwwQkFBc0M7SUFpQnpEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDcUI7SUF2QnhCLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxTQUFTLENBQUMsQ0FBQztJQUN6RCxRQUFRLEdBQUcsSUFBSSxZQUFZLENBQVcsSUFBSSxDQUFDLENBQUM7SUFFN0MsWUFBWSxDQUFhO0lBQ3pCLGlCQUFpQixHQUFlLEVBQUUsQ0FBQztJQUNuQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ1IsUUFBUSxDQUFjO0lBQ3RCLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztJQUMvQixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUNsQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQW9CLHNCQUFzQixDQUFDLENBQUM7SUFDakYsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQy9DLGVBQWUsQ0FBMkI7SUFDMUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRXJFLFlBQ1ksUUFBOEIsRUFDOUIsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLFNBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLGFBQTRCLEVBQzVCLFNBQTJCLEVBQ04sV0FBd0IsRUFDakIsT0FBcUIsRUFDdkIsV0FBeUI7UUFFN0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBWk4sYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDTixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUt2RCxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsR0FBRyxPQUFPO1lBQ1YsT0FBTyxFQUFFO2dCQUNQLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDcEU7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUV0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUU1SCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDcEcsSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDdEUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFMUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELElBQVksZUFBZTtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUF3QjtRQUMzQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUEyRztRQUNqSSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ2xFLHFCQUFxQjtRQUNyQixJQUFJLElBQUksRUFBRSxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUxRSwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBVyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsWUFBWTtRQUNaLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxILGtEQUFrRDtRQUNsRCxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNyQixtQkFBbUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFM0MsOENBQThDO1lBQzlDLElBQUksSUFBSSxFQUFFLHFCQUFxQixFQUFFLENBQUM7Z0JBQ2hDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO3dCQUFFLE9BQU8sQ0FBQyxvQkFBb0I7b0JBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztvQkFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6RCwwQ0FBMEM7b0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDO29CQUN4SSxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFJRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQTBCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsbUJBQW1CO1FBRTFELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkMsa0JBQWtCO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxJQUFJLFlBQVk7Z0JBQUUsT0FBTyxZQUFZLENBQUM7UUFDeEMsQ0FBQztRQUVELFNBQVM7UUFDVCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBb0IsRUFBRSxJQUErQjtRQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLENBQUMsT0FBTztRQUN6QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFlLEVBQUUsSUFBK0I7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxDQUFDLE9BQU87UUFDekMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFrQjtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQWU7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBaUI7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLFlBQVksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVyRyxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxNQUFNLENBQUMsSUFBSSw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3hILE9BQU87UUFDVCxDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXhCLFdBQVc7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUVuQixJQUFJLENBQUMsaUJBQWlCLEdBQUc7b0JBQ3ZCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtvQkFDekIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7aUJBQzlCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELFNBQVM7YUFDSixDQUFDO1lBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQVksRUFBRSxJQUFjO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLENBQUMsT0FBTztRQUM1QixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLFFBQVEsTUFBZ0IsRUFBRSxDQUFDO2dCQUN6QixLQUFLLFFBQVE7b0JBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BCLE1BQU07Z0JBQ1IsS0FBSyxPQUFPO29CQUNWLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2QsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFOzRCQUMvQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVU7eUJBQzdCLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELE1BQU07Z0JBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDUixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDZCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7NEJBQy9DLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTt5QkFDN0IsQ0FBQyxDQUFDO29CQUNMLENBQUM7eUJBQ0ksQ0FBQzt3QkFDSixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDO29CQUMvQyxDQUFDO2dCQUNILENBQUM7WUFFSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkMsTUFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUNoRCwyQkFBMkI7WUFDM0IsNkJBQTZCO1lBQzdCLG1CQUFtQjtZQUNuQix5QkFBeUI7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxNQUFNLEVBQUUsWUFBWSxDQUFDLDJCQUEyQixDQUFDO1lBQ2pELE9BQU8sRUFBRSxZQUFZLENBQUMsNkJBQTZCLENBQUM7WUFDcEQsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxZQUFZLENBQUMsbUJBQW1CLENBQUM7b0JBQ3ZDLElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxXQUFXO2lCQUN0QjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsWUFBWSxDQUFDLHlCQUF5QixDQUFDO29CQUM3QyxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixPQUFPLEVBQUUsR0FBRyxFQUFFO3dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBRTdCLGVBQWU7d0JBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUM5RCxDQUFDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBYztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV0RSxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztZQUU3QiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQjtpQkFDbkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUM7WUFFN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHO2dCQUN2QixHQUFHLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ3pCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNwRSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRVMsS0FBSyxDQUFDLFNBQVM7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLGFBQWEsQ0FBQyxDQUFDO1FBRTlDLGtDQUFrQztRQUNsQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pGLElBQUksZUFBZSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcseUNBQXlDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEgsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsRUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2YsQ0FDRixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUN0RCxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDbkYsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0I7UUFDdkIsb0NBQW9DO1FBQ3BDLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTTtZQUN6QixhQUFhO1NBQ2QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsdURBQXVELEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFbkgsaUJBQWlCO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRW5ELHNCQUFzQjtZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3Qiw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FDdkIsS0FBSyxDQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM5RSxFQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDakQsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDakMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3ZFLENBQ0YsQ0FBQyxJQUFJLENBQ0osWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUNsQjthQUNBLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUc7b0JBQ3ZCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtvQkFDekIsR0FBRyxnQkFBZ0I7aUJBQ3BCLENBQUM7Z0JBRUYsSUFBSSxJQUFJLENBQUMsTUFBTTtvQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUMvRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUdGLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQ3ZCLElBQUksQ0FBQyxRQUFRO2FBQ1YsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBRWhCLDBEQUEwRDtZQUMxRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztZQUV4RSxJQUFJLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsY0FBYyxDQUFDLE1BQU0sa0NBQWtDLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDN0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUEwQixFQUFFLE9BQXFCO1FBQ3RFLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsdUJBQXVCLENBQUMsQ0FBQztRQUUxRSx1Q0FBdUM7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO2FBQzlFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN4QixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ25DLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUN2QywyQkFBMkI7WUFDM0IsUUFBUSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDL0MsdUJBQXVCO1lBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLHNEQUFzRDtRQUN0RCxJQUFJLEtBQUssR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxELHdCQUF3QjtRQUN4QixNQUFNLFdBQVcsR0FBVyxNQUFNLEVBQUUsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hGLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDO2dCQUNILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFnQixDQUFDO2dCQUMzRCxLQUFLLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBZSxFQUFFLE1BQU0sRUFBRSxFQUFFO29CQUU3RCxxQkFBcUI7b0JBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztvQkFFM0UseUJBQXlCO29CQUN6QixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUFFLE9BQU8sR0FBRyxDQUFDO29CQUUzRCxpQ0FBaUM7b0JBQ2pDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN2RSxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7b0JBQzVCLENBQUM7b0JBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ2YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN6RCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNqQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7aUNBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUM7aUNBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2xDLENBQUM7b0JBQ0gsQ0FBQzt5QkFDSSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDckIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNqQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztpQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQztpQ0FDWixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUM5QixDQUFDO29CQUNILENBQUM7b0JBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDWixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsNkJBQTZCLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxHQUFHLG1DQUFtQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNJLENBQUM7UUFDSCxDQUFDO1FBRUQsbUNBQW1DO1FBQ25DLE1BQU0sSUFBSSxHQUFHLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQztRQUNsQyxLQUFLLEdBQUcsS0FBSzthQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDckUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1Ysd0NBQXdDO1lBQ3hDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ25FLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxTQUFTLEtBQUssQ0FBQyxNQUFNLHdCQUF3QixDQUFDLENBQUM7UUFFaEcsMkJBQTJCO1FBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUNuSCxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE9BQW1CLEVBQUUsSUFBOEQ7UUFDMUcsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWlCLEVBQUUsSUFBOEQ7UUFDdkcsSUFBSSxHQUFHO1lBQ0wsWUFBWSxFQUFFLElBQUk7WUFDbEIsR0FBRyxJQUFJO1NBQ1IsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFckYsOEJBQThCO1FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0UsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixhQUFhO1lBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekYsUUFBUTtnQkFDUixJQUFJLElBQUksQ0FBQyxNQUFNO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxxREFBcUQsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDakgsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztZQUdELElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsRyxrREFBa0Q7WUFDbEQsSUFBSSxPQUFPLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM5RCxxRUFBcUU7b0JBQ3JFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN0RCxDQUFDO3FCQUNJLENBQUM7b0JBQ0osT0FBTyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUMvRSxDQUFDO2dCQUNELG1DQUFtQztnQkFDbkMsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNyQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztvQkFDcEIsT0FBTyxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDMUUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsK0JBQStCO2FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFFRCxpQ0FBaUM7UUFDakMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztRQUNsQyxDQUFDO1FBRUQsc0RBQXNEO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5Qix3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUxQywwQkFBMEI7WUFDMUIsc0JBQXNCO1lBQ3RCLGtFQUFrRTtZQUNsRSxzREFBc0Q7WUFDdEQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztxQkFDeEUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO29CQUNwQiwwQkFBMEI7b0JBQzFCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRTt3QkFBRSxPQUFPLEdBQUcsQ0FBQztvQkFFdkMsMERBQTBEO29CQUMxRCxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFFckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3dCQUNsRCxJQUFJLE1BQU0sRUFBRSxDQUFDOzRCQUNYLHlCQUF5Qjs0QkFDekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7NEJBRWxGLGNBQWM7NEJBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFFdkMsNkJBQTZCOzRCQUM3QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO3dCQUN6QyxDQUFDO29CQUNILENBQUM7b0JBRUQsbUJBQW1CO29CQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUUzQix3QkFBd0I7b0JBQ3hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsQ0FBQztpQkFDSSxDQUFDO2dCQUNKLGdDQUFnQztnQkFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFFdkYsa0JBQWtCO2dCQUNsQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUUvRCxDQUFDO1FBRUgsQ0FBQzthQUNJLENBQUM7WUFDSiw4QkFBOEI7WUFDOUIsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuSCxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ2xELENBQUM7aUJBQ0ksQ0FBQztnQkFDSixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBYztRQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsZ0JBQWdDLEVBQUUsUUFBcUI7UUFDakYsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUMvQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFFdkIsa0NBQWtDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFFaEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFOUIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFDRCwwQkFBMEI7WUFDMUIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQzdELENBQUM7UUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQWM7UUFDcEMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNO1lBQUUsT0FBTyxDQUFDLDJCQUEyQjtRQUN0RCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFFMUMsOEJBQThCO1FBQzlCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QixRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsd0RBQXdEO1lBQ3JGLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQXFCLEVBQUUsS0FBa0IsRUFBRSxTQUFTLEdBQUcsSUFBSTtRQUNuRixLQUFLLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxZQUFZO1FBQ2pELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNyRSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLEtBQUs7b0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxXQUFXLENBQUMsU0FBbUIsRUFBRSxnQkFBNkI7UUFDcEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDdkMsSUFBSSxTQUFTLENBQUMsTUFBTTtZQUFFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUU5QyxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpGLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSTtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUU1QiwwRUFBMEU7WUFDMUUsZ0ZBQWdGO1lBQ2hGLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBRW5ELHlIQUF5SDtZQUN6SCxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUVyRCxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBZ0IsRUFBRSxLQUFlO1FBRTNELElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsb0JBQW9CLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6SSxpRkFBaUY7UUFDakYsaUZBQWlGO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFakcsMEJBQTBCO1FBQzFCLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3RDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUMzQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQzthQUNJLENBQUM7WUFDSixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJCLHNCQUFzQjtZQUN0QixNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO3VHQTV0QlUsV0FBVyxrUUF5QlosV0FBVyxhQUNDLGdCQUFnQiw2QkFDaEIsY0FBYzsyR0EzQnpCLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN4Qzs7MEJBMEJJLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDbkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tLCBtZXJnZSwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElNZW51SXRlbSwgTWVudUl0ZW0sIE1lbnVJdGVtcywgTWVudU9wdGlvbnMgfSBmcm9tICcuL21lbnUubW9kZWwnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVudmlyb25tZW50LCBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQgeyBEYXRlVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGF0ZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBDT1JFX0NPTkZJR19PUFRJT05TIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnL2NvcmUuY29uZmlnJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFuaywgdG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvYWNjb3VudC5tb2RlbCc7XG5pbXBvcnQgeyBTdGFydGFibGVPYnNlcnZhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtb2JzZXJ2YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IGZpcnN0Tm90TmlsUHJvbWlzZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBJY29uUmVmIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBUcmVlSXRlbUVudGl0eVV0aWxzIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvdHJlZS1pdGVtLWVudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIsIE1vZGFsQ29udHJvbGxlciwgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFib3V0TW9kYWwgfSBmcm9tICcuLi9hYm91dC9hYm91dC5tb2RhbCc7XG5cbmV4cG9ydCB0eXBlIFNwbGl0UGFuZVNob3dXaGVuID0gYm9vbGVhbiB8ICdsZyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NRU5VX1NIT1dfV0hFTjogU3BsaXRQYW5lU2hvd1doZW4gPSAnbGcnO1xuZXhwb3J0IGNvbnN0IEFQUF9NRU5VX0lURU1TID0gbmV3IEluamVjdGlvblRva2VuPElNZW51SXRlbVtdPignbWVudUl0ZW1zJyk7XG5leHBvcnQgY29uc3QgQVBQX01FTlVfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZW51T3B0aW9ucz4oJ21lbnVPcHRpb25zJyk7XG5cblxuZXhwb3J0IGludGVyZmFjZSBNZW51UGF0aFBhcmFtIHtcbiAgcGF0aDogc3RyaW5nO1xuICBwYXJhbXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JywgZGVwczogW0VOVklST05NRU5UXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51U2VydmljZSBleHRlbmRzIFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlPE1lbnVJdGVtW10+IHtcblxuICByZWFkb25seSBhY2NvdW50Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWNjb3VudD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgb25QaW5uZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVJdGVtPih0cnVlKTtcblxuICBwcml2YXRlIF9zdGF0aWNJdGVtczogTWVudUl0ZW1bXTtcbiAgcHJpdmF0ZSBfZGV0YWNoZWRTdWJJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9pdGVtQ291bnRlciA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnM6IE1lbnVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dQcmVmaXggPSAnW21lbnUtc2VydmljZV0gJztcbiAgcHJpdmF0ZSByZWFkb25seSBfJG9wZW5lZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgXyRzcGxpdFBhbmVXaGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTcGxpdFBhbmVTaG93V2hlbj4oREVGQVVMVF9NRU5VX1NIT1dfV0hFTik7XG4gIHByaXZhdGUgcmVhZG9ubHkgXyRlbmFibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfJGVuYWJsZVN1Yk1lbnU6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfJGxpc3RlblJvdXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICBwcm90ZWN0ZWQgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIGFsZXJ0Q29udHJvbGxlcjogQWxlcnRDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9NRU5VX09QVElPTlMpIG9wdGlvbnM/OiBNZW51T3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9NRU5VX0lURU1TKSBzdGF0aWNJdGVtcz86IElNZW51SXRlbVtdXG4gICkge1xuICAgIHN1cGVyKHNldHRpbmdzKTtcbiAgICB0aGlzLl9vcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHN1Yk1lbnU6IHtcbiAgICAgICAgZGlzYWJsZUljb246IGZhbHNlLFxuICAgICAgICBzYXZlUGlubmVkOiB0cnVlLFxuICAgICAgICAuLi4ob3B0aW9ucz8uc3ViTWVudSB8fCB7fSksXG4gICAgICAgIC8vIEZvcmNlIGRpc2FibGUgb24gbW9iaWxlXG4gICAgICAgIGVuYWJsZTogb3B0aW9ucz8uc3ViTWVudT8uZW5hYmxlICE9PSBmYWxzZSAmJiAhdGhpcy5zZXR0aW5ncy5tb2JpbGUsXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLl8kZW5hYmxlU3ViTWVudSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5fb3B0aW9ucy5zdWJNZW51LmVuYWJsZSk7XG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSBbXTtcbiAgICB0aGlzLl9zdGF0aWNJdGVtcyA9IChzdGF0aWNJdGVtcyB8fCBbXSkubWFwKHNvdXJjZSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmZyb21PYmplY3Qoe3N0YXRpYzogdHJ1ZSwgLi4uc291cmNlfSwge2NvbXB1dGVJZDogdHJ1ZSwgZmlsbFBhcmVudDogdHJ1ZSwgZmlsbERlZmF1bHRGcm9tUGFyZW50OiB0cnVlfSk7XG5cbiAgICAgIGNvbnN0IGRldGFjaGVkSXRlbXMgPSBUcmVlSXRlbUVudGl0eVV0aWxzLmRlbGV0ZVJlY3Vyc2l2ZWx5KHRhcmdldCwgKGl0ZW0pID0+IGl0ZW0uc3RhdGljICE9PSB0cnVlKTtcbiAgICAgIGlmIChkZXRhY2hlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnRGV0YWNoZWQgaW5pdCBpdGVtcycsIGRldGFjaGVkSXRlbXMpO1xuICAgICAgICBkZXRhY2hlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLl9kZXRhY2hUb1BhcmVudChpdGVtKSk7XG5cbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcy5wdXNoKC4uLmRldGFjaGVkSXRlbXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBvcGVuZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuXyRvcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3BsaXRQYW5lV2hlbigpOiBPYnNlcnZhYmxlPFNwbGl0UGFuZVNob3dXaGVuPiB7XG4gICAgcmV0dXJuIHRoaXMuXyRzcGxpdFBhbmVXaGVuLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuXyRlbmFibGVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHN1Yk1lbnVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl8kZW5hYmxlU3ViTWVudS52YWx1ZTtcbiAgfVxuXG4gIGdldCBzdWJJdGVtcygpOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YSB8fCBbXSkucmVkdWNlKChyZXMsIHJvb3RFbGVtZW50KSA9PiByZXMuY29uY2F0KHJvb3RFbGVtZW50LmNoaWxkcmVuKSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3N0YXRpY1N1Ykl0ZW1zKCk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiAodGhpcy5fc3RhdGljSXRlbXMgfHwgW10pLnJlZHVjZSgocmVzLCByb290RWxlbWVudCkgPT4gcmVzLmNvbmNhdChyb290RWxlbWVudC5jaGlsZHJlbiksIFtdKTtcbiAgfVxuXG4gIGVuYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuXyRlbmFibGVkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZW5hYmxlU3ViTWVudSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuXyRlbmFibGVTdWJNZW51Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgc2V0U3BsaXRQYW5lU2hvd1doZW4odmFsdWU6IFNwbGl0UGFuZVNob3dXaGVuKSB7XG4gICAgaWYgKHRoaXMuXyRzcGxpdFBhbmVXaGVuLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fJHNwbGl0UGFuZVdoZW4ubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU3BsaXRQYW5lV2hlbigpIHtcbiAgICBpZiAodGhpcy5fJHNwbGl0UGFuZVdoZW4udmFsdWUgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLl8kc3BsaXRQYW5lV2hlbi5uZXh0KGZhbHNlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl8kc3BsaXRQYW5lV2hlbi5uZXh0KERFRkFVTFRfTUVOVV9TSE9XX1dIRU4pO1xuICAgIH1cbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiB7d2l0aENoaWxkcmVuPzogYm9vbGVhbjsgY29tcHV0ZUlkPzogYm9vbGVhbjsgZmlsbFBhcmVudD86IGJvb2xlYW47IGZpbGxEZWZhdWx0RnJvbVBhcmVudD86IGJvb2xlYW59KTogTWVudUl0ZW0ge1xuICAgIGNvbnN0IHRhcmdldCA9IE1lbnVJdGVtLmZyb21PYmplY3Qoc291cmNlLCB7d2l0aENoaWxkcmVuOiBmYWxzZX0pO1xuICAgIC8vIENvbXB1dGUgaWQgaWYgbmVlZFxuICAgIGlmIChvcHRzPy5jb21wdXRlSWQgJiYgaXNOaWwodGFyZ2V0LmlkKSkgdGFyZ2V0LmlkID0gdGhpcy5fY29tcHV0ZU5ld0lkKCk7XG5cbiAgICAvLyBSZW1vdmUgaWNvbiBpZiBkaXNhYmxlZFxuICAgIGlmICh0aGlzLl9vcHRpb25zLnN1Yk1lbnUuZGlzYWJsZUljb24pIHtcbiAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCA8SWNvblJlZj57aWNvbjogdW5kZWZpbmVkLCBtYXRJY29uOiB1bmRlZmluZWQsIG1hdFN2Z0ljb246IHVuZGVmaW5lZH0pO1xuICAgIH1cblxuICAgIC8vIFJlY3Vyc2l2ZVxuICAgIHRhcmdldC5jaGlsZHJlbiA9IChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLm1hcCgoanNvbjogYW55KSA9PiB0aGlzLmZyb21PYmplY3QoanNvbiwgey4uLm9wdHMsIGZpbGxQYXJlbnQ6IGZhbHNlfSkpO1xuXG4gICAgLy8gRmlsbCBwYXJlbnQgKG9uY2UsIHdoZW4gdGhlIGZ1bGwgdHJlZSBpcyByZWFkeSlcbiAgICBpZiAob3B0cz8uZmlsbFBhcmVudCkge1xuICAgICAgVHJlZUl0ZW1FbnRpdHlVdGlscy50cmVlRmlsbFBhcmVudCh0YXJnZXQpO1xuXG4gICAgICAvLyBGaWxsIGRlZmF1bHRzIGZyb20gdGhlIHBhcmVudCAob25jZSBmaWxsZWQpXG4gICAgICBpZiAob3B0cz8uZmlsbERlZmF1bHRGcm9tUGFyZW50KSB7XG4gICAgICAgIFRyZWVJdGVtRW50aXR5VXRpbHMudmlzaXQodGFyZ2V0LCAoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5wYXJlbnQpIHJldHVybjsgLy8gU2tpcCBpZiBubyBwYXJlbnRcbiAgICAgICAgICBpdGVtLnBhcmVudFBhdGggPSBpdGVtLnBhcmVudFBhdGggfHwgaXRlbS5wYXJlbnQucGF0aDtcbiAgICAgICAgICBpdGVtLnBhcmVudFBhdGhQYXJhbXMgPSBpdGVtLnBhcmVudFBhdGhQYXJhbXMgfHwgaXRlbS5wYXJlbnQucGF0aFBhcmFtcztcbiAgICAgICAgICBpdGVtLnN0YXRpYyA9IHRvQm9vbGVhbihpdGVtLnN0YXRpYywgaXRlbS5wYXJlbnQuc3RhdGljKTtcbiAgICAgICAgICAvLyBDb21wdXRlIHBhdGgsIGZyb20gcGFyZW50IHBhdGggKyBhY3Rpb25cbiAgICAgICAgICBpZiAoIWl0ZW0ucGF0aCAmJiAhIWl0ZW0uYWN0aW9uKSB7XG4gICAgICAgICAgICBpdGVtLnBhdGggPSBpdGVtLnBhcmVudC5wYXRoO1xuICAgICAgICAgICAgaXRlbS5wYXRoUGFyYW1zID0gKHR5cGVvZiBpdGVtLmFjdGlvbiA9PT0gJ3N0cmluZycpID8ge2FjdGlvbjogaXRlbS5hY3Rpb259IDoge2FjdGlvbklkOiBpdGVtLmlkLnRvU3RyaW5nKCksIGFjdGlvblRpdGxlOiBpdGVtLnRpdGxlfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuXG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgY3JlYXRlU3ViTWVudShzb3VyY2U6IFBhcnRpYWw8SU1lbnVJdGVtPik6IE1lbnVJdGVtIHtcbiAgICBpZiAoIXRoaXMuc3ViTWVudUVuYWJsZWQpIHJldHVybiBudWxsOyAvLyBTa2lwIGlmIGRpc2FibGVkXG5cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmZyb21PYmplY3Qoc291cmNlKTtcblxuICAgIC8vIENoZWNrIGlmIGV4aXN0c1xuICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nSXRlbSA9IHRoaXMuX2ZpbmRFeGlzdGluZ0l0ZW0odGFyZ2V0KTtcbiAgICAgIGlmIChleGlzdGluZ0l0ZW0pIHJldHVybiBleGlzdGluZ0l0ZW07XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlXG4gICAgaWYgKGlzTmlsKHRhcmdldC5pZCkpIHRhcmdldC5pZCA9IHRoaXMuX2NvbXB1dGVOZXdJZCgpO1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGFzeW5jIGFkZFN1Yk1lbnVJdGVtcyhzb3VyY2VzOiBJTWVudUl0ZW1bXSwgb3B0cz86IHtza2lwSWZFeGlzdHM/OiBib29sZWFufSkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgaWYgKCF0aGlzLnN1Yk1lbnVFbmFibGVkKSByZXR1cm47IC8vIFNraXBcbiAgICByZXR1cm4gc291cmNlcy5tYXAoc291cmNlID0+IHRoaXMuX2FkZFN1Yk1lbnVJdGVtKHRoaXMuZnJvbU9iamVjdChzb3VyY2UpLCBvcHRzKSk7XG4gIH1cblxuICBhc3luYyBhZGRTdWJNZW51SXRlbShpdGVtOiBJTWVudUl0ZW0sIG9wdHM/OiB7c2tpcElmRXhpc3RzPzogYm9vbGVhbn0pIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIGlmICghdGhpcy5zdWJNZW51RW5hYmxlZCkgcmV0dXJuOyAvLyBTa2lwXG4gICAgcmV0dXJuIHRoaXMuX2FkZFN1Yk1lbnVJdGVtKHRoaXMuZnJvbU9iamVjdChpdGVtKSwgb3B0cyk7XG4gIH1cblxuICBhc3luYyByZW1vdmVTdWJNZW51SXRlbXMoaXRlbXM6IElNZW51SXRlbVtdKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcbiAgICByZXR1cm4gKGl0ZW1zIHx8IFtdKS5tYXAoaXRlbSA9PiB0aGlzLl9yZW1vdmVTdWJNZW51SXRlbSh0aGlzLmZyb21PYmplY3QoaXRlbSkpKTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVN1Yk1lbnVJdGVtKGl0ZW06IElNZW51SXRlbSkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW92ZVN1Yk1lbnVJdGVtKHRoaXMuZnJvbU9iamVjdChpdGVtKSk7XG4gIH1cblxuICB0b2dnbGVQaW5uZWQoc291cmNlOiBJTWVudUl0ZW0pIHtcbiAgICBjb25zdCBpdGVtID0gKHNvdXJjZSBpbnN0YW5jZW9mIE1lbnVJdGVtKSA/IHNvdXJjZSA6IHRoaXMuX2ZpbmRFeGlzdGluZ0l0ZW0odGhpcy5mcm9tT2JqZWN0KHNvdXJjZSkpO1xuXG4gICAgLy8gU2tpcCBpZiBub3QgZm91bmRcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS53YXJuKHRoaXMuX2xvZ1ByZWZpeCArIGBTdWIgbWVudSB7JHtzb3VyY2UucGF0aH19IGNhbm5vdCBiZSBmb3VuZCAtIHVuYWJsZSB0byB0b2dnbGUgcGlubmVkIWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNraXAgaWYgc3RhdGljXG4gICAgaWYgKGl0ZW0uc3RhdGljKSByZXR1cm47XG5cbiAgICAvLyBVbnBpbm5lZFxuICAgIGlmIChpdGVtLnBpbm5lZCkge1xuICAgICAgaXRlbS5waW5uZWQgPSBmYWxzZTtcbiAgICAgIGlmICghaXRlbS5kZXRhY2hlZCkge1xuXG4gICAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSBbXG4gICAgICAgICAgLi4udGhpcy5fZGV0YWNoZWRTdWJJdGVtcyxcbiAgICAgICAgICAuLi50aGlzLl9kZXRhY2hTdWJNZW51SXRlbXMoKVxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBpbm5lZFxuICAgIGVsc2Uge1xuICAgICAgaXRlbS5waW5uZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMub25QaW5uZWQuZW1pdChpdGVtKTtcbiAgfVxuXG5cbiAgYXN5bmMgZXhlY3V0ZUFjdGlvbihldmVudDogRXZlbnQsIGl0ZW06IE1lbnVJdGVtKSB7XG4gICAgY29uc3QgYWN0aW9uID0gaXRlbT8uYWN0aW9uO1xuICAgIGlmICghYWN0aW9uKSByZXR1cm47IC8vIHNraXBcbiAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN3aXRjaCAoYWN0aW9uIGFzIHN0cmluZykge1xuICAgICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICAgIGF3YWl0IHRoaXMubG9nb3V0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fib3V0JzpcbiAgICAgICAgICBhd2FpdCB0aGlzLm9wZW5BYm91dE1vZGFsKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2V4cGFuZCc6XG4gICAgICAgICAgYXdhaXQgdGhpcy50b2dnbGVFeHBhbmRhYmxlSXRlbShpdGVtKTtcbiAgICAgICAgICBpZiAoaXRlbS5wYXRoKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KGl0ZW0ucGF0aCwge1xuICAgICAgICAgICAgICBxdWVyeVBhcmFtczogaXRlbS5wYXRoUGFyYW1zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBpZiAoaXRlbS5wYXRoKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KGl0ZW0ucGF0aCwge1xuICAgICAgICAgICAgICBxdWVyeVBhcmFtczogaXRlbS5wYXRoUGFyYW1zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gYWN0aW9uOiAnICsgYWN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgKGFjdGlvbiBhcyB1bmtub3duIGFzIGFueSkoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvZ291dCgpIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSBhd2FpdCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFtcbiAgICAgICdBVVRILkxPR09VVC5DT05GSVJNX1RJVExFJyxcbiAgICAgICdBVVRILkxPR09VVC5DT05GSVJNX01FU1NBR0UnLFxuICAgICAgJ0NPTU1PTi5CVE5fQ0FOQ0VMJyxcbiAgICAgICdBVVRILkxPR09VVC5CVE5fQ09ORklSTScsXG4gICAgXSk7XG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFsZXJ0Q29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgaGVhZGVyOiB0cmFuc2xhdGlvbnNbJ0FVVEguTE9HT1VULkNPTkZJUk1fVElUTEUnXSxcbiAgICAgIG1lc3NhZ2U6IHRyYW5zbGF0aW9uc1snQVVUSC5MT0dPVVQuQ09ORklSTV9NRVNTQUdFJ10sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0cmFuc2xhdGlvbnNbJ0NPTU1PTi5CVE5fQ0FOQ0VMJ10sXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXG4gICAgICAgICAgY3NzQ2xhc3M6ICdzZWNvbmRhcnknLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogdHJhbnNsYXRpb25zWydBVVRILkxPR09VVC5CVE5fQ09ORklSTSddLFxuICAgICAgICAgIGNzc0NsYXNzOiAnaW9uLWNvbG9yLXByaW1hcnknLFxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2UubG9nb3V0KCk7XG5cbiAgICAgICAgICAgIC8vIEJhY2sgdG8gaG9tZVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KCcvJyksIDEwMCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBhbGVydC5wcmVzZW50KCk7XG4gIH1cblxuICBhc3luYyBvcGVuQWJvdXRNb2RhbCgpIHtcbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDdHJsLmNyZWF0ZSh7IGNvbXBvbmVudDogQWJvdXRNb2RhbCB9KTtcbiAgICByZXR1cm4gbW9kYWwucHJlc2VudCgpO1xuICB9XG5cbiAgYXN5bmMgdG9nZ2xlRXhwYW5kYWJsZUl0ZW0oaXRlbTogTWVudUl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0uZXhwYW5kZWQpIHtcbiAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnRXhwYW5kIGl0ZW0nLCBpdGVtKTtcblxuICAgICAgaXRlbS5tYXRJY29uID0gJ2V4cGFuZF9sZXNzJztcblxuICAgICAgLy8gVHJ5IHRvIGF0dGFjaCBzb21lIGl0ZW1cbiAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXNcbiAgICAgICAgLmZpbHRlcihjaGlsZEl0ZW0gPT4gISF0aGlzLl9maW5kUGFyZW50KGNoaWxkSXRlbSwgW2l0ZW1dKSlcbiAgICAgICAgLmZvckVhY2goY2hpbGRJdGVtID0+IHRoaXMuX2F0dGFjaE1lbnVUb1BhcmVudChpdGVtLCBjaGlsZEl0ZW0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpdGVtLm1hdEljb24gPSAnZXhwYW5kX21vcmUnO1xuXG4gICAgICB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zID0gW1xuICAgICAgICAuLi50aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLFxuICAgICAgICAuLi50aGlzLl9kZXRhY2hTdWJNZW51SXRlbXMoe3BhdGg6ICcvJywgcGFyYW1zOiB7fX0sIGl0ZW0uY2hpbGRyZW4pXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIF9tYXJrQXNPcGVuZWQoKSB7XG4gICAgdGhpcy5fJG9wZW5lZC5uZXh0KHRydWUpO1xuICB9XG5cbiAgX21hcmtBc0Nsb3NlZCgpIHtcbiAgICB0aGlzLl8kb3BlbmVkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgdGhpcy5fJG9wZW5lZC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW4oKSB7XG4gICAgdGhpcy5fJG9wZW5lZC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydCgpIHtcbiAgICBjb25zb2xlLmluZm8oYCR7dGhpcy5fbG9nUHJlZml4fVN0YXJ0aW5nLi4uYCk7XG5cbiAgICAvLyBSZXN0b3JlIHN1YiBpdGVtcyBmcm9tIHNldHRpbmdzXG4gICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5yZWFkeSgpO1xuICAgIGNvbnN0IHNldHRpbmdzU3ViSXRlbXM6IElNZW51SXRlbVtdID0gdGhpcy5zZXR0aW5ncy5nZXRQYWdlU2V0dGluZ3MoJ21lbnUnLCAnc3ViLWl0ZW1zJyk7XG4gICAgaWYgKGlzTm90RW1wdHlBcnJheShzZXR0aW5nc1N1Ykl0ZW1zKSkge1xuICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnUmVzdG9yaW5nIHBpbm5lZCBpdGVtcyBmcm9tIHNldHRpbmdzLi4uJywgc2V0dGluZ3NTdWJJdGVtcyk7XG4gICAgICB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zID0gc2V0dGluZ3NTdWJJdGVtcy5tYXAoc291cmNlID0+IHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIHtjb21wdXRlSWQ6IHRydWUsIGZpbGxQYXJlbnQ6IHRydWV9KSk7XG4gICAgfVxuXG4gICAgY29uc3QgYWNjb3VudEV2ZW50JCA9IG1lcmdlKFxuICAgICAgZnJvbSh0aGlzLmFjY291bnRTZXJ2aWNlLnJlYWR5KCkpLFxuICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ2luLFxuICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ291dC5waXBlKFxuICAgICAgICBtYXAoXyA9PiBudWxsKVxuICAgICAgKVxuICAgICkucGlwZShcbiAgICAgIG1hcChhY2NvdW50ID0+IGlzTm90TmlsKGFjY291bnQ/LmlkKSA/IGFjY291bnQgOiBudWxsKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhMSwgYTIpID0+IERhdGVVdGlscy5pc1NhbWUoYTE/LnVwZGF0ZURhdGUsIGEyPy51cGRhdGVEYXRlKSlcbiAgICApO1xuXG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIC8vIENvbWJpbmUgY29uZmlnIGFuZCBhY2NvdW50IGV2ZW50c1xuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcsXG4gICAgICAgIGFjY291bnRFdmVudCRcbiAgICAgIF0pLnN1YnNjcmliZSgoW2NvbmZpZywgYWNjb3VudF0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1SZWNlaXZlZCBjb25maWcgb3IgYWNjb3VudCBldmVudC4gUmVmcmVzaGluZyBpdGVtcy4uLmAsIGFjY291bnQpO1xuXG4gICAgICAgIC8vIExvYWQgYWxsIGl0ZW1zXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fbG9hZE1lbnVJdGVtcyhjb25maWcsIGFjY291bnQpO1xuXG4gICAgICAgIC8vIEVtaXQgbmV3IHJvb3QgaXRlbXNcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGl0ZW1zKTtcblxuICAgICAgICAvLyBFbWl0IGFjY291bnQgY2hhbmdlcyBldmVudFxuICAgICAgICB0aGlzLmFjY291bnRDaGFuZ2VzLm5leHQoYWNjb3VudCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgbWVyZ2UoXG4gICAgICAgIHRoaXMuYWNjb3VudENoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLl8kbGlzdGVuUm91dGUucGlwZShcbiAgICAgICAgICBmaWx0ZXIobGlzdGVuID0+IGxpc3RlbiA9PT0gdHJ1ZSAmJiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgICAgIG1lcmdlTWFwKF8gPT4gdGhpcy5yb3V0ZXIuZXZlbnRzKSxcbiAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICBtYXAoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiBNZW51SXRlbXMucGFyc2VQYXRoV2l0aFF1ZXJ5KGV2ZW50LnVybCkpLFxuICAgICAgICApXG4gICAgICApLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgyNTApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHBhdGhQYXJhbSA9PiB7XG4gICAgICAgIGNvbnN0IGRldGFjaGVkU3ViSXRlbXMgPSB0aGlzLl9kZXRhY2hTdWJNZW51SXRlbXMocGF0aFBhcmFtKTtcbiAgICAgICAgaWYgKGRldGFjaGVkU3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLFxuICAgICAgICAgICAgLi4uZGV0YWNoZWRTdWJJdGVtc1xuICAgICAgICAgIF07XG5cbiAgICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fU5ld2x5IGRldGFjaGVkIGl0ZW1zOiBgLCBkZXRhY2hlZFN1Ykl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG5cbiAgICAvLyBTYXZlIHBpbm5lZCBpdGVtc1xuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLm9uUGlubmVkXG4gICAgICAgIC5zdWJzY3JpYmUoaXRlbSA9PiB7XG5cbiAgICAgICAgICAvLyBDb2xsZWN0IHBpbm5lZCBlbGVtZW50cywgdGhlbiBzZXJpYWxpemUgaXQgKHdpdGhvdXQgaWQpXG4gICAgICAgICAgY29uc3QgcGlubmVkU3ViSXRlbXMgPSB0aGlzLnN1Ykl0ZW1zLmZpbHRlcihpID0+IGkuaXNQaW5uZWQoKSlcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLmFzT2JqZWN0KHt3aXRoQ2hpbGRyZW46IHRydWUsIGtlZXBMb2NhbElkOiBmYWxzZX0pKTtcblxuICAgICAgICAgIGlmIChwaW5uZWRTdWJJdGVtcy5sZW5ndGggJiYgdGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcodGhpcy5fbG9nUHJlZml4ICsgYFNhdmluZyAke3Bpbm5lZFN1Ykl0ZW1zLmxlbmd0aH0gcGlubmVkIGl0ZW1zLCBpbiBsb2NhbCBzZXR0aW5nc2AsIHBpbm5lZFN1Ykl0ZW1zKTtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnNhdmVQYWdlU2V0dGluZygnbWVudScsIHBpbm5lZFN1Ykl0ZW1zLCAnc3ViLWl0ZW1zJyk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5kYXRhU3ViamVjdCk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkTWVudUl0ZW1zKGNvbmZpZzogQ29uZmlndXJhdGlvbnxudWxsLCBhY2NvdW50OiBBY2NvdW50fG51bGwpIHtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUxvYWRpbmcgbWVudSBpdGVtcy4uLmApO1xuXG4gICAgLy8gU2F2ZSBwcmV2aW91cyBjaGlsZHJlbiBvZiByb290IGl0ZW1zXG4gICAgY29uc3QgZGV0YWNoZWRTdWJJdGVtcyA9ICh0aGlzLnN1Ykl0ZW1zIHx8IFtdKS5jb25jYXQodGhpcy5fc3RhdGljU3ViSXRlbXMgfHwgW10pXG4gICAgICAucmVkdWNlKChyZXMsIHJvb3RJdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcm9vdEl0ZW0uY2hpbGRyZW47XG4gICAgICAgIGlmIChpc0VtcHR5QXJyYXkoY2hpbGRyZW4pKSByZXR1cm4gcmVzO1xuICAgICAgICAvLyBEZXRhY2ggYWxsIHJvb3QgY2hpbGRyZW5cbiAgICAgICAgcm9vdEl0ZW0uY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC5wYXJlbnQgPSBudWxsKTtcbiAgICAgICAgLy8gUmV0dXJuIHJvb3QgY2hpbGRyZW5cbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoY2hpbGRyZW4pO1xuICAgICAgfSwgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyB8fCBbXSk7XG5cbiAgICAvLyBSZXNldCBiYXNlIHJvb3QgaXRlbXMgKGNsZWFuIGl0ZW1zIGFkZGVkIGJ5IGNvbmZpZylcbiAgICBsZXQgaXRlbXM6IE1lbnVJdGVtW10gPSB0aGlzLl9zdGF0aWNJdGVtcy5zbGljZSgpO1xuXG4gICAgLy8gQ29uY2F0IGNvbmZpZydzIGl0ZW1zXG4gICAgY29uc3QgY29uZmlnVmFsdWU6IHN0cmluZyA9IGNvbmZpZz8uZ2V0UHJvcGVydHkoQ09SRV9DT05GSUdfT1BUSU9OUy5NRU5VX0lURU1TKTtcbiAgICBpZiAoaXNOb3ROaWxPckJsYW5rKGNvbmZpZ1ZhbHVlKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29uZmlnSXRlbXMgPSBKU09OLnBhcnNlKGNvbmZpZ1ZhbHVlKSBhcyBJTWVudUl0ZW1bXTtcbiAgICAgICAgaXRlbXMgPSAoY29uZmlnSXRlbXMgfHwgW10pLnJlZHVjZSgocmVzOiBNZW51SXRlbVtdLCBzb3VyY2UpID0+IHtcblxuICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgaXRlbVxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZyb21PYmplY3Qoe3N0YXRpYzogdHJ1ZSwgLi4uc291cmNlfSwge2NvbXB1dGVJZDogdHJ1ZX0pO1xuXG4gICAgICAgICAgLy8gU2tpcCBpcyBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgIGlmIChyZXMuZmluZCgoaSkgPT4gTWVudUl0ZW1zLmlzU2FtZShpLCBpdGVtKSkpIHJldHVybiByZXM7XG5cbiAgICAgICAgICAvLyBSZXVzZSBleGlzdGluZyBpZCwgaWYgcG9zc2libGVcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0l0ZW0gPSB0aGlzLmRhdGE/LmZpbmQoKGkpID0+IE1lbnVJdGVtcy5pc1NhbWUoaSwgaXRlbSkpO1xuICAgICAgICAgIGlmIChleGlzdGluZ0l0ZW0pIHtcbiAgICAgICAgICAgIGl0ZW0uaWQgPSBleGlzdGluZ0l0ZW0uaWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGl0ZW0uYWZ0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcmVzLmZpbmRJbmRleChpID0+IGkudGl0bGUgPT09IGl0ZW0uYWZ0ZXIpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzLnNsaWNlKDAsIGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAuY29uY2F0KGl0ZW0pXG4gICAgICAgICAgICAgICAgLmNvbmNhdChyZXMuc2xpY2UoaW5kZXggKyAxKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKGl0ZW0uYmVmb3JlKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHJlcy5maW5kSW5kZXgoaSA9PiBpLnRpdGxlID09PSBpdGVtLmJlZm9yZSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXMuc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgICAgICAgICAgLmNvbmNhdChpdGVtKVxuICAgICAgICAgICAgICAgIC5jb25jYXQocmVzLnNsaWNlKGluZGV4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuY29uY2F0KGl0ZW0pO1xuICAgICAgICB9LCBpdGVtcyk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9SW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uICcke0NPUkVfQ09ORklHX09QVElPTlMuTUVOVV9JVEVNUy5rZXl9Jy4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgbWVudSBpdGVtYCwgZXJyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgaXRlbSB1c2luZyBhY2NvdW50IHJpZ2h0c1xuICAgIGNvbnN0IG9wdHMgPSB7ZGVidWc6IHRoaXMuX2RlYnVnfTtcbiAgICBpdGVtcyA9IGl0ZW1zXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gTWVudUl0ZW1zLmNoZWNrSWZWaXNpYmxlKGl0ZW0sIGFjY291bnQsIGNvbmZpZywgb3B0cykpXG4gICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAvLyBSZXBsYWNlIHRpdGxlIHVzaW5nIGEgY29uZmlnIHByb3BlcnR5XG4gICAgICAgIGlmIChpc05vdE5pbE9yQmxhbmsoaXRlbS50aXRsZVByb3BlcnR5KSAmJiBjb25maWcpIHtcbiAgICAgICAgICBpdGVtLnRpdGxlID0gY29uZmlnLnByb3BlcnRpZXNbaXRlbS50aXRsZVByb3BlcnR5XSB8fCBpdGVtLnRpdGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9Rm91bmQgJHtpdGVtcy5sZW5ndGh9IHZpc2libGUgcm9vdCBpdGVtcy4uLmApO1xuXG4gICAgLy8gUmUtYXR0YWNoIHN1YiBtZW51IGl0ZW1zXG4gICAgaWYgKHRoaXMuc3ViTWVudUVuYWJsZWQgJiYgZGV0YWNoZWRTdWJJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGlmIChhY2NvdW50KSB7XG4gICAgICAgIHRoaXMuX2FkZFN1Yk1lbnVJdGVtcyhkZXRhY2hlZFN1Ykl0ZW1zLCB7c2tpcElmRXhpc3RzOiBmYWxzZSwgYXZhaWxhYmxlUGFyZW50czogZGV0YWNoZWRTdWJJdGVtcy5jb25jYXQoaXRlbXMpfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyA9IGRldGFjaGVkU3ViSXRlbXM7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgX2FkZFN1Yk1lbnVJdGVtcyhzb3VyY2VzOiBNZW51SXRlbVtdLCBvcHRzPzoge3NraXBJZkV4aXN0cz86IGJvb2xlYW47IGF2YWlsYWJsZVBhcmVudHM/OiBNZW51SXRlbVtdfSkge1xuICAgIHJldHVybiBzb3VyY2VzLm1hcChzb3VyY2UgPT4gdGhpcy5fYWRkU3ViTWVudUl0ZW0oc291cmNlLCBvcHRzKSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRTdWJNZW51SXRlbShuZXdJdGVtOiBNZW51SXRlbSwgb3B0cz86IHtza2lwSWZFeGlzdHM/OiBib29sZWFuOyBhdmFpbGFibGVQYXJlbnRzPzogTWVudUl0ZW1bXX0pIHtcbiAgICBvcHRzID0ge1xuICAgICAgc2tpcElmRXhpc3RzOiB0cnVlLFxuICAgICAgLi4ub3B0cyxcbiAgICB9O1xuXG4gICAgY29uc3QgcGF0aFBhcmFtID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuXG4gICAgLy8gRmluZCBpZiBpdGVtIGFscmVhZHkgZXhpc3RzXG4gICAgY29uc3QgZXhpc3RpbmdJdGVtID0gdGhpcy5fZmluZEV4aXN0aW5nSXRlbShuZXdJdGVtLCBvcHRzPy5hdmFpbGFibGVQYXJlbnRzKTtcbiAgICBpZiAoZXhpc3RpbmdJdGVtKSB7XG4gICAgICAvLyBObyBjaGFuZ2VzXG4gICAgICBpZiAob3B0cy5za2lwSWZFeGlzdHMgJiYgTWVudUl0ZW1zLmlzU2FtZShleGlzdGluZ0l0ZW0sIG5ld0l0ZW0pICYmIGV4aXN0aW5nSXRlbS52aXNpYmxlKSB7XG4gICAgICAgIC8vIERFQlVHXG4gICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9U2tpcHBpbmcgc3ViIGl0ZW0gKHNhbWUgdmlzaWJsZSBpdGVtIGFscmVhZHkgZXhpc3QpYCwgbmV3SXRlbSk7XG4gICAgICAgIHJldHVybiBleGlzdGluZ0l0ZW07XG4gICAgICB9XG5cblxuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1VcGRhdGluZyBleGlzdGluZyBzdWIgaXRlbSAjYCwgZXhpc3RpbmdJdGVtLmlkKTtcblxuICAgICAgLy8gUmVwbGFjZSBleGlzdGluZyBpdGVtLCBidXQga2VlcCB0aGUgZXhpc3RpbmcgaWRcbiAgICAgIGlmIChuZXdJdGVtICE9PSBleGlzdGluZ0l0ZW0pIHtcbiAgICAgICAgbmV3SXRlbS5pZCA9IGV4aXN0aW5nSXRlbS5pZDtcbiAgICAgICAgbmV3SXRlbS4kY2hpbGRyZW4gPSBleGlzdGluZ0l0ZW0uJGNoaWxkcmVuO1xuICAgICAgICBuZXdJdGVtLnBpbm5lZCA9IGV4aXN0aW5nSXRlbS5waW5uZWQ7XG4gICAgICAgIG5ld0l0ZW0uc3RhdGljID0gZXhpc3RpbmdJdGVtLnN0YXRpYztcbiAgICAgICAgaWYgKG5ld0l0ZW0ucGlubmVkIHx8IG5ld0l0ZW0uc3RhdGljIHx8IGV4aXN0aW5nSXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgIC8vIElmIGxvYWRpbmcsIGtlZXAgZXhpc3RpbmcgdGl0bGUgaWYgcGlubmVkIChhdm9pZCB0byBzaG93IHNrZWxldG9uKVxuICAgICAgICAgIG5ld0l0ZW0udGl0bGUgPSBuZXdJdGVtLnRpdGxlIHx8IGV4aXN0aW5nSXRlbS50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBuZXdJdGVtLnRpdGxlID0gaXNOb3ROaWwobmV3SXRlbS50aXRsZSkgPyBuZXdJdGVtLnRpdGxlIDogZXhpc3RpbmdJdGVtLnRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIC8vIEF1dG8gc2V0IGljb24sIGZvciBleHBhbmQgYWN0aW9uXG4gICAgICAgIGlmIChleGlzdGluZ0l0ZW0uYWN0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgICAgIG5ld0l0ZW0uaWNvbiA9IG51bGw7XG4gICAgICAgICAgbmV3SXRlbS5tYXRJY29uID0gZXhpc3RpbmdJdGVtLmV4cGFuZGVkID8gJ2V4cGFuZF9sZXNzJyA6ICdleHBhbmRfbW9yZSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBpdGVtJ3MgaWQgKGlmIG5lZWQpXG4gICAgZWxzZSBpZiAoaXNOaWwobmV3SXRlbS5pZCkpIHtcbiAgICAgIG5ld0l0ZW0uaWQgPSB0aGlzLl9jb21wdXRlTmV3SWQoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IGljb24gZm9yIGV4cGFuZCBhY3Rpb25cbiAgICBpZiAobmV3SXRlbS5hY3Rpb24gPT09ICdleHBhbmQnICYmICFuZXdJdGVtLm1hdEljb24pIHtcbiAgICAgIG5ld0l0ZW0ubWF0SWNvbiA9ICdleHBhbmRfbW9yZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdmlzaWJsZSwgZ2V0IHRoZSBwYXJlbnQgd2hlcmUgdG8gYXR0YWNoIHRoZSBpdGVtXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZmluZFBhcmVudChuZXdJdGVtLCBvcHRzPy5hdmFpbGFibGVQYXJlbnRzKTtcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5leHBhbmRlZCkge1xuICAgICAgLy8gQXR0YWNoIGl0ZW0gdG8gcGFyZW50XG4gICAgICB0aGlzLl9hdHRhY2hNZW51VG9QYXJlbnQocGFyZW50LCBuZXdJdGVtKTtcblxuICAgICAgLy8gVXBkYXRlIGRldGFjaGVkIGl0ZW1zIDpcbiAgICAgIC8vIC0gZXhjbHVkZWQgbmV3IGl0ZW1cbiAgICAgIC8vIC0gYXR0YWNoIGFuZCBleGNsdWRlIHRob3NlIHRoYW4gY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBuZXcgaXRlbVxuICAgICAgLy8gU2VhcmNoIGluIGRldGFjaGVkIGl0ZW1zIG9uZSBoYXZlIG5ld0l0ZW0gYXMgcGFyZW50XG4gICAgICBpZiAobmV3SXRlbS5leHBhbmRlZCkge1xuICAgICAgICBjb25zdCBhbmNlc3RvciA9IG5ld0l0ZW0uYW5jZXN0b3I7XG4gICAgICAgIHRoaXMuX2RldGFjaGVkU3ViSXRlbXMgPSB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLmNvbmNhdCguLi5uZXdJdGVtLmNoaWxkcmVuKVxuICAgICAgICAgIC5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICAgICAgLy8gRXhjbHVkZWQgbmV3bHkgYWRkIGl0ZW1cbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSBuZXdJdGVtLmlkKSByZXR1cm4gcmVzO1xuXG4gICAgICAgICAgICAvLyBJZiBzb21lIGRldGFjaGVkIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgbmV3IGl0ZW06IGRvIGl0XG4gICAgICAgICAgICBpZiAoTWVudUl0ZW1zLmNoZWNrSWZTdWJNZW51VmlzaWJsZShpdGVtLCBwYXRoUGFyYW0pKSB7XG5cbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZmluZFBhcmVudChpdGVtLCBbYW5jZXN0b3JdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBpdGVtJ3MgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdGhpcy5fZGV0YWNoU3ViTWVudUl0ZW1zKHBhdGhQYXJhbSwgaXRlbS5jaGlsZHJlbiB8fCBbXSk7XG5cbiAgICAgICAgICAgICAgICAvLyBBdHRhY2ggaXRlbVxuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaE1lbnVUb1BhcmVudChwYXJlbnQsIGl0ZW0pO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVtZW1iZXIgZGV0YWNoZWQgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmNvbmNhdCguLi5kZXRhY2hlZENoaWxkcmVuKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEZXRhY2ggKGlmIG5lZWQpXG4gICAgICAgICAgICB0aGlzLl9kZXRhY2hUb1BhcmVudChpdGVtKTtcblxuICAgICAgICAgICAgLy8gQWRkIHRvIGRldGFjaGVkIGl0ZW1zXG4gICAgICAgICAgICByZXR1cm4gcmVzLmNvbmNhdChpdGVtKTtcbiAgICAgICAgICB9LCBbXSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gZGV0YWNoZWQgZWxlbWVudHNcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcyA9IHRoaXMuX2RldGFjaGVkU3ViSXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0gbmV3SXRlbS5pZCk7XG5cbiAgICAgICAgLy8gRGV0YWNoIGNoaWxkcmVuXG4gICAgICAgIG5ld0l0ZW0uY2hpbGRyZW4uZm9yRWFjaChpdGVtID0+IHRoaXMuX2RldGFjaFRvUGFyZW50KGl0ZW0pKTtcblxuICAgICAgfVxuXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgLy8gQWRkIG9yIHVwZGF0ZSBkZXRhY2hlZCBpdGVtXG4gICAgICBjb25zdCBkZXRhY2hlZEluZGV4ID0gaXNOb3ROaWwobmV3SXRlbS5pZCkgPyB0aGlzLl9kZXRhY2hlZFN1Ykl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG5ld0l0ZW0uaWQpIDogLTE7XG4gICAgICBpZiAoZGV0YWNoZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtc1tkZXRhY2hlZEluZGV4XSA9IG5ld0l0ZW07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGV0YWNoZWRTdWJJdGVtcy5wdXNoKG5ld0l0ZW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0YXJ0IGxpc3RlbmluZyByb3V0ZVxuICAgIGlmICghdGhpcy5fJGxpc3RlblJvdXRlLnZhbHVlKSB0aGlzLl8kbGlzdGVuUm91dGUubmV4dCh0cnVlKTtcblxuICAgIHJldHVybiBuZXdJdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcHV0ZU5ld0lkKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtQ291bnRlcisrO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlU3ViTWVudUl0ZW0oaXRlbTogTWVudUl0ZW0pIHtcbiAgICBjb25zdCBleGlzdGluZ0l0ZW0gPSB0aGlzLl9maW5kRXhpc3RpbmdJdGVtKGl0ZW0pO1xuICAgIGlmIChleGlzdGluZ0l0ZW0pIHtcbiAgICAgIHRoaXMuX2RldGFjaFRvUGFyZW50KGV4aXN0aW5nSXRlbSk7XG4gICAgICByZXR1cm4gZXhpc3RpbmdJdGVtO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGFjaFN1Yk1lbnVJdGVtcyhjdXJyZW50UGF0aFBhcmFtPzogTWVudVBhdGhQYXJhbSwgc3ViSXRlbXM/OiBNZW51SXRlbVtdKSB7XG4gICAgY3VycmVudFBhdGhQYXJhbSA9IGN1cnJlbnRQYXRoUGFyYW0gPyBjdXJyZW50UGF0aFBhcmFtIDogTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeSh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIChzdWJJdGVtcyB8fCB0aGlzLnN1Ykl0ZW1zKVxuICAgICAgLnJlZHVjZSgocmVzLCBzdWJJdGVtKSA9PiB7XG5cbiAgICAgICAgLy8gTm90IHZpc2libGUgPT4gc2hvdWxkIGJlIGRldGFjaFxuICAgICAgICBpZiAoIU1lbnVJdGVtcy5jaGVja0lmU3ViTWVudVZpc2libGUoc3ViSXRlbSwgY3VycmVudFBhdGhQYXJhbSkpIHtcblxuICAgICAgICAgIHRoaXMuX2RldGFjaFRvUGFyZW50KHN1Ykl0ZW0pO1xuXG4gICAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoc3ViSXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVmlzaWJsZTogY2hlY2sgY2hpbGRyZW5cbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoXG4gICAgICAgICAgdGhpcy5fZGV0YWNoU3ViTWVudUl0ZW1zKGN1cnJlbnRQYXRoUGFyYW0sIHN1Ykl0ZW0uY2hpbGRyZW4pXG4gICAgICAgICk7XG4gICAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRhY2hUb1BhcmVudChpdGVtOiBNZW51SXRlbSkge1xuICAgIGlmICghaXRlbT8ucGFyZW50KSByZXR1cm47IC8vIFNraXAgaWYgYWxyZWFkeSBkZXRhY2hlZFxuICAgIGxldCBjaGlsZHJlbiA9IGl0ZW0ucGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuXG4gICAgLy8gUmVtb3ZlIGZyb20gcGFyZW50IGNoaWxkcmVuXG4gICAgY29uc3QgaW5kZXhJblBhcmVudCA9IGNoaWxkcmVuLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4SW5QYXJlbnQgIT09IC0xKSB7XG4gICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLnNsaWNlKCk7IC8vIENvcHkgb3JpZ2luYWwgYXJyYXksIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWQgaW4gYSBsb29wXG4gICAgICBjaGlsZHJlbi5zcGxpY2UoaW5kZXhJblBhcmVudCwgMSk7XG4gICAgICBpdGVtLnBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cblxuICAgIGl0ZW0ucGFyZW50ID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRFeGlzdGluZ0l0ZW0oc2VhcmNoSXRlbTogSU1lbnVJdGVtLCBpdGVtcz86IE1lbnVJdGVtW10sIHJlY3Vyc2l2ZSA9IHRydWUpOiBNZW51SXRlbSB7XG4gICAgaXRlbXMgPSBpdGVtcyB8fCBbLi4udGhpcy5fZGV0YWNoZWRTdWJJdGVtcywgLi4udGhpcy5kYXRhXTtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDsgLy8gTm90IGZvdW5kXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoTWVudUl0ZW1zLmlzU2FtZUlkT3JQYXRoQW5kUGFyYW1zKHNlYXJjaEl0ZW0sIGl0ZW0pKSByZXR1cm4gaXRlbTtcbiAgICAgIGlmIChyZWN1cnNpdmUgJiYgaXRlbS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBjaGlsZCA9IHRoaXMuX2ZpbmRFeGlzdGluZ0l0ZW0oc2VhcmNoSXRlbSwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIGlmIChjaGlsZCkgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmRQYXJlbnQoY2hpbGRJdGVtOiBNZW51SXRlbSwgYXZhaWxhYmxlUGFyZW50cz86IE1lbnVJdGVtW10pOiBNZW51SXRlbSB7XG4gICAgaWYgKCFjaGlsZEl0ZW0/LnBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKGNoaWxkSXRlbS5wYXJlbnQpIHJldHVybiBjaGlsZEl0ZW0ucGFyZW50O1xuXG4gICAgYXZhaWxhYmxlUGFyZW50cyA9IGF2YWlsYWJsZVBhcmVudHMgfHwgWy4uLnRoaXMuX2RldGFjaGVkU3ViSXRlbXMsIC4uLnRoaXMuZGF0YV07XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlUGFyZW50cy5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgaWYgKCFpdGVtPy5wYXRoKSByZXR1cm4gcmVzO1xuXG4gICAgICAvLyBBIGZvdW5kIGl0ZW0gYWxyZWFkeSBtYXRjaCB3aXRoIHRoZSBtZW51SXRlbS5wYXJlbnRQYXRoIDoga2VlcCBpdCBhcyBpdFxuICAgICAgLy8gVGhlcmUgaXMgYSBmb3VuZCBjYW5kaWRhdGUgdGhhdCBhbHJlYWR5IG1hdGNoIHRoZSBjdXJyZW50IGNhbmRpZGF0ZSA6IGtlZXAgaXRcbiAgICAgIGlmIChNZW51SXRlbXMuaXNQYXJlbnQoY2hpbGRJdGVtLCByZXMpKSByZXR1cm4gcmVzO1xuXG4gICAgICAvLyBJZiB0aGUgbWVudSBpdGVtIGhhcyBleHBsaWNpdCBwYXJlbnRQYXRoIGFuZCBpdHMgcGF0aCBhbmQgcGF0aCBwYXJhbSBhcmUgdGhlIHNhbWUgYXMgdGhlIGNhbmRpZGF0ZSAgOiB1c2UgaXQgYXMgcGFyZW50XG4gICAgICBpZiAoTWVudUl0ZW1zLmlzUGFyZW50KGNoaWxkSXRlbSwgaXRlbSkpIHJldHVybiBpdGVtO1xuXG4gICAgICBpZiAoIXJlcyAmJiBpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmRQYXJlbnQoY2hpbGRJdGVtLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoTWVudVRvUGFyZW50KHBhcmVudDogTWVudUl0ZW0sIGNoaWxkOiBNZW51SXRlbSkge1xuXG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1BdHRhY2ggc3ViLW1lbnUgeyR7TWVudUl0ZW1zLmdldFVybChjaGlsZCl9fSB0byBwYXJlbnQgeyR7TWVudUl0ZW1zLmdldFVybChwYXJlbnQpfX1gKTtcblxuICAgIC8vIEF2b2lkIHRvIGtlZXAgaWRlbnRpY2FsIG1lbnUgaXRlbSAod2UgcmVwbGFjZSBpdCB3aXRoIHRoZSBuZXcgY2hpbGQgbWVudSBpdGVtKVxuICAgIC8vaWYgKCFwYXJlbnQ/LiRjaGlsZHJlbikgcGFyZW50LiRjaGlsZHJlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pO1xuICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBjaGlsZHJlbi5maW5kSW5kZXgoaXRlbSA9PiBNZW51SXRlbXMuaXNTYW1lSWRPclBhdGhBbmRQYXJhbXMoaXRlbSwgY2hpbGQpKTtcblxuICAgIC8vIFVwZGF0ZSBleGlzdGluZyBlbGVtZW50XG4gICAgaWYgKGV4aXN0aW5nSW5kZXggIT09IC0xKSB7XG4gICAgICBpZiAoY2hpbGRyZW5bZXhpc3RpbmdJbmRleF0gIT09IGNoaWxkKSB7XG4gICAgICAgIGNoaWxkcmVuW2V4aXN0aW5nSW5kZXhdID0gY2hpbGQ7XG4gICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgICBjaGlsZC5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7XG5cbiAgICAgIC8vIFNvcnQgYnkgdGFiIChvciBpZClcbiAgICAgIHBhcmVudC5jaGlsZHJlbiA9IGNoaWxkcmVuLnNvcnQoTWVudUl0ZW1zLnNvcnRCeVRhYk9ySWQpO1xuICAgICAgY2hpbGQucGFyZW50ID0gcGFyZW50O1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
106
106
|
}], subMenuIcon: [{
|
|
107
107
|
type: Input
|
|
108
108
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1lbnUtdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L3N1Yi1tZW51LXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUkxRixPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNbEQsTUFBTSxPQUFPLG1CQUFtQjtJQVdWO0lBQWtDO0lBQStCO0lBQXFCO0lBVmpHLEtBQUssQ0FBUztJQUNkLFFBQVEsQ0FBVTtJQUNsQixVQUFVLENBQVM7SUFDbkIsSUFBSSxDQUFTO0lBQ2IsWUFBWSxDQUFTO0lBQ3JCLFdBQVcsR0FBWSxJQUFJLENBQUMsQ0FBQyxvQkFBb0I7SUFFbEQsU0FBUyxDQUFXO0lBQ1gsT0FBTyxDQUFVO0lBRWxDLFlBQW9CLFdBQXdCLEVBQVUsUUFBcUIsRUFBVSxHQUFXLEVBQVUsTUFBYztRQUFwRyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN0SCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxD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QUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEUsQ0FBQzt1R0FqRlUsbUJBQW1COzJGQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7b0pBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWIsIE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuL21lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBNZW51SXRlbSwgTWVudUl0ZW1zIH0gZnJvbSAnLi9tZW51Lm1vZGVsJztcbmltcG9ydCB7IGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBJY29uUmVmIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FwcFN1Yk1lbnVUYWJdJyxcbn0pXG5leHBvcnQgY2xhc3MgU3ViTWVudVRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwYXJlbnRQYXRoOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhdGg6IHN0cmluZztcbiAgQElucHV0KCkgc3ViTWVudVRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1Yk1lbnVJY29uOiBJY29uUmVmID0gbnVsbDsgLy8geyBpY29uOiAnbm9uZScgfTtcblxuICBwcml2YXRlIF9tZW51SXRlbTogTWVudUl0ZW07XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VuYWJsZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSwgcHJpdmF0ZSB0YWJHcm91cDogTWF0VGFiR3JvdXAsIHByaXZhdGUgdGFiOiBNYXRUYWIsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnBhdGggPSBNZW51SXRlbXMucGFyc2VQYXRoV2l0aFF1ZXJ5KHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCkucGF0aDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMudGFiLmRpc2FibGVkKSB0aGlzLl9hZGRUb01lbnUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kaXNhYmxlZCB8fCBjaGFuZ2VzLmxhYmVsIHx8IGNoYW5nZXMuc3ViTWVudVRpdGxlIHx8IGNoYW5nZXMucGFyZW50UGF0aCB8fCBjaGFuZ2VzLnBhdGgpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRvTWVudSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fYWRkVG9NZW51KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVtb3ZlVG9NZW51KCkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5tZW51SXRlbTtcbiAgICBpZiAobWVudUl0ZW0pIHtcbiAgICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UucmVtb3ZlU3ViTWVudUl0ZW0obWVudUl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2FkZFRvTWVudSgpIHtcbiAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMubWVudUl0ZW07XG4gICAgaWYgKCFtZW51SXRlbT8ucGFyZW50UGF0aCkgcmV0dXJuO1xuXG4gICAgLy8gREVCVUdcbiAgICAvL2lmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3N1Yi1tZW51LXRhYl0gUmVmcmVzaGluZyBzdWIgbWVudSB7JHttZW51SXRlbS5wYXRofT90YWI9JHttZW51SXRlbS5wYXRoUGFyYW1zPy50YWIgfHwgMH0gb24gcGFyZW50IHske21lbnVJdGVtLnBhcmVudFBhdGh9fWApO1xuXG4gICAgdGhpcy5fbWVudUl0ZW0gPSBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmFkZFN1Yk1lbnVJdGVtKG1lbnVJdGVtLCB7IHNraXBJZkV4aXN0czogZmFsc2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBtZW51SXRlbSgpOiBNZW51SXRlbSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnRhYkdyb3VwLnNlbGVjdGVkSW5kZXggKyB0aGlzLnRhYi5wb3NpdGlvbjtcbiAgICBjb25zdCBwYXJlbnRQYXRoID0gaW5kZXggPT09IDAgPyB0aGlzLnBhcmVudFBhdGggOiB0aGlzLnBhdGg7XG4gICAgaWYgKCFwYXJlbnRQYXRoKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB0YWJQYXJhbXMgPSBpbmRleCA9PT0gMCA/IHt9IDogeyB0YWI6IGluZGV4LnRvU3RyaW5nKCkgfTtcblxuICAgIC8vIENyZWF0ZSBvciBsb2FkXG4gICAgaWYgKCF0aGlzLl9tZW51SXRlbSkge1xuICAgICAgdGhpcy5fbWVudUl0ZW0gPSB0aGlzLm1lbnVTZXJ2aWNlLmNyZWF0ZVN1Yk1lbnUoe1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIHBhdGhQYXJhbXM6IHRhYlBhcmFtcyxcbiAgICAgICAgcGFyZW50UGF0aCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBleGlzdGluZ1xuICAgIGVsc2Uge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IE1lbnVJdGVtcy5wYXJzZVBhdGhXaXRoUXVlcnkodGhpcy5wYXRoKTtcbiAgICAgIHRoaXMuX21lbnVJdGVtLnBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5fbWVudUl0ZW0ucGF0aFBhcmFtcyA9IHsgLi4ucGFyYW1zLCAuLi50YWJQYXJhbXMgfTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgaXRlbSAodGl0bGUgYW5kIGljb24pXG4gICAgaWYgKHRoaXMuX21lbnVJdGVtKSB7XG4gICAgICB0aGlzLl9tZW51SXRlbS50aXRsZSA9IHRoaXMudGl0bGU7XG4gICAgICBpZiAodGhpcy5zdWJNZW51SWNvbikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX21lbnVJdGVtLCB0aGlzLnN1Yk1lbnVJY29uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBpc05vdE5pbCh0aGlzLnN1Yk1lbnVUaXRsZSkgPyB0aGlzLnN1Yk1lbnVUaXRsZSA6IHRoaXMubGFiZWw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -190,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
190
190
|
}], showSetManuallyButton: [{
|
|
191
191
|
type: Input
|
|
192
192
|
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBlZXIubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvcGVlci9zZWxlY3QtcGVlci5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9wZWVyL3NlbGVjdC1wZWVyLm1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhJLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUU5RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7OztBQWlCakYsTUFBTSxPQUFPLGVBQWU7SUFnQmhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDdUI7SUFDb0I7SUFwQjdDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lB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ZSw2S0FxQmhCLFdBQVcsYUFDQyxtQkFBbUI7MkZBdEI5QixlQUFlLGlOQy9CNUIsOG9JQTJIQSw0b0hEOUZjLENBQUMsZUFBZSxDQUFDOzsyRkFFbEIsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLGVBQWUsQ0FBQzs7MEJBdUIxQixNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjt5Q0FaaEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgUGVlciB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3BlZXIubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmYWRlSW5BbmltYXRpb24gfSBmcm9tICcuLi8uLi9zaGFyZWQvbWF0ZXJpYWwvbWF0ZXJpYWwuYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmV0d29ya1V0aWxzLCBOb2RlSW5mbyB9IGZyb20gJy4uL3NlcnZpY2VzL25ldHdvcmsudXRpbHMnO1xuaW1wb3J0IHsgVmVyc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3ZlcnNpb24vdmVyc2lvbnMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IFRleHRQb3BvdmVyLCBUZXh0UG9wb3Zlck9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3BsYXRmb3Jtcyc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUEVFUl9VUkxfUkVHRVhQIH0gZnJvbSAnLi4vc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IEFQUF9MT0dHSU5HX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2luZy9sb2dnaW5nLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgSUxvZ2dlciwgSUxvZ2dpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dpbmcvbG9nZ2VyLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0UGVlck1vZGFsT3B0aW9ucyB7XG4gIGNhbkNhbmNlbDogYm9vbGVhbjtcbiAgYWxsb3dTZWxlY3REb3duUGVlcjogYm9vbGVhbjtcbiAgb25SZWZyZXNoOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xuICBzaG93U2V0TWFudWFsbHlCdXR0b246IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlbGVjdC1wZWVyLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICdzZWxlY3QtcGVlci5tb2RhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3NlbGVjdC1wZWVyLm1vZGFsLnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbZmFkZUluQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RQZWVyTW9kYWwgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIElTZWxlY3RQZWVyTW9kYWxPcHRpb25zIHtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlcjogSUxvZ2dlcjtcblxuICBsb2FkaW5nID0gdHJ1ZTtcbiAgbW9iaWxlOiBib29sZWFuO1xuICAkcGVlcnMgPSBuZXcgU3ViamVjdDxQZWVyW10+KCk7XG4gIHBlZXJNaW5WZXJzaW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY2FuQ2FuY2VsID0gdHJ1ZTtcbiAgQElucHV0KCkgYWxsb3dTZWxlY3REb3duUGVlciA9IHRydWU7XG4gIEBJbnB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBJbnB1dCgpIHNob3dTZXRNYW51YWxseUJ1dHRvbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtb2RhbEN0cmw6IE1vZGFsQ29udHJvbGxlcixcbiAgICBwcml2YXRlIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9MT0dHSU5HX1NFUlZJQ0UpIHByb3RlY3RlZCBsb2dnaW5nU2VydmljZT86IElMb2dnaW5nU2VydmljZVxuICApIHtcbiAgICB0aGlzLm1vYmlsZSA9IGlzTW9iaWxlKHdpbmRvdyk7XG4gICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2luZ1NlcnZpY2U/LmdldExvZ2dlcignbmV0d29yay1tb2RhbCcpO1xuICAgIHRoaXMucGVlck1pblZlcnNpb24gPSBlbnZpcm9ubWVudC5wZWVyTWluVmVyc2lvbjtcbiAgfVxuXG4gIHNldCBwZWVycyhwZWVyczogT2JzZXJ2YWJsZTxQZWVyW10+KSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHBlZXJzLnN1YnNjcmliZShyZXMgPT4gdGhpcy5yZWZyZXNoUGVlcnMocmVzKSlcbiAgICApO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMubW9kYWxDdHJsLmRpc21pc3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2VsZWN0UGVlcihwZWVyOiBQZWVyKSB7XG4gICAgaWYgKHRoaXMuYWxsb3dTZWxlY3REb3duUGVlciB8fCAocGVlci5yZWFjaGFibGUgJiYgdGhpcy5pc0NvbXBhdGlibGUocGVlcikpKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbc2VsZWN0LXBlZXItbW9kYWxdIFNlbGVjdGVkIHBlZXI6IHt1cmw6ICcke3BlZXIudXJsfSd9YCk7XG4gICAgICB0aGlzLm1vZGFsQ3RybC5kaXNtaXNzKHBlZXIpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqICBDaGVjayB0aGUgbWluIHBvZCB2ZXJzaW9uLCBkZWZpbmVkIGJ5IHRoZSBhcHBcbiAgICpcbiAgICogQHBhcmFtIHBlZXJcbiAgICovXG4gIGlzQ29tcGF0aWJsZShwZWVyOiBQZWVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBlZXJNaW5WZXJzaW9uIHx8IChwZWVyICYmIHBlZXIuc29mdHdhcmVWZXJzaW9uICYmIFZlcnNpb25VdGlscy5pc0NvbXBhdGlibGUodGhpcy5wZWVyTWluVmVyc2lvbiwgcGVlci5zb2Z0d2FyZVZlcnNpb24pKTtcbiAgfVxuXG4gIHJlZnJlc2goZXZlbnQpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMub25SZWZyZXNoLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgYXN5bmMgY2xpY2tTZXRNYW51YWxseShldmVudD86IEV2ZW50KSB7XG4gICAgY29uc3QgcGVlclVybCA9IGF3YWl0IHRoaXMub3BlblBlZXJVcmxQb3BvdmVyKGV2ZW50KTtcbiAgICBpZiAocGVlclVybCkge1xuICAgICAgY29uc3QgcGVlciA9IFBlZXIucGFyc2VVcmwocGVlclVybCk7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2hQZWVyKHBlZXIpO1xuICAgICAgdGhpcy5zZWxlY3RQZWVyKHBlZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgYXN5bmMgcmVmcmVzaFBlZXJzKHBlZXJzOiBQZWVyW10pIHtcbiAgICBwZWVycyA9IHBlZXJzIHx8IFtdO1xuXG4gICAgY29uc3QgZGF0YTogUGVlcltdID0gW107XG4gICAgY29uc3Qgam9icyA9IFByb21pc2UuYWxsKFxuICAgICAgcGVlcnMubWFwKGFzeW5jIChwZWVyKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFBlZXIocGVlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbi5jbG9zZWQpIHJldHVybjsgLy8gY29tcG9uZW50IGRlc3Ryb3llZFxuXG4gICAgICAgIGRhdGEucHVzaChwZWVyKTtcblxuICAgICAgICAvLyBTb3J0IChieSByZWFjaGFibGUsIHRoZW4gaG9zdClcbiAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgaWYgKGEucmVhY2hhYmxlICYmICFiLnJlYWNoYWJsZSkgcmV0dXJuIC0xO1xuICAgICAgICAgIGlmICghYS5yZWFjaGFibGUgJiYgYi5yZWFjaGFibGUpIHJldHVybiAxO1xuICAgICAgICAgIGlmIChhLmhvc3RBbmRQb3J0IDwgYi5ob3N0QW5kUG9ydCkgcmV0dXJuIC0xO1xuICAgICAgICAgIGlmIChhLmhvc3RBbmRQb3J0ID4gYi5ob3N0QW5kUG9ydCkgcmV0dXJuIDE7XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuJHBlZXJzLm5leHQoZGF0YSk7XG4gICAgICAgIHJldHVybiBwZWVyO1xuICAgICAgfSkpO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuJHBlZXJzXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZC5tYXJrRm9yQ2hlY2soKSlcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGpvYnM7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgaWYgKCF0aGlzLl9zdWJzY3JpcHRpb24uY2xvc2VkKSBjb25zb2xlLmVycm9yKGVycik7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaFBlZXIocGVlcjogUGVlcik6IFByb21pc2U8UGVlcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdW1tYXJ5OiBOb2RlSW5mbyA9IGF3YWl0IE5ldHdvcmtVdGlscy5nZXROb2RlSW5mbyh0aGlzLmh0dHAsIHBlZXIudXJsKTtcbiAgICAgIHBlZXIuc3RhdHVzID0gJ1VQJztcbiAgICAgIHBlZXIuc29mdHdhcmVOYW1lID0gc3VtbWFyeS5zb2Z0d2FyZU5hbWU7XG4gICAgICBwZWVyLnNvZnR3YXJlVmVyc2lvbiA9IHN1bW1hcnkuc29mdHdhcmVWZXJzaW9uO1xuICAgICAgcGVlci5sYWJlbCA9IHN1bW1hcnkubm9kZUxhYmVsO1xuICAgICAgcGVlci5uYW1lID0gc3VtbWFyeS5ub2RlTmFtZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIElmIG1vZGFsIHdhcyBub3QgY2xvc2VkIChlLmcuIHJlc3BvbnNlIGFycml2ZWQgdG9vIGxhdGUgPT4gaWdub3JlKVxuICAgICAgaWYgKCF0aGlzLl9zdWJzY3JpcHRpb24uY2xvc2VkKSAge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbc2VsZWN0LXBlZXJdIEVycm9yIHdoaWxlIGNhbGxpbmcgJyR7cGVlci51cmx9L2FwaS9ub2RlL2luZm8nOiAke2Vycj8ubWVzc2FnZSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgICAgdGhpcy5fbG9nZ2VyPy5lcnJvcigncmVmcmVzaFBlZXInLCBgRXJyb3Igd2hpbGUgY2FsbGluZyAnJHtwZWVyLnVybH0vYXBpL25vZGUvaW5mbyc6ICR7ZXJyPy5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGVycil9YCk7XG4gICAgICB9XG4gICAgICBwZWVyLnN0YXR1cyA9ICdET1dOJztcbiAgICB9XG4gICAgcmV0dXJuIHBlZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb3BlblBlZXJVcmxQb3BvdmVyKGV2ZW50OiBFdmVudCwgb3B0cz86IFBhcnRpYWw8VGV4dFBvcG92ZXJPcHRpb25zPikge1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBUZXh0UG9wb3ZlcixcbiAgICAgIGNvbXBvbmVudFByb3BzOiA8VGV4dFBvcG92ZXJPcHRpb25zPntcbiAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1NFVFRJTkdTLlBFRVJfVVJMJyksXG4gICAgICAgIG11bHRpbGluZTogZmFsc2UsXG4gICAgICAgIGF1dG9mb2N1czogIXRoaXMubW9iaWxlLFxuICAgICAgICBhdXRvY29tcGxldGU6IGZhbHNlLFxuICAgICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMucGF0dGVybihQRUVSX1VSTF9SRUdFWFApLFxuICAgICAgICBtYXhMZW5ndGg6IG51bGwsXG4gICAgICAgIC4uLm9wdHNcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IGZhbHNlLFxuICAgICAga2V5Ym9hcmRDbG9zZTogZmFsc2UsXG4gICAgICBldmVudCxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgY3NzQ2xhc3M6ICdwb3BvdmVyLWxhcmdlJyxcbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcbiAgICBjb25zdCB7IGRhdGEsIHJvbGUgfSA9IGF3YWl0IG1vZGFsLm9uRGlkRGlzbWlzcygpO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnUG9wb3ZlciByZXN1bHQ6ICcsIGRhdGEpO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8aW9uLWhlYWRlcj5cbiAgPGlvbi10b29sYmFyIGNvbG9yPVwibGlnaHRcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIiAqbmdJZj1cImNhbkNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICB2aXNpYmxlLXhzIHZpc2libGUtc20gdmlzaWJsZS1tb2JpbGU+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImFycm93LWJhY2tcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPlxuICAgICAge3snTkVUV09SSy5QRUVSLlNFTEVDVF9NT0RBTC5USVRMRSd8dHJhbnNsYXRlfX1cbiAgICA8L2lvbi10aXRsZT5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICA8IS0tIGxvYWRlciAtLT5cbiAgICAgIDxpb24tc3Bpbm5lciAqbmdJZj1cImxvYWRpbmc7IGVsc2UgZW5kQnV0dG9uc1wiPjwvaW9uLXNwaW5uZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW5kQnV0dG9ucz5cbiAgICAgICAgPCEtLSByZWZyZXNoIGJ1dHRvbiAtLT5cbiAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJvblJlZnJlc2gub2JzZXJ2ZXJzIHwgaXNOb3RFbXB0eUFycmF5XCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0NPTU1PTi5CVE5fUkVGUkVTSCd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2goJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwiaWNvbi1vbmx5XCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuXG4gIDxpb24tbGlzdD5cblxuICAgIDxpb24tbGlzdC1oZWFkZXI+XG4gICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiaW9uLXRleHQtd3JhcFwiPlxuICAgICAgICA8cCB0cmFuc2xhdGU+TkVUV09SSy5QRUVSLlNFTEVDVF9NT0RBTC5IRUxQPC9wPlxuICAgICAgPC9pb24tbGFiZWw+XG4gICAgPC9pb24tbGlzdC1oZWFkZXI+XG5cbiAgICA8aW9uLWl0ZW0gKm5nRm9yPVwibGV0IHBlZXIgb2YgJHBlZXJzIHwgYXN5bmNcIlxuICAgICAgICAgICAgICB0YXBwYWJsZVxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGVlcihwZWVyKVwiXG4gICAgICAgICAgICAgIGRldGFpbFxuICAgICAgICAgICAgICBAZmFkZUluQW5pbWF0aW9uPlxuXG4gICAgICA8IS0tIGljb24gLS0+XG4gICAgICA8aW9uLWF2YXRhciBzbG90PVwic3RhcnRcIiAqbmdJZj1cInBlZXIucmVhY2hhYmxlXCIgPlxuICAgICAgICA8aW9uLWltZyBbc3JjXT1cInBlZXIuZmF2aWNvbiB8fCAocGVlci51cmwgKyAnL2FwaS9mYXZpY29uJylcIj48L2lvbi1pbWc+XG4gICAgICA8L2lvbi1hdmF0YXI+XG4gICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgICpuZ0lmPVwiIXBlZXIucmVhY2hhYmxlXCIgbmFtZT1cImRlc2t0b3BcIiBjb2xvcj1cIm1lZGl1bVwiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+PC9pb24taWNvbj5cblxuICAgICAgPCEtLSBQZWVyIGlzIFVQIC0tPlxuICAgICAgPGlvbi1ncmlkICpuZ0lmPVwicGVlci5yZWFjaGFibGVcIj5cbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiPlxuICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+XG4gICAgICAgICAgICAgIDxpb24tdGV4dCBjb2xvcj1cImRhcmtcIj5cbiAgICAgICAgICAgICAgICA8aDM+e3twZWVyLmhvc3RBbmRQb3J0fX17e3BlZXIucGF0aH19PC9oMz5cbiAgICAgICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgIDxoND57e3BlZXIubGFiZWx9fTwvaDQ+XG4gICAgICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXAgaW9uLXRleHQtY2VudGVyXCIgY29sb3I9XCJtZWRpdW1cIj5cbiAgICAgICAgICAgICAgPGgzPnt7cGVlci5zb2Z0d2FyZU5hbWV9fTwvaDM+XG4gICAgICAgICAgICAgIDxoNCAqbmdJZj1cIiFwZWVyTWluVmVyc2lvbiB8fCBpc0NvbXBhdGlibGUocGVlcik7IGVsc2UgaW52YWxpZFZlcnNpb25cIj5cbiAgICAgICAgICAgICAgICA8c21hbGw+dnt7cGVlci5zb2Z0d2FyZVZlcnNpb259fTwvc21hbGw+XG4gICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW52YWxpZFZlcnNpb24+XG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwiZGFuZ2VyXCIgW21hdFRvb2x0aXBdPVwiJ05FVFdPUksuUEVFUi5TRUxFQ1RfTU9EQUwuTk9UX0NPTVBBVElCTEVfSEVMUCd8dHJhbnNsYXRlOiB7dmVyc2lvbjogcGVlck1pblZlcnNpb259IFwiPlxuICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiaW9uLWNvbG9yLWRhbmdlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGw+PG1hdC1pY29uPndhcm5pbmc8L21hdC1pY29uPnZ7e3BlZXIuc29mdHdhcmVWZXJzaW9ufX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L2lvbi1ncmlkPlxuXG4gICAgICA8IS0tIFBlZXIgaXMgRE9XTiAtLT5cbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwXCIgKm5nSWY9XCIhcGVlci5yZWFjaGFibGVcIj5cbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwibWVkaXVtXCI+XG4gICAgICAgICAgPGgzPnt7cGVlci5ob3N0QW5kUG9ydH19e3twZWVyLnBhdGh9fTwvaDM+XG4gICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cImRhbmdlclwiPlxuICAgICAgICAgIDxoND5cbiAgICAgICAgICAgIDxzbWFsbD48aW9uLWljb24gc2l6ZT1cInNtYWxsXCIgbmFtZT1cImNsb3NlLWNpcmNsZVwiPjwvaW9uLWljb24+PC9zbWFsbD5cbiAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5ORVRXT1JLLlBFRVIuT0ZGTElORTwvc3Bhbj5cbiAgICAgICAgICA8L2g0PlxuICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgPC9pb24tbGFiZWw+XG4gICAgPC9pb24taXRlbT5cbiAgPC9pb24tbGlzdD5cblxuPC9pb24tY29udGVudD5cblxuXG48aW9uLWZvb3RlciAqbmdJZj1cImNhbkNhbmNlbFwiIGhpZGRlbi14cyBoaWRkZW4tc20gaGlkZGVuLW1vYmlsZT5cblxuICA8aW9uLXRvb2xiYXI+XG5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbm93cmFwPlxuICAgICAgPGlvbi1jb2w+PC9pb24tY29sPlxuXG4gICAgICA8IS0tIGJ1dHRvbnMgLS0+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiICpuZ0lmPVwic2hvd1NldE1hbnVhbGx5QnV0dG9uXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJjbGlja1NldE1hbnVhbGx5KCRldmVudClcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5ORVRXT1JLLlBFRVIuU0VMRUNUX01PREFMLkJUTl9TRVRfTUFOVUFMTFk8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY29sPlxuICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9DQU5DRUw8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cblxuXG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBlZXIubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvcGVlci9zZWxlY3QtcGVlci5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9wZWVyL3NlbGVjdC1wZWVyLm1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhJLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUU5RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7OztBQWlCakYsTUFBTSxPQUFPLGVBQWU7SUFnQmhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDdUI7SUFDb0I7SUFwQjdDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lB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Q0gsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQXJLVSxlQUFlLDZLQXFCaEIsV0FBVyxhQUNDLG1CQUFtQjsyRkF0QjlCLGVBQWUsaU5DL0I1Qiw4b0lBMkhBLDRvSEQ5RmMsQ0FBQyxlQUFlLENBQUM7OzJGQUVsQixlQUFlO2tCQVAzQixTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsZUFBZSxDQUFDOzswQkF1QjFCLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CO3lDQVpoQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBQZWVyIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvcGVlci5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZhZGVJbkFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC5hbmltYXRpb25zJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBOZXR3b3JrVXRpbHMsIE5vZGVJbmZvIH0gZnJvbSAnLi4vc2VydmljZXMvbmV0d29yay51dGlscyc7XG5pbXBvcnQgeyBWZXJzaW9uVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdmVyc2lvbi92ZXJzaW9ucyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgVGV4dFBvcG92ZXIsIFRleHRQb3BvdmVyT3B0aW9ucyB9IGZyb20gJy4uL2Zvcm0vdGV4dC1wb3BvdmVyL3RleHQtcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGxhdGZvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQRUVSX1VSTF9SRUdFWFAgfSBmcm9tICcuLi9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBQX0xPR0dJTkdfU0VSVklDRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9sb2dnaW5nL2xvZ2dpbmctc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBJTG9nZ2VyLCBJTG9nZ2luZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2luZy9sb2dnZXIubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3RQZWVyTW9kYWxPcHRpb25zIHtcbiAgY2FuQ2FuY2VsOiBib29sZWFuO1xuICBhbGxvd1NlbGVjdERvd25QZWVyOiBib29sZWFuO1xuICBvblJlZnJlc2g6IEV2ZW50RW1pdHRlcjxFdmVudD47XG4gIHNob3dTZXRNYW51YWxseUJ1dHRvbjogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VsZWN0LXBlZXItbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJ3NlbGVjdC1wZWVyLm1vZGFsLmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2VsZWN0LXBlZXIubW9kYWwuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5BbmltYXRpb25dXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFBlZXJNb2RhbCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgSVNlbGVjdFBlZXJNb2RhbE9wdGlvbnMge1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nZ2VyOiBJTG9nZ2VyO1xuXG4gIGxvYWRpbmcgPSB0cnVlO1xuICBtb2JpbGU6IGJvb2xlYW47XG4gICRwZWVycyA9IG5ldyBTdWJqZWN0PFBlZXJbXT4oKTtcbiAgcGVlck1pblZlcnNpb246IHN0cmluZztcblxuICBASW5wdXQoKSBjYW5DYW5jZWwgPSB0cnVlO1xuICBASW5wdXQoKSBhbGxvd1NlbGVjdERvd25QZWVyID0gdHJ1ZTtcbiAgQElucHV0KCkgb25SZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQElucHV0KCkgc2hvd1NldE1hbnVhbGx5QnV0dG9uID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyLFxuICAgIHByaXZhdGUgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0xPR0dJTkdfU0VSVklDRSkgcHJvdGVjdGVkIGxvZ2dpbmdTZXJ2aWNlPzogSUxvZ2dpbmdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubW9iaWxlID0gaXNNb2JpbGUod2luZG93KTtcbiAgICB0aGlzLl9sb2dnZXIgPSBsb2dnaW5nU2VydmljZT8uZ2V0TG9nZ2VyKCduZXR3b3JrLW1vZGFsJyk7XG4gICAgdGhpcy5wZWVyTWluVmVyc2lvbiA9IGVudmlyb25tZW50LnBlZXJNaW5WZXJzaW9uO1xuICB9XG5cbiAgc2V0IHBlZXJzKHBlZXJzOiBPYnNlcnZhYmxlPFBlZXJbXT4pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgcGVlcnMuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnJlZnJlc2hQZWVycyhyZXMpKVxuICAgICk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5tb2RhbEN0cmwuZGlzbWlzcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZWxlY3RQZWVyKHBlZXI6IFBlZXIpIHtcbiAgICBpZiAodGhpcy5hbGxvd1NlbGVjdERvd25QZWVyIHx8IChwZWVyLnJlYWNoYWJsZSAmJiB0aGlzLmlzQ29tcGF0aWJsZShwZWVyKSkpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYFtzZWxlY3QtcGVlci1tb2RhbF0gU2VsZWN0ZWQgcGVlcjoge3VybDogJyR7cGVlci51cmx9J31gKTtcbiAgICAgIHRoaXMubW9kYWxDdHJsLmRpc21pc3MocGVlcik7XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogIENoZWNrIHRoZSBtaW4gcG9kIHZlcnNpb24sIGRlZmluZWQgYnkgdGhlIGFwcFxuICAgKlxuICAgKiBAcGFyYW0gcGVlclxuICAgKi9cbiAgaXNDb21wYXRpYmxlKHBlZXI6IFBlZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucGVlck1pblZlcnNpb24gfHwgKHBlZXIgJiYgcGVlci5zb2Z0d2FyZVZlcnNpb24gJiYgVmVyc2lvblV0aWxzLmlzQ29tcGF0aWJsZSh0aGlzLnBlZXJNaW5WZXJzaW9uLCBwZWVyLnNvZnR3YXJlVmVyc2lvbikpO1xuICB9XG5cbiAgcmVmcmVzaChldmVudCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5vblJlZnJlc2guZW1pdChldmVudCk7XG4gIH1cblxuICBhc3luYyBjbGlja1NldE1hbnVhbGx5KGV2ZW50PzogRXZlbnQpIHtcbiAgICBjb25zdCBwZWVyVXJsID0gYXdhaXQgdGhpcy5vcGVuUGVlclVybFBvcG92ZXIoZXZlbnQpO1xuICAgIGlmIChwZWVyVXJsKSB7XG4gICAgICBjb25zdCBwZWVyID0gUGVlci5wYXJzZVVybChwZWVyVXJsKTtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFBlZXIocGVlcik7XG4gICAgICB0aGlzLnNlbGVjdFBlZXIocGVlcik7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBhc3luYyByZWZyZXNoUGVlcnMocGVlcnM6IFBlZXJbXSkge1xuICAgIHBlZXJzID0gcGVlcnMgfHwgW107XG5cbiAgICBjb25zdCBkYXRhOiBQZWVyW10gPSBbXTtcbiAgICBjb25zdCBqb2JzID0gUHJvbWlzZS5hbGwoXG4gICAgICBwZWVycy5tYXAoYXN5bmMgKHBlZXIpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoUGVlcihwZWVyKTtcblxuICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uLmNsb3NlZCkgcmV0dXJuOyAvLyBjb21wb25lbnQgZGVzdHJveWVkXG5cbiAgICAgICAgZGF0YS5wdXNoKHBlZXIpO1xuXG4gICAgICAgIC8vIFNvcnQgKGJ5IHJlYWNoYWJsZSwgdGhlbiBob3N0KVxuICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICBpZiAoYS5yZWFjaGFibGUgJiYgIWIucmVhY2hhYmxlKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYgKCFhLnJlYWNoYWJsZSAmJiBiLnJlYWNoYWJsZSkgcmV0dXJuIDE7XG4gICAgICAgICAgaWYgKGEuaG9zdEFuZFBvcnQgPCBiLmhvc3RBbmRQb3J0KSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYgKGEuaG9zdEFuZFBvcnQgPiBiLmhvc3RBbmRQb3J0KSByZXR1cm4gMTtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy4kcGVlcnMubmV4dChkYXRhKTtcbiAgICAgICAgcmV0dXJuIHBlZXI7XG4gICAgICB9KSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy4kcGVlcnNcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkLm1hcmtGb3JDaGVjaygpKVxuICAgICk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgam9icztcbiAgICB9XG4gICAgY2F0Y2goZXJyKSB7XG4gICAgICBpZiAoIXRoaXMuX3N1YnNjcmlwdGlvbi5jbG9zZWQpIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoUGVlcihwZWVyOiBQZWVyKTogUHJvbWlzZTxQZWVyPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1bW1hcnk6IE5vZGVJbmZvID0gYXdhaXQgTmV0d29ya1V0aWxzLmdldE5vZGVJbmZvKHRoaXMuaHR0cCwgcGVlci51cmwpO1xuICAgICAgcGVlci5zdGF0dXMgPSAnVVAnO1xuICAgICAgcGVlci5zb2Z0d2FyZU5hbWUgPSBzdW1tYXJ5LnNvZnR3YXJlTmFtZTtcbiAgICAgIHBlZXIuc29mdHdhcmVWZXJzaW9uID0gc3VtbWFyeS5zb2Z0d2FyZVZlcnNpb247XG4gICAgICBwZWVyLmxhYmVsID0gc3VtbWFyeS5ub2RlTGFiZWw7XG4gICAgICBwZWVyLm5hbWUgPSBzdW1tYXJ5Lm5vZGVOYW1lO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gSWYgbW9kYWwgd2FzIG5vdCBjbG9zZWQgKGUuZy4gcmVzcG9uc2UgYXJyaXZlZCB0b28gbGF0ZSA9PiBpZ25vcmUpXG4gICAgICBpZiAoIXRoaXMuX3N1YnNjcmlwdGlvbi5jbG9zZWQpICB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtzZWxlY3QtcGVlcl0gRXJyb3Igd2hpbGUgY2FsbGluZyAnJHtwZWVyLnVybH0vYXBpL25vZGUvaW5mbyc6ICR7ZXJyPy5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgICB0aGlzLl9sb2dnZXI/LmVycm9yKCdyZWZyZXNoUGVlcicsIGBFcnJvciB3aGlsZSBjYWxsaW5nICcke3BlZXIudXJsfS9hcGkvbm9kZS9pbmZvJzogJHtlcnI/Lm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyKX1gKTtcbiAgICAgIH1cbiAgICAgIHBlZXIuc3RhdHVzID0gJ0RPV04nO1xuICAgIH1cbiAgICByZXR1cm4gcGVlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvcGVuUGVlclVybFBvcG92ZXIoZXZlbnQ6IEV2ZW50LCBvcHRzPzogUGFydGlhbDxUZXh0UG9wb3Zlck9wdGlvbnM+KSB7XG4gICAgY29uc3QgbW9kYWwgPSBhd2FpdCB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IFRleHRQb3BvdmVyLFxuICAgICAgY29tcG9uZW50UHJvcHM6IDxUZXh0UG9wb3Zlck9wdGlvbnM+e1xuICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnU0VUVElOR1MuUEVFUl9VUkwnKSxcbiAgICAgICAgbXVsdGlsaW5lOiBmYWxzZSxcbiAgICAgICAgYXV0b2ZvY3VzOiAhdGhpcy5tb2JpbGUsXG4gICAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2UsXG4gICAgICAgIHZhbGlkYXRvcjogVmFsaWRhdG9ycy5wYXR0ZXJuKFBFRVJfVVJMX1JFR0VYUCksXG4gICAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgICAgLi4ub3B0c1xuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogZmFsc2UsXG4gICAgICBrZXlib2FyZENsb3NlOiBmYWxzZSxcbiAgICAgIGV2ZW50LFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBjc3NDbGFzczogJ3BvcG92ZXItbGFyZ2UnLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgbW9kYWwucHJlc2VudCgpO1xuICAgIGNvbnN0IHsgZGF0YSwgcm9sZSB9ID0gYXdhaXQgbW9kYWwub25EaWREaXNtaXNzKCk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc29sZS5pbmZvKCdQb3BvdmVyIHJlc3VsdDogJywgZGF0YSk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJsaWdodFwiPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiICpuZ0lmPVwiY2FuQ2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgIHZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZT5cbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiYXJyb3ctYmFja1wiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGU+XG4gICAgICB7eydORVRXT1JLLlBFRVIuU0VMRUNUX01PREFMLlRJVExFJ3x0cmFuc2xhdGV9fVxuICAgIDwvaW9uLXRpdGxlPlxuXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgIDwhLS0gbG9hZGVyIC0tPlxuICAgICAgPGlvbi1zcGlubmVyICpuZ0lmPVwibG9hZGluZzsgZWxzZSBlbmRCdXR0b25zXCI+PC9pb24tc3Bpbm5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNlbmRCdXR0b25zPlxuICAgICAgICA8IS0tIHJlZnJlc2ggYnV0dG9uIC0tPlxuICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cIm9uUmVmcmVzaC5vYnNlcnZlcnMgfCBpc05vdEVtcHR5QXJyYXlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInQ09NTU9OLkJUTl9SRUZSRVNIJ3x0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1idXR0b25zPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQ+XG5cbiAgPGlvbi1saXN0PlxuXG4gICAgPGlvbi1saXN0LWhlYWRlcj5cbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+XG4gICAgICAgIDxwIHRyYW5zbGF0ZT5ORVRXT1JLLlBFRVIuU0VMRUNUX01PREFMLkhFTFA8L3A+XG4gICAgICA8L2lvbi1sYWJlbD5cbiAgICA8L2lvbi1saXN0LWhlYWRlcj5cblxuICAgIDxpb24taXRlbSAqbmdGb3I9XCJsZXQgcGVlciBvZiAkcGVlcnMgfCBhc3luY1wiXG4gICAgICAgICAgICAgIHRhcHBhYmxlXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQZWVyKHBlZXIpXCJcbiAgICAgICAgICAgICAgZGV0YWlsXG4gICAgICAgICAgICAgIEBmYWRlSW5BbmltYXRpb24+XG5cbiAgICAgIDwhLS0gaWNvbiAtLT5cbiAgICAgIDxpb24tYXZhdGFyIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwicGVlci5yZWFjaGFibGVcIiA+XG4gICAgICAgIDxpb24taW1nIFtzcmNdPVwicGVlci5mYXZpY29uIHx8IChwZWVyLnVybCArICcvYXBpL2Zhdmljb24nKVwiPjwvaW9uLWltZz5cbiAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiAgKm5nSWY9XCIhcGVlci5yZWFjaGFibGVcIiBuYW1lPVwiZGVza3RvcFwiIGNvbG9yPVwibWVkaXVtXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj48L2lvbi1pY29uPlxuXG4gICAgICA8IS0tIFBlZXIgaXMgVVAgLS0+XG4gICAgICA8aW9uLWdyaWQgKm5nSWY9XCJwZWVyLnJlYWNoYWJsZVwiPlxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj5cbiAgICAgICAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwiZGFya1wiPlxuICAgICAgICAgICAgICAgIDxoMz57e3BlZXIuaG9zdEFuZFBvcnR9fXt7cGVlci5wYXRofX08L2gzPlxuICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgPGg0Pnt7cGVlci5sYWJlbH19PC9oND5cbiAgICAgICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiaW9uLXRleHQtd3JhcCBpb24tdGV4dC1jZW50ZXJcIiBjb2xvcj1cIm1lZGl1bVwiPlxuICAgICAgICAgICAgICA8aDM+e3twZWVyLnNvZnR3YXJlTmFtZX19PC9oMz5cbiAgICAgICAgICAgICAgPGg0ICpuZ0lmPVwiIXBlZXJNaW5WZXJzaW9uIHx8IGlzQ29tcGF0aWJsZShwZWVyKTsgZWxzZSBpbnZhbGlkVmVyc2lvblwiPlxuICAgICAgICAgICAgICAgIDxzbWFsbD52e3twZWVyLnNvZnR3YXJlVmVyc2lvbn19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbnZhbGlkVmVyc2lvbj5cbiAgICAgICAgICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJkYW5nZXJcIiBbbWF0VG9vbHRpcF09XCInTkVUV09SSy5QRUVSLlNFTEVDVF9NT0RBTC5OT1RfQ09NUEFUSUJMRV9IRUxQJ3x0cmFuc2xhdGU6IHt2ZXJzaW9uOiBwZWVyTWluVmVyc2lvbn0gXCI+XG4gICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJpb24tY29sb3ItZGFuZ2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD48bWF0LWljb24+d2FybmluZzwvbWF0LWljb24+dnt7cGVlci5zb2Z0d2FyZVZlcnNpb259fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG5cbiAgICAgIDwhLS0gUGVlciBpcyBET1dOIC0tPlxuICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIiAqbmdJZj1cIiFwZWVyLnJlYWNoYWJsZVwiPlxuICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJtZWRpdW1cIj5cbiAgICAgICAgICA8aDM+e3twZWVyLmhvc3RBbmRQb3J0fX17e3BlZXIucGF0aH19PC9oMz5cbiAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgICAgICAgPGg0PlxuICAgICAgICAgICAgPHNtYWxsPjxpb24taWNvbiBzaXplPVwic21hbGxcIiBuYW1lPVwiY2xvc2UtY2lyY2xlXCI+PC9pb24taWNvbj48L3NtYWxsPlxuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPk5FVFdPUksuUEVFUi5PRkZMSU5FPC9zcGFuPlxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICA8L2lvbi1sYWJlbD5cbiAgICA8L2lvbi1pdGVtPlxuICA8L2lvbi1saXN0PlxuXG48L2lvbi1jb250ZW50PlxuXG5cbjxpb24tZm9vdGVyICpuZ0lmPVwiY2FuQ2FuY2VsXCIgaGlkZGVuLXhzIGhpZGRlbi1zbSBoaWRkZW4tbW9iaWxlPlxuXG4gIDxpb24tdG9vbGJhcj5cblxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiBub3dyYXA+XG4gICAgICA8aW9uLWNvbD48L2lvbi1jb2w+XG5cbiAgICAgIDwhLS0gYnV0dG9ucyAtLT5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgKm5nSWY9XCJzaG93U2V0TWFudWFsbHlCdXR0b25cIj5cbiAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cImNsaWNrU2V0TWFudWFsbHkoJGV2ZW50KVwiPlxuICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPk5FVFdPUksuUEVFUi5TRUxFQ1RfTU9EQUwuQlROX1NFVF9NQU5VQUxMWTwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NBTkNFTDwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuXG5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWZvb3Rlcj5cbiJdfQ==
|
|
@@ -79,10 +79,10 @@ export class RegisterConfirmPage {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RegisterConfirmPage, deps: [{ token: i1.PlatformService }, { token: i2.AccountService }, { token: i3.ActivatedRoute }, { token: i4.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: RegisterConfirmPage, selector: "app-register-confirm-page", ngImport: i0, template: "<app-toolbar [title]=\"'REGISTER.CONFIRMED.TITLE'|translate\" color=\"primary\">\n</app-toolbar>\n\n\n<ion-content class=\"bg-image-cover center ion-padding\" [ngStyle]=\"contentStyle\">\n\n <p class=\"hidden-xs ion-padding\"> <br /><br /></p>\n <p class=\"hidden-xs\"> </p>\n\n\n <ion-card>\n <ion-card-content>\n\n <div>\n <ng-container *ngIf=\"loading\">\n <h4 translate>REGISTER.CONFIRMED.LOADING</h4>\n <p><ion-spinner></ion-spinner></p>\n </ng-container>\n\n <!-- error -->\n <ion-item *ngIf=\"!loading && error\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error ion-text-wrap\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n </div>\n\n <div *ngIf=\"!loading && !error\">\n <h3>\n <ion-icon name=\"checkmark\"></ion-icon>\n <b translate>REGISTER.CONFIRMED.SUB_TITLE</b>\n </h3>\n\n <ion-text>\n <p [innerHTML]=\"'REGISTER.CONFIRMED.SUCCESS'|translate: {email: email}\"></p>\n <p *ngIf=\"!isLogin\" [innerHTML]=\"'REGISTER.CONFIRMED.LOGIN_HELP'|translate\"></p>\n </ion-text>\n\n </div>\n\n </ion-card-content>\n\n <ion-footer *ngIf=\"!loading\">\n <ion-button expand=\"full\" color=\"primary\" [routerLink]=\"['/account']\" *ngIf=\"!isLogin\">\n <ion-icon name=\"log-in\" slot=\"start\"></ion-icon>\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n <ion-button expand=\"full\" color=\"secondary\" [routerLink]=\"['/account']\" *ngIf=\"isLogin\">\n <ion-icon name=\"contact\" slot=\"start\"></ion-icon>\n <span translate>HOME.BTN_MY_ACCOUNT</span>\n </ion-button>\n </ion-footer>\n </ion-card>\n\n</ion-content>\n", styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,.bottom-banner,ion-text,ion-card img,ion-card,ion-content{text-align:center;display:inline-block}ion-content{--ion-background-color: transparent;background-size:cover;display:inline-block;padding:15px}ion-card{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;max-width:400px;z-index:9}ion-card button{margin-top:16px}ion-card img{max-width:250px}.bottom-banner{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;z-index:0}.bottom-banner img.logo{max-height:50px;margin-left:8px}@media screen and (max-width: 575px){ion-content ion-card{min-width:160px;width:auto;max-width:260px}ion-content ion-card img{max-width:100px;margin-left:8px}ion-content ion-card ion-footer ion-button{margin-top:8px}.bottom-banner img.logo{max-height:30px}}@media screen and (max-width: 767px) and (min-width: 576px){ion-content{min-height:555px}.bottom-banner img.logo{max-height:40px}}@media screen and (min-width: 768px){ion-content{min-height:606px}.main-content{padding-bottom:0}.bottom-banner{position:absolute;bottom:16px;left:16px;right:16px}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i6.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: RegisterConfirmPage, selector: "app-register-confirm-page", ngImport: i0, template: "<app-toolbar [title]=\"'REGISTER.CONFIRMED.TITLE'|translate\" color=\"primary\">\n</app-toolbar>\n\n\n<ion-content class=\"bg-image-cover center ion-padding\" [ngStyle]=\"contentStyle\">\n\n <p class=\"hidden-xs ion-padding\"> <br /><br /></p>\n <p class=\"hidden-xs\"> </p>\n\n\n <ion-card>\n <ion-card-content>\n\n <div>\n <ng-container *ngIf=\"loading\">\n <h4 translate>REGISTER.CONFIRMED.LOADING</h4>\n <p><ion-spinner></ion-spinner></p>\n </ng-container>\n\n <!-- error -->\n <ion-item *ngIf=\"!loading && error\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error ion-text-wrap\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n </div>\n\n <div *ngIf=\"!loading && !error\">\n <h3>\n <ion-icon name=\"checkmark\"></ion-icon>\n <b translate>REGISTER.CONFIRMED.SUB_TITLE</b>\n </h3>\n\n <ion-text>\n <p [innerHTML]=\"'REGISTER.CONFIRMED.SUCCESS'|translate: {email: email}\"></p>\n <p *ngIf=\"!isLogin\" [innerHTML]=\"'REGISTER.CONFIRMED.LOGIN_HELP'|translate\"></p>\n </ion-text>\n\n </div>\n\n </ion-card-content>\n\n <ion-footer *ngIf=\"!loading\">\n <ion-button expand=\"full\" color=\"primary\" [routerLink]=\"['/account']\" *ngIf=\"!isLogin\">\n <ion-icon name=\"log-in\" slot=\"start\"></ion-icon>\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n <ion-button expand=\"full\" color=\"secondary\" [routerLink]=\"['/account']\" *ngIf=\"isLogin\">\n <ion-icon name=\"contact\" slot=\"start\"></ion-icon>\n <span translate>HOME.BTN_MY_ACCOUNT</span>\n </ion-button>\n </ion-footer>\n </ion-card>\n\n</ion-content>\n", styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,.bottom-banner,ion-text,ion-card img,ion-card,ion-content{text-align:center;display:inline-block}ion-content{--ion-background-color: transparent;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;display:inline-block;padding:15px}ion-card{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;max-width:400px;z-index:9}ion-card button{margin-top:16px}ion-card img{max-width:250px}.bottom-banner{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;z-index:0}.bottom-banner img.logo{max-height:50px;margin-left:8px}@media screen and (max-width: 575px){ion-content ion-card{min-width:160px;width:auto;max-width:260px}ion-content ion-card img{max-width:100px;margin-left:8px}ion-content ion-card ion-footer ion-button{margin-top:8px}.bottom-banner img.logo{max-height:30px}}@media screen and (max-width: 767px) and (min-width: 576px){ion-content{min-height:555px}.bottom-banner img.logo{max-height:40px}}@media screen and (min-width: 768px){ion-content{min-height:606px}.main-content{padding-bottom:0}.bottom-banner{position:absolute;bottom:16px;left:16px;right:16px}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i6.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
83
83
|
}
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RegisterConfirmPage, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
|
-
args: [{ selector: 'app-register-confirm-page', template: "<app-toolbar [title]=\"'REGISTER.CONFIRMED.TITLE'|translate\" color=\"primary\">\n</app-toolbar>\n\n\n<ion-content class=\"bg-image-cover center ion-padding\" [ngStyle]=\"contentStyle\">\n\n <p class=\"hidden-xs ion-padding\"> <br /><br /></p>\n <p class=\"hidden-xs\"> </p>\n\n\n <ion-card>\n <ion-card-content>\n\n <div>\n <ng-container *ngIf=\"loading\">\n <h4 translate>REGISTER.CONFIRMED.LOADING</h4>\n <p><ion-spinner></ion-spinner></p>\n </ng-container>\n\n <!-- error -->\n <ion-item *ngIf=\"!loading && error\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error ion-text-wrap\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n </div>\n\n <div *ngIf=\"!loading && !error\">\n <h3>\n <ion-icon name=\"checkmark\"></ion-icon>\n <b translate>REGISTER.CONFIRMED.SUB_TITLE</b>\n </h3>\n\n <ion-text>\n <p [innerHTML]=\"'REGISTER.CONFIRMED.SUCCESS'|translate: {email: email}\"></p>\n <p *ngIf=\"!isLogin\" [innerHTML]=\"'REGISTER.CONFIRMED.LOGIN_HELP'|translate\"></p>\n </ion-text>\n\n </div>\n\n </ion-card-content>\n\n <ion-footer *ngIf=\"!loading\">\n <ion-button expand=\"full\" color=\"primary\" [routerLink]=\"['/account']\" *ngIf=\"!isLogin\">\n <ion-icon name=\"log-in\" slot=\"start\"></ion-icon>\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n <ion-button expand=\"full\" color=\"secondary\" [routerLink]=\"['/account']\" *ngIf=\"isLogin\">\n <ion-icon name=\"contact\" slot=\"start\"></ion-icon>\n <span translate>HOME.BTN_MY_ACCOUNT</span>\n </ion-button>\n </ion-footer>\n </ion-card>\n\n</ion-content>\n", styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,.bottom-banner,ion-text,ion-card img,ion-card,ion-content{text-align:center;display:inline-block}ion-content{--ion-background-color: transparent;background-size:cover;display:inline-block;padding:15px}ion-card{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;max-width:400px;z-index:9}ion-card button{margin-top:16px}ion-card img{max-width:250px}.bottom-banner{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;z-index:0}.bottom-banner img.logo{max-height:50px;margin-left:8px}@media screen and (max-width: 575px){ion-content ion-card{min-width:160px;width:auto;max-width:260px}ion-content ion-card img{max-width:100px;margin-left:8px}ion-content ion-card ion-footer ion-button{margin-top:8px}.bottom-banner img.logo{max-height:30px}}@media screen and (max-width: 767px) and (min-width: 576px){ion-content{min-height:555px}.bottom-banner img.logo{max-height:40px}}@media screen and (min-width: 768px){ion-content{min-height:606px}.main-content{padding-bottom:0}.bottom-banner{position:absolute;bottom:16px;left:16px;right:16px}}\n"] }]
|
|
86
|
+
args: [{ selector: 'app-register-confirm-page', template: "<app-toolbar [title]=\"'REGISTER.CONFIRMED.TITLE'|translate\" color=\"primary\">\n</app-toolbar>\n\n\n<ion-content class=\"bg-image-cover center ion-padding\" [ngStyle]=\"contentStyle\">\n\n <p class=\"hidden-xs ion-padding\"> <br /><br /></p>\n <p class=\"hidden-xs\"> </p>\n\n\n <ion-card>\n <ion-card-content>\n\n <div>\n <ng-container *ngIf=\"loading\">\n <h4 translate>REGISTER.CONFIRMED.LOADING</h4>\n <p><ion-spinner></ion-spinner></p>\n </ng-container>\n\n <!-- error -->\n <ion-item *ngIf=\"!loading && error\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error ion-text-wrap\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n </div>\n\n <div *ngIf=\"!loading && !error\">\n <h3>\n <ion-icon name=\"checkmark\"></ion-icon>\n <b translate>REGISTER.CONFIRMED.SUB_TITLE</b>\n </h3>\n\n <ion-text>\n <p [innerHTML]=\"'REGISTER.CONFIRMED.SUCCESS'|translate: {email: email}\"></p>\n <p *ngIf=\"!isLogin\" [innerHTML]=\"'REGISTER.CONFIRMED.LOGIN_HELP'|translate\"></p>\n </ion-text>\n\n </div>\n\n </ion-card-content>\n\n <ion-footer *ngIf=\"!loading\">\n <ion-button expand=\"full\" color=\"primary\" [routerLink]=\"['/account']\" *ngIf=\"!isLogin\">\n <ion-icon name=\"log-in\" slot=\"start\"></ion-icon>\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n <ion-button expand=\"full\" color=\"secondary\" [routerLink]=\"['/account']\" *ngIf=\"isLogin\">\n <ion-icon name=\"contact\" slot=\"start\"></ion-icon>\n <span translate>HOME.BTN_MY_ACCOUNT</span>\n </ion-button>\n </ion-footer>\n </ion-card>\n\n</ion-content>\n", styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,.bottom-banner,ion-text,ion-card img,ion-card,ion-content{text-align:center;display:inline-block}ion-content{--ion-background-color: transparent;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;display:inline-block;padding:15px}ion-card{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;max-width:400px;z-index:9}ion-card button{margin-top:16px}ion-card img{max-width:250px}.bottom-banner{padding:var(--ion-padding);background-color:#ffffffb3;min-width:240px;z-index:0}.bottom-banner img.logo{max-height:50px;margin-left:8px}@media screen and (max-width: 575px){ion-content ion-card{min-width:160px;width:auto;max-width:260px}ion-content ion-card img{max-width:100px;margin-left:8px}ion-content ion-card ion-footer ion-button{margin-top:8px}.bottom-banner img.logo{max-height:30px}}@media screen and (max-width: 767px) and (min-width: 576px){ion-content{min-height:555px}.bottom-banner img.logo{max-height:40px}}@media screen and (min-width: 768px){ion-content{min-height:606px}.main-content{padding-bottom:0}.bottom-banner{position:absolute;bottom:16px;left:16px;right:16px}}\n"] }]
|
|
87
87
|
}], ctorParameters: () => [{ type: i1.PlatformService }, { type: i2.AccountService }, { type: i3.ActivatedRoute }, { type: i4.ConfigService }] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItY29uZmlybS5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL3JlZ2lzdGVyLWNvbmZpcm0ucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9yZWdpc3Rlci9yZWdpc3Rlci1jb25maXJtLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7QUFTNUMsTUFBTSxPQUFPLG1CQUFtQjtJQVdwQjtJQUNBO0lBQ0E7SUFDQTtJQVpWLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRW5DLE9BQU8sQ0FBVTtJQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsS0FBSyxDQUFTO0lBQ2QsS0FBSyxDQUFTO0lBQ2QsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUVsQixZQUNVLFFBQXlCLEVBQ3pCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQTRCO1FBSDVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRXhDLGdCQUFnQjtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUks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R0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDdEI7SUFFSCxDQUFDO3VHQS9FVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixpRUNiaEMsdXpEQXVEQTs7MkZEMUNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FjY291bnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHtnZXRSYW5kb21JbWFnZX0gZnJvbSAnLi4vaG9tZS9ob21lJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtQbGF0Zm9ybVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVnaXN0ZXItY29uZmlybS1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICdyZWdpc3Rlci1jb25maXJtLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZ2lzdGVyLWNvbmZpcm0ucGFnZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJDb25maXJtUGFnZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBpc0xvZ2luOiBib29sZWFuO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgZXJyb3I6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgY29udGVudFN0eWxlID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSkge1xuXG4gICAgdGhpcy5wbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5pc0xvZ2luID0gYWNjb3VudFNlcnZpY2UuaXNMb2dpbigpO1xuXG4gICAgICAvLyBTdWJzY3JpcHRpb25zXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmFjY291bnRTZXJ2aWNlLm9uTG9naW4uc3Vic2NyaWJlKF8gPT4gdGhpcy5pc0xvZ2luID0gdHJ1ZSkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ291dC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pc0xvZ2luID0gZmFsc2UpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1NYXAuc3Vic2NyaWJlKHBhcmFtcyA9PlxuICAgICAgICB0aGlzLmRvQ29uZmlybShwYXJhbXMuZ2V0KCdlbWFpbCcpLCBwYXJhbXMuZ2V0KCdjb2RlJykpXG4gICAgICApKTtcblxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5zdWJzY3JpYmUoY29uZmlnID0+IHtcblxuICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2VzICYmIGNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2VzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGJnSW1hZ2UgPSBnZXRSYW5kb21JbWFnZShjb25maWcuYmFja2dyb3VuZEltYWdlcyk7XG4gICAgICAgICAgdGhpcy5jb250ZW50U3R5bGUgPSB7J2JhY2tncm91bmQtaW1hZ2UnOiBgdXJsKCR7YmdJbWFnZX0pYH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcHJpbWFyeUNvbG9yID0gY29uZmlnLnByb3BlcnRpZXMgJiYgY29uZmlnLnByb3BlcnRpZXNbJ3N1bWFyaXMuY29sb3IucHJpbWFyeSddIHx8ICcjMTQ0MzkxJztcbiAgICAgICAgICB0aGlzLmNvbnRlbnRTdHlsZSA9IHsnYmFja2dyb3VuZC1jb2xvcic6IHByaW1hcnlDb2xvcn07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG5cbiAgYXN5bmMgZG9Db25maXJtKGVtYWlsOiBzdHJpbmcsIGNvZGU6IHN0cmluZykge1xuICAgIHRoaXMuZW1haWwgPSBlbWFpbDtcblxuICAgIGlmICghY29kZSkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmVycm9yID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5hY2NvdW50U2VydmljZS5pc0xvZ2luKCkpIHtcbiAgICAgICAgY29uc3QgYWNjb3VudCA9IHRoaXMuYWNjb3VudFNlcnZpY2UuYWNjb3VudDtcbiAgICAgICAgY29uc3QgZW1haWxBY2NvdW50ID0gYWNjb3VudCAmJiBhY2NvdW50LmVtYWlsO1xuICAgICAgICBpZiAoZW1haWwgIT09IGVtYWlsQWNjb3VudCkge1xuICAgICAgICAgIC8vIE5vdCBzYW1lIGVtYWlsID0+IGxvZ291dCwgdGhlbiByZXRyeVxuICAgICAgICAgIGF3YWl0IHRoaXMuYWNjb3VudFNlcnZpY2UubG9nb3V0KCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZG9Db25maXJtKGVtYWlsLCBjb2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTZW5kIHRoZSBjb25maXJtYXRpb24gY29kZVxuICAgICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5jb25maXJtRW1haWwoZW1haWwsIGNvZGUpO1xuICAgICAgaWYgKGNvbmZpcm1lZCAmJiB0aGlzLmlzTG9naW4pIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgLy90aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShcIi9jb25maXJtL1wiICsgZW1haWwgKyBcIi9cIik7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSBlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gIH1cbn1cbiIsIjxhcHAtdG9vbGJhciBbdGl0bGVdPVwiJ1JFR0lTVEVSLkNPTkZJUk1FRC5USVRMRSd8dHJhbnNsYXRlXCIgY29sb3I9XCJwcmltYXJ5XCI+XG48L2FwcC10b29sYmFyPlxuXG5cbjxpb24tY29udGVudCBjbGFzcz1cImJnLWltYWdlLWNvdmVyIGNlbnRlciBpb24tcGFkZGluZ1wiIFtuZ1N0eWxlXT1cImNvbnRlbnRTdHlsZVwiPlxuXG4gIDxwIGNsYXNzPVwiaGlkZGVuLXhzIGlvbi1wYWRkaW5nXCI+Jm5ic3A7PGJyIC8+PGJyIC8+PC9wPlxuICA8cCBjbGFzcz1cImhpZGRlbi14c1wiPiZuYnNwOzwvcD5cblxuXG4gIDxpb24tY2FyZD5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgICA8aDQgdHJhbnNsYXRlPlJFR0lTVEVSLkNPTkZJUk1FRC5MT0FESU5HPC9oND5cbiAgICAgICAgICA8cD48aW9uLXNwaW5uZXI+PC9pb24tc3Bpbm5lcj48L3A+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gZXJyb3IgLS0+XG4gICAgICAgIDxpb24taXRlbSAqbmdJZj1cIiFsb2FkaW5nICYmIGVycm9yXCI+XG4gICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiZXJyb3IgaW9uLXRleHQtd3JhcFwiIFtpbm5lckhUTUxdPVwiZXJyb3J8dHJhbnNsYXRlXCI+PC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFlcnJvclwiPlxuICAgICAgICA8aDM+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxiIHRyYW5zbGF0ZT5SRUdJU1RFUi5DT05GSVJNRUQuU1VCX1RJVExFPC9iPlxuICAgICAgICA8L2gzPlxuXG4gICAgICAgIDxpb24tdGV4dD5cbiAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIidSRUdJU1RFUi5DT05GSVJNRUQuU1VDQ0VTUyd8dHJhbnNsYXRlOiB7ZW1haWw6IGVtYWlsfVwiPjwvcD5cbiAgICAgICAgICA8cCAqbmdJZj1cIiFpc0xvZ2luXCIgW2lubmVySFRNTF09XCInUkVHSVNURVIuQ09ORklSTUVELkxPR0lOX0hFTFAnfHRyYW5zbGF0ZVwiPjwvcD5cbiAgICAgICAgPC9pb24tdGV4dD5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG5cbiAgICA8aW9uLWZvb3RlciAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJmdWxsXCIgY29sb3I9XCJwcmltYXJ5XCIgW3JvdXRlckxpbmtdPVwiWycvYWNjb3VudCddXCIgKm5nSWY9XCIhaXNMb2dpblwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImxvZy1pblwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5BVVRILkJUTl9MT0dJTjwvc3Bhbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiZnVsbFwiIGNvbG9yPVwic2Vjb25kYXJ5XCIgW3JvdXRlckxpbmtdPVwiWycvYWNjb3VudCddXCIgKm5nSWY9XCJpc0xvZ2luXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY29udGFjdFwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5IT01FLkJUTl9NWV9BQ0NPVU5UPC9zcGFuPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWZvb3Rlcj5cbiAgPC9pb24tY2FyZD5cblxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItY29uZmlybS5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL3JlZ2lzdGVyLWNvbmZpcm0ucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9yZWdpc3Rlci9yZWdpc3Rlci1jb25maXJtLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7QUFTNUMsTUFBTSxPQUFPLG1CQUFtQjtJQVdwQjtJQUNBO0lBQ0E7SUFDQTtJQVpWLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRW5DLE9BQU8sQ0FBVTtJQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsS0FBSyxDQUFTO0lBQ2QsS0FBSyxDQUFTO0lBQ2QsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUVsQixZQUNVLFFBQXlCLEVBQ3pCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQTRCO1FBSDVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRXhDLGdCQUFnQjtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUks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LENBQUM7WUFDckIsd0RBQXdEO1FBQzFELENBQUM7UUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUVILENBQUM7dUdBL0VVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLGlFQ2JoQyx1ekRBdURBOzsyRkQxQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QWNjb3VudFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQge2dldFJhbmRvbUltYWdlfSBmcm9tICcuLi9ob21lL2hvbWUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQge1BsYXRmb3JtU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZWdpc3Rlci1jb25maXJtLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJ3JlZ2lzdGVyLWNvbmZpcm0ucGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVnaXN0ZXItY29uZmlybS5wYWdlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3RlckNvbmZpcm1QYWdlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGlzTG9naW46IGJvb2xlYW47XG4gIGxvYWRpbmcgPSB0cnVlO1xuICBlcnJvcjogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb250ZW50U3R5bGUgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlKSB7XG5cbiAgICB0aGlzLnBsYXRmb3JtLnJlYWR5KCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmlzTG9naW4gPSBhY2NvdW50U2VydmljZS5pc0xvZ2luKCk7XG5cbiAgICAgIC8vIFN1YnNjcmlwdGlvbnNcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYWNjb3VudFNlcnZpY2Uub25Mb2dpbi5zdWJzY3JpYmUoXyA9PiB0aGlzLmlzTG9naW4gPSB0cnVlKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmFjY291bnRTZXJ2aWNlLm9uTG9nb3V0LnN1YnNjcmliZSgoKSA9PiB0aGlzLmlzTG9naW4gPSBmYWxzZSkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+XG4gICAgICAgIHRoaXMuZG9Db25maXJtKHBhcmFtcy5nZXQoJ2VtYWlsJyksIHBhcmFtcy5nZXQoJ2NvZGUnKSlcbiAgICAgICkpO1xuXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnN1YnNjcmliZShjb25maWcgPT4ge1xuXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmJhY2tncm91bmRJbWFnZXMgJiYgY29uZmlnLmJhY2tncm91bmRJbWFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYmdJbWFnZSA9IGdldFJhbmRvbUltYWdlKGNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2VzKTtcbiAgICAgICAgICB0aGlzLmNvbnRlbnRTdHlsZSA9IHsnYmFja2dyb3VuZC1pbWFnZSc6IGB1cmwoJHtiZ0ltYWdlfSlgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBwcmltYXJ5Q29sb3IgPSBjb25maWcucHJvcGVydGllcyAmJiBjb25maWcucHJvcGVydGllc1snc3VtYXJpcy5jb2xvci5wcmltYXJ5J10gfHwgJyMxNDQzOTEnO1xuICAgICAgICAgIHRoaXMuY29udGVudFN0eWxlID0geydiYWNrZ3JvdW5kLWNvbG9yJzogcHJpbWFyeUNvbG9yfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBhc3luYyBkb0NvbmZpcm0oZW1haWw6IHN0cmluZywgY29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbWFpbCA9IGVtYWlsO1xuXG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmFjY291bnRTZXJ2aWNlLmlzTG9naW4oKSkge1xuICAgICAgICBjb25zdCBhY2NvdW50ID0gdGhpcy5hY2NvdW50U2VydmljZS5hY2NvdW50O1xuICAgICAgICBjb25zdCBlbWFpbEFjY291bnQgPSBhY2NvdW50ICYmIGFjY291bnQuZW1haWw7XG4gICAgICAgIGlmIChlbWFpbCAhPT0gZW1haWxBY2NvdW50KSB7XG4gICAgICAgICAgLy8gTm90IHNhbWUgZW1haWwgPT4gbG9nb3V0LCB0aGVuIHJldHJ5XG4gICAgICAgICAgYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5sb2dvdXQoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5kb0NvbmZpcm0oZW1haWwsIGNvZGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFNlbmQgdGhlIGNvbmZpcm1hdGlvbiBjb2RlXG4gICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLmFjY291bnRTZXJ2aWNlLmNvbmZpcm1FbWFpbChlbWFpbCwgY29kZSk7XG4gICAgICBpZiAoY29uZmlybWVkICYmIHRoaXMuaXNMb2dpbikge1xuICAgICAgICBhd2FpdCB0aGlzLmFjY291bnRTZXJ2aWNlLnJlbG9hZCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAvL3RoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKFwiL2NvbmZpcm0vXCIgKyBlbWFpbCArIFwiL1wiKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvciA9IGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnI7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgfVxufVxuIiwiPGFwcC10b29sYmFyIFt0aXRsZV09XCInUkVHSVNURVIuQ09ORklSTUVELlRJVExFJ3x0cmFuc2xhdGVcIiBjb2xvcj1cInByaW1hcnlcIj5cbjwvYXBwLXRvb2xiYXI+XG5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiYmctaW1hZ2UtY292ZXIgY2VudGVyIGlvbi1wYWRkaW5nXCIgW25nU3R5bGVdPVwiY29udGVudFN0eWxlXCI+XG5cbiAgPHAgY2xhc3M9XCJoaWRkZW4teHMgaW9uLXBhZGRpbmdcIj4mbmJzcDs8YnIgLz48YnIgLz48L3A+XG4gIDxwIGNsYXNzPVwiaGlkZGVuLXhzXCI+Jm5ic3A7PC9wPlxuXG5cbiAgPGlvbi1jYXJkPlxuICAgIDxpb24tY2FyZC1jb250ZW50PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgIDxoNCB0cmFuc2xhdGU+UkVHSVNURVIuQ09ORklSTUVELkxPQURJTkc8L2g0PlxuICAgICAgICAgIDxwPjxpb24tc3Bpbm5lcj48L2lvbi1zcGlubmVyPjwvcD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBlcnJvciAtLT5cbiAgICAgICAgPGlvbi1pdGVtICpuZ0lmPVwiIWxvYWRpbmcgJiYgZXJyb3JcIj5cbiAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJkYW5nZXJcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwiYWxlcnQtY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJlcnJvciBpb24tdGV4dC13cmFwXCIgW2lubmVySFRNTF09XCJlcnJvcnx0cmFuc2xhdGVcIj48L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIWVycm9yXCI+XG4gICAgICAgIDxoMz5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFya1wiPjwvaW9uLWljb24+XG4gICAgICAgICAgPGIgdHJhbnNsYXRlPlJFR0lTVEVSLkNPTkZJUk1FRC5TVUJfVElUTEU8L2I+XG4gICAgICAgIDwvaDM+XG5cbiAgICAgICAgPGlvbi10ZXh0PlxuICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiJ1JFR0lTVEVSLkNPTkZJUk1FRC5TVUNDRVNTJ3x0cmFuc2xhdGU6IHtlbWFpbDogZW1haWx9XCI+PC9wPlxuICAgICAgICAgIDxwICpuZ0lmPVwiIWlzTG9naW5cIiBbaW5uZXJIVE1MXT1cIidSRUdJU1RFUi5DT05GSVJNRUQuTE9HSU5fSEVMUCd8dHJhbnNsYXRlXCI+PC9wPlxuICAgICAgICA8L2lvbi10ZXh0PlxuXG4gICAgICA8L2Rpdj5cblxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cblxuICAgIDxpb24tZm9vdGVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImZ1bGxcIiBjb2xvcj1cInByaW1hcnlcIiBbcm91dGVyTGlua109XCJbJy9hY2NvdW50J11cIiAqbmdJZj1cIiFpc0xvZ2luXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwibG9nLWluXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkFVVEguQlROX0xPR0lOPC9zcGFuPlxuICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJmdWxsXCIgY29sb3I9XCJzZWNvbmRhcnlcIiBbcm91dGVyTGlua109XCJbJy9hY2NvdW50J11cIiAqbmdJZj1cImlzTG9naW5cIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjb250YWN0XCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkhPTUUuQlROX01ZX0FDQ09VTlQ8L3NwYW4+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tZm9vdGVyPlxuICA8L2lvbi1jYXJkPlxuXG48L2lvbi1jb250ZW50PlxuIl19
|