@provoly/dashboard 0.19.1 → 0.19.3
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/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.d.ts +2 -1
- package/dataset/style/_o-pry-dataset-card.scss +49 -7
- package/dataset/style/_o-pry-dataset.scss +5 -7
- package/esm2022/admin/admin-routing.module.mjs +5 -5
- package/esm2022/admin/admin.module.mjs +5 -5
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.effects.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.service.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +8 -7
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-new/admin-classes-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +4 -4
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +4 -4
- package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +4 -4
- package/esm2022/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.mjs +4 -4
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +4 -4
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +4 -4
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-environment/admin-environment-new/admin-environment-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +4 -4
- package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +4 -4
- package/esm2022/admin/components/admin-environment/store/environment.effects.mjs +4 -4
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +4 -4
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-fields/admin-fields-new/admin-fields-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +4 -4
- package/esm2022/admin/components/admin-fields/store/fields.effects.mjs +4 -4
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +4 -4
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +4 -4
- package/esm2022/admin/components/admin-links/store/links.effects.mjs +4 -4
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/admin-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/admin-new-metadata/admin-new-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/list-metadata.module.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-rules/admin-new-metadata-rules/admin-new-metadata-rules.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.effects.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/admin-user-new-metadata/admin-user-new-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +4 -4
- package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-predicates/admin-predicates-new/admin-predicates-new.component.mjs +4 -4
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +4 -4
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +4 -4
- package/esm2022/admin/components/admin-predicates/store/predicates.effects.mjs +4 -4
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +4 -4
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +4 -4
- package/esm2022/admin/components/admin-title/admin-title.component.mjs +4 -4
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +4 -4
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +4 -4
- package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +4 -4
- package/esm2022/admin/components/admin.component.mjs +4 -4
- package/esm2022/admin/components/association/association.component.mjs +4 -4
- package/esm2022/admin/store/admin.effects.mjs +4 -4
- package/esm2022/admin/store/admin.service.mjs +4 -4
- package/esm2022/components/card/card.component.mjs +19 -19
- package/esm2022/components/card/card.module.mjs +5 -5
- package/esm2022/components/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/components/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/components/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/components/color-picker/color-picker.module.mjs +5 -5
- package/esm2022/components/expand-panel/expand-panel.component.mjs +7 -7
- package/esm2022/components/expand-panel/expand-panel.module.mjs +5 -5
- package/esm2022/components/filter/filter.module.mjs +5 -5
- package/esm2022/components/filter/filter.pipe.mjs +4 -4
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +4 -4
- package/esm2022/components/metadata-editor/metadata-editor.module.mjs +5 -5
- package/esm2022/components/metadata-editor/store/metadata.effects.mjs +4 -4
- package/esm2022/components/metadata-editor/store/metadata.service.mjs +4 -4
- package/esm2022/components/metadata-editor/style/css.component.mjs +4 -4
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +4 -4
- package/esm2022/components/scheme-picker/scheme-picker.module.mjs +5 -5
- package/esm2022/components/scheme-picker/scheme.service.mjs +4 -4
- package/esm2022/components/sinceDate/sinceDate.module.mjs +5 -5
- package/esm2022/components/sinceDate/sinceDate.pipe.mjs +4 -4
- package/esm2022/components/stepper/step/step.component.mjs +4 -4
- package/esm2022/components/stepper/step-title.directive.mjs +4 -4
- package/esm2022/components/stepper/stepper.component.mjs +4 -4
- package/esm2022/components/stepper/stepper.module.mjs +5 -5
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +7 -7
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +14 -6
- package/esm2022/dataset/components/dataset.component.mjs +4 -4
- package/esm2022/dataset/dataset.module.mjs +5 -5
- package/esm2022/dataset/style/css.component.mjs +5 -5
- package/esm2022/filters/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/filters/autocomplete/autocomplete.module.mjs +5 -5
- package/esm2022/filters/autocomplete/style/css.component.mjs +4 -4
- package/esm2022/filters/date/date-filter.component.mjs +4 -4
- package/esm2022/filters/date/date-filter.module.mjs +5 -5
- package/esm2022/filters/list/list-filter.component.mjs +4 -4
- package/esm2022/filters/list/list-filter.module.mjs +5 -5
- package/esm2022/filters/list/style/css.component.mjs +4 -4
- package/esm2022/filters/number/number-filter.component.mjs +4 -4
- package/esm2022/filters/number/number-filter.module.mjs +5 -5
- package/esm2022/filters/text/text-filter.component.mjs +4 -4
- package/esm2022/filters/text/text-filter.module.mjs +5 -5
- package/esm2022/import/components/import.component.mjs +4 -4
- package/esm2022/import/import-routing.module.mjs +5 -5
- package/esm2022/import/import.module.mjs +5 -5
- package/esm2022/import/store/import.effects.mjs +4 -4
- package/esm2022/import/store/import.service.mjs +4 -4
- package/esm2022/import/style/css.component.mjs +4 -4
- package/esm2022/lib/core/access/access.directive.mjs +4 -4
- package/esm2022/lib/core/access/access.guard.mjs +4 -4
- package/esm2022/lib/core/access/access.service.mjs +4 -4
- package/esm2022/lib/core/auth/geoAuth.service.mjs +4 -4
- package/esm2022/lib/core/components/about/about.component.mjs +4 -4
- package/esm2022/lib/core/components/about/pry-about.module.mjs +5 -5
- package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +4 -4
- package/esm2022/lib/core/components/accordion/accordion.component.mjs +4 -4
- package/esm2022/lib/core/components/base-layout/base-layout.component.mjs +4 -4
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +4 -4
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +4 -4
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/lib/core/components/date-picker/date-range-highlight.pipe.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +4 -4
- package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +4 -4
- package/esm2022/lib/core/components/edit-input/edit-input.module.mjs +5 -5
- package/esm2022/lib/core/components/get-secured-image/get-secured-image.pipe.mjs +7 -11
- package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.directive.mjs +4 -4
- package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.module.mjs +5 -5
- package/esm2022/lib/core/components/icon/icon.component.mjs +4 -4
- package/esm2022/lib/core/components/icon/icon.module.mjs +5 -5
- package/esm2022/lib/core/components/modal/modal.component.mjs +4 -4
- package/esm2022/lib/core/components/modal/pry-modal.module.mjs +5 -5
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +4 -4
- package/esm2022/lib/core/components/modal-status/modal-status.module.mjs +5 -5
- package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +4 -4
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +4 -4
- package/esm2022/lib/core/components/overlay/dialog.service.mjs +4 -4
- package/esm2022/lib/core/components/overlay/overlay.directive.mjs +4 -4
- package/esm2022/lib/core/components/overlay/overlay.module.mjs +5 -5
- package/esm2022/lib/core/components/range/range.component.mjs +4 -4
- package/esm2022/lib/core/components/range/range.module.mjs +5 -5
- package/esm2022/lib/core/components/select/select.component.mjs +4 -4
- package/esm2022/lib/core/components/select/select.module.mjs +5 -5
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +4 -4
- package/esm2022/lib/core/components/share/share.component.mjs +4 -4
- package/esm2022/lib/core/components/share/share.module.mjs +5 -5
- package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +4 -4
- package/esm2022/lib/core/components/snackbar/snackbar.module.mjs +5 -5
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +4 -4
- package/esm2022/lib/core/components/sort/sort-data.pipe.mjs +4 -4
- package/esm2022/lib/core/components/sort/sort-header/sort-header.component.mjs +4 -4
- package/esm2022/lib/core/components/sort/sort-header.directive.mjs +4 -4
- package/esm2022/lib/core/components/sort/sort-table.directive.mjs +4 -4
- package/esm2022/lib/core/components/sort/sort.module.mjs +5 -5
- package/esm2022/lib/core/components/tabs/tab-group.component.mjs +4 -4
- package/esm2022/lib/core/components/tabs/tab.component.mjs +4 -4
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -4
- package/esm2022/lib/core/components/toggle/toggle.module.mjs +5 -5
- package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +4 -4
- package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +4 -4
- package/esm2022/lib/core/components/upload/upload.component.mjs +4 -4
- package/esm2022/lib/core/core.module.mjs +5 -5
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +4 -4
- package/esm2022/lib/core/i18n/i18n.module.mjs +5 -5
- package/esm2022/lib/core/i18n/i18n.pipe.mjs +4 -4
- package/esm2022/lib/core/i18n/i18n.service.mjs +4 -4
- package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +4 -4
- package/esm2022/lib/core/store/aggregation/base-aggregation.service.mjs +4 -4
- package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +4 -4
- package/esm2022/lib/core/store/category/category.effects.mjs +4 -4
- package/esm2022/lib/core/store/category/category.service.mjs +4 -4
- package/esm2022/lib/core/store/class/class.effects.mjs +4 -4
- package/esm2022/lib/core/store/class/class.service.mjs +4 -4
- package/esm2022/lib/core/store/config/config.actions.mjs +1 -2
- package/esm2022/lib/core/store/config/config.effects.mjs +4 -4
- package/esm2022/lib/core/store/config/config.reducer.mjs +1 -5
- package/esm2022/lib/core/store/config/config.selectors.mjs +1 -3
- package/esm2022/lib/core/store/config/config.service.mjs +4 -4
- package/esm2022/lib/core/store/config/open-map-tiles.service.mjs +4 -4
- package/esm2022/lib/core/store/context-menu/context-menu.effects.mjs +4 -4
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +5 -5
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +4 -4
- package/esm2022/lib/core/store/field/field.effects.mjs +4 -4
- package/esm2022/lib/core/store/field/field.interface.mjs +2 -1
- package/esm2022/lib/core/store/field/field.service.mjs +4 -4
- package/esm2022/lib/core/store/image/image.effects.mjs +4 -4
- package/esm2022/lib/core/store/image/image.service.mjs +4 -4
- package/esm2022/lib/core/store/item/item.effects.mjs +4 -4
- package/esm2022/lib/core/store/item/item.service.mjs +4 -4
- package/esm2022/lib/core/store/raw/raw.service.mjs +4 -4
- package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +4 -4
- package/esm2022/lib/core/store/relation-types/relation-types.service.mjs +4 -4
- package/esm2022/lib/core/store/search/search.actions.mjs +1 -1
- package/esm2022/lib/core/store/search/search.effects.mjs +5 -5
- package/esm2022/lib/core/store/search/search.service.mjs +8 -13
- package/esm2022/lib/core/symbol/symbol.service.mjs +4 -4
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +4 -4
- package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +4 -4
- package/esm2022/lib/core/ws/websocket.service.mjs +4 -4
- package/esm2022/lib/dashboard/action-bus/effect/action-bus.effects.mjs +4 -4
- package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +4 -4
- package/esm2022/lib/dashboard/base-widget.module.mjs +5 -5
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +8 -8
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +5 -8
- package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/subscriptionner.directive.mjs +4 -4
- package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/header/resultset-size.pipe.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +8 -6
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.mjs +4 -4
- package/esm2022/lib/dashboard/dashboard.module.mjs +12 -10
- package/esm2022/lib/dashboard/filter/base-filter.component.mjs +4 -4
- package/esm2022/lib/dashboard/filter/base-filter.module.mjs +5 -5
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +4 -4
- package/esm2022/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.mjs +4 -4
- package/esm2022/lib/dashboard/filter/filter-factory.service.mjs +4 -4
- package/esm2022/lib/dashboard/filter/style/css.component.mjs +4 -4
- package/esm2022/lib/dashboard/item-utils.mjs +15 -14
- package/esm2022/lib/dashboard/public-api.mjs +1 -2
- package/esm2022/lib/dashboard/store/dashboard-init.service.mjs +4 -4
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +51 -26
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -2
- package/esm2022/lib/dashboard/store/manifest-utils.class.mjs +10 -7
- package/esm2022/lib/dashboard/store/manifest.service.mjs +5 -5
- package/esm2022/lib/dashboard/store/proxy.utils.mjs +76 -0
- package/esm2022/lib/dashboard/store/refresh.service.mjs +12 -7
- package/esm2022/lib/dashboard/store/title.service.mjs +4 -4
- package/esm2022/lib/dashboard/store/wms.service.mjs +4 -4
- package/esm2022/lib/dashboard/tooltip/base-tooltip.component.mjs +4 -4
- package/esm2022/lib/dashboard/tooltip/base-tooltip.module.mjs +5 -5
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +4 -4
- package/esm2022/lib/dashboard/tooltip/tooltip-factory.service.mjs +4 -4
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +4 -4
- package/esm2022/notification/components/notification/notification.component.mjs +4 -4
- package/esm2022/notification/notification.module.mjs +5 -5
- package/esm2022/notification/store/notification.effects.mjs +4 -4
- package/esm2022/notification/store/notification.service.mjs +4 -4
- package/esm2022/notification/style/css.component.mjs +4 -4
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +4 -4
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +4 -4
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +4 -4
- package/esm2022/pipeline/components/pipeline-properties-panel.component.mjs +4 -4
- package/esm2022/pipeline/factory/pipeline-component-factory.service.mjs +4 -4
- package/esm2022/pipeline/pipeline.module.mjs +5 -5
- package/esm2022/pipeline/store/pipeline.effects.mjs +4 -4
- package/esm2022/pipeline/store/pipeline.service.mjs +4 -4
- package/esm2022/pipeline/style/css.component.mjs +4 -4
- package/esm2022/pipeline-components/filter/component/filter.component.mjs +4 -4
- package/esm2022/pipeline-components/filter/filter.module.mjs +5 -5
- package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +4 -4
- package/esm2022/pipeline-components/input-datasource/input-datasource.module.mjs +5 -5
- package/esm2022/pipeline-components/noop/component/noop.component.mjs +4 -4
- package/esm2022/pipeline-components/noop/noop.module.mjs +5 -5
- package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +4 -4
- package/esm2022/pipeline-components/output-dataset/output-dataset.module.mjs +5 -5
- package/esm2022/pipeline-components/subgraph/component/empty.component.mjs +4 -4
- package/esm2022/pipeline-components/subgraph/subgraph.module.mjs +5 -5
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +20 -30
- package/esm2022/presentation/components/presentation.component.mjs +40 -43
- package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +4 -4
- package/esm2022/presentation/i18n/en.translations.mjs +3 -1
- package/esm2022/presentation/i18n/fr.translations.mjs +3 -1
- package/esm2022/presentation/presentation.module.mjs +5 -5
- package/esm2022/presentation/style/css.component.mjs +5 -5
- package/esm2022/restitution/components/restitution/restitution.component.mjs +24 -8
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +31 -9
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +4 -4
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +4 -4
- package/esm2022/restitution/i18n/en.translations.mjs +2 -1
- package/esm2022/restitution/i18n/fr.translations.mjs +3 -1
- package/esm2022/restitution/restitution.module.mjs +5 -5
- package/esm2022/restitution/style/css.component.mjs +5 -5
- package/esm2022/search/components/choose-widget/choose-widget.component.mjs +4 -4
- package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +9 -5
- package/esm2022/search/components/edit-named-query-modal/edit-named-query-modal.component.mjs +4 -4
- package/esm2022/search/components/save-query/save-query.component.mjs +4 -4
- package/esm2022/search/components/save-query-button/save-query-button.component.mjs +4 -4
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +4 -4
- package/esm2022/search/search-fulltext/store/search-fulltext.effects.mjs +4 -4
- package/esm2022/search/search-fulltext/store/search-fulltext.service.mjs +4 -4
- package/esm2022/search/search-home/search-home.component.mjs +5 -5
- package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +4 -4
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +4 -4
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +4 -4
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +4 -4
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +4 -4
- package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +4 -4
- package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +4 -4
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +4 -4
- package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +4 -4
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +4 -4
- package/esm2022/search/search-multi-class/store/search-multi-class.effects.mjs +4 -4
- package/esm2022/search/search-multi-class/store/search-multi-class.service.mjs +4 -4
- package/esm2022/search/search-tools/search-tools.component.mjs +4 -4
- package/esm2022/search/search.module.mjs +5 -5
- package/esm2022/search/style/css.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-business-data/supervision-business-data.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-flow/supervision-flow.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-infrastructures/supervision-infrastructures.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-menu/supervision-menu.component.mjs +4 -4
- package/esm2022/supervision/components/supervision-title/supervision-title.component.mjs +4 -4
- package/esm2022/supervision/components/supervision.component.mjs +4 -4
- package/esm2022/supervision/store/supervision.effects.mjs +4 -4
- package/esm2022/supervision/store/supervision.service.mjs +4 -4
- package/esm2022/supervision/supervision-routing.module.mjs +5 -5
- package/esm2022/supervision/supervision.module.mjs +5 -5
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +7 -5
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +4 -4
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +4 -4
- package/esm2022/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.mjs +4 -4
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +4 -4
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +4 -4
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +4 -4
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +11 -7
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +4 -4
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +4 -4
- package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +4 -4
- package/esm2022/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +4 -4
- package/esm2022/toolbox/components/toolbox.component.mjs +4 -4
- package/esm2022/toolbox/style/css.component.mjs +4 -4
- package/esm2022/toolbox/toolbox.module.mjs +5 -5
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +4 -4
- package/esm2022/tooltips/attribute/attribute-tooltip.module.mjs +5 -5
- package/esm2022/tooltips/cluster/cluster-tooltip.component.mjs +4 -4
- package/esm2022/tooltips/cluster/cluster-tooltip.module.mjs +5 -5
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +23 -11
- package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +5 -5
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +4 -4
- package/esm2022/widgets/widget-chart/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-chart/widget-chart.module.mjs +5 -5
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +4 -4
- package/esm2022/widgets/widget-detail/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-detail/widget-detail.module.mjs +5 -5
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +4 -4
- package/esm2022/widgets/widget-graph/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-graph/widget-graph.module.mjs +5 -5
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +4 -4
- package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +4 -4
- package/esm2022/widgets/widget-iframe/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-iframe/widget-iframe.module.mjs +5 -5
- package/esm2022/widgets/widget-image/component/widget-image.component.mjs +4 -4
- package/esm2022/widgets/widget-image/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-image/widget-image.module.mjs +5 -5
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +4 -4
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +160 -18
- package/esm2022/widgets/widget-map/i18n/en.translations.mjs +13 -2
- package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +13 -2
- package/esm2022/widgets/widget-map/interaction/layer-slider.class.mjs +63 -0
- package/esm2022/widgets/widget-map/interaction/selection-interaction.class.mjs +21 -16
- package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +4 -4
- package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +24 -12
- package/esm2022/widgets/widget-map/public-api.mjs +2 -1
- package/esm2022/widgets/widget-map/style/css.component.mjs +5 -5
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +2 -2
- package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +42 -1
- package/esm2022/widgets/widget-map/widget-map.module.mjs +5 -5
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +11 -6
- package/esm2022/widgets/widget-table/expand-value/detach-row.directive.mjs +4 -4
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +4 -4
- package/esm2022/widgets/widget-table/expand-value/format-number.pipe.mjs +4 -4
- package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +5 -5
- package/esm2022/widgets/widget-table/resizable/resizable.component.mjs +4 -4
- package/esm2022/widgets/widget-table/resizable/resizable.directive.mjs +4 -4
- package/esm2022/widgets/widget-table/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-table/widget-table.module.mjs +5 -5
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +4 -4
- package/esm2022/widgets/widget-template/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-template/widget-template.module.mjs +5 -5
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +4 -4
- package/esm2022/widgets/widget-tile/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-tile/widget-tile.module.mjs +5 -5
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +4 -4
- package/esm2022/widgets/widget-vega/style/css.component.mjs +4 -4
- package/esm2022/widgets/widget-vega/widget-vega.module.mjs +5 -5
- package/fesm2022/provoly-dashboard-admin.mjs +261 -260
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +22 -22
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-checkbox.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-color-picker.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-color-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-expand-panel.mjs +10 -10
- package/fesm2022/provoly-dashboard-components-expand-panel.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-filter.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-filter.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +16 -16
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +10 -10
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-stepper.mjs +13 -13
- package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +28 -20
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +10 -10
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +7 -7
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +10 -10
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +7 -7
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +7 -7
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +20 -20
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +19 -19
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +28 -28
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +75 -84
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +71 -30
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +79 -75
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-supervision.mjs +41 -41
- package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +56 -50
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +7 -7
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-cluster.mjs +7 -7
- package/fesm2022/provoly-dashboard-tooltips-cluster.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +29 -17
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +13 -13
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +345 -63
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +36 -31
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +806 -741
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/get-secured-image/get-secured-image.pipe.d.ts +1 -5
- package/lib/core/model/manifest.interface.d.ts +0 -1
- package/lib/core/model/widget-map-manifest.interface.d.ts +2 -0
- package/lib/core/store/config/config.actions.d.ts +0 -1
- package/lib/core/store/config/config.selectors.d.ts +0 -1
- package/lib/core/store/field/field.interface.d.ts +1 -0
- package/lib/core/store/search/search.actions.d.ts +4 -0
- package/lib/core/store/search/search.service.d.ts +1 -6
- package/lib/dashboard/components/manifests/manifests.component.d.ts +0 -1
- package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +4 -1
- package/lib/dashboard/dashboard.module.d.ts +2 -0
- package/lib/dashboard/item-utils.d.ts +2 -3
- package/lib/dashboard/public-api.d.ts +0 -1
- package/lib/dashboard/store/dashboard.actions.d.ts +7 -7
- package/lib/dashboard/store/dashboard.effects.d.ts +15 -2
- package/lib/dashboard/store/dashboard.selectors.d.ts +13 -7
- package/lib/dashboard/store/manifest-utils.class.d.ts +4 -1
- package/lib/dashboard/store/proxy.utils.d.ts +24 -0
- package/package.json +7 -7
- package/presentation/components/presentation.component.d.ts +6 -6
- package/presentation/i18n/en.translations.d.ts +2 -0
- package/presentation/i18n/fr.translations.d.ts +2 -0
- package/presentation/style/_o-pry-presentation.scss +21 -7
- package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +5 -4
- package/restitution/i18n/en.translations.d.ts +1 -0
- package/restitution/i18n/fr.translations.d.ts +2 -0
- package/restitution/style/_o-restitution.scss +14 -0
- package/schematics/ng-update/version-0-13/index.spec.js +0 -1
- package/schematics/ng-update/version-0-13/index.spec.js.map +1 -1
- package/styles/components/_o-widget.scss +57 -2
- package/styles-theme/components-theme/_o-widget.theme.scss +1 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +8 -0
- package/widgets/widget-map/component/widget-map.component.d.ts +41 -3
- package/widgets/widget-map/i18n/en.translations.d.ts +11 -0
- package/widgets/widget-map/i18n/fr.translations.d.ts +11 -0
- package/widgets/widget-map/interaction/layer-slider.class.d.ts +10 -0
- package/widgets/widget-map/interaction/selection-interaction.class.d.ts +2 -3
- package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +1 -0
- package/widgets/widget-map/public-api.d.ts +1 -0
- package/widgets/widget-map/style/_o-layer-legend.scss +16 -7
- package/widgets/widget-map/style/_o-widget-map.scss +83 -1
- package/widgets/widget-map/utils/xml-utils.class.d.ts +10 -0
- package/assets/svgs/more_vertical.svg +0 -5
- package/esm2022/lib/dashboard/guard/default-view.guard.mjs +0 -41
- package/lib/dashboard/guard/default-view.guard.d.ts +0 -14
package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs
CHANGED
|
@@ -246,10 +246,10 @@ export class PryObjectEditionComponent extends SubscriptionnerDirective {
|
|
|
246
246
|
toggleInversion() {
|
|
247
247
|
this.inversion = !this.inversion;
|
|
248
248
|
}
|
|
249
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
250
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n [itemsAsOption]=\"true\"\n bindLabel=\"label\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n class=\"a-pry-select\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [labelTranslate]=\"true\"\n class=\"a-pry-select\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n: { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i6.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i7.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i9.PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.I18nPipe, name: "i18n" }] }); }
|
|
249
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
250
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n [itemsAsOption]=\"true\"\n bindLabel=\"label\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n class=\"a-pry-select\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [labelTranslate]=\"true\"\n class=\"a-pry-select\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n: { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i6.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i7.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i9.PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.I18nPipe, name: "i18n" }] }); }
|
|
251
251
|
}
|
|
252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
|
|
253
253
|
type: Component,
|
|
254
254
|
args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n [itemsAsOption]=\"true\"\n bindLabel=\"label\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n class=\"a-pry-select\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [labelTranslate]=\"true\"\n class=\"a-pry-select\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n: { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
255
255
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.Store }]; }, propDecorators: { link: [{
|
|
@@ -264,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
264
264
|
}], closed: [{
|
|
265
265
|
type: Output
|
|
266
266
|
}] } });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWVkaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9vYmplY3QtZWRpdGlvbi9vYmplY3QtZWRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvY29udGV4dC1tZW51L29iamVjdC1lZGl0aW9uL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBUyxTQUFTLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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QUMsU0FBb0IsRUFBRSxNQUFXLEVBQUUsSUFBWTtRQUM1RCxJQUFJLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBMEIsQ0FBQyxRQUFRLEVBQUU7WUFDaEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBMEIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ25HO2FBQU07WUFDTCxhQUFhO1lBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBMEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQzdGO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOzhHQTVQVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixxT0FNTCxXQUFXLG9EQ2pDNUMsOGpSQW1NQTs7MkZEeEthLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxxQkFBcUI7aUpBSXRCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUd3QyxRQUFRO3NCQUFyRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBT2xDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENsYXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpZWxkLCBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZmllbGQvZmllbGQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEl0ZW1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9pdGVtL2l0ZW0uYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvcmVsYXRpb24tdHlwZXMvcmVsYXRpb24tdHlwZXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9yZWxhdGlvbi10eXBlcy9yZWxhdGlvbi10eXBlcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS11dGlscyc7XG5pbXBvcnQgeyBJdGVtVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9pdGVtLXV0aWxzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBIVFRQX09SSUdJTl9NRVRBREFUQSA9ICdfaHR0cF9vcmlnaW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktb2JqZWN0LWNyZWF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlPYmplY3RFZGl0aW9uQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBvYmplY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1JZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZnJvbSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgaXRlbUlkPzogc3RyaW5nO1xuICBjb29yZGluYXRlczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG4gIHRtcE9iamVjdDogSXRlbSA9IHRoaXMubmV3T2JqZWN0KCk7XG4gIGZyb206IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBjbGFzc2VzOiBDbGFzc1tdID0gW107XG4gIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG4gIHJlbGF0aW9ucyQ6IE9ic2VydmFibGU8eyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXT47XG4gIHJlbGF0aW9uITogeyB0eXBlSWQ6IHN0cmluZzsgaXRlbUlkOiBzdHJpbmcgfTtcbiAgc2VsZWN0ZWRJdGVtc0lkcyE6IHN0cmluZ1tdO1xuICBVUExPQURfTUVUSE9EID0gJ3VwbG9hZCc7XG4gIEhUVFBfT1JJR0lOX01FVEhPRCA9ICdtZXRhZGF0YSc7XG4gIEhUVFBfT1JJR0lOX01FVEFEQVRBID0gSFRUUF9PUklHSU5fTUVUQURBVEE7XG4gIHJhd01ldGhvZHMgPSBbXG4gICAgeyBpZDogdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QsIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLmh0dHAnIH0sXG4gICAge1xuICAgICAgaWQ6IHRoaXMuVVBMT0FEX01FVEhPRCxcbiAgICAgIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLnVwbG9hZCdcbiAgICB9XG4gIF07XG4gIG1ldGhvZCA9IHRoaXMuVVBMT0FEX01FVEhPRDtcbiAgc2VsZWN0ZWREYXRlUGlja2VyOiBzdHJpbmcgPSAnJztcbiAgaW52ZXJzaW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLml0ZW1JZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5pdGVtSWQpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5jb29yZGluYXRlcykuc3Vic2NyaWJlKChjb29yZGluYXRlcykgPT4gKHRoaXMuY29vcmRpbmF0ZXMgPSBjb29yZGluYXRlcykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuaXRlbUlkJC5zdWJzY3JpYmUoKGl0ZW1JZCkgPT4gKHRoaXMuaXRlbUlkID0gaXRlbUlkKSkpO1xuICAgIHRoaXMuZnJvbSQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5mcm9tKTtcbiAgICB0aGlzLnJlbGF0aW9ucyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KFJlbGF0aW9uVHlwZXNTZWxlY3RvcnMucmVsYXRpb25zVHlwZXMpXG4gICAgICAucGlwZShtYXAoKHJlbGF0aW9ucykgPT4gKHJlbGF0aW9ucyB8fCBbXSkubWFwKChyZWwpID0+ICh7IGlkOiByZWwuaWQsIGxhYmVsOiByZWwubmFtZSB9KSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mcm9tJCwgdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyldKVxuICAgICAgICAucGlwZShtYXAoKFtmcm9tLCBjbGFzc2VzXSkgPT4gY2xhc3Nlcy5maWx0ZXIoKGNsYXp6KSA9PiBmcm9tICE9PSAnbWFwJyB8fCBJdGVtVXRpbHMuaGFzTG9jYXRpb24oY2xhenopKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNsYXNzZXMpID0+ICh0aGlzLmNsYXNzZXMgPSBjbGFzc2VzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKS5zdWJzY3JpYmUoKGZpZWxkcykgPT4gKHRoaXMuZmllbGRzID0gZmllbGRzKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5mcm9tJC5zdWJzY3JpYmUoKGZyb20pID0+ICh0aGlzLmZyb20gPSBmcm9tKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKS5zdWJzY3JpYmUoKGl0ZW1JZHMpID0+ICh0aGlzLnNlbGVjdGVkSXRlbXNJZHMgPSBpdGVtSWRzKSlcbiAgICApO1xuICB9XG5cbiAgb3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucmVsYXRpb24gPSB7IHR5cGVJZDogJycsIGl0ZW1JZDogdGhpcy5pdGVtSWQgPz8gJycgfTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydtLWNvbnRleHQtbWVudScsICdjcmVhdGUtb2JqZWN0LXBhbmVsJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmhpZGUoKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBuZXdPYmplY3QoKSB7XG4gICAgcmV0dXJuIHsgaWQ6IHV1aWR2NCgpLCBvQ2xhc3M6ICcnLCBhdHRyaWJ1dGVzOiB7fSwgbWV0YWRhdGE6IHt9IH07XG4gIH1cblxuICBnZXQgdmFsaWQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICghdGhpcy5vYmplY3QgfHwgSXRlbVV0aWxzLmlzVmFsaWRPYmplY3QodGhpcy50bXBPYmplY3QpKSAmJiAoIXRoaXMubGluayB8fCAodGhpcy5yZWxhdGlvbj8udHlwZUlkID8/IGZhbHNlKSlcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlT2JqZWN0cygpIHtcbiAgICBsZXQgcmVsYXRpb24gPSB7XG4gICAgICBmcm9tOiB0aGlzLnNlbGVjdGVkSXRlbXNJZHMsXG4gICAgICB0bzogdGhpcy5yZWxhdGlvbj8uaXRlbUlkID8/ICcnLFxuICAgICAgdHlwZUlkOiB0aGlzLnJlbGF0aW9uPy50eXBlSWQgPz8gJycsXG4gICAgICBpbnZlcnNpb246IHRoaXMuaW52ZXJzaW9uXG4gICAgfTtcbiAgICBpZiAodGhpcy5vYmplY3QpIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0ID0gSXRlbVV0aWxzLmVuc3VyZUl0ZW1JZEhhc0NvcnJlY3RGb3JtYXQodGhpcy50bXBPYmplY3QpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChJdGVtQWN0aW9ucy5jcmVhdGUoeyBpdGVtOiB0aGlzLnRtcE9iamVjdCB9KSk7XG4gICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgIHJlbGF0aW9uLmZyb20gPSBbdGhpcy50bXBPYmplY3QuaWRdO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uKHJlbGF0aW9uKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb24ocmVsYXRpb24pKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSB0aGlzLnRtcE9iamVjdC5vQ2xhc3MpPy5hdHRyaWJ1dGVzID8/IFtdO1xuICB9XG5cbiAgZmllbGRUeXBlKGF0dHJpYnV0ZTogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBhdHRyaWJ1dGUuZmllbGQgPT09IGZpZWxkLmlkKT8udHlwZTtcbiAgfVxuXG4gIGFzc2lnblZhbHVlKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIHRoaXMuZmllbGRUeXBlKGF0dHJpYnV0ZSkgPT09IEZpZWxkVHlwZS5JTlNUQU5UICYmICRldmVudCAhPT0gJycgPyBuZXcgRGF0ZSgkZXZlbnQpLmdldFRpbWUoKSA6ICRldmVudDtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSA9IHsgdHlwZTogJ1ZBTFVFJywgbWV0YWRhdGE6IHt9LCB2YWx1ZSwgdmlzaWJsZTogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdmFsdWUoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSk/LnZhbHVlO1xuICAgIGlmICh0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnID8gRGF0ZVV0aWxzLmZvcm1hdERhdGUobmV3IERhdGUodmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAoKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKSA/PyB7fSkudmFsdWU7XG4gIH1cblxuICB0b2dnbGVEYXRlUGlja2VyKCRldmVudDogRXZlbnQsIGlkOiBzdHJpbmcpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID09PSBpZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSBpZDtcbiAgICB9XG4gIH1cblxuICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghKCRldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jb250YWlucygoJGV2ZW50IGFzIE1vdXNlRXZlbnQpLnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID0gJyc7XG4gICAgfVxuICB9XG5cbiAgbXVsdGlWYWx1ZXMoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gKCh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSA/PyB7IHZhbHVlczogW10gfSkudmFsdWVzO1xuICB9XG5cbiAgcmVtb3ZlTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMuc3BsaWNlKGksIDEpO1xuICB9XG5cbiAgYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSA9IHsgdHlwZTogJ01VTFRJJywgdmFsdWVzOiBbXSB9O1xuICAgIH1cbiAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSkudmFsdWVzLnB1c2goe1xuICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICB2aXNpYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHZhbHVlTXVsdGkoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm11bHRpVmFsdWVzKGF0dHJpYnV0ZSlbaV0udmFsdWU7XG4gIH1cblxuICBhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSwgaTogbnVtYmVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCA/IG5ldyBEYXRlKCRldmVudCkuZ2V0VGltZSgpIDogJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdID0geyB0eXBlOiAnTVVMVEknLCB2YWx1ZXM6IFtdIH07XG4gICAgfVxuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSA9IHtcbiAgICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUNsYXNzKCRldmVudDogYW55KSB7XG4gICAgdGhpcy50bXBPYmplY3QgPSB0aGlzLm5ld09iamVjdCgpO1xuICAgIHRoaXMudG1wT2JqZWN0Lm9DbGFzcyA9ICRldmVudDtcbiAgICBpZiAodGhpcy5mcm9tID09PSAnbWFwJykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBpZiAoWydsYXRpdHVkZScsICdsYXQnXS5pbmRleE9mKGF0dHJpYnV0ZS5uYW1lKSA+PSAwKSB7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5hZGRNdWx0aVZhbHVlZChhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdLCBpZHgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFsnbG9uZ2l0dWRlJywgJ2xvbmcnLCAnbG9uJywgJ2xuZyddLmluZGV4T2YoYXR0cmlidXRlLm5hbWUpID49IDApIHtcbiAgICAgICAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmFkZE11bHRpVmFsdWVkKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0sIGlkeCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduVmFsdWUoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmF3TWV0aG9kKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWV0aG9kID0gJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdID0ge1xuICAgICAgICB0eXBlOiAnVkFMVUUnLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKCRldmVudCA9PT0gdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QpIHtcbiAgICAgIHRoaXMuYXNzaWduTWV0YWRhdGEoYXR0cmlidXRlLCAnJywgSFRUUF9PUklHSU5fTUVUQURBVEEpO1xuICAgIH1cbiAgICBpZiAoJGV2ZW50ID09PSB0aGlzLlVQTE9BRF9NRVRIT0QpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGRlbGV0ZSAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLm1ldGFkYXRhW0hUVFBfT1JJR0lOX01FVEFEQVRBXTtcbiAgICB9XG4gIH1cblxuICB2YWx1ZU1ldGFkYXRhKGF0dHJpYnV0ZTogQXR0cmlidXRlLCB0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKCgodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpID8/IHt9KS5tZXRhZGF0YSA/PyB7fSlbdHlwZV07XG4gIH1cblxuICBhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGU6IEF0dHJpYnV0ZSwgJGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSA9IHsgW3R5cGVdOiAkZXZlbnQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YVt0eXBlXSA9ICRldmVudDtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVJbnZlcnNpb24oKSB7XG4gICAgdGhpcy5pbnZlcnNpb24gPSAhdGhpcy5pbnZlcnNpb247XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiIChjbGljayk9XCJvcGVuQ3JlYXRlT2JqZWN0UGFuZWwoJGV2ZW50KVwiICpuZ0lmPVwibWVudVwiPlxuICB7eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS4nICsgKGxpbmsgJiYgb2JqZWN0ID8gJ2xpbmtlZE9iamVjdCcgOiBsaW5rID8gJ2xpbmsnIDogJ29iamVjdCcpIHwgaTE4biB9fVxuPC9idXR0b24+XG48YnV0dG9uXG4gIGlkPVwib2JqZWN0X2NyZWF0b3JfbGlua1wiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwib3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudClcIlxuICAqbmdJZj1cIiFtZW51XCJcbiAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tZ2hvc3QgLWNpcmNsZSB1LWZsb2F0aW5nIHUtZmxvYXRpbmctLWJvdHRvbS1yaWdodFwiXG4gIFt0aXRsZV09XCInQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5vYmplY3QnIHwgaTE4blwiXG4+XG4gIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5vYmplY3QnIHwgaTE4biB9fTwvc3Bhbj5cbiAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRfY29sdW1uXCIgW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvcHJ5LWljb24+XG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlua1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9saW5rXCI+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUubGluaycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWxhdGlvbi50eXBlSWRcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInJlbGF0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgIGlkPVwiY3JlYXRlb2JqZWN0X2xpbmtcIlxuICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9pbnZlcnNpb25cIj57e1xuICAgICAgICAgICAgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUuaW52ZXJzaW9uJyB8IGkxOG5cbiAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJjcmVhdGVvYmplY3RfaW52ZXJzaW9uXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImludmVyc2lvblwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVJbnZlcnNpb24oKVwiXG4gICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiby1vYmplY3QtcGFuZWxcIiAqbmdJZj1cIm9iamVjdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9jbGFzc1wiPnt7ICdAcHJ5LmNvbnRleHQuY3JlYXRlT2JqZWN0LmNsYXNzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ0bXBPYmplY3Qub0NsYXNzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNsYXNzKCRldmVudClcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImNsYXNzZXNcIlxuICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgIGlkPVwiY3JlYXRlb2JqZWN0X2NsYXNzXCJcbiAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlc1wiIFtjbGFzcy5tdWx0aS12YWx1ZV09XCJhdHRyaWJ1dGUubXVsdGlWYWx1ZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCI+e3sgYXR0cmlidXRlLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhdHRyaWJ1dGUubXVsdGlWYWx1ZWRcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGRUeXBlKGF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5TVEFOVFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImEtZGF0ZS1pbnB1dFwiIHRhYmluZGV4PVwiLTFcIiAoYmx1cik9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYS1vcGVuLWRhdGUtcGlja2VyXCIgKG1vdXNlZG93bik9XCJ0b2dnbGVEYXRlUGlja2VyKCRldmVudCwgYXR0cmlidXRlLmlkKVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyXCIgKm5nSWY9XCJzZWxlY3RlZERhdGVQaWNrZXIgPT09IGF0dHJpYnV0ZS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwcnktZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3VuZFNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aW1lUGlja2VyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3ByeS1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuREVDSU1BTFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLklOVEVHRVJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLlJBV1wiPlxuICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibWV0aG9kXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UmF3TWV0aG9kKGF0dHJpYnV0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJyYXdNZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXRob2QgPT09IEhUVFBfT1JJR0lOX01FVEhPRFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTWV0YWRhdGEoYXR0cmlidXRlLCBIVFRQX09SSUdJTl9NRVRBREFUQSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGUsICRldmVudCwgSFRUUF9PUklHSU5fTUVUQURBVEEpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWV0aG9kID09PSBVUExPQURfTUVUSE9EXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktdXBsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgbW9kZT1cImRvY1wiXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKix2aWRlby8qXCJcbiAgICAgICAgICAgICAgICAgICAgICAodXBsb2FkZWQpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LXVwbG9hZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpLXZhbHVlLWNvbnRhaW5lclwiICpuZ0lmPVwiYXR0cmlidXRlLm11bHRpVmFsdWVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWFkZCBhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IGEtYnRuLS1pY29uLXRleHQgLXNpemUtc21cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QuYWRkTXVsdGlGaWVsZCcgfCBpMThuOiB7IG5hbWU6IGF0dHJpYnV0ZS5uYW1lIH0gfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aS12YWx1ZVwiICpuZ0Zvcj1cImxldCBtdWx0aVZhbHVlIG9mIG11bHRpVmFsdWVzKGF0dHJpYnV0ZSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGRUeXBlKGF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5TVEFOVFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTXVsdGkoYXR0cmlidXRlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5ERUNJTUFMXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZU11bHRpKGF0dHJpYnV0ZSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5JTlRFR0VSXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTXVsdGkoYXR0cmlidXRlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVNdWx0aShhdHRyaWJ1dGUsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWVNdWx0aShhdHRyaWJ1dGUsICRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJyZW1vdmVNdWx0aVZhbHVlZChhdHRyaWJ1dGUsIGkpXCI+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImRlbGV0ZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiaGlkZSgpXCI+XG4gICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuY2FuY2VsJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGVPYmplY3RzKClcIiBbZGlzYWJsZWRdPVwiIXZhbGlkXCI+XG4gICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuY3JlYXRlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWVkaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9vYmplY3QtZWRpdGlvbi9vYmplY3QtZWRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvY29udGV4dC1tZW51L29iamVjdC1lZGl0aW9uL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBUyxTQUFTLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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QUMsU0FBb0IsRUFBRSxNQUFXLEVBQUUsSUFBWTtRQUM1RCxJQUFJLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBMEIsQ0FBQyxRQUFRLEVBQUU7WUFDaEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBMEIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ25HO2FBQU07WUFDTCxhQUFhO1lBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBMEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQzdGO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOytHQTVQVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixxT0FNTCxXQUFXLG9EQ2pDNUMsOGpSQW1NQTs7NEZEeEthLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxxQkFBcUI7aUpBSXRCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUd3QyxRQUFRO3NCQUFyRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBT2xDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENsYXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpZWxkLCBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZmllbGQvZmllbGQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEl0ZW1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9pdGVtL2l0ZW0uYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvcmVsYXRpb24tdHlwZXMvcmVsYXRpb24tdHlwZXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9yZWxhdGlvbi10eXBlcy9yZWxhdGlvbi10eXBlcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS11dGlscyc7XG5pbXBvcnQgeyBJdGVtVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9pdGVtLXV0aWxzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBIVFRQX09SSUdJTl9NRVRBREFUQSA9ICdfaHR0cF9vcmlnaW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktb2JqZWN0LWNyZWF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlPYmplY3RFZGl0aW9uQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBvYmplY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1JZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZnJvbSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgaXRlbUlkPzogc3RyaW5nO1xuICBjb29yZGluYXRlczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG4gIHRtcE9iamVjdDogSXRlbSA9IHRoaXMubmV3T2JqZWN0KCk7XG4gIGZyb206IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBjbGFzc2VzOiBDbGFzc1tdID0gW107XG4gIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG4gIHJlbGF0aW9ucyQ6IE9ic2VydmFibGU8eyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXT47XG4gIHJlbGF0aW9uITogeyB0eXBlSWQ6IHN0cmluZzsgaXRlbUlkOiBzdHJpbmcgfTtcbiAgc2VsZWN0ZWRJdGVtc0lkcyE6IHN0cmluZ1tdO1xuICBVUExPQURfTUVUSE9EID0gJ3VwbG9hZCc7XG4gIEhUVFBfT1JJR0lOX01FVEhPRCA9ICdtZXRhZGF0YSc7XG4gIEhUVFBfT1JJR0lOX01FVEFEQVRBID0gSFRUUF9PUklHSU5fTUVUQURBVEE7XG4gIHJhd01ldGhvZHMgPSBbXG4gICAgeyBpZDogdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QsIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLmh0dHAnIH0sXG4gICAge1xuICAgICAgaWQ6IHRoaXMuVVBMT0FEX01FVEhPRCxcbiAgICAgIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLnVwbG9hZCdcbiAgICB9XG4gIF07XG4gIG1ldGhvZCA9IHRoaXMuVVBMT0FEX01FVEhPRDtcbiAgc2VsZWN0ZWREYXRlUGlja2VyOiBzdHJpbmcgPSAnJztcbiAgaW52ZXJzaW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLml0ZW1JZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5pdGVtSWQpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5jb29yZGluYXRlcykuc3Vic2NyaWJlKChjb29yZGluYXRlcykgPT4gKHRoaXMuY29vcmRpbmF0ZXMgPSBjb29yZGluYXRlcykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuaXRlbUlkJC5zdWJzY3JpYmUoKGl0ZW1JZCkgPT4gKHRoaXMuaXRlbUlkID0gaXRlbUlkKSkpO1xuICAgIHRoaXMuZnJvbSQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5mcm9tKTtcbiAgICB0aGlzLnJlbGF0aW9ucyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KFJlbGF0aW9uVHlwZXNTZWxlY3RvcnMucmVsYXRpb25zVHlwZXMpXG4gICAgICAucGlwZShtYXAoKHJlbGF0aW9ucykgPT4gKHJlbGF0aW9ucyB8fCBbXSkubWFwKChyZWwpID0+ICh7IGlkOiByZWwuaWQsIGxhYmVsOiByZWwubmFtZSB9KSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mcm9tJCwgdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyldKVxuICAgICAgICAucGlwZShtYXAoKFtmcm9tLCBjbGFzc2VzXSkgPT4gY2xhc3Nlcy5maWx0ZXIoKGNsYXp6KSA9PiBmcm9tICE9PSAnbWFwJyB8fCBJdGVtVXRpbHMuaGFzTG9jYXRpb24oY2xhenopKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNsYXNzZXMpID0+ICh0aGlzLmNsYXNzZXMgPSBjbGFzc2VzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKS5zdWJzY3JpYmUoKGZpZWxkcykgPT4gKHRoaXMuZmllbGRzID0gZmllbGRzKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5mcm9tJC5zdWJzY3JpYmUoKGZyb20pID0+ICh0aGlzLmZyb20gPSBmcm9tKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKS5zdWJzY3JpYmUoKGl0ZW1JZHMpID0+ICh0aGlzLnNlbGVjdGVkSXRlbXNJZHMgPSBpdGVtSWRzKSlcbiAgICApO1xuICB9XG5cbiAgb3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucmVsYXRpb24gPSB7IHR5cGVJZDogJycsIGl0ZW1JZDogdGhpcy5pdGVtSWQgPz8gJycgfTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydtLWNvbnRleHQtbWVudScsICdjcmVhdGUtb2JqZWN0LXBhbmVsJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmhpZGUoKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBuZXdPYmplY3QoKSB7XG4gICAgcmV0dXJuIHsgaWQ6IHV1aWR2NCgpLCBvQ2xhc3M6ICcnLCBhdHRyaWJ1dGVzOiB7fSwgbWV0YWRhdGE6IHt9IH07XG4gIH1cblxuICBnZXQgdmFsaWQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICghdGhpcy5vYmplY3QgfHwgSXRlbVV0aWxzLmlzVmFsaWRPYmplY3QodGhpcy50bXBPYmplY3QpKSAmJiAoIXRoaXMubGluayB8fCAodGhpcy5yZWxhdGlvbj8udHlwZUlkID8/IGZhbHNlKSlcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlT2JqZWN0cygpIHtcbiAgICBsZXQgcmVsYXRpb24gPSB7XG4gICAgICBmcm9tOiB0aGlzLnNlbGVjdGVkSXRlbXNJZHMsXG4gICAgICB0bzogdGhpcy5yZWxhdGlvbj8uaXRlbUlkID8/ICcnLFxuICAgICAgdHlwZUlkOiB0aGlzLnJlbGF0aW9uPy50eXBlSWQgPz8gJycsXG4gICAgICBpbnZlcnNpb246IHRoaXMuaW52ZXJzaW9uXG4gICAgfTtcbiAgICBpZiAodGhpcy5vYmplY3QpIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0ID0gSXRlbVV0aWxzLmVuc3VyZUl0ZW1JZEhhc0NvcnJlY3RGb3JtYXQodGhpcy50bXBPYmplY3QpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChJdGVtQWN0aW9ucy5jcmVhdGUoeyBpdGVtOiB0aGlzLnRtcE9iamVjdCB9KSk7XG4gICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgIHJlbGF0aW9uLmZyb20gPSBbdGhpcy50bXBPYmplY3QuaWRdO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uKHJlbGF0aW9uKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb24ocmVsYXRpb24pKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSB0aGlzLnRtcE9iamVjdC5vQ2xhc3MpPy5hdHRyaWJ1dGVzID8/IFtdO1xuICB9XG5cbiAgZmllbGRUeXBlKGF0dHJpYnV0ZTogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBhdHRyaWJ1dGUuZmllbGQgPT09IGZpZWxkLmlkKT8udHlwZTtcbiAgfVxuXG4gIGFzc2lnblZhbHVlKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIHRoaXMuZmllbGRUeXBlKGF0dHJpYnV0ZSkgPT09IEZpZWxkVHlwZS5JTlNUQU5UICYmICRldmVudCAhPT0gJycgPyBuZXcgRGF0ZSgkZXZlbnQpLmdldFRpbWUoKSA6ICRldmVudDtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSA9IHsgdHlwZTogJ1ZBTFVFJywgbWV0YWRhdGE6IHt9LCB2YWx1ZSwgdmlzaWJsZTogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdmFsdWUoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSk/LnZhbHVlO1xuICAgIGlmICh0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnID8gRGF0ZVV0aWxzLmZvcm1hdERhdGUobmV3IERhdGUodmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAoKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKSA/PyB7fSkudmFsdWU7XG4gIH1cblxuICB0b2dnbGVEYXRlUGlja2VyKCRldmVudDogRXZlbnQsIGlkOiBzdHJpbmcpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID09PSBpZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSBpZDtcbiAgICB9XG4gIH1cblxuICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghKCRldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jb250YWlucygoJGV2ZW50IGFzIE1vdXNlRXZlbnQpLnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID0gJyc7XG4gICAgfVxuICB9XG5cbiAgbXVsdGlWYWx1ZXMoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gKCh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSA/PyB7IHZhbHVlczogW10gfSkudmFsdWVzO1xuICB9XG5cbiAgcmVtb3ZlTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMuc3BsaWNlKGksIDEpO1xuICB9XG5cbiAgYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSA9IHsgdHlwZTogJ01VTFRJJywgdmFsdWVzOiBbXSB9O1xuICAgIH1cbiAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSkudmFsdWVzLnB1c2goe1xuICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICB2aXNpYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHZhbHVlTXVsdGkoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm11bHRpVmFsdWVzKGF0dHJpYnV0ZSlbaV0udmFsdWU7XG4gIH1cblxuICBhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSwgaTogbnVtYmVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCA/IG5ldyBEYXRlKCRldmVudCkuZ2V0VGltZSgpIDogJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdID0geyB0eXBlOiAnTVVMVEknLCB2YWx1ZXM6IFtdIH07XG4gICAgfVxuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSA9IHtcbiAgICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUNsYXNzKCRldmVudDogYW55KSB7XG4gICAgdGhpcy50bXBPYmplY3QgPSB0aGlzLm5ld09iamVjdCgpO1xuICAgIHRoaXMudG1wT2JqZWN0Lm9DbGFzcyA9ICRldmVudDtcbiAgICBpZiAodGhpcy5mcm9tID09PSAnbWFwJykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBpZiAoWydsYXRpdHVkZScsICdsYXQnXS5pbmRleE9mKGF0dHJpYnV0ZS5uYW1lKSA+PSAwKSB7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5hZGRNdWx0aVZhbHVlZChhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdLCBpZHgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFsnbG9uZ2l0dWRlJywgJ2xvbmcnLCAnbG9uJywgJ2xuZyddLmluZGV4T2YoYXR0cmlidXRlLm5hbWUpID49IDApIHtcbiAgICAgICAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmFkZE11bHRpVmFsdWVkKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0sIGlkeCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduVmFsdWUoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmF3TWV0aG9kKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWV0aG9kID0gJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdID0ge1xuICAgICAgICB0eXBlOiAnVkFMVUUnLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKCRldmVudCA9PT0gdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QpIHtcbiAgICAgIHRoaXMuYXNzaWduTWV0YWRhdGEoYXR0cmlidXRlLCAnJywgSFRUUF9PUklHSU5fTUVUQURBVEEpO1xuICAgIH1cbiAgICBpZiAoJGV2ZW50ID09PSB0aGlzLlVQTE9BRF9NRVRIT0QpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGRlbGV0ZSAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLm1ldGFkYXRhW0hUVFBfT1JJR0lOX01FVEFEQVRBXTtcbiAgICB9XG4gIH1cblxuICB2YWx1ZU1ldGFkYXRhKGF0dHJpYnV0ZTogQXR0cmlidXRlLCB0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKCgodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpID8/IHt9KS5tZXRhZGF0YSA/PyB7fSlbdHlwZV07XG4gIH1cblxuICBhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGU6IEF0dHJpYnV0ZSwgJGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSA9IHsgW3R5cGVdOiAkZXZlbnQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YVt0eXBlXSA9ICRldmVudDtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVJbnZlcnNpb24oKSB7XG4gICAgdGhpcy5pbnZlcnNpb24gPSAhdGhpcy5pbnZlcnNpb247XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiIChjbGljayk9XCJvcGVuQ3JlYXRlT2JqZWN0UGFuZWwoJGV2ZW50KVwiICpuZ0lmPVwibWVudVwiPlxuICB7eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS4nICsgKGxpbmsgJiYgb2JqZWN0ID8gJ2xpbmtlZE9iamVjdCcgOiBsaW5rID8gJ2xpbmsnIDogJ29iamVjdCcpIHwgaTE4biB9fVxuPC9idXR0b24+XG48YnV0dG9uXG4gIGlkPVwib2JqZWN0X2NyZWF0b3JfbGlua1wiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwib3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudClcIlxuICAqbmdJZj1cIiFtZW51XCJcbiAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tZ2hvc3QgLWNpcmNsZSB1LWZsb2F0aW5nIHUtZmxvYXRpbmctLWJvdHRvbS1yaWdodFwiXG4gIFt0aXRsZV09XCInQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5vYmplY3QnIHwgaTE4blwiXG4+XG4gIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5vYmplY3QnIHwgaTE4biB9fTwvc3Bhbj5cbiAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRfY29sdW1uXCIgW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvcHJ5LWljb24+XG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlua1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9saW5rXCI+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUubGluaycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWxhdGlvbi50eXBlSWRcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInJlbGF0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgIGlkPVwiY3JlYXRlb2JqZWN0X2xpbmtcIlxuICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9pbnZlcnNpb25cIj57e1xuICAgICAgICAgICAgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUuaW52ZXJzaW9uJyB8IGkxOG5cbiAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJjcmVhdGVvYmplY3RfaW52ZXJzaW9uXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImludmVyc2lvblwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVJbnZlcnNpb24oKVwiXG4gICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiby1vYmplY3QtcGFuZWxcIiAqbmdJZj1cIm9iamVjdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9jbGFzc1wiPnt7ICdAcHJ5LmNvbnRleHQuY3JlYXRlT2JqZWN0LmNsYXNzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ0bXBPYmplY3Qub0NsYXNzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNsYXNzKCRldmVudClcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImNsYXNzZXNcIlxuICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgIGlkPVwiY3JlYXRlb2JqZWN0X2NsYXNzXCJcbiAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlc1wiIFtjbGFzcy5tdWx0aS12YWx1ZV09XCJhdHRyaWJ1dGUubXVsdGlWYWx1ZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCI+e3sgYXR0cmlidXRlLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhdHRyaWJ1dGUubXVsdGlWYWx1ZWRcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGRUeXBlKGF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5TVEFOVFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImEtZGF0ZS1pbnB1dFwiIHRhYmluZGV4PVwiLTFcIiAoYmx1cik9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYS1vcGVuLWRhdGUtcGlja2VyXCIgKG1vdXNlZG93bik9XCJ0b2dnbGVEYXRlUGlja2VyKCRldmVudCwgYXR0cmlidXRlLmlkKVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyXCIgKm5nSWY9XCJzZWxlY3RlZERhdGVQaWNrZXIgPT09IGF0dHJpYnV0ZS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwcnktZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3VuZFNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aW1lUGlja2VyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3ByeS1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuREVDSU1BTFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLklOVEVHRVJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLlJBV1wiPlxuICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibWV0aG9kXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UmF3TWV0aG9kKGF0dHJpYnV0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJyYXdNZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXRob2QgPT09IEhUVFBfT1JJR0lOX01FVEhPRFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTWV0YWRhdGEoYXR0cmlidXRlLCBIVFRQX09SSUdJTl9NRVRBREFUQSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGUsICRldmVudCwgSFRUUF9PUklHSU5fTUVUQURBVEEpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWV0aG9kID09PSBVUExPQURfTUVUSE9EXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktdXBsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgbW9kZT1cImRvY1wiXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKix2aWRlby8qXCJcbiAgICAgICAgICAgICAgICAgICAgICAodXBsb2FkZWQpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LXVwbG9hZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpLXZhbHVlLWNvbnRhaW5lclwiICpuZ0lmPVwiYXR0cmlidXRlLm11bHRpVmFsdWVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWFkZCBhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IGEtYnRuLS1pY29uLXRleHQgLXNpemUtc21cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QuYWRkTXVsdGlGaWVsZCcgfCBpMThuOiB7IG5hbWU6IGF0dHJpYnV0ZS5uYW1lIH0gfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aS12YWx1ZVwiICpuZ0Zvcj1cImxldCBtdWx0aVZhbHVlIG9mIG11bHRpVmFsdWVzKGF0dHJpYnV0ZSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGRUeXBlKGF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5TVEFOVFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTXVsdGkoYXR0cmlidXRlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5ERUNJTUFMXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZU11bHRpKGF0dHJpYnV0ZSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5JTlRFR0VSXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTXVsdGkoYXR0cmlidXRlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVNdWx0aShhdHRyaWJ1dGUsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWVNdWx0aShhdHRyaWJ1dGUsICRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJyZW1vdmVNdWx0aVZhbHVlZChhdHRyaWJ1dGUsIGkpXCI+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImRlbGV0ZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiaGlkZSgpXCI+XG4gICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuY2FuY2VsJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGVPYmplY3RzKClcIiBbZGlzYWJsZWRdPVwiIXZhbGlkXCI+XG4gICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuY3JlYXRlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|