@jigx/core-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -0
- package/README.md +87 -0
- package/dist/PACKAGE.d.ts +4 -0
- package/dist/PACKAGE.d.ts.map +1 -0
- package/dist/PACKAGE.js +5 -0
- package/dist/abstract/app-info.d.ts +8 -0
- package/dist/abstract/app-info.d.ts.map +1 -0
- package/dist/abstract/app-info.js +8 -0
- package/dist/abstract/app-name.d.ts +15 -0
- package/dist/abstract/app-name.d.ts.map +1 -0
- package/dist/abstract/app-name.js +28 -0
- package/dist/abstract/base-builder.d.ts +4 -0
- package/dist/abstract/base-builder.d.ts.map +1 -0
- package/dist/abstract/base-builder.js +3 -0
- package/dist/abstract/element-base-builder.d.ts +7 -0
- package/dist/abstract/element-base-builder.d.ts.map +1 -0
- package/dist/abstract/element-base-builder.js +11 -0
- package/dist/abstract/generic.d.ts +31 -0
- package/dist/abstract/generic.d.ts.map +1 -0
- package/dist/abstract/generic.js +2 -0
- package/dist/abstract/index.d.ts +12 -0
- package/dist/abstract/index.d.ts.map +1 -0
- package/dist/abstract/index.js +11 -0
- package/dist/abstract/register.d.ts +31 -0
- package/dist/abstract/register.d.ts.map +1 -0
- package/dist/abstract/register.js +48 -0
- package/dist/abstract/sdk.expression.d.ts +43 -0
- package/dist/abstract/sdk.expression.d.ts.map +1 -0
- package/dist/abstract/sdk.expression.js +175 -0
- package/dist/abstract/sdk.text.d.ts +23 -0
- package/dist/abstract/sdk.text.d.ts.map +1 -0
- package/dist/abstract/sdk.text.js +110 -0
- package/dist/abstract/sdk.types.d.ts +16 -0
- package/dist/abstract/sdk.types.d.ts.map +1 -0
- package/dist/abstract/sdk.types.js +88 -0
- package/dist/abstract/zod.strata.d.ts +17 -0
- package/dist/abstract/zod.strata.d.ts.map +1 -0
- package/dist/abstract/zod.strata.js +11 -0
- package/dist/abstract/zod.types.d.ts +1937 -0
- package/dist/abstract/zod.types.d.ts.map +1 -0
- package/dist/abstract/zod.types.js +848 -0
- package/dist/action/action-definition.builder.d.ts +16 -0
- package/dist/action/action-definition.builder.d.ts.map +1 -0
- package/dist/action/action-definition.builder.js +35 -0
- package/dist/action/action.descriptor.d.ts +8 -0
- package/dist/action/action.descriptor.d.ts.map +1 -0
- package/dist/action/action.descriptor.js +2 -0
- package/dist/action/index.d.ts +57 -0
- package/dist/action/index.d.ts.map +1 -0
- package/dist/action/index.js +48 -0
- package/dist/action/ja.abstract.d.ts +33 -0
- package/dist/action/ja.abstract.d.ts.map +1 -0
- package/dist/action/ja.abstract.js +58 -0
- package/dist/action/ja.action-definition.d.ts +11 -0
- package/dist/action/ja.action-definition.d.ts.map +1 -0
- package/dist/action/ja.action-definition.js +12 -0
- package/dist/action/ja.action-list.d.ts +9 -0
- package/dist/action/ja.action-list.d.ts.map +1 -0
- package/dist/action/ja.action-list.js +15 -0
- package/dist/action/ja.clear-queue.d.ts +9 -0
- package/dist/action/ja.clear-queue.d.ts.map +1 -0
- package/dist/action/ja.clear-queue.js +9 -0
- package/dist/action/ja.color.d.ts +3 -0
- package/dist/action/ja.color.d.ts.map +1 -0
- package/dist/action/ja.color.js +2 -0
- package/dist/action/ja.confirm.abstract.d.ts +16 -0
- package/dist/action/ja.confirm.abstract.d.ts.map +1 -0
- package/dist/action/ja.confirm.abstract.js +25 -0
- package/dist/action/ja.confirm.d.ts +23 -0
- package/dist/action/ja.confirm.d.ts.map +1 -0
- package/dist/action/ja.confirm.js +28 -0
- package/dist/action/ja.delete-queue-command.d.ts +9 -0
- package/dist/action/ja.delete-queue-command.d.ts.map +1 -0
- package/dist/action/ja.delete-queue-command.js +9 -0
- package/dist/action/ja.delete-sync-scope.d.ts +10 -0
- package/dist/action/ja.delete-sync-scope.d.ts.map +1 -0
- package/dist/action/ja.delete-sync-scope.js +14 -0
- package/dist/action/ja.delete-sync-status.d.ts +9 -0
- package/dist/action/ja.delete-sync-status.d.ts.map +1 -0
- package/dist/action/ja.delete-sync-status.js +9 -0
- package/dist/action/ja.evaluate.d.ts +12 -0
- package/dist/action/ja.evaluate.d.ts.map +1 -0
- package/dist/action/ja.evaluate.js +9 -0
- package/dist/action/ja.execute-action.d.ts +11 -0
- package/dist/action/ja.execute-action.d.ts.map +1 -0
- package/dist/action/ja.execute-action.js +15 -0
- package/dist/action/ja.execute-entities.d.ts +7 -0
- package/dist/action/ja.execute-entities.d.ts.map +1 -0
- package/dist/action/ja.execute-entities.js +8 -0
- package/dist/action/ja.execute-entity.abstract.d.ts +41 -0
- package/dist/action/ja.execute-entity.abstract.d.ts.map +1 -0
- package/dist/action/ja.execute-entity.abstract.js +104 -0
- package/dist/action/ja.execute-entity.d.ts +6 -0
- package/dist/action/ja.execute-entity.d.ts.map +1 -0
- package/dist/action/ja.execute-entity.dynamic-data.d.ts +6 -0
- package/dist/action/ja.execute-entity.dynamic-data.d.ts.map +1 -0
- package/dist/action/ja.execute-entity.dynamic-data.js +2 -0
- package/dist/action/ja.execute-entity.generic.d.ts +11 -0
- package/dist/action/ja.execute-entity.generic.d.ts.map +1 -0
- package/dist/action/ja.execute-entity.generic.js +2 -0
- package/dist/action/ja.execute-entity.js +8 -0
- package/dist/action/ja.execute-entity.sql.d.ts +12 -0
- package/dist/action/ja.execute-entity.sql.d.ts.map +1 -0
- package/dist/action/ja.execute-entity.sql.js +2 -0
- package/dist/action/ja.execute-sql.abstract.d.ts +6 -0
- package/dist/action/ja.execute-sql.abstract.d.ts.map +1 -0
- package/dist/action/ja.execute-sql.abstract.js +2 -0
- package/dist/action/ja.execute-sql.d.ts +16 -0
- package/dist/action/ja.execute-sql.d.ts.map +1 -0
- package/dist/action/ja.execute-sql.js +64 -0
- package/dist/action/ja.find-replace.d.ts +12 -0
- package/dist/action/ja.find-replace.d.ts.map +1 -0
- package/dist/action/ja.find-replace.js +22 -0
- package/dist/action/ja.generate-file.d.ts +11 -0
- package/dist/action/ja.generate-file.d.ts.map +1 -0
- package/dist/action/ja.generate-file.js +19 -0
- package/dist/action/ja.generate-pdf.d.ts +10 -0
- package/dist/action/ja.generate-pdf.d.ts.map +1 -0
- package/dist/action/ja.generate-pdf.js +10 -0
- package/dist/action/ja.go-back.d.ts +9 -0
- package/dist/action/ja.go-back.d.ts.map +1 -0
- package/dist/action/ja.go-back.js +11 -0
- package/dist/action/ja.go-to.d.ts +18 -0
- package/dist/action/ja.go-to.d.ts.map +1 -0
- package/dist/action/ja.go-to.js +41 -0
- package/dist/action/ja.in-background.d.ts +95 -0
- package/dist/action/ja.in-background.d.ts.map +1 -0
- package/dist/action/ja.in-background.factory.d.ts +88 -0
- package/dist/action/ja.in-background.factory.d.ts.map +1 -0
- package/dist/action/ja.in-background.factory.js +98 -0
- package/dist/action/ja.in-background.js +247 -0
- package/dist/action/ja.info-modal.d.ts +37 -0
- package/dist/action/ja.info-modal.d.ts.map +1 -0
- package/dist/action/ja.info-modal.js +61 -0
- package/dist/action/ja.jig-actions.d.ts +16 -0
- package/dist/action/ja.jig-actions.d.ts.map +1 -0
- package/dist/action/ja.jig-actions.js +35 -0
- package/dist/action/ja.on-button.factory.d.ts +89 -0
- package/dist/action/ja.on-button.factory.d.ts.map +1 -0
- package/dist/action/ja.on-button.factory.js +86 -0
- package/dist/action/ja.open-app-settings.d.ts +6 -0
- package/dist/action/ja.open-app-settings.d.ts.map +1 -0
- package/dist/action/ja.open-app-settings.js +8 -0
- package/dist/action/ja.open-map.abstract.d.ts +6 -0
- package/dist/action/ja.open-map.abstract.d.ts.map +1 -0
- package/dist/action/ja.open-map.abstract.js +2 -0
- package/dist/action/ja.open-map.d.ts +11 -0
- package/dist/action/ja.open-map.d.ts.map +1 -0
- package/dist/action/ja.open-map.js +25 -0
- package/dist/action/ja.open-media-picker.abstract.d.ts +8 -0
- package/dist/action/ja.open-media-picker.abstract.d.ts.map +1 -0
- package/dist/action/ja.open-media-picker.abstract.js +2 -0
- package/dist/action/ja.open-media-picker.d.ts +18 -0
- package/dist/action/ja.open-media-picker.d.ts.map +1 -0
- package/dist/action/ja.open-media-picker.js +46 -0
- package/dist/action/ja.open-scanner.d.ts +14 -0
- package/dist/action/ja.open-scanner.d.ts.map +1 -0
- package/dist/action/ja.open-scanner.js +23 -0
- package/dist/action/ja.open-url.d.ts +10 -0
- package/dist/action/ja.open-url.d.ts.map +1 -0
- package/dist/action/ja.open-url.js +13 -0
- package/dist/action/ja.print.d.ts +10 -0
- package/dist/action/ja.print.d.ts.map +1 -0
- package/dist/action/ja.print.js +17 -0
- package/dist/action/ja.reset-application-state.d.ts +9 -0
- package/dist/action/ja.reset-application-state.d.ts.map +1 -0
- package/dist/action/ja.reset-application-state.js +12 -0
- package/dist/action/ja.reset-component-state.d.ts +9 -0
- package/dist/action/ja.reset-component-state.d.ts.map +1 -0
- package/dist/action/ja.reset-component-state.js +13 -0
- package/dist/action/ja.reset-screen-state.d.ts +9 -0
- package/dist/action/ja.reset-screen-state.d.ts.map +1 -0
- package/dist/action/ja.reset-screen-state.js +12 -0
- package/dist/action/ja.reset-state.d.ts +9 -0
- package/dist/action/ja.reset-state.d.ts.map +1 -0
- package/dist/action/ja.reset-state.js +13 -0
- package/dist/action/ja.retry-queue-command.d.ts +9 -0
- package/dist/action/ja.retry-queue-command.d.ts.map +1 -0
- package/dist/action/ja.retry-queue-command.js +9 -0
- package/dist/action/ja.sdk.d.ts +4 -0
- package/dist/action/ja.sdk.d.ts.map +1 -0
- package/dist/action/ja.sdk.js +2 -0
- package/dist/action/ja.set-active-tab.d.ts +13 -0
- package/dist/action/ja.set-active-tab.d.ts.map +1 -0
- package/dist/action/ja.set-active-tab.js +29 -0
- package/dist/action/ja.set-application-state.d.ts +9 -0
- package/dist/action/ja.set-application-state.d.ts.map +1 -0
- package/dist/action/ja.set-application-state.js +17 -0
- package/dist/action/ja.set-screen-state.d.ts +9 -0
- package/dist/action/ja.set-screen-state.d.ts.map +1 -0
- package/dist/action/ja.set-screen-state.js +12 -0
- package/dist/action/ja.share.d.ts +12 -0
- package/dist/action/ja.share.d.ts.map +1 -0
- package/dist/action/ja.share.js +23 -0
- package/dist/action/ja.show-alert.d.ts +33 -0
- package/dist/action/ja.show-alert.d.ts.map +1 -0
- package/dist/action/ja.show-alert.js +61 -0
- package/dist/action/ja.start-location-sharing.abstract.d.ts +6 -0
- package/dist/action/ja.start-location-sharing.abstract.d.ts.map +1 -0
- package/dist/action/ja.start-location-sharing.abstract.js +2 -0
- package/dist/action/ja.start-location-sharing.d.ts +18 -0
- package/dist/action/ja.start-location-sharing.d.ts.map +1 -0
- package/dist/action/ja.start-location-sharing.js +33 -0
- package/dist/action/ja.start-sync-scope.d.ts +9 -0
- package/dist/action/ja.start-sync-scope.d.ts.map +1 -0
- package/dist/action/ja.start-sync-scope.js +18 -0
- package/dist/action/ja.stop-location-sharing.d.ts +6 -0
- package/dist/action/ja.stop-location-sharing.d.ts.map +1 -0
- package/dist/action/ja.stop-location-sharing.js +8 -0
- package/dist/action/ja.submit-form.abstract.d.ts +11 -0
- package/dist/action/ja.submit-form.abstract.d.ts.map +1 -0
- package/dist/action/ja.submit-form.abstract.js +2 -0
- package/dist/action/ja.submit-form.d.ts +31 -0
- package/dist/action/ja.submit-form.d.ts.map +1 -0
- package/dist/action/ja.submit-form.js +124 -0
- package/dist/action/ja.swipeable-action.d.ts +19 -0
- package/dist/action/ja.swipeable-action.d.ts.map +1 -0
- package/dist/action/ja.swipeable-action.js +25 -0
- package/dist/action/ja.sync-entities.abstract.d.ts +25 -0
- package/dist/action/ja.sync-entities.abstract.d.ts.map +1 -0
- package/dist/action/ja.sync-entities.abstract.js +2 -0
- package/dist/action/ja.sync-entities.d.ts +32 -0
- package/dist/action/ja.sync-entities.d.ts.map +1 -0
- package/dist/action/ja.sync-entities.js +142 -0
- package/dist/action/ja.update-profile.d.ts +12 -0
- package/dist/action/ja.update-profile.d.ts.map +1 -0
- package/dist/action/ja.update-profile.js +20 -0
- package/dist/application/application.sdk.d.ts +84 -0
- package/dist/application/application.sdk.d.ts.map +1 -0
- package/dist/application/application.sdk.js +217 -0
- package/dist/application/application.tab.d.ts +20 -0
- package/dist/application/application.tab.d.ts.map +1 -0
- package/dist/application/application.tab.js +45 -0
- package/dist/application/context.sdk.d.ts +48 -0
- package/dist/application/context.sdk.d.ts.map +1 -0
- package/dist/application/context.sdk.js +116 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +4 -0
- package/dist/assets/example-extraction-cache.json +9 -0
- package/dist/assets/extracted-core-sdk-examples.yaml +44440 -0
- package/dist/assets/extracted-core-sdk-types.yaml +12100 -0
- package/dist/assets/stream-line-icons.csv +19281 -0
- package/dist/assets/type-extraction-cache.json +9 -0
- package/dist/builder/application-analyzer/application-analyzer.d.ts +42 -0
- package/dist/builder/application-analyzer/application-analyzer.d.ts.map +1 -0
- package/dist/builder/application-analyzer/application-analyzer.js +150 -0
- package/dist/builder/application-analyzer/create-application-analyzer.d.ts +17 -0
- package/dist/builder/application-analyzer/create-application-analyzer.d.ts.map +1 -0
- package/dist/builder/application-analyzer/create-application-analyzer.js +121 -0
- package/dist/builder/application-analyzer/index.d.ts +5 -0
- package/dist/builder/application-analyzer/index.d.ts.map +1 -0
- package/dist/builder/application-analyzer/index.js +5 -0
- package/dist/builder/application-analyzer/select-component-nodes.d.ts +7 -0
- package/dist/builder/application-analyzer/select-component-nodes.d.ts.map +1 -0
- package/dist/builder/application-analyzer/select-component-nodes.js +15 -0
- package/dist/builder/application-analyzer/select-datasource-node-by-id.d.ts +8 -0
- package/dist/builder/application-analyzer/select-datasource-node-by-id.d.ts.map +1 -0
- package/dist/builder/application-analyzer/select-datasource-node-by-id.js +20 -0
- package/dist/builder/application-analyzer/types.d.ts +60 -0
- package/dist/builder/application-analyzer/types.d.ts.map +1 -0
- package/dist/builder/application-analyzer/types.js +16 -0
- package/dist/builder/application-analyzer/utils.d.ts +3 -0
- package/dist/builder/application-analyzer/utils.d.ts.map +1 -0
- package/dist/builder/application-analyzer/utils.js +8 -0
- package/dist/builder/builder.d.ts +8 -0
- package/dist/builder/builder.d.ts.map +1 -0
- package/dist/builder/builder.js +54 -0
- package/dist/builder/index.d.ts +5 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +4 -0
- package/dist/builder/transform-summary.d.ts +3 -0
- package/dist/builder/transform-summary.d.ts.map +1 -0
- package/dist/builder/transform-summary.js +39 -0
- package/dist/builder/types.d.ts +8 -0
- package/dist/builder/types.d.ts.map +1 -0
- package/dist/builder/types.js +2 -0
- package/dist/builder/validate-datasource-ids.d.ts +17 -0
- package/dist/builder/validate-datasource-ids.d.ts.map +1 -0
- package/dist/builder/validate-datasource-ids.js +51 -0
- package/dist/component/common/index.d.ts +22 -0
- package/dist/component/common/index.d.ts.map +1 -0
- package/dist/component/common/index.js +16 -0
- package/dist/component/common/jc.avatar-field.types.d.ts +9 -0
- package/dist/component/common/jc.avatar-field.types.d.ts.map +1 -0
- package/dist/component/common/jc.avatar-field.types.js +11 -0
- package/dist/component/common/jc.chart.common.abstract.d.ts +85 -0
- package/dist/component/common/jc.chart.common.abstract.d.ts.map +1 -0
- package/dist/component/common/jc.chart.common.abstract.js +2 -0
- package/dist/component/common/jc.chart.common.builders.d.ts +37 -0
- package/dist/component/common/jc.chart.common.builders.d.ts.map +1 -0
- package/dist/component/common/jc.chart.common.builders.js +81 -0
- package/dist/component/common/jc.component.types.d.ts +101 -0
- package/dist/component/common/jc.component.types.d.ts.map +1 -0
- package/dist/component/common/jc.component.types.js +144 -0
- package/dist/component/common/jc.context.d.ts +7 -0
- package/dist/component/common/jc.context.d.ts.map +1 -0
- package/dist/component/common/jc.context.js +2 -0
- package/dist/component/common/jc.element.types.d.ts +14 -0
- package/dist/component/common/jc.element.types.d.ts.map +1 -0
- package/dist/component/common/jc.element.types.js +13 -0
- package/dist/component/common/jc.field-base.builder.d.ts +21 -0
- package/dist/component/common/jc.field-base.builder.d.ts.map +1 -0
- package/dist/component/common/jc.field-base.builder.js +101 -0
- package/dist/component/common/jc.field-base.types.d.ts +28 -0
- package/dist/component/common/jc.field-base.types.d.ts.map +1 -0
- package/dist/component/common/jc.field-base.types.js +2 -0
- package/dist/component/common/jc.left-right.element.avatar.d.ts +11 -0
- package/dist/component/common/jc.left-right.element.avatar.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.avatar.js +18 -0
- package/dist/component/common/jc.left-right.element.badge.d.ts +11 -0
- package/dist/component/common/jc.left-right.element.badge.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.badge.js +17 -0
- package/dist/component/common/jc.left-right.element.button.d.ts +11 -0
- package/dist/component/common/jc.left-right.element.button.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.button.js +14 -0
- package/dist/component/common/jc.left-right.element.checkbox.d.ts +13 -0
- package/dist/component/common/jc.left-right.element.checkbox.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.checkbox.js +21 -0
- package/dist/component/common/jc.left-right.element.d.ts +31 -0
- package/dist/component/common/jc.left-right.element.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.icon.d.ts +18 -0
- package/dist/component/common/jc.left-right.element.icon.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.icon.js +32 -0
- package/dist/component/common/jc.left-right.element.image.d.ts +16 -0
- package/dist/component/common/jc.left-right.element.image.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.image.js +29 -0
- package/dist/component/common/jc.left-right.element.js +2 -0
- package/dist/component/common/jc.left-right.element.progress.d.ts +11 -0
- package/dist/component/common/jc.left-right.element.progress.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.progress.js +17 -0
- package/dist/component/common/jc.left-right.element.switch.d.ts +13 -0
- package/dist/component/common/jc.left-right.element.switch.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.switch.js +21 -0
- package/dist/component/common/jc.left-right.element.value.d.ts +10 -0
- package/dist/component/common/jc.left-right.element.value.d.ts.map +1 -0
- package/dist/component/common/jc.left-right.element.value.js +12 -0
- package/dist/component/common/jc.picker-field-options.types.d.ts +13 -0
- package/dist/component/common/jc.picker-field-options.types.d.ts.map +1 -0
- package/dist/component/common/jc.picker-field-options.types.js +2 -0
- package/dist/component/common/jc.text.types.d.ts +6 -0
- package/dist/component/common/jc.text.types.d.ts.map +1 -0
- package/dist/component/common/jc.text.types.js +2 -0
- package/dist/component/common/jc.validation.d.ts +9 -0
- package/dist/component/common/jc.validation.d.ts.map +1 -0
- package/dist/component/common/jc.validation.js +48 -0
- package/dist/component/index.d.ts +86 -0
- package/dist/component/index.d.ts.map +1 -0
- package/dist/component/index.js +83 -0
- package/dist/component/jc.abstract.d.ts +32 -0
- package/dist/component/jc.abstract.d.ts.map +1 -0
- package/dist/component/jc.abstract.factory.d.ts +488 -0
- package/dist/component/jc.abstract.factory.d.ts.map +1 -0
- package/dist/component/jc.abstract.factory.js +757 -0
- package/dist/component/jc.abstract.js +53 -0
- package/dist/component/jc.abstract.utils.d.ts +3 -0
- package/dist/component/jc.abstract.utils.d.ts.map +1 -0
- package/dist/component/jc.abstract.utils.js +26 -0
- package/dist/component/jc.amount-control.d.ts +16 -0
- package/dist/component/jc.amount-control.d.ts.map +1 -0
- package/dist/component/jc.amount-control.js +36 -0
- package/dist/component/jc.avatar-field.d.ts +11 -0
- package/dist/component/jc.avatar-field.d.ts.map +1 -0
- package/dist/component/jc.avatar-field.js +27 -0
- package/dist/component/jc.avatar.d.ts +14 -0
- package/dist/component/jc.avatar.d.ts.map +1 -0
- package/dist/component/jc.avatar.js +26 -0
- package/dist/component/jc.banner.d.ts +81 -0
- package/dist/component/jc.banner.d.ts.map +1 -0
- package/dist/component/jc.banner.js +49 -0
- package/dist/component/jc.bar-chart.d.ts +23 -0
- package/dist/component/jc.bar-chart.d.ts.map +1 -0
- package/dist/component/jc.bar-chart.js +45 -0
- package/dist/component/jc.button.d.ts +20 -0
- package/dist/component/jc.button.d.ts.map +1 -0
- package/dist/component/jc.button.js +39 -0
- package/dist/component/jc.card.abstract.d.ts +14 -0
- package/dist/component/jc.card.abstract.d.ts.map +1 -0
- package/dist/component/jc.card.abstract.js +31 -0
- package/dist/component/jc.card.on-default.d.ts +91 -0
- package/dist/component/jc.card.on-default.d.ts.map +1 -0
- package/dist/component/jc.card.on-default.js +96 -0
- package/dist/component/jc.carousel.d.ts +31 -0
- package/dist/component/jc.carousel.d.ts.map +1 -0
- package/dist/component/jc.carousel.js +58 -0
- package/dist/component/jc.chat-message.d.ts +17 -0
- package/dist/component/jc.chat-message.d.ts.map +1 -0
- package/dist/component/jc.chat-message.js +32 -0
- package/dist/component/jc.chat.d.ts +23 -0
- package/dist/component/jc.chat.d.ts.map +1 -0
- package/dist/component/jc.chat.js +68 -0
- package/dist/component/jc.checkbox.d.ts +15 -0
- package/dist/component/jc.checkbox.d.ts.map +1 -0
- package/dist/component/jc.checkbox.js +38 -0
- package/dist/component/jc.choice-field-item.d.ts +15 -0
- package/dist/component/jc.choice-field-item.d.ts.map +1 -0
- package/dist/component/jc.choice-field-item.js +41 -0
- package/dist/component/jc.choice-field.d.ts +21 -0
- package/dist/component/jc.choice-field.d.ts.map +1 -0
- package/dist/component/jc.choice-field.js +34 -0
- package/dist/component/jc.count-down.d.ts +18 -0
- package/dist/component/jc.count-down.d.ts.map +1 -0
- package/dist/component/jc.count-down.js +55 -0
- package/dist/component/jc.count-up.d.ts +15 -0
- package/dist/component/jc.count-up.d.ts.map +1 -0
- package/dist/component/jc.count-up.js +42 -0
- package/dist/component/jc.custom-component.interop.d.ts +58 -0
- package/dist/component/jc.custom-component.interop.d.ts.map +1 -0
- package/dist/component/jc.custom-component.interop.js +115 -0
- package/dist/component/jc.date-picker.d.ts +15 -0
- package/dist/component/jc.date-picker.d.ts.map +1 -0
- package/dist/component/jc.date-picker.js +31 -0
- package/dist/component/jc.divider.d.ts +7 -0
- package/dist/component/jc.divider.d.ts.map +1 -0
- package/dist/component/jc.divider.js +8 -0
- package/dist/component/jc.dropdown.d.ts +20 -0
- package/dist/component/jc.dropdown.d.ts.map +1 -0
- package/dist/component/jc.dropdown.item.d.ts +22 -0
- package/dist/component/jc.dropdown.item.d.ts.map +1 -0
- package/dist/component/jc.dropdown.item.js +85 -0
- package/dist/component/jc.dropdown.js +33 -0
- package/dist/component/jc.duration-picker.d.ts +18 -0
- package/dist/component/jc.duration-picker.d.ts.map +1 -0
- package/dist/component/jc.duration-picker.js +35 -0
- package/dist/component/jc.email-field.d.ts +11 -0
- package/dist/component/jc.email-field.d.ts.map +1 -0
- package/dist/component/jc.email-field.js +19 -0
- package/dist/component/jc.entity-field.d.ts +23 -0
- package/dist/component/jc.entity-field.d.ts.map +1 -0
- package/dist/component/jc.entity-field.js +71 -0
- package/dist/component/jc.entity.d.ts +15 -0
- package/dist/component/jc.entity.d.ts.map +1 -0
- package/dist/component/jc.entity.js +27 -0
- package/dist/component/jc.event.d.ts +22 -0
- package/dist/component/jc.event.d.ts.map +1 -0
- package/dist/component/jc.event.js +68 -0
- package/dist/component/jc.expander.d.ts +49 -0
- package/dist/component/jc.expander.d.ts.map +1 -0
- package/dist/component/jc.expander.header.d.ts +25 -0
- package/dist/component/jc.expander.header.d.ts.map +1 -0
- package/dist/component/jc.expander.header.js +39 -0
- package/dist/component/jc.expander.js +53 -0
- package/dist/component/jc.field-row.d.ts +34 -0
- package/dist/component/jc.field-row.d.ts.map +1 -0
- package/dist/component/jc.field-row.entity.d.ts +12 -0
- package/dist/component/jc.field-row.entity.d.ts.map +1 -0
- package/dist/component/jc.field-row.entity.js +35 -0
- package/dist/component/jc.field-row.js +37 -0
- package/dist/component/jc.form.d.ts +98 -0
- package/dist/component/jc.form.d.ts.map +1 -0
- package/dist/component/jc.form.js +127 -0
- package/dist/component/jc.gallery-item.d.ts +12 -0
- package/dist/component/jc.gallery-item.d.ts.map +1 -0
- package/dist/component/jc.gallery-item.js +24 -0
- package/dist/component/jc.grid-item.d.ts +15 -0
- package/dist/component/jc.grid-item.d.ts.map +1 -0
- package/dist/component/jc.grid-item.js +31 -0
- package/dist/component/jc.grid.d.ts +16 -0
- package/dist/component/jc.grid.d.ts.map +1 -0
- package/dist/component/jc.grid.js +64 -0
- package/dist/component/jc.guards.d.ts +17 -0
- package/dist/component/jc.guards.d.ts.map +1 -0
- package/dist/component/jc.guards.js +14 -0
- package/dist/component/jc.icon.d.ts +19 -0
- package/dist/component/jc.icon.d.ts.map +1 -0
- package/dist/component/jc.icon.js +41 -0
- package/dist/component/jc.image.abstract.d.ts +28 -0
- package/dist/component/jc.image.abstract.d.ts.map +1 -0
- package/dist/component/jc.image.abstract.js +52 -0
- package/dist/component/jc.image.d.ts +5 -0
- package/dist/component/jc.image.d.ts.map +1 -0
- package/dist/component/jc.image.js +2 -0
- package/dist/component/jc.image.on-carousel.d.ts +23 -0
- package/dist/component/jc.image.on-carousel.d.ts.map +1 -0
- package/dist/component/jc.image.on-carousel.js +19 -0
- package/dist/component/jc.image.on-default.d.ts +25 -0
- package/dist/component/jc.image.on-default.d.ts.map +1 -0
- package/dist/component/jc.image.on-default.js +22 -0
- package/dist/component/jc.interactive-image.d.ts +41 -0
- package/dist/component/jc.interactive-image.d.ts.map +1 -0
- package/dist/component/jc.interactive-image.item.d.ts +24 -0
- package/dist/component/jc.interactive-image.item.d.ts.map +1 -0
- package/dist/component/jc.interactive-image.item.js +78 -0
- package/dist/component/jc.interactive-image.js +78 -0
- package/dist/component/jc.jig-header.d.ts +19 -0
- package/dist/component/jc.jig-header.d.ts.map +1 -0
- package/dist/component/jc.jig-header.js +42 -0
- package/dist/component/jc.jig-widget.d.ts +15 -0
- package/dist/component/jc.jig-widget.d.ts.map +1 -0
- package/dist/component/jc.jig-widget.js +41 -0
- package/dist/component/jc.jig.d.ts +11 -0
- package/dist/component/jc.jig.d.ts.map +1 -0
- package/dist/component/jc.jig.js +24 -0
- package/dist/component/jc.line-chart.d.ts +28 -0
- package/dist/component/jc.line-chart.d.ts.map +1 -0
- package/dist/component/jc.line-chart.js +45 -0
- package/dist/component/jc.list-item.d.ts +106 -0
- package/dist/component/jc.list-item.d.ts.map +1 -0
- package/dist/component/jc.list-item.js +274 -0
- package/dist/component/jc.list-item.standalone.d.ts +13 -0
- package/dist/component/jc.list-item.standalone.d.ts.map +1 -0
- package/dist/component/jc.list-item.standalone.js +10 -0
- package/dist/component/jc.list.abstract.d.ts +36 -0
- package/dist/component/jc.list.abstract.d.ts.map +1 -0
- package/dist/component/jc.list.abstract.js +2 -0
- package/dist/component/jc.list.d.ts +39 -0
- package/dist/component/jc.list.d.ts.map +1 -0
- package/dist/component/jc.list.js +95 -0
- package/dist/component/jc.location.d.ts +41 -0
- package/dist/component/jc.location.d.ts.map +1 -0
- package/dist/component/jc.location.js +63 -0
- package/dist/component/jc.marker-item.d.ts +29 -0
- package/dist/component/jc.marker-item.d.ts.map +1 -0
- package/dist/component/jc.marker-item.js +48 -0
- package/dist/component/jc.media-field.d.ts +13 -0
- package/dist/component/jc.media-field.d.ts.map +1 -0
- package/dist/component/jc.media-field.js +37 -0
- package/dist/component/jc.menu-item.d.ts +89 -0
- package/dist/component/jc.menu-item.d.ts.map +1 -0
- package/dist/component/jc.menu-item.js +65 -0
- package/dist/component/jc.number-field.d.ts +21 -0
- package/dist/component/jc.number-field.d.ts.map +1 -0
- package/dist/component/jc.number-field.js +33 -0
- package/dist/component/jc.pie-chart.d.ts +26 -0
- package/dist/component/jc.pie-chart.d.ts.map +1 -0
- package/dist/component/jc.pie-chart.js +45 -0
- package/dist/component/jc.product-item.amount.d.ts +17 -0
- package/dist/component/jc.product-item.amount.d.ts.map +1 -0
- package/dist/component/jc.product-item.amount.js +31 -0
- package/dist/component/jc.product-item.d.ts +30 -0
- package/dist/component/jc.product-item.d.ts.map +1 -0
- package/dist/component/jc.product-item.js +68 -0
- package/dist/component/jc.progress-bar.d.ts +45 -0
- package/dist/component/jc.progress-bar.d.ts.map +1 -0
- package/dist/component/jc.progress-bar.js +58 -0
- package/dist/component/jc.rating.d.ts +17 -0
- package/dist/component/jc.rating.d.ts.map +1 -0
- package/dist/component/jc.rating.js +38 -0
- package/dist/component/jc.section.abstract.d.ts +87 -0
- package/dist/component/jc.section.abstract.d.ts.map +1 -0
- package/dist/component/jc.section.abstract.js +33 -0
- package/dist/component/jc.section.on-default.d.ts +85 -0
- package/dist/component/jc.section.on-default.d.ts.map +1 -0
- package/dist/component/jc.section.on-default.js +85 -0
- package/dist/component/jc.section.on-entity.d.ts +11 -0
- package/dist/component/jc.section.on-entity.d.ts.map +1 -0
- package/dist/component/jc.section.on-entity.js +11 -0
- package/dist/component/jc.segmented-control.d.ts +23 -0
- package/dist/component/jc.segmented-control.d.ts.map +1 -0
- package/dist/component/jc.segmented-control.js +66 -0
- package/dist/component/jc.signature-field.d.ts +11 -0
- package/dist/component/jc.signature-field.d.ts.map +1 -0
- package/dist/component/jc.signature-field.js +18 -0
- package/dist/component/jc.slider.d.ts +36 -0
- package/dist/component/jc.slider.d.ts.map +1 -0
- package/dist/component/jc.slider.js +53 -0
- package/dist/component/jc.stage.d.ts +23 -0
- package/dist/component/jc.stage.d.ts.map +1 -0
- package/dist/component/jc.stage.js +31 -0
- package/dist/component/jc.step.d.ts +30 -0
- package/dist/component/jc.step.d.ts.map +1 -0
- package/dist/component/jc.step.js +35 -0
- package/dist/component/jc.stepper.d.ts +34 -0
- package/dist/component/jc.stepper.d.ts.map +1 -0
- package/dist/component/jc.stepper.js +59 -0
- package/dist/component/jc.story-group.d.ts +18 -0
- package/dist/component/jc.story-group.d.ts.map +1 -0
- package/dist/component/jc.story-group.js +27 -0
- package/dist/component/jc.summary.abstract.d.ts +15 -0
- package/dist/component/jc.summary.abstract.d.ts.map +1 -0
- package/dist/component/jc.summary.abstract.js +29 -0
- package/dist/component/jc.summary.card.d.ts +14 -0
- package/dist/component/jc.summary.card.d.ts.map +1 -0
- package/dist/component/jc.summary.card.js +36 -0
- package/dist/component/jc.summary.counter.d.ts +12 -0
- package/dist/component/jc.summary.counter.d.ts.map +1 -0
- package/dist/component/jc.summary.counter.js +28 -0
- package/dist/component/jc.summary.default.d.ts +16 -0
- package/dist/component/jc.summary.default.d.ts.map +1 -0
- package/dist/component/jc.summary.default.js +34 -0
- package/dist/component/jc.summary.progress.d.ts +46 -0
- package/dist/component/jc.summary.progress.d.ts.map +1 -0
- package/dist/component/jc.summary.progress.js +35 -0
- package/dist/component/jc.tab-button.d.ts +18 -0
- package/dist/component/jc.tab-button.d.ts.map +1 -0
- package/dist/component/jc.tab-button.js +43 -0
- package/dist/component/jc.text-field.d.ts +20 -0
- package/dist/component/jc.text-field.d.ts.map +1 -0
- package/dist/component/jc.text-field.js +49 -0
- package/dist/component/jc.text.d.ts +24 -0
- package/dist/component/jc.text.d.ts.map +1 -0
- package/dist/component/jc.text.js +44 -0
- package/dist/component/jc.titles.d.ts +19 -0
- package/dist/component/jc.titles.d.ts.map +1 -0
- package/dist/component/jc.titles.js +34 -0
- package/dist/component/jc.trend.d.ts +18 -0
- package/dist/component/jc.trend.d.ts.map +1 -0
- package/dist/component/jc.trend.js +31 -0
- package/dist/component/jc.types.d.ts +75 -0
- package/dist/component/jc.types.d.ts.map +1 -0
- package/dist/component/jc.types.js +74 -0
- package/dist/component/jc.video-player.abstract.d.ts +28 -0
- package/dist/component/jc.video-player.abstract.d.ts.map +1 -0
- package/dist/component/jc.video-player.abstract.js +38 -0
- package/dist/component/jc.video-player.d.ts +4 -0
- package/dist/component/jc.video-player.d.ts.map +1 -0
- package/dist/component/jc.video-player.js +2 -0
- package/dist/component/jc.video-player.on-jig.d.ts +25 -0
- package/dist/component/jc.video-player.on-jig.d.ts.map +1 -0
- package/dist/component/jc.video-player.on-jig.js +31 -0
- package/dist/component/jc.view.d.ts +158 -0
- package/dist/component/jc.view.d.ts.map +1 -0
- package/dist/component/jc.view.js +85 -0
- package/dist/component/jc.web-view.abstract.d.ts +15 -0
- package/dist/component/jc.web-view.abstract.d.ts.map +1 -0
- package/dist/component/jc.web-view.abstract.js +33 -0
- package/dist/component/jc.web-view.on-default.d.ts +5 -0
- package/dist/component/jc.web-view.on-default.d.ts.map +1 -0
- package/dist/component/jc.web-view.on-default.js +4 -0
- package/dist/component/jc.web-view.on-full.d.ts +10 -0
- package/dist/component/jc.web-view.on-full.d.ts.map +1 -0
- package/dist/component/jc.web-view.on-full.js +14 -0
- package/dist/database/database.abstract.d.ts +39 -0
- package/dist/database/database.abstract.d.ts.map +1 -0
- package/dist/database/database.abstract.js +42 -0
- package/dist/database/index.d.ts +2 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +2 -0
- package/dist/datasource/datasource.abstract.d.ts +39 -0
- package/dist/datasource/datasource.abstract.d.ts.map +1 -0
- package/dist/datasource/datasource.abstract.js +47 -0
- package/dist/datasource/datasource.descriptor.d.ts +11 -0
- package/dist/datasource/datasource.descriptor.d.ts.map +1 -0
- package/dist/datasource/datasource.descriptor.js +2 -0
- package/dist/datasource/datasource.reference.d.ts +33 -0
- package/dist/datasource/datasource.reference.d.ts.map +1 -0
- package/dist/datasource/datasource.reference.js +66 -0
- package/dist/datasource/datasource.sdk.d.ts +7 -0
- package/dist/datasource/datasource.sdk.d.ts.map +1 -0
- package/dist/datasource/datasource.sdk.js +5 -0
- package/dist/datasource/datasource.sqlite.d.ts +88 -0
- package/dist/datasource/datasource.sqlite.d.ts.map +1 -0
- package/dist/datasource/datasource.sqlite.js +286 -0
- package/dist/datasource/datasource.static.d.ts +21 -0
- package/dist/datasource/datasource.static.d.ts.map +1 -0
- package/dist/datasource/datasource.static.js +30 -0
- package/dist/datasource/datasource.system.d.ts +18 -0
- package/dist/datasource/datasource.system.d.ts.map +1 -0
- package/dist/datasource/datasource.system.js +10 -0
- package/dist/datasource/entity.descriptor.d.ts +9 -0
- package/dist/datasource/entity.descriptor.d.ts.map +1 -0
- package/dist/datasource/entity.descriptor.js +2 -0
- package/dist/datasource/index.d.ts +11 -0
- package/dist/datasource/index.d.ts.map +1 -0
- package/dist/datasource/index.js +9 -0
- package/dist/datasource/sqlite-normalizer.d.ts +3 -0
- package/dist/datasource/sqlite-normalizer.d.ts.map +1 -0
- package/dist/datasource/sqlite-normalizer.js +194 -0
- package/dist/datasource/sqlite-validator.d.ts +28 -0
- package/dist/datasource/sqlite-validator.d.ts.map +1 -0
- package/dist/datasource/sqlite-validator.js +218 -0
- package/dist/function/function.abstract.d.ts +538 -0
- package/dist/function/function.abstract.d.ts.map +1 -0
- package/dist/function/function.abstract.js +271 -0
- package/dist/function/function.guard.d.ts +17 -0
- package/dist/function/function.guard.d.ts.map +1 -0
- package/dist/function/function.guard.js +62 -0
- package/dist/function/function.operation.d.ts +26 -0
- package/dist/function/function.operation.d.ts.map +1 -0
- package/dist/function/function.operation.js +118 -0
- package/dist/function/function.rest.continuation.d.ts +12 -0
- package/dist/function/function.rest.continuation.d.ts.map +1 -0
- package/dist/function/function.rest.continuation.js +24 -0
- package/dist/function/function.rest.d.ts +31 -0
- package/dist/function/function.rest.d.ts.map +1 -0
- package/dist/function/function.rest.error-builder.d.ts +38 -0
- package/dist/function/function.rest.error-builder.d.ts.map +1 -0
- package/dist/function/function.rest.error-builder.js +161 -0
- package/dist/function/function.rest.js +72 -0
- package/dist/function/function.rest.parameter-builder.d.ts +33 -0
- package/dist/function/function.rest.parameter-builder.d.ts.map +1 -0
- package/dist/function/function.rest.parameter-builder.js +81 -0
- package/dist/function/function.rest.types.d.ts +28 -0
- package/dist/function/function.rest.types.d.ts.map +1 -0
- package/dist/function/function.rest.types.js +2 -0
- package/dist/function/function.sdk.d.ts +10 -0
- package/dist/function/function.sdk.d.ts.map +1 -0
- package/dist/function/function.sdk.js +12 -0
- package/dist/function/function.soap.d.ts +19 -0
- package/dist/function/function.soap.d.ts.map +1 -0
- package/dist/function/function.soap.js +36 -0
- package/dist/function/function.soap.parameter-builder.d.ts +25 -0
- package/dist/function/function.soap.parameter-builder.d.ts.map +1 -0
- package/dist/function/function.soap.parameter-builder.js +41 -0
- package/dist/function/function.soap.types.d.ts +17 -0
- package/dist/function/function.soap.types.d.ts.map +1 -0
- package/dist/function/function.soap.types.js +2 -0
- package/dist/function/function.sql.d.ts +20 -0
- package/dist/function/function.sql.d.ts.map +1 -0
- package/dist/function/function.sql.js +53 -0
- package/dist/function/function.sql.parameter-builder.d.ts +24 -0
- package/dist/function/function.sql.parameter-builder.d.ts.map +1 -0
- package/dist/function/function.sql.parameter-builder.js +44 -0
- package/dist/function/function.sql.types.d.ts +20 -0
- package/dist/function/function.sql.types.d.ts.map +1 -0
- package/dist/function/function.sql.types.js +2 -0
- package/dist/function/function.types.d.ts +7 -0
- package/dist/function/function.types.d.ts.map +1 -0
- package/dist/function/function.types.js +2 -0
- package/dist/function/index.d.ts +17 -0
- package/dist/function/index.d.ts.map +1 -0
- package/dist/function/index.js +13 -0
- package/dist/icon/index.d.ts +3 -0
- package/dist/icon/index.d.ts.map +1 -0
- package/dist/icon/index.js +3 -0
- package/dist/icon/sdk.icon.d.ts +10 -0
- package/dist/icon/sdk.icon.d.ts.map +1 -0
- package/dist/icon/sdk.icon.data.d.ts +7 -0
- package/dist/icon/sdk.icon.data.d.ts.map +1 -0
- package/dist/icon/sdk.icon.data.js +19283 -0
- package/dist/icon/sdk.icon.js +27 -0
- package/dist/icon/sdk.icon.loader.d.ts +7 -0
- package/dist/icon/sdk.icon.loader.d.ts.map +1 -0
- package/dist/icon/sdk.icon.loader.js +15 -0
- package/dist/icon/sdk.icon.name.d.ts +7 -0
- package/dist/icon/sdk.icon.name.d.ts.map +1 -0
- package/dist/icon/sdk.icon.name.js +19305 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/jsonata/ast.d.ts +15 -0
- package/dist/jsonata/ast.d.ts.map +1 -0
- package/dist/jsonata/ast.js +118 -0
- package/dist/jsonata/base.d.ts +7 -0
- package/dist/jsonata/base.d.ts.map +1 -0
- package/dist/jsonata/base.js +43 -0
- package/dist/jsonata/builder.d.ts +28 -0
- package/dist/jsonata/builder.d.ts.map +1 -0
- package/dist/jsonata/builder.js +140 -0
- package/dist/jsonata/context.d.ts +10 -0
- package/dist/jsonata/context.d.ts.map +1 -0
- package/dist/jsonata/context.js +349 -0
- package/dist/jsonata/expression.d.ts +35 -0
- package/dist/jsonata/expression.d.ts.map +1 -0
- package/dist/jsonata/expression.js +498 -0
- package/dist/jsonata/index.d.ts +6 -0
- package/dist/jsonata/index.d.ts.map +1 -0
- package/dist/jsonata/index.js +6 -0
- package/dist/logger/index.d.ts +2 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +2 -0
- package/dist/logger/logger.d.ts +14 -0
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/logger/logger.js +40 -0
- package/dist/runtime/auth.d.ts +19 -0
- package/dist/runtime/auth.d.ts.map +1 -0
- package/dist/runtime/auth.js +11 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/system.d.ts +27 -0
- package/dist/runtime/system.d.ts.map +1 -0
- package/dist/runtime/system.js +26 -0
- package/dist/screen/common/index.d.ts +9 -0
- package/dist/screen/common/index.d.ts.map +1 -0
- package/dist/screen/common/index.js +7 -0
- package/dist/screen/common/screen.badge.d.ts +8 -0
- package/dist/screen/common/screen.badge.d.ts.map +1 -0
- package/dist/screen/common/screen.badge.js +2 -0
- package/dist/screen/common/screen.bottom-sheet.d.ts +62 -0
- package/dist/screen/common/screen.bottom-sheet.d.ts.map +1 -0
- package/dist/screen/common/screen.bottom-sheet.js +31 -0
- package/dist/screen/common/screen.callback-actions.d.ts +7 -0
- package/dist/screen/common/screen.callback-actions.d.ts.map +1 -0
- package/dist/screen/common/screen.callback-actions.js +19 -0
- package/dist/screen/common/screen.input-definition.d.ts +108 -0
- package/dist/screen/common/screen.input-definition.d.ts.map +1 -0
- package/dist/screen/common/screen.input-definition.js +109 -0
- package/dist/screen/common/screen.placeholder.d.ts +20 -0
- package/dist/screen/common/screen.placeholder.d.ts.map +1 -0
- package/dist/screen/common/screen.placeholder.js +54 -0
- package/dist/screen/common/screen.preview.actions.d.ts +47 -0
- package/dist/screen/common/screen.preview.actions.d.ts.map +1 -0
- package/dist/screen/common/screen.preview.actions.js +122 -0
- package/dist/screen/common/screen.preview.d.ts +40 -0
- package/dist/screen/common/screen.preview.d.ts.map +1 -0
- package/dist/screen/common/screen.preview.js +87 -0
- package/dist/screen/common/screen.state.d.ts +7 -0
- package/dist/screen/common/screen.state.d.ts.map +1 -0
- package/dist/screen/common/screen.state.js +2 -0
- package/dist/screen/common/screen.summary.d.ts +14 -0
- package/dist/screen/common/screen.summary.d.ts.map +1 -0
- package/dist/screen/common/screen.summary.js +22 -0
- package/dist/screen/index.d.ts +16 -0
- package/dist/screen/index.d.ts.map +1 -0
- package/dist/screen/index.js +16 -0
- package/dist/screen/screen.abstract.d.ts +105 -0
- package/dist/screen/screen.abstract.d.ts.map +1 -0
- package/dist/screen/screen.abstract.js +175 -0
- package/dist/screen/screen.calendar.d.ts +22 -0
- package/dist/screen/screen.calendar.d.ts.map +1 -0
- package/dist/screen/screen.calendar.js +32 -0
- package/dist/screen/screen.default.d.ts +65 -0
- package/dist/screen/screen.default.d.ts.map +1 -0
- package/dist/screen/screen.default.js +68 -0
- package/dist/screen/screen.document.d.ts +58 -0
- package/dist/screen/screen.document.d.ts.map +1 -0
- package/dist/screen/screen.document.js +72 -0
- package/dist/screen/screen.full-screen.d.ts +23 -0
- package/dist/screen/screen.full-screen.d.ts.map +1 -0
- package/dist/screen/screen.full-screen.js +18 -0
- package/dist/screen/screen.gallery.d.ts +15 -0
- package/dist/screen/screen.gallery.d.ts.map +1 -0
- package/dist/screen/screen.gallery.js +14 -0
- package/dist/screen/screen.grid.base.d.ts +18 -0
- package/dist/screen/screen.grid.base.d.ts.map +1 -0
- package/dist/screen/screen.grid.base.js +17 -0
- package/dist/screen/screen.grid.dynamic.d.ts +18 -0
- package/dist/screen/screen.grid.dynamic.d.ts.map +1 -0
- package/dist/screen/screen.grid.dynamic.js +26 -0
- package/dist/screen/screen.grid.static.d.ts +14 -0
- package/dist/screen/screen.grid.static.d.ts.map +1 -0
- package/dist/screen/screen.grid.static.js +12 -0
- package/dist/screen/screen.guards.d.ts +41 -0
- package/dist/screen/screen.guards.d.ts.map +1 -0
- package/dist/screen/screen.guards.js +35 -0
- package/dist/screen/screen.list.d.ts +79 -0
- package/dist/screen/screen.list.d.ts.map +1 -0
- package/dist/screen/screen.list.js +123 -0
- package/dist/screen/screen.sdk.d.ts +13 -0
- package/dist/screen/screen.sdk.d.ts.map +1 -0
- package/dist/screen/screen.sdk.js +9 -0
- package/dist/screen/screen.tabs.d.ts +27 -0
- package/dist/screen/screen.tabs.d.ts.map +1 -0
- package/dist/screen/screen.tabs.instance.d.ts +34 -0
- package/dist/screen/screen.tabs.instance.d.ts.map +1 -0
- package/dist/screen/screen.tabs.instance.js +79 -0
- package/dist/screen/screen.tabs.js +35 -0
- package/dist/screen/screen.wizard.d.ts +12 -0
- package/dist/screen/screen.wizard.d.ts.map +1 -0
- package/dist/screen/screen.wizard.instance.d.ts +20 -0
- package/dist/screen/screen.wizard.instance.d.ts.map +1 -0
- package/dist/screen/screen.wizard.instance.js +40 -0
- package/dist/screen/screen.wizard.js +23 -0
- package/dist/utils/check.d.ts +3 -0
- package/dist/utils/check.d.ts.map +1 -0
- package/dist/utils/check.js +7 -0
- package/dist/utils/convert.d.ts +2 -0
- package/dist/utils/convert.d.ts.map +1 -0
- package/dist/utils/convert.js +8 -0
- package/dist/utils/dedent.d.ts +2 -0
- package/dist/utils/dedent.d.ts.map +1 -0
- package/dist/utils/dedent.js +28 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/types.d.ts +2 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +2 -0
- package/dist/utils/utils.d.ts +9 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +49 -0
- package/dist/widget/index.d.ts +12 -0
- package/dist/widget/index.d.ts.map +1 -0
- package/dist/widget/index.js +12 -0
- package/dist/widget/jw.abstract.d.ts +27 -0
- package/dist/widget/jw.abstract.d.ts.map +1 -0
- package/dist/widget/jw.abstract.js +36 -0
- package/dist/widget/jw.actions.d.ts +17 -0
- package/dist/widget/jw.actions.d.ts.map +1 -0
- package/dist/widget/jw.actions.js +30 -0
- package/dist/widget/jw.avatar.d.ts +19 -0
- package/dist/widget/jw.avatar.d.ts.map +1 -0
- package/dist/widget/jw.avatar.js +23 -0
- package/dist/widget/jw.chart.d.ts +18 -0
- package/dist/widget/jw.chart.d.ts.map +1 -0
- package/dist/widget/jw.chart.js +23 -0
- package/dist/widget/jw.group.d.ts +28 -0
- package/dist/widget/jw.group.d.ts.map +1 -0
- package/dist/widget/jw.group.js +35 -0
- package/dist/widget/jw.image.d.ts +27 -0
- package/dist/widget/jw.image.d.ts.map +1 -0
- package/dist/widget/jw.image.js +54 -0
- package/dist/widget/jw.list.d.ts +44 -0
- package/dist/widget/jw.list.d.ts.map +1 -0
- package/dist/widget/jw.list.js +44 -0
- package/dist/widget/jw.location.d.ts +41 -0
- package/dist/widget/jw.location.d.ts.map +1 -0
- package/dist/widget/jw.location.js +54 -0
- package/dist/widget/jw.sdk.d.ts +2 -0
- package/dist/widget/jw.sdk.d.ts.map +1 -0
- package/dist/widget/jw.sdk.js +2 -0
- package/dist/widget/jw.status.condition.d.ts +20 -0
- package/dist/widget/jw.status.condition.d.ts.map +1 -0
- package/dist/widget/jw.status.condition.js +27 -0
- package/dist/widget/jw.status.d.ts +8 -0
- package/dist/widget/jw.status.d.ts.map +1 -0
- package/dist/widget/jw.status.js +11 -0
- package/dist/widget/jw.value.d.ts +24 -0
- package/dist/widget/jw.value.d.ts.map +1 -0
- package/dist/widget/jw.value.js +51 -0
- package/package.json +94 -0
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
import { type InstanceId } from '../abstract/index.js';
|
|
2
|
+
import { JcAmountControlBuilder, type JcAmountControlInput } from './jc.amount-control.js';
|
|
3
|
+
import { JcAvatarBuilder, type JcAvatarInput } from './jc.avatar.js';
|
|
4
|
+
import { JcAvatarFieldBuilder, type JcAvatarFieldInput } from './jc.avatar-field.js';
|
|
5
|
+
import { JcBannerBuilder, type JcBannerInput } from './jc.banner.js';
|
|
6
|
+
import { JcBarChartBuilder, type JcBarChartInput } from './jc.bar-chart.js';
|
|
7
|
+
import { JcButtonBuilder, type JcButtonInput } from './jc.button.js';
|
|
8
|
+
import { JcCardOnDefaultBuilder, type JcCardOnDefaultInput } from './jc.card.on-default.js';
|
|
9
|
+
import { JcCarouselBuilder, type JcCarouselInput } from './jc.carousel.js';
|
|
10
|
+
import { JcChatBuilder, type JcChatInput } from './jc.chat.js';
|
|
11
|
+
import { JcChatMessageBuilder, type JcChatMessageInput } from './jc.chat-message.js';
|
|
12
|
+
import { JcCheckboxBuilder, type JcCheckboxInput } from './jc.checkbox.js';
|
|
13
|
+
import { JcChoiceFieldBuilder, type JcChoiceFieldInput } from './jc.choice-field.js';
|
|
14
|
+
import { JcChoiceFieldItemBuilder, type JcChoiceFieldItemInput } from './jc.choice-field-item.js';
|
|
15
|
+
import { JcCountDownBuilder, type JcCountDownInput } from './jc.count-down.js';
|
|
16
|
+
import { JcCountUpBuilder, type JcCountUpInput } from './jc.count-up.js';
|
|
17
|
+
import { JcCustomComponentInteropBuilder, type JcCustomComponentInteropInput } from './jc.custom-component.interop.js';
|
|
18
|
+
import { JcDatePickerBuilder, type JcDatePickerInput } from './jc.date-picker.js';
|
|
19
|
+
import { JcDividerBuilder, type JcDividerInput } from './jc.divider.js';
|
|
20
|
+
import { JcDropdownBuilder, type JcDropdownInput } from './jc.dropdown.js';
|
|
21
|
+
import { JcDurationPickerBuilder, type JcDurationPickerInput } from './jc.duration-picker.js';
|
|
22
|
+
import { JcEmailFieldBuilder, type JcEmailFieldInput } from './jc.email-field.js';
|
|
23
|
+
import { JcEntityBuilder, type JcEntityInput } from './jc.entity.js';
|
|
24
|
+
import { JcEntityFieldBuilder, type JcEntityFieldInput } from './jc.entity-field.js';
|
|
25
|
+
import { JcEventBuilder, type JcEventInput } from './jc.event.js';
|
|
26
|
+
import { JcExpanderBuilder, type JcExpanderInput } from './jc.expander.js';
|
|
27
|
+
import { JcFieldRowBuilder, type JcFieldRowInput } from './jc.field-row.js';
|
|
28
|
+
import { JcEntityFieldRowBuilder } from './jc.field-row.entity.js';
|
|
29
|
+
import { JcFormBuilder, type JcFormInput } from './jc.form.js';
|
|
30
|
+
import { JcGalleryItemBuilder, type JcGalleryItemInput } from './jc.gallery-item.js';
|
|
31
|
+
import { JcGridBuilder, type JcGridInput } from './jc.grid.js';
|
|
32
|
+
import { JcGridItemBuilder, type JcGridItemInput } from './jc.grid-item.js';
|
|
33
|
+
import { JcIconBuilder, type JcIconInput } from './jc.icon.js';
|
|
34
|
+
import { JcImageOnCarouselBuilder, type JcImageOnCarouselInput } from './jc.image.on-carousel.js';
|
|
35
|
+
import { JcJigBuilder, type JcJigInput } from './jc.jig.js';
|
|
36
|
+
import { JcImageOnDefaultBuilder, type JcImageOnDefaultInput } from './jc.image.on-default.js';
|
|
37
|
+
import { JcInteractiveImageBuilder, type JcInteractiveImageInput } from './jc.interactive-image.js';
|
|
38
|
+
import { JcInteractiveImageItemBuilder, type JcInteractiveImageItemInput } from './jc.interactive-image.item.js';
|
|
39
|
+
import { JcJigHeaderBuilder, type JcJigHeaderInput } from './jc.jig-header.js';
|
|
40
|
+
import { JcJigWidgetBuilder, type JcJigWidgetInput } from './jc.jig-widget.js';
|
|
41
|
+
import { JcLineChartBuilder, type JcLineChartInput } from './jc.line-chart.js';
|
|
42
|
+
import { JcListBuilder, type JcListInput } from './jc.list.js';
|
|
43
|
+
import { JcListItemBuilder, type JcListItemOptions } from './jc.list-item.js';
|
|
44
|
+
import { JcListItemStandaloneBuilder, type JcListItemStandaloneOptions } from './jc.list-item.standalone.js';
|
|
45
|
+
import { JcLocationBuilder, type JcLocationInput } from './jc.location.js';
|
|
46
|
+
import { JcMarkerItemBuilder, type JcMarkerItemInput } from './jc.marker-item.js';
|
|
47
|
+
import { JcMediaFieldBuilder, type JcMediaFieldInput } from './jc.media-field.js';
|
|
48
|
+
import { JcMenuItemBuilder, type JcMenuItemInput } from './jc.menu-item.js';
|
|
49
|
+
import { JcNumberFieldBuilder, type JcNumberFieldInput } from './jc.number-field.js';
|
|
50
|
+
import { JcPieChartBuilder, type JcPieChartInput } from './jc.pie-chart.js';
|
|
51
|
+
import { JcProgressBarBuilder, type JcProgressBarInput } from './jc.progress-bar.js';
|
|
52
|
+
import { JcRatingBuilder, type JcRatingInput } from './jc.rating.js';
|
|
53
|
+
import { JcSectionOnDefaultBuilder, type JcSectionOnDefaultInput } from './jc.section.on-default.js';
|
|
54
|
+
import { JcSegmentedControlBuilder, type JcSegmentedControlInput } from './jc.segmented-control.js';
|
|
55
|
+
import { JcSignatureFieldBuilder, type JcSignatureFieldInput } from './jc.signature-field.js';
|
|
56
|
+
import { JcSliderBuilder, type JcSliderInput } from './jc.slider.js';
|
|
57
|
+
import { JcStageBuilder, type JcStageInput } from './jc.stage.js';
|
|
58
|
+
import { JcStepperBuilder, type JcStepperInput } from './jc.stepper.js';
|
|
59
|
+
import { JcStoryGroupBuilder, type JcStoryGroupInput } from './jc.story-group.js';
|
|
60
|
+
import { JcSummaryCardBuilder, type JcSummaryCardInputOptions } from './jc.summary.card.js';
|
|
61
|
+
import { JcSummaryCounterBuilder, type JcSummaryCounterInputOptions } from './jc.summary.counter.js';
|
|
62
|
+
import { JcSummaryDefaultBuilder, type JcSummaryDefaultInputOptions } from './jc.summary.default.js';
|
|
63
|
+
import { JcSummaryProgressBuilder, type JcSummaryProgressInputOptions } from './jc.summary.progress.js';
|
|
64
|
+
import { JcTextBuilder, type JcTextInput } from './jc.text.js';
|
|
65
|
+
import { JcTextFieldBuilder, type JcTextFieldInput } from './jc.text-field.js';
|
|
66
|
+
import { JcTitlesBuilder, type JcTitlesInput } from './jc.titles.js';
|
|
67
|
+
import { JcTrendBuilder, type JcTrendInput } from './jc.trend.js';
|
|
68
|
+
import { type ComponentType } from './jc.types.js';
|
|
69
|
+
import { JcViewBuilder, type JcViewInput } from './jc.view.js';
|
|
70
|
+
import { JcVideoPlayerOnJigBuilder, type JcVideoPlayerOnJigInput } from './jc.video-player.on-jig.js';
|
|
71
|
+
import { JcWebViewOnDefaultBuilder, type JcWebViewOnDefaultInput } from './jc.web-view.on-default.js';
|
|
72
|
+
import { JcWebViewOnFullBuilder, type JcWebViewOnFullInput } from './jc.web-view.on-full.js';
|
|
73
|
+
export declare const COMPONENT_TO_FACTORY_METHOD: {
|
|
74
|
+
readonly "component.amount-control": "amountControl";
|
|
75
|
+
readonly "component.avatar": "avatar";
|
|
76
|
+
readonly "component.avatar-field": "avatarField";
|
|
77
|
+
readonly "component.banner": "banner";
|
|
78
|
+
readonly "component.bar-chart": "barChart";
|
|
79
|
+
readonly "component.button": "button";
|
|
80
|
+
readonly "component.card": "cardOnDefault";
|
|
81
|
+
readonly "component.carousel": "carousel";
|
|
82
|
+
readonly "component.chat": "chat";
|
|
83
|
+
readonly "component.chat-message": "chatMessage";
|
|
84
|
+
readonly "component.checkbox": "checkbox";
|
|
85
|
+
readonly "component.choice-field": "choiceField";
|
|
86
|
+
readonly "component.choice-field-item": "choiceFieldItem";
|
|
87
|
+
readonly "component.countdown": "countDown";
|
|
88
|
+
readonly "component.count-up": "countUp";
|
|
89
|
+
readonly "component.custom-component": "customComponent";
|
|
90
|
+
readonly "component.date-picker": "datePicker";
|
|
91
|
+
readonly "component.divider": "divider";
|
|
92
|
+
readonly "component.dropdown": "dropdown";
|
|
93
|
+
readonly "component.duration-picker": "durationPicker";
|
|
94
|
+
readonly "component.email-field": "emailField";
|
|
95
|
+
readonly "component.entity": "entity";
|
|
96
|
+
readonly "component.entity-field": "entityField";
|
|
97
|
+
readonly "component.event": "event";
|
|
98
|
+
readonly "component.expander": "expander";
|
|
99
|
+
readonly "component.field-row": "fieldRow";
|
|
100
|
+
readonly "component.form": "form";
|
|
101
|
+
readonly "component.gallery-item": "galleryItem";
|
|
102
|
+
readonly "component.grid": "grid";
|
|
103
|
+
readonly "component.grid-item": "gridItem";
|
|
104
|
+
readonly "component.icon": "icon";
|
|
105
|
+
readonly "component.image": "imageOnDefault";
|
|
106
|
+
readonly "component.interactive-image": "interactiveImage";
|
|
107
|
+
readonly "component.interactive-image-item": "interactiveImageItem";
|
|
108
|
+
readonly "component.jig": "jig";
|
|
109
|
+
readonly "component.jig-header": "jigHeader";
|
|
110
|
+
readonly "component.jig-widget": "widget";
|
|
111
|
+
readonly "component.line-chart": "lineChart";
|
|
112
|
+
readonly "component.list": "list";
|
|
113
|
+
readonly "component.list-item": "listItem";
|
|
114
|
+
readonly "component.location": "location";
|
|
115
|
+
readonly "component.marker-item": "markerItem";
|
|
116
|
+
readonly "component.media-field": "mediaField";
|
|
117
|
+
readonly "component.menu-item": "menuItem";
|
|
118
|
+
readonly "component.number-field": "numberField";
|
|
119
|
+
readonly "component.pie-chart": "pieChart";
|
|
120
|
+
readonly "component.progress-bar": "progressBar";
|
|
121
|
+
readonly "component.rating": "rating";
|
|
122
|
+
readonly "component.section": "sectionOnDefault";
|
|
123
|
+
readonly "component.segmented-control": "segmentedControl";
|
|
124
|
+
readonly "component.signature-field": "signatureField";
|
|
125
|
+
readonly "component.slider": "slider";
|
|
126
|
+
readonly "component.stage": "stage";
|
|
127
|
+
readonly "component.stepper": "stepper";
|
|
128
|
+
readonly "component.story-group": "storyGroup";
|
|
129
|
+
readonly "component.summary": "summaryDefault";
|
|
130
|
+
readonly "component.summary-default": "summaryDefault";
|
|
131
|
+
readonly "component.summary-card": "summaryCard";
|
|
132
|
+
readonly "component.summary-counter": "summaryCounter";
|
|
133
|
+
readonly "component.summary-progress": "summaryProgress";
|
|
134
|
+
readonly "component.text": "text";
|
|
135
|
+
readonly "component.text-field": "textField";
|
|
136
|
+
readonly "component.titles": "titles";
|
|
137
|
+
readonly "component.trend": "trend";
|
|
138
|
+
readonly "component.video-player": "videoPlayerOnJig";
|
|
139
|
+
readonly "component.view": "view";
|
|
140
|
+
readonly "component.web-view": "webViewOnDefault";
|
|
141
|
+
readonly "component.dropdown-item": "choiceFieldItem";
|
|
142
|
+
readonly "component.product-item": "gridItem";
|
|
143
|
+
readonly "component.step": "stage";
|
|
144
|
+
readonly "component.tab-button": "segmentedControl";
|
|
145
|
+
};
|
|
146
|
+
export type FactoryMethodsFor<T extends readonly ComponentType[]> = T[number] extends keyof typeof COMPONENT_TO_FACTORY_METHOD ? Pick<JcBuilderFactory, (typeof COMPONENT_TO_FACTORY_METHOD)[T[number]]> : never;
|
|
147
|
+
export type BaseBuilderUnionFromAllowedTypes<T extends readonly ComponentType[]> = FactoryMethodsFor<T>[keyof FactoryMethodsFor<T>] extends (...args: any[]) => infer R ? R : never;
|
|
148
|
+
export declare class JcBuilderFactory<T extends readonly ComponentType[] = readonly ComponentType[]> {
|
|
149
|
+
protected readonly _allowed: T;
|
|
150
|
+
protected readonly _onComponentCreated: (component: unknown) => void;
|
|
151
|
+
constructor(allowed: T, onComponentCreated: (component: BaseBuilderUnionFromAllowedTypes<T>) => void);
|
|
152
|
+
amountControl(options?: JcAmountControlInput): JcAmountControlBuilder;
|
|
153
|
+
avatar(options?: JcAvatarInput): JcAvatarBuilder;
|
|
154
|
+
banner(options: JcBannerInput): JcBannerBuilder;
|
|
155
|
+
button(options: JcButtonInput): JcButtonBuilder;
|
|
156
|
+
barChart(options?: JcBarChartInput): JcBarChartBuilder;
|
|
157
|
+
cardOnDefault(options?: JcCardOnDefaultInput): JcCardOnDefaultBuilder;
|
|
158
|
+
carousel(options?: JcCarouselInput): JcCarouselBuilder;
|
|
159
|
+
chat(options?: JcChatInput): JcChatBuilder;
|
|
160
|
+
choiceFieldItem(options?: JcChoiceFieldItemInput): JcChoiceFieldItemBuilder;
|
|
161
|
+
countDown(options?: JcCountDownInput): JcCountDownBuilder;
|
|
162
|
+
countUp(options?: JcCountUpInput): JcCountUpBuilder;
|
|
163
|
+
customComponent(options: JcCustomComponentInteropInput): JcCustomComponentInteropBuilder;
|
|
164
|
+
entity(options?: JcEntityInput): JcEntityBuilder;
|
|
165
|
+
entityField(options?: JcEntityFieldInput): JcEntityFieldBuilder;
|
|
166
|
+
entityFieldRow(options?: {
|
|
167
|
+
instanceId?: InstanceId;
|
|
168
|
+
}): JcEntityFieldRowBuilder;
|
|
169
|
+
event(options?: JcEventInput): JcEventBuilder;
|
|
170
|
+
expander(options?: JcExpanderInput): JcExpanderBuilder;
|
|
171
|
+
form(options?: JcFormInput): JcFormBuilder;
|
|
172
|
+
galleryItem(options: JcGalleryItemInput): JcGalleryItemBuilder;
|
|
173
|
+
grid(options?: JcGridInput): JcGridBuilder;
|
|
174
|
+
gridItem(options?: JcGridItemInput): JcGridItemBuilder;
|
|
175
|
+
icon(options?: JcIconInput): JcIconBuilder;
|
|
176
|
+
imageOnCarousel(options?: JcImageOnCarouselInput): JcImageOnCarouselBuilder;
|
|
177
|
+
imageOnDefault(options?: JcImageOnDefaultInput): JcImageOnDefaultBuilder;
|
|
178
|
+
interactiveImage(options?: JcInteractiveImageInput): JcInteractiveImageBuilder;
|
|
179
|
+
jig(options: JcJigInput): JcJigBuilder;
|
|
180
|
+
jigHeader(options?: JcJigHeaderInput): JcJigHeaderBuilder;
|
|
181
|
+
lineChart(options?: JcLineChartInput): JcLineChartBuilder;
|
|
182
|
+
list(options?: JcListInput & {
|
|
183
|
+
instanceId?: InstanceId;
|
|
184
|
+
}): JcListBuilder;
|
|
185
|
+
listItemStandalone(options?: JcListItemStandaloneOptions & {
|
|
186
|
+
instanceId?: InstanceId;
|
|
187
|
+
}): JcListItemStandaloneBuilder;
|
|
188
|
+
location(options?: JcLocationInput): JcLocationBuilder;
|
|
189
|
+
markerItem(options?: JcMarkerItemInput): JcMarkerItemBuilder;
|
|
190
|
+
pieChart(options?: JcPieChartInput): JcPieChartBuilder;
|
|
191
|
+
progressBar(options?: JcProgressBarInput): JcProgressBarBuilder;
|
|
192
|
+
rating(options: JcRatingInput): JcRatingBuilder;
|
|
193
|
+
stage(options?: JcStageInput): JcStageBuilder;
|
|
194
|
+
stepper(options?: JcStepperInput): JcStepperBuilder;
|
|
195
|
+
storyGroup(options: JcStoryGroupInput): JcStoryGroupBuilder;
|
|
196
|
+
summaryDefault(options?: JcSummaryDefaultInputOptions): JcSummaryDefaultBuilder;
|
|
197
|
+
summaryCard(options?: JcSummaryCardInputOptions): JcSummaryCardBuilder;
|
|
198
|
+
summaryCounter(options?: JcSummaryCounterInputOptions): JcSummaryCounterBuilder;
|
|
199
|
+
summaryProgress(options: JcSummaryProgressInputOptions): JcSummaryProgressBuilder;
|
|
200
|
+
text(options?: JcTextInput): JcTextBuilder;
|
|
201
|
+
titles(options?: JcTitlesInput): JcTitlesBuilder;
|
|
202
|
+
trend(options?: JcTrendInput): JcTrendBuilder;
|
|
203
|
+
videoPlayerOnJig(options?: JcVideoPlayerOnJigInput): JcVideoPlayerOnJigBuilder;
|
|
204
|
+
view(options?: JcViewInput): JcViewBuilder;
|
|
205
|
+
webViewOnDefault(options?: JcWebViewOnDefaultInput): JcWebViewOnDefaultBuilder;
|
|
206
|
+
webViewOnFull(options?: JcWebViewOnFullInput): JcWebViewOnFullBuilder;
|
|
207
|
+
widget(options?: JcJigWidgetInput): JcJigWidgetBuilder;
|
|
208
|
+
avatarField(options: JcAvatarFieldInput): JcAvatarFieldBuilder;
|
|
209
|
+
checkbox(options: JcCheckboxInput): JcCheckboxBuilder;
|
|
210
|
+
choiceField(options: JcChoiceFieldInput): JcChoiceFieldBuilder;
|
|
211
|
+
datePicker(options: JcDatePickerInput): JcDatePickerBuilder;
|
|
212
|
+
divider(options?: JcDividerInput): JcDividerBuilder;
|
|
213
|
+
dropdown(options: JcDropdownInput): JcDropdownBuilder;
|
|
214
|
+
durationPicker(options: JcDurationPickerInput): JcDurationPickerBuilder;
|
|
215
|
+
emailField(options: JcEmailFieldInput): JcEmailFieldBuilder;
|
|
216
|
+
fieldRow(options?: JcFieldRowInput): JcFieldRowBuilder;
|
|
217
|
+
mediaField(options: JcMediaFieldInput): JcMediaFieldBuilder;
|
|
218
|
+
menuItem(options: JcMenuItemInput): JcMenuItemBuilder;
|
|
219
|
+
numberField(options: JcNumberFieldInput): JcNumberFieldBuilder;
|
|
220
|
+
sectionOnDefault(options?: JcSectionOnDefaultInput): JcSectionOnDefaultBuilder;
|
|
221
|
+
segmentedControl(options?: JcSegmentedControlInput): JcSegmentedControlBuilder;
|
|
222
|
+
signatureField(options: JcSignatureFieldInput): JcSignatureFieldBuilder;
|
|
223
|
+
slider(options: JcSliderInput): JcSliderBuilder;
|
|
224
|
+
textField(options: JcTextFieldInput): JcTextFieldBuilder;
|
|
225
|
+
chatMessage(options?: JcChatMessageInput): JcChatMessageBuilder;
|
|
226
|
+
interactiveImageItem(options?: JcInteractiveImageItemInput): JcInteractiveImageItemBuilder;
|
|
227
|
+
listItem(options?: JcListItemOptions & {
|
|
228
|
+
instanceId?: InstanceId;
|
|
229
|
+
}): JcListItemBuilder;
|
|
230
|
+
}
|
|
231
|
+
export declare const CAROUSEL_FACTORY_METHODS: {
|
|
232
|
+
readonly "component.amount-control": "amountControl";
|
|
233
|
+
readonly "component.avatar": "avatar";
|
|
234
|
+
readonly "component.avatar-field": "avatarField";
|
|
235
|
+
readonly "component.banner": "banner";
|
|
236
|
+
readonly "component.bar-chart": "barChart";
|
|
237
|
+
readonly "component.button": "button";
|
|
238
|
+
readonly "component.carousel": "carousel";
|
|
239
|
+
readonly "component.chat": "chat";
|
|
240
|
+
readonly "component.chat-message": "chatMessage";
|
|
241
|
+
readonly "component.checkbox": "checkbox";
|
|
242
|
+
readonly "component.choice-field": "choiceField";
|
|
243
|
+
readonly "component.choice-field-item": "choiceFieldItem";
|
|
244
|
+
readonly "component.countdown": "countDown";
|
|
245
|
+
readonly "component.count-up": "countUp";
|
|
246
|
+
readonly "component.custom-component": "customComponent";
|
|
247
|
+
readonly "component.date-picker": "datePicker";
|
|
248
|
+
readonly "component.divider": "divider";
|
|
249
|
+
readonly "component.dropdown": "dropdown";
|
|
250
|
+
readonly "component.duration-picker": "durationPicker";
|
|
251
|
+
readonly "component.email-field": "emailField";
|
|
252
|
+
readonly "component.entity": "entity";
|
|
253
|
+
readonly "component.entity-field": "entityField";
|
|
254
|
+
readonly "component.event": "event";
|
|
255
|
+
readonly "component.expander": "expander";
|
|
256
|
+
readonly "component.field-row": "fieldRow";
|
|
257
|
+
readonly "component.form": "form";
|
|
258
|
+
readonly "component.gallery-item": "galleryItem";
|
|
259
|
+
readonly "component.grid": "grid";
|
|
260
|
+
readonly "component.grid-item": "gridItem";
|
|
261
|
+
readonly "component.icon": "icon";
|
|
262
|
+
readonly "component.interactive-image": "interactiveImage";
|
|
263
|
+
readonly "component.interactive-image-item": "interactiveImageItem";
|
|
264
|
+
readonly "component.jig": "jig";
|
|
265
|
+
readonly "component.jig-header": "jigHeader";
|
|
266
|
+
readonly "component.jig-widget": "widget";
|
|
267
|
+
readonly "component.line-chart": "lineChart";
|
|
268
|
+
readonly "component.list": "list";
|
|
269
|
+
readonly "component.list-item": "listItem";
|
|
270
|
+
readonly "component.location": "location";
|
|
271
|
+
readonly "component.marker-item": "markerItem";
|
|
272
|
+
readonly "component.media-field": "mediaField";
|
|
273
|
+
readonly "component.menu-item": "menuItem";
|
|
274
|
+
readonly "component.number-field": "numberField";
|
|
275
|
+
readonly "component.pie-chart": "pieChart";
|
|
276
|
+
readonly "component.progress-bar": "progressBar";
|
|
277
|
+
readonly "component.rating": "rating";
|
|
278
|
+
readonly "component.section": "sectionOnDefault";
|
|
279
|
+
readonly "component.segmented-control": "segmentedControl";
|
|
280
|
+
readonly "component.signature-field": "signatureField";
|
|
281
|
+
readonly "component.slider": "slider";
|
|
282
|
+
readonly "component.stage": "stage";
|
|
283
|
+
readonly "component.stepper": "stepper";
|
|
284
|
+
readonly "component.story-group": "storyGroup";
|
|
285
|
+
readonly "component.summary": "summaryDefault";
|
|
286
|
+
readonly "component.summary-default": "summaryDefault";
|
|
287
|
+
readonly "component.summary-card": "summaryCard";
|
|
288
|
+
readonly "component.summary-counter": "summaryCounter";
|
|
289
|
+
readonly "component.summary-progress": "summaryProgress";
|
|
290
|
+
readonly "component.text": "text";
|
|
291
|
+
readonly "component.text-field": "textField";
|
|
292
|
+
readonly "component.titles": "titles";
|
|
293
|
+
readonly "component.trend": "trend";
|
|
294
|
+
readonly "component.video-player": "videoPlayerOnJig";
|
|
295
|
+
readonly "component.view": "view";
|
|
296
|
+
readonly "component.web-view": "webViewOnDefault";
|
|
297
|
+
readonly "component.dropdown-item": "choiceFieldItem";
|
|
298
|
+
readonly "component.product-item": "gridItem";
|
|
299
|
+
readonly "component.step": "stage";
|
|
300
|
+
readonly "component.tab-button": "segmentedControl";
|
|
301
|
+
readonly "component.card": "card";
|
|
302
|
+
readonly "component.image": "image";
|
|
303
|
+
};
|
|
304
|
+
export type CarouselFactoryMethodsFor<T extends readonly ComponentType[]> = T[number] extends keyof typeof CAROUSEL_FACTORY_METHODS ? Pick<JcCarouselFactory, (typeof CAROUSEL_FACTORY_METHODS)[T[number]]> : never;
|
|
305
|
+
export type CarouselBuilderUnionFromAllowedTypes<T extends readonly ComponentType[]> = CarouselFactoryMethodsFor<T>[keyof CarouselFactoryMethodsFor<T>] extends (...args: any[]) => infer R ? R : never;
|
|
306
|
+
export declare class JcCarouselFactory<T extends readonly ComponentType[] = readonly ComponentType[]> extends JcBuilderFactory<T> {
|
|
307
|
+
constructor(allowed: T, onComponentCreated: (component: CarouselBuilderUnionFromAllowedTypes<T>) => void);
|
|
308
|
+
card(options?: Parameters<JcBuilderFactory['cardOnDefault']>[0]): ReturnType<JcBuilderFactory['cardOnDefault']>;
|
|
309
|
+
image(options?: Parameters<JcBuilderFactory['imageOnCarousel']>[0]): ReturnType<JcBuilderFactory['imageOnCarousel']>;
|
|
310
|
+
}
|
|
311
|
+
export declare const FULL_SCREEN_FACTORY_METHODS: {
|
|
312
|
+
readonly "component.amount-control": "amountControl";
|
|
313
|
+
readonly "component.avatar": "avatar";
|
|
314
|
+
readonly "component.avatar-field": "avatarField";
|
|
315
|
+
readonly "component.banner": "banner";
|
|
316
|
+
readonly "component.bar-chart": "barChart";
|
|
317
|
+
readonly "component.button": "button";
|
|
318
|
+
readonly "component.card": "cardOnDefault";
|
|
319
|
+
readonly "component.carousel": "carousel";
|
|
320
|
+
readonly "component.chat": "chat";
|
|
321
|
+
readonly "component.chat-message": "chatMessage";
|
|
322
|
+
readonly "component.checkbox": "checkbox";
|
|
323
|
+
readonly "component.choice-field": "choiceField";
|
|
324
|
+
readonly "component.choice-field-item": "choiceFieldItem";
|
|
325
|
+
readonly "component.countdown": "countDown";
|
|
326
|
+
readonly "component.count-up": "countUp";
|
|
327
|
+
readonly "component.custom-component": "customComponent";
|
|
328
|
+
readonly "component.date-picker": "datePicker";
|
|
329
|
+
readonly "component.divider": "divider";
|
|
330
|
+
readonly "component.dropdown": "dropdown";
|
|
331
|
+
readonly "component.duration-picker": "durationPicker";
|
|
332
|
+
readonly "component.email-field": "emailField";
|
|
333
|
+
readonly "component.entity": "entity";
|
|
334
|
+
readonly "component.entity-field": "entityField";
|
|
335
|
+
readonly "component.event": "event";
|
|
336
|
+
readonly "component.expander": "expander";
|
|
337
|
+
readonly "component.field-row": "fieldRow";
|
|
338
|
+
readonly "component.form": "form";
|
|
339
|
+
readonly "component.gallery-item": "galleryItem";
|
|
340
|
+
readonly "component.grid": "grid";
|
|
341
|
+
readonly "component.grid-item": "gridItem";
|
|
342
|
+
readonly "component.icon": "icon";
|
|
343
|
+
readonly "component.image": "imageOnDefault";
|
|
344
|
+
readonly "component.interactive-image": "interactiveImage";
|
|
345
|
+
readonly "component.interactive-image-item": "interactiveImageItem";
|
|
346
|
+
readonly "component.jig": "jig";
|
|
347
|
+
readonly "component.jig-header": "jigHeader";
|
|
348
|
+
readonly "component.jig-widget": "widget";
|
|
349
|
+
readonly "component.line-chart": "lineChart";
|
|
350
|
+
readonly "component.list": "list";
|
|
351
|
+
readonly "component.list-item": "listItem";
|
|
352
|
+
readonly "component.location": "location";
|
|
353
|
+
readonly "component.marker-item": "markerItem";
|
|
354
|
+
readonly "component.media-field": "mediaField";
|
|
355
|
+
readonly "component.menu-item": "menuItem";
|
|
356
|
+
readonly "component.number-field": "numberField";
|
|
357
|
+
readonly "component.pie-chart": "pieChart";
|
|
358
|
+
readonly "component.progress-bar": "progressBar";
|
|
359
|
+
readonly "component.rating": "rating";
|
|
360
|
+
readonly "component.section": "sectionOnDefault";
|
|
361
|
+
readonly "component.segmented-control": "segmentedControl";
|
|
362
|
+
readonly "component.signature-field": "signatureField";
|
|
363
|
+
readonly "component.slider": "slider";
|
|
364
|
+
readonly "component.stage": "stage";
|
|
365
|
+
readonly "component.stepper": "stepper";
|
|
366
|
+
readonly "component.story-group": "storyGroup";
|
|
367
|
+
readonly "component.summary": "summaryDefault";
|
|
368
|
+
readonly "component.summary-default": "summaryDefault";
|
|
369
|
+
readonly "component.summary-card": "summaryCard";
|
|
370
|
+
readonly "component.summary-counter": "summaryCounter";
|
|
371
|
+
readonly "component.summary-progress": "summaryProgress";
|
|
372
|
+
readonly "component.text": "text";
|
|
373
|
+
readonly "component.text-field": "textField";
|
|
374
|
+
readonly "component.titles": "titles";
|
|
375
|
+
readonly "component.trend": "trend";
|
|
376
|
+
readonly "component.video-player": "videoPlayerOnJig";
|
|
377
|
+
readonly "component.view": "view";
|
|
378
|
+
readonly "component.dropdown-item": "choiceFieldItem";
|
|
379
|
+
readonly "component.product-item": "gridItem";
|
|
380
|
+
readonly "component.step": "stage";
|
|
381
|
+
readonly "component.tab-button": "segmentedControl";
|
|
382
|
+
readonly "component.web-view": "webView";
|
|
383
|
+
};
|
|
384
|
+
export type FullScreenFactoryMethodsFor<T extends readonly ComponentType[]> = T[number] extends keyof typeof FULL_SCREEN_FACTORY_METHODS ? Pick<JcFullScreenFactory, (typeof FULL_SCREEN_FACTORY_METHODS)[T[number]]> : never;
|
|
385
|
+
export type FullScreenBuilderUnionFromAllowedTypes<T extends readonly ComponentType[]> = FullScreenFactoryMethodsFor<T>[keyof FullScreenFactoryMethodsFor<T>] extends (...args: any[]) => infer R ? R : never;
|
|
386
|
+
export declare class JcFullScreenFactory<T extends readonly ComponentType[] = readonly ComponentType[]> extends JcBuilderFactory<T> {
|
|
387
|
+
constructor(allowed: T, onComponentCreated: (component: FullScreenBuilderUnionFromAllowedTypes<T>) => void);
|
|
388
|
+
webView(options?: Parameters<JcBuilderFactory['webViewOnFull']>[0]): ReturnType<JcBuilderFactory['webViewOnFull']>;
|
|
389
|
+
}
|
|
390
|
+
export declare const DEFAULT_SCREEN_FACTORY_METHODS: {
|
|
391
|
+
readonly "component.amount-control": "amountControl";
|
|
392
|
+
readonly "component.avatar": "avatar";
|
|
393
|
+
readonly "component.avatar-field": "avatarField";
|
|
394
|
+
readonly "component.banner": "banner";
|
|
395
|
+
readonly "component.bar-chart": "barChart";
|
|
396
|
+
readonly "component.button": "button";
|
|
397
|
+
readonly "component.carousel": "carousel";
|
|
398
|
+
readonly "component.chat": "chat";
|
|
399
|
+
readonly "component.chat-message": "chatMessage";
|
|
400
|
+
readonly "component.checkbox": "checkbox";
|
|
401
|
+
readonly "component.choice-field": "choiceField";
|
|
402
|
+
readonly "component.choice-field-item": "choiceFieldItem";
|
|
403
|
+
readonly "component.countdown": "countDown";
|
|
404
|
+
readonly "component.count-up": "countUp";
|
|
405
|
+
readonly "component.custom-component": "customComponent";
|
|
406
|
+
readonly "component.date-picker": "datePicker";
|
|
407
|
+
readonly "component.divider": "divider";
|
|
408
|
+
readonly "component.dropdown": "dropdown";
|
|
409
|
+
readonly "component.duration-picker": "durationPicker";
|
|
410
|
+
readonly "component.email-field": "emailField";
|
|
411
|
+
readonly "component.entity": "entity";
|
|
412
|
+
readonly "component.entity-field": "entityField";
|
|
413
|
+
readonly "component.event": "event";
|
|
414
|
+
readonly "component.expander": "expander";
|
|
415
|
+
readonly "component.field-row": "fieldRow";
|
|
416
|
+
readonly "component.form": "form";
|
|
417
|
+
readonly "component.gallery-item": "galleryItem";
|
|
418
|
+
readonly "component.grid": "grid";
|
|
419
|
+
readonly "component.grid-item": "gridItem";
|
|
420
|
+
readonly "component.icon": "icon";
|
|
421
|
+
readonly "component.interactive-image": "interactiveImage";
|
|
422
|
+
readonly "component.interactive-image-item": "interactiveImageItem";
|
|
423
|
+
readonly "component.jig": "jig";
|
|
424
|
+
readonly "component.jig-header": "jigHeader";
|
|
425
|
+
readonly "component.jig-widget": "widget";
|
|
426
|
+
readonly "component.line-chart": "lineChart";
|
|
427
|
+
readonly "component.list": "list";
|
|
428
|
+
readonly "component.location": "location";
|
|
429
|
+
readonly "component.marker-item": "markerItem";
|
|
430
|
+
readonly "component.media-field": "mediaField";
|
|
431
|
+
readonly "component.menu-item": "menuItem";
|
|
432
|
+
readonly "component.number-field": "numberField";
|
|
433
|
+
readonly "component.pie-chart": "pieChart";
|
|
434
|
+
readonly "component.progress-bar": "progressBar";
|
|
435
|
+
readonly "component.rating": "rating";
|
|
436
|
+
readonly "component.signature-field": "signatureField";
|
|
437
|
+
readonly "component.slider": "slider";
|
|
438
|
+
readonly "component.stage": "stage";
|
|
439
|
+
readonly "component.stepper": "stepper";
|
|
440
|
+
readonly "component.story-group": "storyGroup";
|
|
441
|
+
readonly "component.summary": "summaryDefault";
|
|
442
|
+
readonly "component.summary-default": "summaryDefault";
|
|
443
|
+
readonly "component.summary-card": "summaryCard";
|
|
444
|
+
readonly "component.summary-counter": "summaryCounter";
|
|
445
|
+
readonly "component.summary-progress": "summaryProgress";
|
|
446
|
+
readonly "component.text": "text";
|
|
447
|
+
readonly "component.text-field": "textField";
|
|
448
|
+
readonly "component.titles": "titles";
|
|
449
|
+
readonly "component.trend": "trend";
|
|
450
|
+
readonly "component.view": "view";
|
|
451
|
+
readonly "component.dropdown-item": "choiceFieldItem";
|
|
452
|
+
readonly "component.product-item": "gridItem";
|
|
453
|
+
readonly "component.step": "stage";
|
|
454
|
+
readonly "component.tab-button": "segmentedControl";
|
|
455
|
+
readonly "component.card": "card";
|
|
456
|
+
readonly "component.image": "image";
|
|
457
|
+
readonly "component.list-item": "listItem";
|
|
458
|
+
readonly "component.section": "section";
|
|
459
|
+
readonly "component.segmented-control": "segmented";
|
|
460
|
+
readonly "component.video-player": "videoPlayer";
|
|
461
|
+
readonly "component.web-view": "webView";
|
|
462
|
+
};
|
|
463
|
+
export type DefaultScreenFactoryMethodsFor<T extends readonly ComponentType[]> = T[number] extends keyof typeof DEFAULT_SCREEN_FACTORY_METHODS ? Pick<JcDefaultScreenFactory, (typeof DEFAULT_SCREEN_FACTORY_METHODS)[T[number]]> : never;
|
|
464
|
+
export type DefaultScreenBuilderUnionFromAllowedTypes<T extends readonly ComponentType[]> = DefaultScreenFactoryMethodsFor<T>[keyof DefaultScreenFactoryMethodsFor<T>] extends (...args: any[]) => infer R ? R : never;
|
|
465
|
+
export declare class JcDefaultScreenFactory<T extends readonly ComponentType[] = readonly ComponentType[]> extends JcBuilderFactory<T> {
|
|
466
|
+
constructor(allowed: T, onComponentCreated: (component: DefaultScreenBuilderUnionFromAllowedTypes<T>) => void);
|
|
467
|
+
card(options?: Parameters<JcBuilderFactory['cardOnDefault']>[0]): ReturnType<JcBuilderFactory['cardOnDefault']>;
|
|
468
|
+
image(options?: Parameters<JcBuilderFactory['imageOnDefault']>[0]): ReturnType<JcBuilderFactory['imageOnDefault']>;
|
|
469
|
+
webView(options?: Parameters<JcBuilderFactory['webViewOnDefault']>[0]): ReturnType<JcBuilderFactory['webViewOnDefault']>;
|
|
470
|
+
videoPlayer(options?: Parameters<JcBuilderFactory['videoPlayerOnJig']>[0]): ReturnType<JcBuilderFactory['videoPlayerOnJig']>;
|
|
471
|
+
section(options?: Parameters<JcBuilderFactory['sectionOnDefault']>[0]): ReturnType<JcBuilderFactory['sectionOnDefault']>;
|
|
472
|
+
listItem(options?: Parameters<JcBuilderFactory['listItemStandalone']>[0]): ReturnType<JcBuilderFactory['listItemStandalone']>;
|
|
473
|
+
segmented(options?: Parameters<JcBuilderFactory['segmentedControl']>[0]): ReturnType<JcBuilderFactory['segmentedControl']>;
|
|
474
|
+
}
|
|
475
|
+
export declare const SUMMARY_FACTORY_METHODS: {
|
|
476
|
+
readonly "component.summary-default": "default";
|
|
477
|
+
readonly "component.summary-card": "card";
|
|
478
|
+
readonly "component.summary-counter": "counter";
|
|
479
|
+
};
|
|
480
|
+
export type SummaryFactoryMethodsFor<T extends readonly ComponentType[]> = T[number] extends keyof typeof SUMMARY_FACTORY_METHODS ? Pick<JcSummaryFactory, (typeof SUMMARY_FACTORY_METHODS)[T[number]]> : never;
|
|
481
|
+
export type SummaryBuilderUnionFromAllowedTypes<T extends readonly ComponentType[]> = SummaryFactoryMethodsFor<T>[keyof SummaryFactoryMethodsFor<T>] extends (...args: any[]) => infer R ? R : never;
|
|
482
|
+
export declare class JcSummaryFactory<T extends readonly ComponentType[] = readonly ComponentType[]> extends JcBuilderFactory<T> {
|
|
483
|
+
constructor(allowed: T, onComponentCreated: (component: SummaryBuilderUnionFromAllowedTypes<T>) => void);
|
|
484
|
+
default(options?: JcSummaryDefaultInputOptions): JcSummaryDefaultBuilder;
|
|
485
|
+
card(options?: JcSummaryCardInputOptions): JcSummaryCardBuilder;
|
|
486
|
+
counter(options?: JcSummaryCounterInputOptions): JcSummaryCounterBuilder;
|
|
487
|
+
}
|
|
488
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamMuYWJzdHJhY3QuZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudC9qYy5hYnN0cmFjdC5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxLQUFLLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxNQUFNLHNC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LENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQ25FLEtBQUssQ0FBQTtBQUtYLE1BQU0sTUFBTSxtQ0FBbUMsQ0FBQyxDQUFDLFNBQVMsU0FBUyxhQUFhLEVBQUUsSUFDaEYsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssTUFBTSxDQUFDLEdBQzlGLENBQUMsR0FDRCxLQUFLLENBQUE7QUFNWCxxQkFBYSxnQkFBZ0IsQ0FDM0IsQ0FBQyxTQUFTLFNBQVMsYUFBYSxFQUFFLEdBQUcsU0FBUyxhQUFhLEVBQUUsQ0FDN0QsU0FBUSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDM0IsWUFDRSxPQUFPLEVBQUUsQ0FBQyxFQUNWLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLG1DQUFtQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFJaEY7SUFNRCxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsNEJBQTRCLEdBQUcsdUJBQXVCLENBRXZFO0lBTUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHlCQUF5QixHQUFHLG9CQUFvQixDQUU5RDtJQU1ELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FFdkU7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgSW5zdGFuY2VJZCB9IGZyb20gJy4uL2Fic3RyYWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgSmNBbW91bnRDb250cm9sQnVpbGRlciwgdHlwZSBKY0Ftb3VudENvbnRyb2xJbnB1dCB9IGZyb20gJy4vamMuYW1vdW50LWNvbnRyb2wuanMnXG5pbXBvcnQgeyBKY0F2YXRhckJ1aWxkZXIsIHR5cGUgSmNBdmF0YXJJbnB1dCB9IGZyb20gJy4vamMuYXZhdGFyLmpzJ1xuaW1wb3J0IHsgSmNBdmF0YXJGaWVsZEJ1aWxkZXIsIHR5cGUgSmNBdmF0YXJGaWVsZElucHV0IH0gZnJvbSAnLi9qYy5hdmF0YXItZmllbGQuanMnXG5pbXBvcnQgeyBKY0Jhbm5lckJ1aWxkZXIsIHR5cGUgSmNCYW5uZXJJbnB1dCB9IGZyb20gJy4vamMuYmFubmVyLmpzJ1xuaW1wb3J0IHsgSmNCYXJDaGFydEJ1aWxkZXIsIHR5cGUgSmNCYXJDaGFydElucHV0IH0gZnJvbSAnLi9qYy5iYXItY2hhcnQuanMnXG5pbXBvcnQgeyBKY0J1dHRvbkJ1aWxkZXIsIHR5cGUgSmNCdXR0b25JbnB1dCB9IGZyb20gJy4vamMuYnV0dG9uLmpzJ1xuaW1wb3J0IHsgSmNDYXJkT25EZWZhdWx0QnVpbGRlciwgdHlwZSBKY0NhcmRPbkRlZmF1bHRJbnB1dCB9IGZyb20gJy4vamMuY2FyZC5vbi1kZWZhdWx0LmpzJ1xuaW1wb3J0IHsgSmNDYXJvdXNlbEJ1aWxkZXIsIHR5cGUgSmNDYXJvdXNlbElucHV0IH0gZnJvbSAnLi9qYy5jYXJvdXNlbC5qcydcbmltcG9ydCB7IEpjQ2hhdEJ1aWxkZXIsIHR5cGUgSmNDaGF0SW5wdXQgfSBmcm9tICcuL2pjLmNoYXQuanMnXG5pbXBvcnQgeyBKY0NoYXRNZXNzYWdlQnVpbGRlciwgdHlwZSBKY0NoYXRNZXNzYWdlSW5wdXQgfSBmcm9tICcuL2pjLmNoYXQtbWVzc2FnZS5qcydcbmltcG9ydCB7IEpjQ2hlY2tib3hCdWlsZGVyLCB0eXBlIEpjQ2hlY2tib3hJbnB1dCB9IGZyb20gJy4vamMuY2hlY2tib3guanMnXG5pbXBvcnQgeyBKY0Nob2ljZUZpZWxkQnVpbGRlciwgdHlwZSBKY0Nob2ljZUZpZWxkSW5wdXQgfSBmcm9tICcuL2pjLmNob2ljZS1maWVsZC5qcydcbmltcG9ydCB7IEpjQ2hvaWNlRmllbGRJdGVtQnVpbGRlciwgdHlwZSBKY0Nob2ljZUZpZWxkSXRlbUlucHV0IH0gZnJvbSAnLi9qYy5jaG9pY2UtZmllbGQtaXRlbS5qcydcbmltcG9ydCB7IEpjQ291bnREb3duQnVpbGRlciwgdHlwZSBKY0NvdW50RG93bklucHV0IH0gZnJvbSAnLi9qYy5jb3VudC1kb3duLmpzJ1xuaW1wb3J0IHsgSmNDb3VudFVwQnVpbGRlciwgdHlwZSBKY0NvdW50VXBJbnB1dCB9IGZyb20gJy4vamMuY291bnQtdXAuanMnXG5pbXBvcnQge1xuICBKY0N1c3RvbUNvbXBvbmVudEludGVyb3BCdWlsZGVyLFxuICB0eXBlIEpjQ3VzdG9tQ29tcG9uZW50SW50ZXJvcElucHV0LFxufSBmcm9tICcuL2pjLmN1c3RvbS1jb21wb25lbnQuaW50ZXJvcC5qcydcbmltcG9ydCB7IEpjRGF0ZVBpY2tlckJ1aWxkZXIsIHR5cGUgSmNEYXRlUGlja2VySW5wdXQgfSBmcm9tICcuL2pjLmRhdGUtcGlja2VyLmpzJ1xuaW1wb3J0IHsgSmNEaXZpZGVyQnVpbGRlciwgdHlwZSBKY0RpdmlkZXJJbnB1dCB9IGZyb20gJy4vamMuZGl2aWRlci5qcydcbmltcG9ydCB7IEpjRHJvcGRvd25CdWlsZGVyLCB0eXBlIEpjRHJvcGRvd25JbnB1dCB9IGZyb20gJy4vamMuZHJvcGRvd24uanMnXG5pbXBvcnQgeyBKY0R1cmF0aW9uUGlja2VyQnVpbGRlciwgdHlwZSBKY0R1cmF0aW9uUGlja2VySW5wdXQgfSBmcm9tICcuL2pjLmR1cmF0aW9uLXBpY2tlci5qcydcbmltcG9ydCB7IEpjRW1haWxGaWVsZEJ1aWxkZXIsIHR5cGUgSmNFbWFpbEZpZWxkSW5wdXQgfSBmcm9tICcuL2pjLmVtYWlsLWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNFbnRpdHlCdWlsZGVyLCB0eXBlIEpjRW50aXR5SW5wdXQgfSBmcm9tICcuL2pjLmVudGl0eS5qcydcbmltcG9ydCB7IEpjRW50aXR5RmllbGRCdWlsZGVyLCB0eXBlIEpjRW50aXR5RmllbGRJbnB1dCB9IGZyb20gJy4vamMuZW50aXR5LWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNFdmVudEJ1aWxkZXIsIHR5cGUgSmNFdmVudElucHV0IH0gZnJvbSAnLi9qYy5ldmVudC5qcydcbmltcG9ydCB7IEpjRXhwYW5kZXJCdWlsZGVyLCB0eXBlIEpjRXhwYW5kZXJJbnB1dCB9IGZyb20gJy4vamMuZXhwYW5kZXIuanMnXG5pbXBvcnQgeyBKY0ZpZWxkUm93QnVpbGRlciwgdHlwZSBKY0ZpZWxkUm93SW5wdXQgfSBmcm9tICcuL2pjLmZpZWxkLXJvdy5qcydcbmltcG9ydCB7IEpjRW50aXR5RmllbGRSb3dCdWlsZGVyIH0gZnJvbSAnLi9qYy5maWVsZC1yb3cuZW50aXR5LmpzJ1xuaW1wb3J0IHsgSmNGb3JtQnVpbGRlciwgdHlwZSBKY0Zvcm1JbnB1dCB9IGZyb20gJy4vamMuZm9ybS5qcydcbmltcG9ydCB7IEpjR2FsbGVyeUl0ZW1CdWlsZGVyLCB0eXBlIEpjR2FsbGVyeUl0ZW1JbnB1dCB9IGZyb20gJy4vamMuZ2FsbGVyeS1pdGVtLmpzJ1xuaW1wb3J0IHsgSmNHcmlkQnVpbGRlciwgdHlwZSBKY0dyaWRJbnB1dCB9IGZyb20gJy4vamMuZ3JpZC5qcydcbmltcG9ydCB7IEpjR3JpZEl0ZW1CdWlsZGVyLCB0eXBlIEpjR3JpZEl0ZW1JbnB1dCB9IGZyb20gJy4vamMuZ3JpZC1pdGVtLmpzJ1xuaW1wb3J0IHsgSmNJY29uQnVpbGRlciwgdHlwZSBKY0ljb25JbnB1dCB9IGZyb20gJy4vamMuaWNvbi5qcydcbmltcG9ydCB7IEpjSW1hZ2VPbkNhcm91c2VsQnVpbGRlciwgdHlwZSBKY0ltYWdlT25DYXJvdXNlbElucHV0IH0gZnJvbSAnLi9qYy5pbWFnZS5vbi1jYXJvdXNlbC5qcydcbmltcG9ydCB7IEpjSmlnQnVpbGRlciwgdHlwZSBKY0ppZ0lucHV0IH0gZnJvbSAnLi9qYy5qaWcuanMnXG5pbXBvcnQgeyBKY0ltYWdlT25EZWZhdWx0QnVpbGRlciwgdHlwZSBKY0ltYWdlT25EZWZhdWx0SW5wdXQgfSBmcm9tICcuL2pjLmltYWdlLm9uLWRlZmF1bHQuanMnXG5pbXBvcnQgeyBKY0ludGVyYWN0aXZlSW1hZ2VCdWlsZGVyLCB0eXBlIEpjSW50ZXJhY3RpdmVJbWFnZUlucHV0IH0gZnJvbSAnLi9qYy5pbnRlcmFjdGl2ZS1pbWFnZS5qcydcbmltcG9ydCB7XG4gIEpjSW50ZXJhY3RpdmVJbWFnZUl0ZW1CdWlsZGVyLFxuICB0eXBlIEpjSW50ZXJhY3RpdmVJbWFnZUl0ZW1JbnB1dCxcbn0gZnJvbSAnLi9qYy5pbnRlcmFjdGl2ZS1pbWFnZS5pdGVtLmpzJ1xuaW1wb3J0IHsgSmNKaWdIZWFkZXJCdWlsZGVyLCB0eXBlIEpjSmlnSGVhZGVySW5wdXQgfSBmcm9tICcuL2pjLmppZy1oZWFkZXIuanMnXG5pbXBvcnQgeyBKY0ppZ1dpZGdldEJ1aWxkZXIsIHR5cGUgSmNKaWdXaWRnZXRJbnB1dCB9IGZyb20gJy4vamMuamlnLXdpZGdldC5qcydcbmltcG9ydCB7IEpjTGluZUNoYXJ0QnVpbGRlciwgdHlwZSBKY0xpbmVDaGFydElucHV0IH0gZnJvbSAnLi9qYy5saW5lLWNoYXJ0LmpzJ1xuaW1wb3J0IHsgSmNMaXN0QnVpbGRlciwgdHlwZSBKY0xpc3RJbnB1dCB9IGZyb20gJy4vamMubGlzdC5qcydcbmltcG9ydCB7IEpjTGlzdEl0ZW1CdWlsZGVyLCB0eXBlIEpjTGlzdEl0ZW1PcHRpb25zIH0gZnJvbSAnLi9qYy5saXN0LWl0ZW0uanMnXG5pbXBvcnQge1xuICBKY0xpc3RJdGVtU3RhbmRhbG9uZUJ1aWxkZXIsXG4gIHR5cGUgSmNMaXN0SXRlbVN0YW5kYWxvbmVPcHRpb25zLFxufSBmcm9tICcuL2pjLmxpc3QtaXRlbS5zdGFuZGFsb25lLmpzJ1xuaW1wb3J0IHsgSmNMb2NhdGlvbkJ1aWxkZXIsIHR5cGUgSmNMb2NhdGlvbklucHV0IH0gZnJvbSAnLi9qYy5sb2NhdGlvbi5qcydcbmltcG9ydCB7IEpjTWFya2VySXRlbUJ1aWxkZXIsIHR5cGUgSmNNYXJrZXJJdGVtSW5wdXQgfSBmcm9tICcuL2pjLm1hcmtlci1pdGVtLmpzJ1xuaW1wb3J0IHsgSmNNZWRpYUZpZWxkQnVpbGRlciwgdHlwZSBKY01lZGlhRmllbGRJbnB1dCB9IGZyb20gJy4vamMubWVkaWEtZmllbGQuanMnXG5pbXBvcnQgeyBKY01lbnVJdGVtQnVpbGRlciwgdHlwZSBKY01lbnVJdGVtSW5wdXQgfSBmcm9tICcuL2pjLm1lbnUtaXRlbS5qcydcbmltcG9ydCB7IEpjTnVtYmVyRmllbGRCdWlsZGVyLCB0eXBlIEpjTnVtYmVyRmllbGRJbnB1dCB9IGZyb20gJy4vamMubnVtYmVyLWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNQaWVDaGFydEJ1aWxkZXIsIHR5cGUgSmNQaWVDaGFydElucHV0IH0gZnJvbSAnLi9qYy5waWUtY2hhcnQuanMnXG5pbXBvcnQgeyBKY1Byb2dyZXNzQmFyQnVpbGRlciwgdHlwZSBKY1Byb2dyZXNzQmFySW5wdXQgfSBmcm9tICcuL2pjLnByb2dyZXNzLWJhci5qcydcbmltcG9ydCB7IEpjUmF0aW5nQnVpbGRlciwgdHlwZSBKY1JhdGluZ0lucHV0IH0gZnJvbSAnLi9qYy5yYXRpbmcuanMnXG5pbXBvcnQgeyBKY1NlY3Rpb25PbkRlZmF1bHRCdWlsZGVyLCB0eXBlIEpjU2VjdGlvbk9uRGVmYXVsdElucHV0IH0gZnJvbSAnLi9qYy5zZWN0aW9uLm9uLWRlZmF1bHQuanMnXG5pbXBvcnQgeyBKY1NlZ21lbnRlZENvbnRyb2xCdWlsZGVyLCB0eXBlIEpjU2VnbWVudGVkQ29udHJvbElucHV0IH0gZnJvbSAnLi9qYy5zZWdtZW50ZWQtY29udHJvbC5qcydcbmltcG9ydCB7IEpjU2lnbmF0dXJlRmllbGRCdWlsZGVyLCB0eXBlIEpjU2lnbmF0dXJlRmllbGRJbnB1dCB9IGZyb20gJy4vamMuc2lnbmF0dXJlLWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNTbGlkZXJCdWlsZGVyLCB0eXBlIEpjU2xpZGVySW5wdXQgfSBmcm9tICcuL2pjLnNsaWRlci5qcydcbmltcG9ydCB7IEpjU3RhZ2VCdWlsZGVyLCB0eXBlIEpjU3RhZ2VJbnB1dCB9IGZyb20gJy4vamMuc3RhZ2UuanMnXG5pbXBvcnQgeyBKY1N0ZXBwZXJCdWlsZGVyLCB0eXBlIEpjU3RlcHBlcklucHV0IH0gZnJvbSAnLi9qYy5zdGVwcGVyLmpzJ1xuaW1wb3J0IHsgSmNTdG9yeUdyb3VwQnVpbGRlciwgdHlwZSBKY1N0b3J5R3JvdXBJbnB1dCB9IGZyb20gJy4vamMuc3RvcnktZ3JvdXAuanMnXG5pbXBvcnQgeyBKY1N1bW1hcnlDYXJkQnVpbGRlciwgdHlwZSBKY1N1bW1hcnlDYXJkSW5wdXRPcHRpb25zIH0gZnJvbSAnLi9qYy5zdW1tYXJ5LmNhcmQuanMnXG5pbXBvcnQgeyBKY1N1bW1hcnlDb3VudGVyQnVpbGRlciwgdHlwZSBKY1N1bW1hcnlDb3VudGVySW5wdXRPcHRpb25zIH0gZnJvbSAnLi9qYy5zdW1tYXJ5LmNvdW50ZXIuanMnXG5pbXBvcnQgeyBKY1N1bW1hcnlEZWZhdWx0QnVpbGRlciwgdHlwZSBKY1N1bW1hcnlEZWZhdWx0SW5wdXRPcHRpb25zIH0gZnJvbSAnLi9qYy5zdW1tYXJ5LmRlZmF1bHQuanMnXG5pbXBvcnQge1xuICBKY1N1bW1hcnlQcm9ncmVzc0J1aWxkZXIsXG4gIHR5cGUgSmNTdW1tYXJ5UHJvZ3Jlc3NJbnB1dE9wdGlvbnMsXG59IGZyb20gJy4vamMuc3VtbWFyeS5wcm9ncmVzcy5qcydcbmltcG9ydCB7IEpjVGV4dEJ1aWxkZXIsIHR5cGUgSmNUZXh0SW5wdXQgfSBmcm9tICcuL2pjLnRleHQuanMnXG5pbXBvcnQgeyBKY1RleHRGaWVsZEJ1aWxkZXIsIHR5cGUgSmNUZXh0RmllbGRJbnB1dCB9IGZyb20gJy4vamMudGV4dC1maWVsZC5qcydcbmltcG9ydCB7IEpjVGl0bGVzQnVpbGRlciwgdHlwZSBKY1RpdGxlc0lucHV0IH0gZnJvbSAnLi9qYy50aXRsZXMuanMnXG5pbXBvcnQgeyBKY1RyZW5kQnVpbGRlciwgdHlwZSBKY1RyZW5kSW5wdXQgfSBmcm9tICcuL2pjLnRyZW5kLmpzJ1xuaW1wb3J0IHsgQ09NUE9ORU5UX1RZUEUsIHR5cGUgQ29tcG9uZW50VHlwZSB9IGZyb20gJy4vamMudHlwZXMuanMnXG5pbXBvcnQgeyBKY1ZpZXdCdWlsZGVyLCB0eXBlIEpjVmlld0lucHV0IH0gZnJvbSAnLi9qYy52aWV3LmpzJ1xuaW1wb3J0IHtcbiAgSmNWaWRlb1BsYXllck9uSmlnQnVpbGRlcixcbiAgdHlwZSBKY1ZpZGVvUGxheWVyT25KaWdJbnB1dCxcbn0gZnJvbSAnLi9qYy52aWRlby1wbGF5ZXIub24tamlnLmpzJ1xuaW1wb3J0IHtcbiAgSmNXZWJWaWV3T25EZWZhdWx0QnVpbGRlcixcbiAgdHlwZSBKY1dlYlZpZXdPbkRlZmF1bHRJbnB1dCxcbn0gZnJvbSAnLi9qYy53ZWItdmlldy5vbi1kZWZhdWx0LmpzJ1xuaW1wb3J0IHsgSmNXZWJWaWV3T25GdWxsQnVpbGRlciwgdHlwZSBKY1dlYlZpZXdPbkZ1bGxJbnB1dCB9IGZyb20gJy4vamMud2ViLXZpZXcub24tZnVsbC5qcydcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCQVNFIEZBQ1RPUlkgLSBDb3JlIGNvbXBvbmVudCBmYWN0b3J5IHdpdGggYWxsIGNyZWF0aW9uIG1ldGhvZHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1hcHMgY29tcG9uZW50IHR5cGVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgYmFzZSBmYWN0b3J5IG1ldGhvZCBuYW1lcy5cbiAqIFVzZWQgdG8gZGVyaXZlIFBpY2sgdHlwZXMgZnJvbSBBTExPV0VEX1RZUEVTIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTVBPTkVOVF9UT19GQUNUT1JZX01FVEhPRCA9IHtcbiAgW0NPTVBPTkVOVF9UWVBFLkFNT1VOVF9DT05UUk9MXTogJ2Ftb3VudENvbnRyb2wnLFxuICBbQ09NUE9ORU5UX1RZUEUuQVZBVEFSXTogJ2F2YXRhcicsXG4gIFtDT01QT05FTlRfVFlQRS5BVkFUQVJfRklFTERdOiAnYXZhdGFyRmllbGQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQkFOTkVSXTogJ2Jhbm5lcicsXG4gIFtDT01QT05FTlRfVFlQRS5CQVJfQ0hBUlRdOiAnYmFyQ2hhcnQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQlVUVE9OXTogJ2J1dHRvbicsXG4gIFtDT01QT05FTlRfVFlQRS5DQVJEXTogJ2NhcmRPbkRlZmF1bHQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQ0FST1VTRUxdOiAnY2Fyb3VzZWwnLFxuICBbQ09NUE9ORU5UX1RZUEUuQ0hBVF06ICdjaGF0JyxcbiAgW0NPTVBPTkVOVF9UWVBFLkNIQVRfTUVTU0FHRV06ICdjaGF0TWVzc2FnZScsXG4gIFtDT01QT05FTlRfVFlQRS5DSEVDS0JPWF06ICdjaGVja2JveCcsXG4gIFtDT01QT05FTlRfVFlQRS5DSE9JQ0VfRklFTERdOiAnY2hvaWNlRmllbGQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQ0hPSUNFX0ZJRUxEX0lURU1dOiAnY2hvaWNlRmllbGRJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkNPVU5URE9XTl06ICdjb3VudERvd24nLFxuICBbQ09NUE9ORU5UX1RZUEUuQ09VTlRfVVBdOiAnY291bnRVcCcsXG4gIFtDT01QT05FTlRfVFlQRS5DVVNUT01fQ09NUE9ORU5UXTogJ2N1c3RvbUNvbXBvbmVudCcsXG4gIFtDT01QT05FTlRfVFlQRS5EQVRFX1BJQ0tFUl06ICdkYXRlUGlja2VyJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkRJVklERVJdOiAnZGl2aWRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5EUk9QRE9XTl06ICdkcm9wZG93bicsXG4gIFtDT01QT05FTlRfVFlQRS5EVVJBVElPTl9QSUNLRVJdOiAnZHVyYXRpb25QaWNrZXInLFxuICBbQ09NUE9ORU5UX1RZUEUuRU1BSUxfRklFTERdOiAnZW1haWxGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5FTlRJVFldOiAnZW50aXR5JyxcbiAgW0NPTVBPTkVOVF9UWVBFLkVOVElUWV9GSUVMRF06ICdlbnRpdHlGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5FVkVOVF06ICdldmVudCcsXG4gIFtDT01QT05FTlRfVFlQRS5FWFBBTkRFUl06ICdleHBhbmRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5GSUVMRF9ST1ddOiAnZmllbGRSb3cnLFxuICBbQ09NUE9ORU5UX1RZUEUuRk9STV06ICdmb3JtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkdBTExFUllfSVRFTV06ICdnYWxsZXJ5SXRlbScsXG4gIFtDT01QT05FTlRfVFlQRS5HUklEXTogJ2dyaWQnLFxuICBbQ09NUE9ORU5UX1RZUEUuR1JJRF9JVEVNXTogJ2dyaWRJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLklDT05dOiAnaWNvbicsXG4gIFtDT01QT05FTlRfVFlQRS5JTUFHRV06ICdpbWFnZU9uRGVmYXVsdCcsXG4gIFtDT01QT05FTlRfVFlQRS5JTlRFUkFDVElWRV9JTUFHRV06ICdpbnRlcmFjdGl2ZUltYWdlJyxcbiAgW0NPTVBPTkVOVF9UWVBFLklOVEVSQUNUSVZFX0lNQUdFX0lURU1dOiAnaW50ZXJhY3RpdmVJbWFnZUl0ZW0nLFxuICBbQ09NUE9ORU5UX1RZUEUuSklHXTogJ2ppZycsXG4gIFtDT01QT05FTlRfVFlQRS5KSUdfSEVBREVSXTogJ2ppZ0hlYWRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5KSUdfV0lER0VUXTogJ3dpZGdldCcsXG4gIFtDT01QT05FTlRfVFlQRS5MSU5FX0NIQVJUXTogJ2xpbmVDaGFydCcsXG4gIFtDT01QT05FTlRfVFlQRS5MSVNUXTogJ2xpc3QnLFxuICBbQ09NUE9ORU5UX1RZUEUuTElTVF9JVEVNXTogJ2xpc3RJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkxPQ0FUSU9OXTogJ2xvY2F0aW9uJyxcbiAgW0NPTVBPTkVOVF9UWVBFLk1BUktFUl9JVEVNXTogJ21hcmtlckl0ZW0nLFxuICBbQ09NUE9ORU5UX1RZUEUuTUVESUFfRklFTERdOiAnbWVkaWFGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5NRU5VX0lURU1dOiAnbWVudUl0ZW0nLFxuICBbQ09NUE9ORU5UX1RZUEUuTlVNQkVSX0ZJRUxEXTogJ251bWJlckZpZWxkJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlBJRV9DSEFSVF06ICdwaWVDaGFydCcsXG4gIFtDT01QT05FTlRfVFlQRS5QUk9HUkVTU19CQVJdOiAncHJvZ3Jlc3NCYXInLFxuICBbQ09NUE9ORU5UX1RZUEUuUkFUSU5HXTogJ3JhdGluZycsXG4gIFtDT01QT05FTlRfVFlQRS5TRUNUSU9OXTogJ3NlY3Rpb25PbkRlZmF1bHQnLFxuICBbQ09NUE9ORU5UX1RZUEUuU0VHTUVOVEVEX0NPTlRST0xdOiAnc2VnbWVudGVkQ29udHJvbCcsXG4gIFtDT01QT05FTlRfVFlQRS5TSUdOQVRVUkVfRklFTERdOiAnc2lnbmF0dXJlRmllbGQnLFxuICBbQ09NUE9ORU5UX1RZUEUuU0xJREVSXTogJ3NsaWRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5TVEFHRV06ICdzdGFnZScsXG4gIFtDT01QT05FTlRfVFlQRS5TVEVQUEVSXTogJ3N0ZXBwZXInLFxuICBbQ09NUE9ORU5UX1RZUEUuU1RPUllfR1JPVVBdOiAnc3RvcnlHcm91cCcsXG4gIFtDT01QT05FTlRfVFlQRS5TVU1NQVJZXTogJ3N1bW1hcnlEZWZhdWx0JywgLy8gT3V0cHV0LW9ubHkgdHlwZTsgbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGVcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfREVGQVVMVF06ICdzdW1tYXJ5RGVmYXVsdCcsXG4gIFtDT01QT05FTlRfVFlQRS5TVU1NQVJZX0NBUkRdOiAnc3VtbWFyeUNhcmQnLFxuICBbQ09NUE9ORU5UX1RZUEUuU1VNTUFSWV9DT1VOVEVSXTogJ3N1bW1hcnlDb3VudGVyJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfUFJPR1JFU1NdOiAnc3VtbWFyeVByb2dyZXNzJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlRFWFRdOiAndGV4dCcsXG4gIFtDT01QT05FTlRfVFlQRS5URVhUX0ZJRUxEXTogJ3RleHRGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5USVRMRVNdOiAndGl0bGVzJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlRSRU5EXTogJ3RyZW5kJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlZJREVPX1BMQVlFUl06ICd2aWRlb1BsYXllck9uSmlnJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlZJRVddOiAndmlldycsXG4gIFtDT01QT05FTlRfVFlQRS5XRUJfVklFV106ICd3ZWJWaWV3T25EZWZhdWx0JyxcbiAgW0NPTVBPTkVOVF9UWVBFLkRST1BET1dOX0lURU1dOiAnY2hvaWNlRmllbGRJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlBST0RVQ1RfSVRFTV06ICdncmlkSXRlbScsXG4gIFtDT01QT05FTlRfVFlQRS5TVEVQXTogJ3N0YWdlJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlRBQl9CVVRUT05dOiAnc2VnbWVudGVkQ29udHJvbCcsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8Q29tcG9uZW50VHlwZSwga2V5b2YgSmNCdWlsZGVyRmFjdG9yeT5cblxuLyoqXG4gKiBEZXJpdmVzIGZhY3RvcnkgbWV0aG9kcyBmcm9tIGNvbXBvbmVudCB0eXBlcyBhcnJheS5cbiAqIFVzYWdlOiBGYWN0b3J5TWV0aG9kc0Zvcjx0eXBlb2YgQUxMT1dFRF9UWVBFUz5cbiAqL1xuZXhwb3J0IHR5cGUgRmFjdG9yeU1ldGhvZHNGb3I8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBUW251bWJlcl0gZXh0ZW5kcyBrZXlvZiB0eXBlb2YgQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9EXG4gICAgPyBQaWNrPEpjQnVpbGRlckZhY3RvcnksICh0eXBlb2YgQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9EKVtUW251bWJlcl1dPlxuICAgIDogbmV2ZXJcblxuLyoqXG4gKiBEZXJpdmVzIHVuaW9uIG9mIGJ1aWxkZXIgdHlwZXMgZnJvbSBhbGxvd2VkIGNvbXBvbmVudCB0eXBlcyBmb3IgYmFzZSBmYWN0b3J5IGNvbnRleHQuXG4gKiBVc2VkIGJ5IGNvbXBvbmVudHMgdGhhdCB1c2UgSmNCdWlsZGVyRmFjdG9yeSBkaXJlY3RseSB3aXRob3V0IGEgc3BlY2lhbGl6ZWQgZmFjdG9yeS5cbiAqXG4gKiBUaGlzIHR5cGUgaGVscGVyIGVsaW1pbmF0ZXMgbWFudWFsIG1haW50ZW5hbmNlIG9mIGJ1aWxkZXIgdW5pb24gdHlwZXNcbiAqIGJ5IGF1dG9tYXRpY2FsbHkgZXh0cmFjdGluZyByZXR1cm4gdHlwZXMgZnJvbSBmYWN0b3J5IG1ldGhvZHMuXG4gKlxuICogV2h5IHdlIG5lZWQgdGhpczpcbiAqIC0gQ29tcG9uZW50cyBuZWVkIHRvIHN0b3JlIGNoaWxkIGJ1aWxkZXJzIHdpdGggY29ycmVjdCB0eXBlc1xuICogLSBNYW51YWxseSBtYWludGFpbmluZyB1bmlvbnMgKGUuZy4sIEpjSW1hZ2VCdWlsZGVyIHwgSmNUZXh0QnVpbGRlcilcbiAqICAgaXMgZXJyb3ItcHJvbmUgYW5kIHZpb2xhdGVzIERSWSBwcmluY2lwbGVcbiAqIC0gV2hlbiBBTExPV0VEX1RZUEVTIGNoYW5nZXMsIHRoZSB1bmlvbiB0eXBlIHVwZGF0ZXMgYXV0b21hdGljYWxseVxuICpcbiAqIEhvdyBpdCB3b3JrczpcbiAqIDEuIFRha2VzIEFMTE9XRURfVFlQRVMgYXJyYXkgKGUuZy4sIFtDT01QT05FTlRfVFlQRS5JTUFHRSwgQ09NUE9ORU5UX1RZUEUuVEVYVCwgLi4uXSlcbiAqIDIuIEZhY3RvcnlNZXRob2RzRm9yPFQ+IG1hcHMgdG8gZmFjdG9yeSBtZXRob2RzIChlLmcuLCB7IGltYWdlT25EZWZhdWx0OiAuLi4sIHdpZGdldDogLi4uIH0pXG4gKiAzLiBba2V5b2YgLi4uXSBhY2Nlc3NlcyBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgaW4gdGhlIFBpY2sgdHlwZVxuICogNC4gQ29uZGl0aW9uYWwgdHlwZSB3aXRoICdpbmZlciBSJyBleHRyYWN0cyB0aGUgcmV0dXJuIHR5cGUgb2YgZWFjaCBtZXRob2RcbiAqIDUuIFJlc3VsdCBpcyBhIHVuaW9uIG9mIGFsbCBidWlsZGVyIHR5cGVzIHRoYXQgY2FuIGJlIGNyZWF0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgQmFzZUJ1aWxkZXJVbmlvbkZyb21BbGxvd2VkVHlwZXM8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBGYWN0b3J5TWV0aG9kc0ZvcjxUPltrZXlvZiBGYWN0b3J5TWV0aG9kc0ZvcjxUPl0gZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IGluZmVyIFIgPyBSIDogbmV2ZXJcblxuLyoqXG4gKiBJbnRlcm5hbCBmYWN0b3J5IGNsYXNzIGNvbnRhaW5pbmcgYWxsIEpDIGNvbXBvbmVudCBjcmVhdGlvbiBtZXRob2RzLlxuICogQ29tcG9uZW50cyBzaG91bGQgdXNlIFBpY2s8SkNGYWN0b3J5Q2xhc3MsIC4uLj4gdG8gc2VsZWN0IG9ubHkgdGhlIG1ldGhvZHMgdGhleSBuZWVkLlxuICogVGhpcyBhdm9pZHMgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHdoaWxlIG1haW50YWluaW5nIGZ1bGwgdHlwZSBzYWZldHkuXG4gKlxuICogV2hlbiBpbnN0YW50aWF0ZWQgd2l0aCBvbkNvbXBvbmVudENyZWF0ZWQgY2FsbGJhY2ssIG5vdGlmaWVzIHBhcmVudCBvZiBjcmVhdGVkIGNvbXBvbmVudHMuXG4gKiBHZW5lcmljIHR5cGUgVCBhbGxvd3MgYXV0b21hdGljIGluZmVyZW5jZSBvZiBjb21wb25lbnQgdHlwZXMgZnJvbSBBTExPV0VEX1RZUEVTLlxuICovXG5leHBvcnQgY2xhc3MgSmNCdWlsZGVyRmFjdG9yeTxUIGV4dGVuZHMgcmVhZG9ubHkgQ29tcG9uZW50VHlwZVtdID0gcmVhZG9ubHkgQ29tcG9uZW50VHlwZVtdPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfYWxsb3dlZDogVFxuICAvKipcbiAgICogSW50ZXJuYWwgY2FsbGJhY2sgZm9yIGNvbXBvbmVudCBjcmVhdGlvbiBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIFdoeSB3ZSB1c2UgJ3Vua25vd24nIGhlcmUgaW5zdGVhZCBvZiBCYXNlQnVpbGRlclVuaW9uRnJvbUFsbG93ZWRUeXBlczxUPjpcbiAgICogRWFjaCBmYWN0b3J5IG1ldGhvZCAoYXZhdGFyKCksIGJ1dHRvbigpLCBldGMuKSBjcmVhdGVzIGEgc3BlY2lmaWMgYnVpbGRlciB0eXBlLFxuICAgKiBidXQgVHlwZVNjcmlwdCBjYW5ub3QgcHJvdmUgYXQgY29tcGlsZS10aW1lIHRoYXQgdGhlc2UgY29uY3JldGUgdHlwZXMgYXJlIHBhcnRcbiAgICogb2YgdGhlIGdlbmVyaWMgdW5pb24gQmFzZUJ1aWxkZXJVbmlvbkZyb21BbGxvd2VkVHlwZXM8VD4uIEV2ZW4gdGhvdWdoIHdlIGhhdmUgcnVudGltZVxuICAgKiBndWFyZHMgY2hlY2tpbmcgX2FsbG93ZWQuaW5jbHVkZXMoKSwgVHlwZVNjcmlwdCdzIGNvbnRyb2wgZmxvdyBhbmFseXNpcyBkb2Vzbid0XG4gICAqIG5hcnJvdyBnZW5lcmljIHR5cGUgcGFyYW1ldGVycy4gVXNpbmcgJ3Vua25vd24nIGhlcmUgaXMgYSBwcmFnbWF0aWMgdHJhZGUtb2ZmOlxuICAgKiAtIFR5cGUgc2FmZXR5IGlzIGVuZm9yY2VkIGF0IHRoZSBjb25zdHJ1Y3RvciBib3VuZGFyeSAocHVibGljIEFQSSlcbiAgICogLSBSdW50aW1lIGNoZWNrcyBlbnN1cmUgb25seSBhbGxvd2VkIGNvbXBvbmVudHMgYXJlIGNyZWF0ZWRcbiAgICogLSBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBieXBhc3NlcyB0eXBlIGNoZWNraW5nIGZvciBzaW1wbGljaXR5XG4gICAqIFRoaXMgaXMgYSBjb21tb24gcGF0dGVybiB3aGVuIGJyaWRnaW5nIGdlbmVyaWMgY29uc3RyYWludHMgd2l0aCBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uQ29tcG9uZW50Q3JlYXRlZDogKGNvbXBvbmVudDogdW5rbm93bikgPT4gdm9pZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFsbG93ZWQ6IFQsXG4gICAgb25Db21wb25lbnRDcmVhdGVkOiAoY29tcG9uZW50OiBCYXNlQnVpbGRlclVuaW9uRnJvbUFsbG93ZWRUeXBlczxUPikgPT4gdm9pZCxcbiAgKSB7XG4gICAgdGhpcy5fYWxsb3dlZCA9IGFsbG93ZWRcbiAgICAvLyBUeXBlLWVyYXNlIGZvciBpbnRlcm5hbCB1c2Ugd2hpbGUgbWFpbnRhaW5pbmcgdHlwZSBzYWZldHkgYXQgdGhlIGJvdW5kYXJ5XG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkID0gb25Db21wb25lbnRDcmVhdGVkIGFzIChjb21wb25lbnQ6IHVua25vd24pID0+IHZvaWRcbiAgfVxuXG4gIC8qKlxuICAgKiBOdW1lcmljIGluY3JlbWVudC9kZWNyZW1lbnQgY29udHJvbC5cbiAgICovXG4gIGFtb3VudENvbnRyb2wob3B0aW9ucz86IEpjQW1vdW50Q29udHJvbElucHV0KTogSmNBbW91bnRDb250cm9sQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuYW1vdW50LWNvbnRyb2wnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnYW1vdW50LWNvbnRyb2wnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjQW1vdW50Q29udHJvbEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIENpcmN1bGFyIHVzZXIgaW1hZ2Ugd2l0aCBpbml0aWFscyBmYWxsYmFjay5cbiAgICovXG4gIGF2YXRhcihvcHRpb25zPzogSmNBdmF0YXJJbnB1dCk6IEpjQXZhdGFyQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuYXZhdGFyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2F2YXRhcicgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNBdmF0YXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9taW5lbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlIHdpdGggaWNvbiwgYWN0aW9ucywgYW5kIHN0YXR1cyBzdHlsaW5nLlxuICAgKi9cbiAgYmFubmVyKG9wdGlvbnM6IEpjQmFubmVySW5wdXQpOiBKY0Jhbm5lckJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmJhbm5lcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdiYW5uZXInIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjQmFubmVyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogU3RhbmRhbG9uZSBwcmVzc2FibGUgYnV0dG9uIHdpdGggaWNvbiBhbmQgc3R5bGluZy5cbiAgICovXG4gIGJ1dHRvbihvcHRpb25zOiBKY0J1dHRvbklucHV0KTogSmNCdXR0b25CdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5idXR0b24nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnYnV0dG9uJyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0J1dHRvbkJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGNhdGVnb3JpY2FsIGRhdGEgYXMgdmVydGljYWwvaG9yaXpvbnRhbCBiYXJzIHdpdGggbXVsdGlwbGUgc2VyaWVzIHN1cHBvcnQuXG4gICAqL1xuICBiYXJDaGFydChvcHRpb25zPzogSmNCYXJDaGFydElucHV0KTogSmNCYXJDaGFydEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmJhci1jaGFydCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdiYXItY2hhcnQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjQmFyQ2hhcnRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cHMgY29udGVudCBpbiBmbGV4aWJsZSBsYXlvdXRzIHdpdGggc3R5bGluZy5cbiAgICovXG4gIGNhcmRPbkRlZmF1bHQob3B0aW9uczogSmNDYXJkT25EZWZhdWx0SW5wdXQgPSB7fSk6IEpjQ2FyZE9uRGVmYXVsdEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmNhcmQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnY2FyZE9uRGVmYXVsdCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNDYXJkT25EZWZhdWx0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogSG9yaXpvbnRhbCBzd2lwZWFibGUgZ2FsbGVyeSB3aXRoIHBhZ2luYXRpb24uXG4gICAqL1xuICBjYXJvdXNlbChvcHRpb25zOiBKY0Nhcm91c2VsSW5wdXQgPSB7fSk6IEpjQ2Fyb3VzZWxCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5jYXJvdXNlbCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdjYXJvdXNlbCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNDYXJvdXNlbEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBjaGF0IGNvbXBvbmVudHMgd2l0aCBtZXNzYWdlIHRlbXBsYXRlcywgc2VuZCBhY3Rpb25zLCBkYXRhIGJpbmRpbmcuXG4gICAqL1xuICBjaGF0KG9wdGlvbnM/OiBKY0NoYXRJbnB1dCk6IEpjQ2hhdEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmNoYXQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnY2hhdCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNDaGF0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGNob2ljZSBmaWVsZCBpdGVtcyB3aXRoIHRpdGxlIGRpc3BsYXkgYW5kIHVuaXF1ZSB2YWx1ZXMuXG4gICAqL1xuICBjaG9pY2VGaWVsZEl0ZW0ob3B0aW9ucz86IEpjQ2hvaWNlRmllbGRJdGVtSW5wdXQpOiBKY0Nob2ljZUZpZWxkSXRlbUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmNob2ljZS1maWVsZC1pdGVtJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2Nob2ljZUZpZWxkSXRlbScgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNDaG9pY2VGaWVsZEl0ZW1CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudGRvd24gdGltZXIgdG8gdGFyZ2V0IGRhdGUvdGltZS5cbiAgICovXG4gIGNvdW50RG93bihvcHRpb25zPzogSmNDb3VudERvd25JbnB1dCk6IEpjQ291bnREb3duQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuY291bnRkb3duJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2NvdW50RG93bicgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNDb3VudERvd25CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBBbmltYXRlZCBudW1iZXIgY291bnRlciBmcm9tIHN0YXJ0IHRvIGVuZC5cbiAgICovXG4gIGNvdW50VXAob3B0aW9ucz86IEpjQ291bnRVcElucHV0KTogSmNDb3VudFVwQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuY291bnQtdXAnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnY291bnRVcCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNDb3VudFVwQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBkZXByZWNhdGVkIGN1c3RvbSBjb21wb25lbnRzIGZyb20gWUFNTC9KU09OLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBDdXN0b20gY29tcG9uZW50cyBhcmUgZGVwcmVjYXRlZC4gUHJlZmVyIG5hdGl2ZSBTREsgY29tcG9uZW50cy5cbiAgICovXG4gIGN1c3RvbUNvbXBvbmVudChvcHRpb25zOiBKY0N1c3RvbUNvbXBvbmVudEludGVyb3BJbnB1dCk6IEpjQ3VzdG9tQ29tcG9uZW50SW50ZXJvcEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmN1c3RvbS1jb21wb25lbnQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnY3VzdG9tQ29tcG9uZW50JyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IEpjQ3VzdG9tQ29tcG9uZW50SW50ZXJvcEJ1aWxkZXIuZnJvbShvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICBlbnRpdHkob3B0aW9uczogSmNFbnRpdHlJbnB1dCA9IHt9KTogSmNFbnRpdHlCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5lbnRpdHknKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnZW50aXR5JyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0VudGl0eUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgZW50aXR5RmllbGQob3B0aW9ucz86IEpjRW50aXR5RmllbGRJbnB1dCk6IEpjRW50aXR5RmllbGRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5lbnRpdHktZmllbGQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnZW50aXR5RmllbGQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjRW50aXR5RmllbGRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIGVudGl0eUZpZWxkUm93KG9wdGlvbnM/OiB7IGluc3RhbmNlSWQ/OiBJbnN0YW5jZUlkIH0pOiBKY0VudGl0eUZpZWxkUm93QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuZmllbGQtcm93JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2VudGl0eUZpZWxkUm93JyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0VudGl0eUZpZWxkUm93QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICBldmVudChvcHRpb25zOiBKY0V2ZW50SW5wdXQgPSB7fSk6IEpjRXZlbnRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5ldmVudCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdldmVudCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNFdmVudEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBjb2xsYXBzaWJsZSBjb250ZW50IHNlY3Rpb25zIHdpdGggaGVhZGVycyBhbmQgYW5pbWF0aW9ucy5cbiAgICogQGFsaWFzIGNvbXBvbmVudC5leHBhbmRlclxuICAgKi9cbiAgZXhwYW5kZXIob3B0aW9uczogSmNFeHBhbmRlcklucHV0ID0ge30pOiBKY0V4cGFuZGVyQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuZXhwYW5kZXInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnZXhwYW5kZXInIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjRXhwYW5kZXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgaW5wdXQgZmllbGQgZ3JvdXBzIHdpdGggc3RhdGUgbWFuYWdlbWVudC5cbiAgICovXG4gIGZvcm0ob3B0aW9uczogSmNGb3JtSW5wdXQgPSB7fSk6IEpjRm9ybUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmZvcm0nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnZm9ybScgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNGb3JtQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogSW1hZ2UgaXRlbSBmb3IgZ2FsbGVyeSBzY3JlZW5zLlxuICAgKi9cbiAgZ2FsbGVyeUl0ZW0ob3B0aW9uczogSmNHYWxsZXJ5SXRlbUlucHV0KTogSmNHYWxsZXJ5SXRlbUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmdhbGxlcnktaXRlbScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdjb21wb25lbnQuZ2FsbGVyeS1pdGVtJyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0dhbGxlcnlJdGVtQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogTXVsdGktY29sdW1uIGxheW91dCB3aXRoIGZsZXhpYmxlIGl0ZW0gc2l6aW5nLlxuICAgKi9cbiAgZ3JpZChvcHRpb25zPzogSmNHcmlkSW5wdXQpOiBKY0dyaWRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5ncmlkJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2dyaWQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjR3JpZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgZ3JpZEl0ZW0ob3B0aW9ucz86IEpjR3JpZEl0ZW1JbnB1dCk6IEpjR3JpZEl0ZW1CdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5ncmlkLWl0ZW0nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnZ3JpZEl0ZW0nIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjR3JpZEl0ZW1CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHN5c3RlbSBpY29ucyB3aXRoIGNvbG9yIGFuZCBzaXplLlxuICAgKi9cbiAgaWNvbihvcHRpb25zPzogSmNJY29uSW5wdXQpOiBKY0ljb25CdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5pY29uJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2ljb24nIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjSWNvbkJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgaW1hZ2VPbkNhcm91c2VsKG9wdGlvbnM/OiBKY0ltYWdlT25DYXJvdXNlbElucHV0KTogSmNJbWFnZU9uQ2Fyb3VzZWxCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5pbWFnZScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdpbWFnZU9uQ2Fyb3VzZWwnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjSW1hZ2VPbkNhcm91c2VsQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGltYWdlIGNvbXBvbmVudHMgd2l0aCBzaXppbmcuXG4gICAqL1xuICBpbWFnZU9uRGVmYXVsdChvcHRpb25zPzogSmNJbWFnZU9uRGVmYXVsdElucHV0KTogSmNJbWFnZU9uRGVmYXVsdEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmltYWdlJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2ltYWdlT25EZWZhdWx0JyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0ltYWdlT25EZWZhdWx0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgaW1hZ2VzIHdpdGggY2xpY2thYmxlIGhvdHNwb3RzLlxuICAgKi9cbiAgaW50ZXJhY3RpdmVJbWFnZShvcHRpb25zPzogSmNJbnRlcmFjdGl2ZUltYWdlSW5wdXQpOiBKY0ludGVyYWN0aXZlSW1hZ2VCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5pbnRlcmFjdGl2ZS1pbWFnZScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdpbnRlcmFjdGl2ZUltYWdlJyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0ludGVyYWN0aXZlSW1hZ2VCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWJlZHMgYSBqaWcgYXMgYSBjb21wb25lbnQgd2l0aGluIGFub3RoZXIgc2NyZWVuLlxuICAgKi9cbiAgamlnKG9wdGlvbnM6IEpjSmlnSW5wdXQpOiBKY0ppZ0J1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LmppZycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdqaWcnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjSmlnQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICBqaWdIZWFkZXIob3B0aW9uczogSmNKaWdIZWFkZXJJbnB1dCA9IHt9KTogSmNKaWdIZWFkZXJCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5qaWctaGVhZGVyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2ppZ0hlYWRlcicgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNKaWdIZWFkZXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aW1lLXNlcmllcyBkYXRhIGFzIGxpbmVzLlxuICAgKi9cbiAgbGluZUNoYXJ0KG9wdGlvbnM/OiBKY0xpbmVDaGFydElucHV0KTogSmNMaW5lQ2hhcnRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5saW5lLWNoYXJ0JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2xpbmVDaGFydCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNMaW5lQ2hhcnRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJ0aWNhbC9ob3Jpem9udGFsIHNjcm9sbGFibGUgZGF0YSBsaXN0LlxuICAgKi9cbiAgbGlzdChvcHRpb25zPzogSmNMaXN0SW5wdXQgJiB7IGluc3RhbmNlSWQ/OiBJbnN0YW5jZUlkIH0pOiBKY0xpc3RCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5saXN0JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2xpc3QnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjTGlzdEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgbGlzdEl0ZW1TdGFuZGFsb25lKFxuICAgIG9wdGlvbnM/OiBKY0xpc3RJdGVtU3RhbmRhbG9uZU9wdGlvbnMgJiB7IGluc3RhbmNlSWQ/OiBJbnN0YW5jZUlkIH0sXG4gICk6IEpjTGlzdEl0ZW1TdGFuZGFsb25lQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQubGlzdC1pdGVtJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ2xpc3RJdGVtU3RhbmRhbG9uZScgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNMaXN0SXRlbVN0YW5kYWxvbmVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcmFjdGl2ZSBtYXAgd2l0aCBtYXJrZXJzLCBwYXRocywgdXNlciBsb2NhdGlvbi5cbiAgICovXG4gIGxvY2F0aW9uKG9wdGlvbnM/OiBKY0xvY2F0aW9uSW5wdXQpOiBKY0xvY2F0aW9uQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQubG9jYXRpb24nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnbG9jYXRpb24nIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjTG9jYXRpb25CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIG1hcmtlckl0ZW0ob3B0aW9ucz86IEpjTWFya2VySXRlbUlucHV0KTogSmNNYXJrZXJJdGVtQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQubWFya2VyLWl0ZW0nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnbWFya2VySXRlbScgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNNYXJrZXJJdGVtQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgcHJvcG9ydGlvbmFsIGRhdGEgYXMgcGllIHNsaWNlcy5cbiAgICovXG4gIHBpZUNoYXJ0KG9wdGlvbnM/OiBKY1BpZUNoYXJ0SW5wdXQpOiBKY1BpZUNoYXJ0QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQucGllLWNoYXJ0JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3BpZUNoYXJ0JyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY1BpZUNoYXJ0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogVmlzdWFsIHByb2dyZXNzIGluZGljYXRvciB3aXRoIHBlcmNlbnRhZ2UuXG4gICAqL1xuICBwcm9ncmVzc0JhcihvcHRpb25zPzogSmNQcm9ncmVzc0JhcklucHV0KTogSmNQcm9ncmVzc0JhckJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LnByb2dyZXNzLWJhcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdwcm9ncmVzc0JhcicgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNQcm9ncmVzc0JhckJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIFJhdGluZyBpbnB1dCB3aXRoIGN1c3RvbWl6YWJsZSBpY29ucyBhbmQgbWF4aW11bSB2YWx1ZXMuXG4gICAqL1xuICByYXRpbmcob3B0aW9uczogSmNSYXRpbmdJbnB1dCk6IEpjUmF0aW5nQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQucmF0aW5nJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3JhdGluZycgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNSYXRpbmdCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIHN0YWdlKG9wdGlvbnM/OiBKY1N0YWdlSW5wdXQpOiBKY1N0YWdlQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuc3RhZ2UnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnc3RhZ2UnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjU3RhZ2VCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIHN0ZXBwZXIob3B0aW9uczogSmNTdGVwcGVySW5wdXQgPSB7fSk6IEpjU3RlcHBlckJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LnN0ZXBwZXInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnc3RlcHBlcicgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTdGVwcGVyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogU3dpcGVhYmxlIHN0b3J5IGNhcm91c2VsIHdpdGggY29uZGl0aW9uYWwgaXRlbSByZW5kZXJpbmcuXG4gICAqL1xuICBzdG9yeUdyb3VwKG9wdGlvbnM6IEpjU3RvcnlHcm91cElucHV0KTogSmNTdG9yeUdyb3VwQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuc3RvcnktZ3JvdXAnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnc3RvcnktZ3JvdXAnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjU3RvcnlHcm91cEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgc3VtbWFyeURlZmF1bHQob3B0aW9ucz86IEpjU3VtbWFyeURlZmF1bHRJbnB1dE9wdGlvbnMpOiBKY1N1bW1hcnlEZWZhdWx0QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuc3VtbWFyeS1kZWZhdWx0JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3N1bW1hcnktZGVmYXVsdCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTdW1tYXJ5RGVmYXVsdEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgc3VtbWFyeUNhcmQob3B0aW9ucz86IEpjU3VtbWFyeUNhcmRJbnB1dE9wdGlvbnMpOiBKY1N1bW1hcnlDYXJkQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuc3VtbWFyeS1jYXJkJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3N1bW1hcnktY2FyZCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTdW1tYXJ5Q2FyZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgc3VtbWFyeUNvdW50ZXIob3B0aW9ucz86IEpjU3VtbWFyeUNvdW50ZXJJbnB1dE9wdGlvbnMpOiBKY1N1bW1hcnlDb3VudGVyQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuc3VtbWFyeS1jb3VudGVyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3N1bW1hcnktY291bnRlcicgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTdW1tYXJ5Q291bnRlckJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgc3VtbWFyeVByb2dyZXNzKG9wdGlvbnM6IEpjU3VtbWFyeVByb2dyZXNzSW5wdXRPcHRpb25zKTogSmNTdW1tYXJ5UHJvZ3Jlc3NCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5zdW1tYXJ5LXByb2dyZXNzJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3N1bW1hcnktcHJvZ3Jlc3MnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjU3VtbWFyeVByb2dyZXNzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgZm9ybWF0dGVkIHRleHQgd2l0aCBtYXJrZG93biBzdXBwb3J0LlxuICAgKi9cbiAgdGV4dChvcHRpb25zPzogSmNUZXh0SW5wdXQpOiBKY1RleHRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC50ZXh0JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3RleHQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjVGV4dEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgdGl0bGVzKG9wdGlvbnM/OiBKY1RpdGxlc0lucHV0KTogSmNUaXRsZXNCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC50aXRsZXMnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAndGl0bGVzJyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY1RpdGxlc0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgdHJlbmQob3B0aW9uczogSmNUcmVuZElucHV0ID0ge30pOiBKY1RyZW5kQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQudHJlbmQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAndHJlbmQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjVHJlbmRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdmlkZW8gcGxheWVycyB3aXRoIHBsYXliYWNrIGNvbnRyb2xzLlxuICAgKi9cbiAgdmlkZW9QbGF5ZXJPbkppZyhvcHRpb25zPzogSmNWaWRlb1BsYXllck9uSmlnSW5wdXQpOiBKY1ZpZGVvUGxheWVyT25KaWdCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC52aWRlby1wbGF5ZXInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAndmlkZW9QbGF5ZXJPbkppZycgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNWaWRlb1BsYXllck9uSmlnQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogQ29udGFpbmVyIGZvciBjdXN0b20gbGF5b3V0IHdpdGggZmxleCwgc3BhY2luZywgYm9yZGVycywgYW5kIGNoaWxkcmVuLlxuICAgKi9cbiAgdmlldyhvcHRpb25zPzogSmNWaWV3SW5wdXQpOiBKY1ZpZXdCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC52aWV3JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3ZpZXcnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjVmlld0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB3ZWIgdmlldyBjb21wb25lbnRzIGZvciBkaXNwbGF5aW5nIHdlYiBjb250ZW50LlxuICAgKi9cbiAgd2ViVmlld09uRGVmYXVsdChvcHRpb25zOiBKY1dlYlZpZXdPbkRlZmF1bHRJbnB1dCA9IHt9KTogSmNXZWJWaWV3T25EZWZhdWx0QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQud2ViLXZpZXcnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnd2ViVmlld09uRGVmYXVsdCcgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LmApXG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNXZWJWaWV3T25EZWZhdWx0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogRnVsbC1zY3JlZW4gd2ViIGJyb3dzZXIgZXhwZXJpZW5jZS5cbiAgICovXG4gIHdlYlZpZXdPbkZ1bGwob3B0aW9uczogSmNXZWJWaWV3T25GdWxsSW5wdXQgPSB7fSk6IEpjV2ViVmlld09uRnVsbEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LndlYi12aWV3JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHR5cGUgJ3dlYlZpZXdPbkZ1bGwnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjV2ViVmlld09uRnVsbEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBzY3JlZW4gd2lkZ2V0cyB3aXRoIHRhcmdldCBqaWcsIGlucHV0cywgcHJlc3MgYWN0aW9ucy5cbiAgICovXG4gIHdpZGdldChvcHRpb25zPzogSmNKaWdXaWRnZXRJbnB1dCk6IEpjSmlnV2lkZ2V0QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuamlnLXdpZGdldCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICd3aWRnZXQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjSmlnV2lkZ2V0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvLyBGaWVsZCBjb21wb25lbnRzXG4gIGF2YXRhckZpZWxkKG9wdGlvbnM6IEpjQXZhdGFyRmllbGRJbnB1dCk6IEpjQXZhdGFyRmllbGRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5hdmF0YXItZmllbGQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnYXZhdGFyRmllbGQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjQXZhdGFyRmllbGRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5hcnkgdG9nZ2xlIGZvciB0cnVlL2ZhbHNlIHNlbGVjdGlvbnMuXG4gICAqL1xuICBjaGVja2JveChvcHRpb25zOiBKY0NoZWNrYm94SW5wdXQpOiBKY0NoZWNrYm94QnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuY2hlY2tib3gnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnY2hlY2tib3gnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjQ2hlY2tib3hCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIGNob2ljZUZpZWxkKG9wdGlvbnM6IEpjQ2hvaWNlRmllbGRJbnB1dCk6IEpjQ2hvaWNlRmllbGRCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5jaG9pY2UtZmllbGQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgdHlwZSAnY2hvaWNlRmllbGQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjQ2hvaWNlRmllbGRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGRhdGVzIGFuZCB0aW1lcyB3aXRoIGNhbGVuZGFyIGludGVyZmFjZS5cbiAgICovXG4gIGRhdGVQaWNrZXIob3B0aW9uczogSmNEYXRlUGlja2VySW5wdXQpOiBKY0RhdGVQaWNrZXJCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuX2FsbG93ZWQuaW5jbHVkZXMoJ2NvbXBvbmVudC5kYXRlLXBpY2tlcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdkYXRlUGlja2VyJyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0RhdGVQaWNrZXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBWaXN1YWwgc2VwYXJhdG9yIGJldHdlZW4gY29udGVudCBzZWN0aW9ucy5cbiAgICovXG4gIGRpdmlkZXIob3B0aW9ucz86IEpjRGl2aWRlcklucHV0KTogSmNEaXZpZGVyQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9hbGxvd2VkLmluY2x1ZGVzKCdjb21wb25lbnQuZGl2aWRlcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdkaXZpZGVyJyBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQuYClcbiAgICB9XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0RpdmlkZXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgZHJvcGRvd24gZmllbGRzIGZvciBmb3Jtcywgd2l0aCBvcHRpb25zLCBzZWFyY2gsIGFuZCB2YWxpZGF0aW9uLlxuICAgKiBAYWxpYXMgY29tcG9uZW50LmRyb3Bkb3duXG4gICAqL1xuICBkcm9wZG93bihvcHRpb25zOiBKY0Ryb3Bkb3duSW5wdXQpOiBKY0Ryb3Bkb3duQnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0Ryb3Bkb3duQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aW1lIGR1cmF0aW9ucyAoaG91cnMvbWludXRlcykuXG4gICAqL1xuICBkdXJhdGlvblBpY2tlcihvcHRpb25zOiBKY0R1cmF0aW9uUGlja2VySW5wdXQpOiBKY0R1cmF0aW9uUGlja2VyQnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0R1cmF0aW9uUGlja2VyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGVtYWlsIGFkZHJlc3NlcyB3aXRoIGtleWJvYXJkIG9wdGltaXphdGlvbi5cbiAgICovXG4gIGVtYWlsRmllbGQob3B0aW9uczogSmNFbWFpbEZpZWxkSW5wdXQpOiBKY0VtYWlsRmllbGRCdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjRW1haWxGaWVsZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgZmllbGRSb3cob3B0aW9uczogSmNGaWVsZFJvd0lucHV0ID0ge30pOiBKY0ZpZWxkUm93QnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0ZpZWxkUm93QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogQ2FwdHVyZXMgcGhvdG9zL3ZpZGVvcyBmcm9tIGRldmljZS5cbiAgICovXG4gIG1lZGlhRmllbGQob3B0aW9uczogSmNNZWRpYUZpZWxkSW5wdXQpOiBKY01lZGlhRmllbGRCdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjTWVkaWFGaWVsZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRpb24gbWVudSBlbnRyeSB3aXRoIHRpdGxlLCBzdWJ0aXRsZSwgbGVmdCBlbGVtZW50LCBhbmQgcHJlc3MgYWN0aW9uLlxuICAgKi9cbiAgbWVudUl0ZW0ob3B0aW9uczogSmNNZW51SXRlbUlucHV0KTogSmNNZW51SXRlbUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50Lm1lbnUtaXRlbScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdtZW51LWl0ZW0nIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjTWVudUl0ZW1CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0cyBudW1lcmljIGlucHV0IHdpdGggZm9ybWF0dGluZyBhbmQgdmFsaWRhdGlvbi5cbiAgICovXG4gIG51bWJlckZpZWxkKG9wdGlvbnM6IEpjTnVtYmVyRmllbGRJbnB1dCk6IEpjTnVtYmVyRmllbGRCdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjTnVtYmVyRmllbGRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fb25Db21wb25lbnRDcmVhdGVkKGJ1aWxkZXIpXG4gICAgcmV0dXJuIGJ1aWxkZXJcbiAgfVxuXG4gIHNlY3Rpb25PbkRlZmF1bHQob3B0aW9uczogSmNTZWN0aW9uT25EZWZhdWx0SW5wdXQgPSB7fSk6IEpjU2VjdGlvbk9uRGVmYXVsdEJ1aWxkZXIge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTZWN0aW9uT25EZWZhdWx0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICBzZWdtZW50ZWRDb250cm9sKG9wdGlvbnM/OiBKY1NlZ21lbnRlZENvbnRyb2xJbnB1dCk6IEpjU2VnbWVudGVkQ29udHJvbEJ1aWxkZXIge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTZWdtZW50ZWRDb250cm9sQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogQ2FwdHVyZXMgaGFuZC1kcmF3biBzaWduYXR1cmVzLlxuICAgKi9cbiAgc2lnbmF0dXJlRmllbGQob3B0aW9uczogSmNTaWduYXR1cmVGaWVsZElucHV0KTogSmNTaWduYXR1cmVGaWVsZEJ1aWxkZXIge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNTaWduYXR1cmVGaWVsZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgc2xpZGVyKG9wdGlvbnM6IEpjU2xpZGVySW5wdXQpOiBKY1NsaWRlckJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5fYWxsb3dlZC5pbmNsdWRlcygnY29tcG9uZW50LnNsaWRlcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB0eXBlICdzbGlkZXInIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC5gKVxuICAgIH1cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IEpjU2xpZGVyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgdGV4dCBpbnB1dCB3aXRoIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcuXG4gICAqL1xuICB0ZXh0RmllbGQob3B0aW9uczogSmNUZXh0RmllbGRJbnB1dCk6IEpjVGV4dEZpZWxkQnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY1RleHRGaWVsZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLy8gQWRkaXRpb25hbCBjb21wb25lbnRzXG4gIGNoYXRNZXNzYWdlKG9wdGlvbnM/OiBKY0NoYXRNZXNzYWdlSW5wdXQpOiBKY0NoYXRNZXNzYWdlQnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBKY0NoYXRNZXNzYWdlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX29uQ29tcG9uZW50Q3JlYXRlZChidWlsZGVyKVxuICAgIHJldHVybiBidWlsZGVyXG4gIH1cblxuICBpbnRlcmFjdGl2ZUltYWdlSXRlbShvcHRpb25zPzogSmNJbnRlcmFjdGl2ZUltYWdlSXRlbUlucHV0KTogSmNJbnRlcmFjdGl2ZUltYWdlSXRlbUJ1aWxkZXIge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNJbnRlcmFjdGl2ZUltYWdlSXRlbUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciBsaXN0IGRhdGEgaXRlbXMgd2l0aCB0aXRsZSwgc3VidGl0bGUsIGVsZW1lbnRzLlxuICAgKi9cbiAgbGlzdEl0ZW0ob3B0aW9ucz86IEpjTGlzdEl0ZW1PcHRpb25zICYgeyBpbnN0YW5jZUlkPzogSW5zdGFuY2VJZCB9KTogSmNMaXN0SXRlbUJ1aWxkZXIge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgSmNMaXN0SXRlbUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9vbkNvbXBvbmVudENyZWF0ZWQoYnVpbGRlcilcbiAgICByZXR1cm4gYnVpbGRlclxuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ0FST1VTRUwgRkFDVE9SWSAtIENvbnRleHQtc3BlY2lmaWMgZmFjdG9yeSBmb3IgY2Fyb3VzZWwgY29tcG9uZW50c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogTWFwcyBjb21wb25lbnQgdHlwZXMgdG8gSmNDYXJvdXNlbEZhY3RvcnkgbWV0aG9kcy5cbiAqL1xuZXhwb3J0IGNvbnN0IENBUk9VU0VMX0ZBQ1RPUllfTUVUSE9EUyA9IHtcbiAgLi4uQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9ELFxuICAvLyBPdmVycmlkZSB3aXRoIGNhcm91c2VsLXNwZWNpZmljIGFsaWFzZXNcbiAgW0NPTVBPTkVOVF9UWVBFLkNBUkRdOiAnY2FyZCcsXG4gIFtDT01QT05FTlRfVFlQRS5JTUFHRV06ICdpbWFnZScsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogRGVyaXZlcyBmYWN0b3J5IG1ldGhvZHMgZm9yIEpjQ2Fyb3VzZWxGYWN0b3J5LlxuICovXG5leHBvcnQgdHlwZSBDYXJvdXNlbEZhY3RvcnlNZXRob2RzRm9yPFQgZXh0ZW5kcyByZWFkb25seSBDb21wb25lbnRUeXBlW10+ID1cbiAgVFtudW1iZXJdIGV4dGVuZHMga2V5b2YgdHlwZW9mIENBUk9VU0VMX0ZBQ1RPUllfTUVUSE9EU1xuICAgID8gUGljazxKY0Nhcm91c2VsRmFjdG9yeSwgKHR5cGVvZiBDQVJPVVNFTF9GQUNUT1JZX01FVEhPRFMpW1RbbnVtYmVyXV0+XG4gICAgOiBuZXZlclxuXG4vKipcbiAqIERlcml2ZXMgdW5pb24gb2YgYnVpbGRlciB0eXBlcyBmcm9tIGFsbG93ZWQgY29tcG9uZW50IHR5cGVzIGZvciBjYXJvdXNlbCBjb250ZXh0LlxuICovXG5leHBvcnQgdHlwZSBDYXJvdXNlbEJ1aWxkZXJVbmlvbkZyb21BbGxvd2VkVHlwZXM8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBDYXJvdXNlbEZhY3RvcnlNZXRob2RzRm9yPFQ+W2tleW9mIENhcm91c2VsRmFjdG9yeU1ldGhvZHNGb3I8VD5dIGV4dGVuZHMgKFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkgPT4gaW5mZXIgUlxuICAgID8gUlxuICAgIDogbmV2ZXJcblxuLyoqXG4gKiBDb250ZXh0LXNwZWNpZmljIGZhY3RvcnkgZm9yIGNhcm91c2VsIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBKY0Nhcm91c2VsRmFjdG9yeTxcbiAgVCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXSA9IHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXSxcbj4gZXh0ZW5kcyBKY0J1aWxkZXJGYWN0b3J5PFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgYWxsb3dlZDogVCxcbiAgICBvbkNvbXBvbmVudENyZWF0ZWQ6IChjb21wb25lbnQ6IENhcm91c2VsQnVpbGRlclVuaW9uRnJvbUFsbG93ZWRUeXBlczxUPikgPT4gdm9pZCxcbiAgKSB7XG4gICAgLy8gT3ZlcnJpZGUgdG8gdXNlIGNhcm91c2VsLXNwZWNpZmljIGJ1aWxkZXIgdW5pb24gdHlwZVxuICAgIHN1cGVyKGFsbG93ZWQsIG9uQ29tcG9uZW50Q3JlYXRlZCBhcyAoY29tcG9uZW50OiBCYXNlQnVpbGRlclVuaW9uRnJvbUFsbG93ZWRUeXBlczxUPikgPT4gdm9pZClcbiAgfVxuICAvKipcbiAgICogR3JvdXBzIGNvbnRlbnQgaW4gZmxleGlibGUgbGF5b3V0cyB3aXRoIHN0eWxpbmcuXG4gICAqIEBzZWUgY2FyZE9uRGVmYXVsdFxuICAgKi9cbiAgY2FyZChcbiAgICBvcHRpb25zPzogUGFyYW1ldGVyczxKY0J1aWxkZXJGYWN0b3J5WydjYXJkT25EZWZhdWx0J10+WzBdLFxuICApOiBSZXR1cm5UeXBlPEpjQnVpbGRlckZhY3RvcnlbJ2NhcmRPbkRlZmF1bHQnXT4ge1xuICAgIHJldHVybiBzdXBlci5jYXJkT25EZWZhdWx0KG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgaW1hZ2VzIGluIGNhcm91c2VsIHNsaWRlcy5cbiAgICogQHNlZSBpbWFnZU9uQ2Fyb3VzZWxcbiAgICovXG4gIGltYWdlKFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEpjQnVpbGRlckZhY3RvcnlbJ2ltYWdlT25DYXJvdXNlbCddPlswXSxcbiAgKTogUmV0dXJuVHlwZTxKY0J1aWxkZXJGYWN0b3J5WydpbWFnZU9uQ2Fyb3VzZWwnXT4ge1xuICAgIHJldHVybiBzdXBlci5pbWFnZU9uQ2Fyb3VzZWwob3B0aW9ucylcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEZVTEwgU0NSRUVOIEZBQ1RPUlkgLSBDb250ZXh0LXNwZWNpZmljIGZhY3RvcnkgZm9yIGZ1bGwgc2NyZWVuIGNvbXBvbmVudHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1hcHMgY29tcG9uZW50IHR5cGVzIHRvIEpjRnVsbFNjcmVlbkZhY3RvcnkgbWV0aG9kcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEZVTExfU0NSRUVOX0ZBQ1RPUllfTUVUSE9EUyA9IHtcbiAgLi4uQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9ELFxuICAvLyBPdmVycmlkZSB3aXRoIGZ1bGwgc2NyZWVuLXNwZWNpZmljIGFsaWFzZXNcbiAgW0NPTVBPTkVOVF9UWVBFLldFQl9WSUVXXTogJ3dlYlZpZXcnLFxufSBhcyBjb25zdFxuXG4vKipcbiAqIERlcml2ZXMgZmFjdG9yeSBtZXRob2RzIGZvciBKY0Z1bGxTY3JlZW5GYWN0b3J5LlxuICovXG5leHBvcnQgdHlwZSBGdWxsU2NyZWVuRmFjdG9yeU1ldGhvZHNGb3I8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBUW251bWJlcl0gZXh0ZW5kcyBrZXlvZiB0eXBlb2YgRlVMTF9TQ1JFRU5fRkFDVE9SWV9NRVRIT0RTXG4gICAgPyBQaWNrPEpjRnVsbFNjcmVlbkZhY3RvcnksICh0eXBlb2YgRlVMTF9TQ1JFRU5fRkFDVE9SWV9NRVRIT0RTKVtUW251bWJlcl1dPlxuICAgIDogbmV2ZXJcblxuLyoqXG4gKiBEZXJpdmVzIHVuaW9uIG9mIGJ1aWxkZXIgdHlwZXMgZnJvbSBhbGxvd2VkIGNvbXBvbmVudCB0eXBlcyBmb3IgZnVsbC1zY3JlZW4gY29udGV4dC5cbiAqL1xuZXhwb3J0IHR5cGUgRnVsbFNjcmVlbkJ1aWxkZXJVbmlvbkZyb21BbGxvd2VkVHlwZXM8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBGdWxsU2NyZWVuRmFjdG9yeU1ldGhvZHNGb3I8VD5ba2V5b2YgRnVsbFNjcmVlbkZhY3RvcnlNZXRob2RzRm9yPFQ+XSBleHRlbmRzIChcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApID0+IGluZmVyIFJcbiAgICA/IFJcbiAgICA6IG5ldmVyXG5cbi8qKlxuICogQ29udGV4dC1zcGVjaWZpYyBmYWN0b3J5IGZvciBmdWxsIHNjcmVlbiBjb21wb25lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgSmNGdWxsU2NyZWVuRmFjdG9yeTxcbiAgVCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXSA9IHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXSxcbj4gZXh0ZW5kcyBKY0J1aWxkZXJGYWN0b3J5PFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgYWxsb3dlZDogVCxcbiAgICBvbkNvbXBvbmVudENyZWF0ZWQ6IChjb21wb25lbnQ6IEZ1bGxTY3JlZW5CdWlsZGVyVW5pb25Gcm9tQWxsb3dlZFR5cGVzPFQ+KSA9PiB2b2lkLFxuICApIHtcbiAgICAvLyBPdmVycmlkZSB0byB1c2UgZnVsbC1zY3JlZW4tc3BlY2lmaWMgYnVpbGRlciB1bmlvbiB0eXBlXG4gICAgc3VwZXIoYWxsb3dlZCwgb25Db21wb25lbnRDcmVhdGVkIGFzIChjb21wb25lbnQ6IEJhc2VCdWlsZGVyVW5pb25Gcm9tQWxsb3dlZFR5cGVzPFQ+KSA9PiB2b2lkKVxuICB9XG4gIC8qKlxuICAgKiBFbWJlZHMgd2ViIGNvbnRlbnQgaW4gZnVsbCBzY3JlZW4gbW9kZS5cbiAgICogQHNlZSB3ZWJWaWV3T25GdWxsXG4gICAqL1xuICB3ZWJWaWV3KFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEpjQnVpbGRlckZhY3RvcnlbJ3dlYlZpZXdPbkZ1bGwnXT5bMF0sXG4gICk6IFJldHVyblR5cGU8SmNCdWlsZGVyRmFjdG9yeVsnd2ViVmlld09uRnVsbCddPiB7XG4gICAgcmV0dXJuIHN1cGVyLndlYlZpZXdPbkZ1bGwob3B0aW9ucylcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIERFRkFVTFQgU0NSRUVOIEZBQ1RPUlkgLSBDb250ZXh0LXNwZWNpZmljIGZhY3RvcnkgZm9yIGRlZmF1bHQgc2NyZWVuIGNvbXBvbmVudHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1hcHMgY29tcG9uZW50IHR5cGVzIHRvIEpjRGVmYXVsdFNjcmVlbkZhY3RvcnkgbWV0aG9kcy5cbiAqIEV4dGVuZHMgdGhlIGJhc2UgZmFjdG9yeSBtZXRob2RzIHdpdGggY29udGV4dC1zcGVjaWZpYyBhbGlhc2VzLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JFRU5fRkFDVE9SWV9NRVRIT0RTID0ge1xuICAuLi5DT01QT05FTlRfVE9fRkFDVE9SWV9NRVRIT0QsXG4gIC8vIE92ZXJyaWRlIHdpdGggYWxpYXMgbWV0aG9kcyBmb3IgY2xlYW5lciBuYW1lc1xuICBbQ09NUE9ORU5UX1RZUEUuQ0FSRF06ICdjYXJkJyxcbiAgW0NPTVBPTkVOVF9UWVBFLklNQUdFXTogJ2ltYWdlJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkxJU1RfSVRFTV06ICdsaXN0SXRlbScsXG4gIFtDT01QT05FTlRfVFlQRS5TRUNUSU9OXTogJ3NlY3Rpb24nLFxuICBbQ09NUE9ORU5UX1RZUEUuU0VHTUVOVEVEX0NPTlRST0xdOiAnc2VnbWVudGVkJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlZJREVPX1BMQVlFUl06ICd2aWRlb1BsYXllcicsXG4gIFtDT01QT05FTlRfVFlQRS5XRUJfVklFV106ICd3ZWJWaWV3Jyxcbn0gYXMgY29uc3RcblxuLyoqXG4gKiBEZXJpdmVzIGZhY3RvcnkgbWV0aG9kcyBmb3IgSmNEZWZhdWx0U2NyZWVuRmFjdG9yeSB3aGljaCBpbmNsdWRlcyBhbGlhc2VzLlxuICogVXNhZ2U6IERlZmF1bHRTY3JlZW5GYWN0b3J5TWV0aG9kc0Zvcjx0eXBlb2YgQUxMT1dFRF9UWVBFUz5cbiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdFNjcmVlbkZhY3RvcnlNZXRob2RzRm9yPFQgZXh0ZW5kcyByZWFkb25seSBDb21wb25lbnRUeXBlW10+ID1cbiAgVFtudW1iZXJdIGV4dGVuZHMga2V5b2YgdHlwZW9mIERFRkFVTFRfU0NSRUVOX0ZBQ1RPUllfTUVUSE9EU1xuICAgID8gUGljazxKY0RlZmF1bHRTY3JlZW5GYWN0b3J5LCAodHlwZW9mIERFRkFVTFRfU0NSRUVOX0ZBQ1RPUllfTUVUSE9EUylbVFtudW1iZXJdXT5cbiAgICA6IG5ldmVyXG5cbi8qKlxuICogRGVyaXZlcyB1bmlvbiBvZiBidWlsZGVyIHR5cGVzIGZyb20gYWxsb3dlZCBjb21wb25lbnQgdHlwZXMgZm9yIGRlZmF1bHQgc2NyZWVuIGNvbnRleHQuXG4gKiBNYXBzIHRvIERlZmF1bHRTY3JlZW5GYWN0b3J5IGFsaWFzIG1ldGhvZHMgKGUuZy4sIGltYWdlKCksIGNhcmQoKSwgd2ViVmlldygpKS5cbiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdFNjcmVlbkJ1aWxkZXJVbmlvbkZyb21BbGxvd2VkVHlwZXM8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBEZWZhdWx0U2NyZWVuRmFjdG9yeU1ldGhvZHNGb3I8VD5ba2V5b2YgRGVmYXVsdFNjcmVlbkZhY3RvcnlNZXRob2RzRm9yPFQ+XSBleHRlbmRzIChcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApID0+IGluZmVyIFJcbiAgICA/IFJcbiAgICA6IG5ldmVyXG5cbi8qKlxuICogQ29udGV4dC1zcGVjaWZpYyBmYWN0b3J5IGZvciBkZWZhdWx0IHNjcmVlbiBjb21wb25lbnRzLlxuICogR2VuZXJpYyB0eXBlIFQgYXV0b21hdGljYWxseSBpbmZlcnMgY29tcG9uZW50IHR5cGVzIGZyb20gQUxMT1dFRF9UWVBFUy5cbiAqL1xuZXhwb3J0IGNsYXNzIEpjRGVmYXVsdFNjcmVlbkZhY3Rvcnk8XG4gIFQgZXh0ZW5kcyByZWFkb25seSBDb21wb25lbnRUeXBlW10gPSByZWFkb25seSBDb21wb25lbnRUeXBlW10sXG4+IGV4dGVuZHMgSmNCdWlsZGVyRmFjdG9yeTxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGFsbG93ZWQ6IFQsXG4gICAgb25Db21wb25lbnRDcmVhdGVkOiAoY29tcG9uZW50OiBEZWZhdWx0U2NyZWVuQnVpbGRlclVuaW9uRnJvbUFsbG93ZWRUeXBlczxUPikgPT4gdm9pZCxcbiAgKSB7XG4gICAgLy8gT3ZlcnJpZGUgdG8gdXNlIGRlZmF1bHQtc2NyZWVuLXNwZWNpZmljIGJ1aWxkZXIgdW5pb24gdHlwZVxuICAgIHN1cGVyKGFsbG93ZWQsIG9uQ29tcG9uZW50Q3JlYXRlZCBhcyAoY29tcG9uZW50OiBCYXNlQnVpbGRlclVuaW9uRnJvbUFsbG93ZWRUeXBlczxUPikgPT4gdm9pZClcbiAgfVxuICAvKipcbiAgICogR3JvdXBzIGNvbnRlbnQgaW4gZmxleGlibGUgbGF5b3V0cyB3aXRoIHN0eWxpbmcuXG4gICAqIEBzZWUgY2FyZE9uRGVmYXVsdFxuICAgKi9cbiAgY2FyZChcbiAgICBvcHRpb25zPzogUGFyYW1ldGVyczxKY0J1aWxkZXJGYWN0b3J5WydjYXJkT25EZWZhdWx0J10+WzBdLFxuICApOiBSZXR1cm5UeXBlPEpjQnVpbGRlckZhY3RvcnlbJ2NhcmRPbkRlZmF1bHQnXT4ge1xuICAgIHJldHVybiBzdXBlci5jYXJkT25EZWZhdWx0KG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgaW1hZ2VzIHdpdGggc2l6aW5nIGFuZCBhY3Rpb25zLlxuICAgKiBAc2VlIGltYWdlT25EZWZhdWx0XG4gICAqL1xuICBpbWFnZShcbiAgICBvcHRpb25zPzogUGFyYW1ldGVyczxKY0J1aWxkZXJGYWN0b3J5WydpbWFnZU9uRGVmYXVsdCddPlswXSxcbiAgKTogUmV0dXJuVHlwZTxKY0J1aWxkZXJGYWN0b3J5WydpbWFnZU9uRGVmYXVsdCddPiB7XG4gICAgcmV0dXJuIHN1cGVyLmltYWdlT25EZWZhdWx0KG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogRW1iZWRzIHdlYiBjb250ZW50IGlubGluZS5cbiAgICogQHNlZSB3ZWJWaWV3T25EZWZhdWx0XG4gICAqL1xuICB3ZWJWaWV3KFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEpjQnVpbGRlckZhY3RvcnlbJ3dlYlZpZXdPbkRlZmF1bHQnXT5bMF0sXG4gICk6IFJldHVyblR5cGU8SmNCdWlsZGVyRmFjdG9yeVsnd2ViVmlld09uRGVmYXVsdCddPiB7XG4gICAgcmV0dXJuIHN1cGVyLndlYlZpZXdPbkRlZmF1bHQob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGF5cyB2aWRlbyBjb250ZW50LlxuICAgKiBAc2VlIHZpZGVvUGxheWVyT25KaWdcbiAgICovXG4gIHZpZGVvUGxheWVyKFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEpjQnVpbGRlckZhY3RvcnlbJ3ZpZGVvUGxheWVyT25KaWcnXT5bMF0sXG4gICk6IFJldHVyblR5cGU8SmNCdWlsZGVyRmFjdG9yeVsndmlkZW9QbGF5ZXJPbkppZyddPiB7XG4gICAgcmV0dXJuIHN1cGVyLnZpZGVvUGxheWVyT25KaWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cHMgcmVsYXRlZCBmb3JtIGZpZWxkcy5cbiAgICogQHNlZSBzZWN0aW9uT25EZWZhdWx0XG4gICAqL1xuICBzZWN0aW9uKFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEpjQnVpbGRlckZhY3RvcnlbJ3NlY3Rpb25PbkRlZmF1bHQnXT5bMF0sXG4gICk6IFJldHVyblR5cGU8SmNCdWlsZGVyRmFjdG9yeVsnc2VjdGlvbk9uRGVmYXVsdCddPiB7XG4gICAgcmV0dXJuIHN1cGVyLnNlY3Rpb25PbkRlZmF1bHQob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFuZGFsb25lIGxpc3QgaXRlbSBvdXRzaWRlIGxpc3RzLlxuICAgKiBAc2VlIGxpc3RJdGVtU3RhbmRhbG9uZVxuICAgKi9cbiAgb3ZlcnJpZGUgbGlzdEl0ZW0oXG4gICAgb3B0aW9ucz86IFBhcmFtZXRlcnM8SmNCdWlsZGVyRmFjdG9yeVsnbGlzdEl0ZW1TdGFuZGFsb25lJ10+WzBdLFxuICApOiBSZXR1cm5UeXBlPEpjQnVpbGRlckZhY3RvcnlbJ2xpc3RJdGVtU3RhbmRhbG9uZSddPiB7XG4gICAgcmV0dXJuIHN1cGVyLmxpc3RJdGVtU3RhbmRhbG9uZShvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIFRhYi1saWtlIGNvbnRyb2wgZm9yIG9wdGlvbiBzZWxlY3Rpb24uXG4gICAqIEBzZWUgc2VnbWVudGVkQ29udHJvbFxuICAgKi9cbiAgc2VnbWVudGVkKFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEpjQnVpbGRlckZhY3RvcnlbJ3NlZ21lbnRlZENvbnRyb2wnXT5bMF0sXG4gICk6IFJldHVyblR5cGU8SmNCdWlsZGVyRmFjdG9yeVsnc2VnbWVudGVkQ29udHJvbCddPiB7XG4gICAgcmV0dXJuIHN1cGVyLnNlZ21lbnRlZENvbnRyb2wob3B0aW9ucylcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFNVTU1BUlkgRkFDVE9SWSAtIENvbnRleHQtc3BlY2lmaWMgZmFjdG9yeSBmb3Igc3VtbWFyeSBjb21wb25lbnRzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBNYXBzIGNvbXBvbmVudCB0eXBlcyB0byBKY1N1bW1hcnlGYWN0b3J5IG1ldGhvZHMuXG4gKiBQcm92aWRlcyBhbGlhc2VzIGZvciBzdW1tYXJ5LXNwZWNpZmljIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBTVU1NQVJZX0ZBQ1RPUllfTUVUSE9EUyA9IHtcbiAgLy8gLi4uQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9ELFxuICAvLyBTdW1tYXJ5LXNwZWNpZmljIGFsaWFzZXNcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfREVGQVVMVF06ICdkZWZhdWx0JyxcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfQ0FSRF06ICdjYXJkJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfQ09VTlRFUl06ICdjb3VudGVyJyxcbn0gYXMgY29uc3RcblxuLyoqXG4gKiBEZXJpdmVzIGZhY3RvcnkgbWV0aG9kcyBmb3IgSmNTdW1tYXJ5RmFjdG9yeS5cbiAqL1xuZXhwb3J0IHR5cGUgU3VtbWFyeUZhY3RvcnlNZXRob2RzRm9yPFQgZXh0ZW5kcyByZWFkb25seSBDb21wb25lbnRUeXBlW10+ID1cbiAgVFtudW1iZXJdIGV4dGVuZHMga2V5b2YgdHlwZW9mIFNVTU1BUllfRkFDVE9SWV9NRVRIT0RTXG4gICAgPyBQaWNrPEpjU3VtbWFyeUZhY3RvcnksICh0eXBlb2YgU1VNTUFSWV9GQUNUT1JZX01FVEhPRFMpW1RbbnVtYmVyXV0+XG4gICAgOiBuZXZlclxuXG4vKipcbiAqIERlcml2ZXMgdW5pb24gb2YgYnVpbGRlciB0eXBlcyBmcm9tIGFsbG93ZWQgY29tcG9uZW50IHR5cGVzIGZvciBzdW1tYXJ5IGNvbnRleHQuXG4gKi9cbmV4cG9ydCB0eXBlIFN1bW1hcnlCdWlsZGVyVW5pb25Gcm9tQWxsb3dlZFR5cGVzPFQgZXh0ZW5kcyByZWFkb25seSBDb21wb25lbnRUeXBlW10+ID1cbiAgU3VtbWFyeUZhY3RvcnlNZXRob2RzRm9yPFQ+W2tleW9mIFN1bW1hcnlGYWN0b3J5TWV0aG9kc0ZvcjxUPl0gZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IGluZmVyIFJcbiAgICA/IFJcbiAgICA6IG5ldmVyXG5cbi8qKlxuICogQ29udGV4dC1zcGVjaWZpYyBmYWN0b3J5IGZvciBzdW1tYXJ5IGNvbXBvbmVudHMuXG4gKiBQcm92aWRlcyBjbGVhbmVyIEFQSSB3aXRoIGNvbnRleHQtYXBwcm9wcmlhdGUgbWV0aG9kIG5hbWVzLlxuICovXG5leHBvcnQgY2xhc3MgSmNTdW1tYXJ5RmFjdG9yeTxcbiAgVCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXSA9IHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXSxcbj4gZXh0ZW5kcyBKY0J1aWxkZXJGYWN0b3J5PFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgYWxsb3dlZDogVCxcbiAgICBvbkNvbXBvbmVudENyZWF0ZWQ6IChjb21wb25lbnQ6IFN1bW1hcnlCdWlsZGVyVW5pb25Gcm9tQWxsb3dlZFR5cGVzPFQ+KSA9PiB2b2lkLFxuICApIHtcbiAgICAvLyBPdmVycmlkZSB0byB1c2Ugc3VtbWFyeS1zcGVjaWZpYyBidWlsZGVyIHVuaW9uIHR5cGVcbiAgICBzdXBlcihhbGxvd2VkLCBvbkNvbXBvbmVudENyZWF0ZWQgYXMgKGNvbXBvbmVudDogQmFzZUJ1aWxkZXJVbmlvbkZyb21BbGxvd2VkVHlwZXM8VD4pID0+IHZvaWQpXG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBzdW1tYXJ5IHdpdGggb3B0aW9uYWwgaWNvbi5cbiAgICogQHNlZSBzdW1tYXJ5RGVmYXVsdFxuICAgKi9cbiAgZGVmYXVsdChvcHRpb25zPzogSmNTdW1tYXJ5RGVmYXVsdElucHV0T3B0aW9ucyk6IEpjU3VtbWFyeURlZmF1bHRCdWlsZGVyIHtcbiAgICByZXR1cm4gc3VwZXIuc3VtbWFyeURlZmF1bHQob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJ0IHN1bW1hcnkgd2l0aCB2YWx1ZSBhbmQgZGVzY3JpcHRpb24uXG4gICAqIEBzZWUgc3VtbWFyeUNhcmRcbiAgICovXG4gIGNhcmQob3B0aW9ucz86IEpjU3VtbWFyeUNhcmRJbnB1dE9wdGlvbnMpOiBKY1N1bW1hcnlDYXJkQnVpbGRlciB7XG4gICAgcmV0dXJuIHN1cGVyLnN1bW1hcnlDYXJkKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQ291bnRlciBzdW1tYXJ5IHdpdGggbnVtZXJpYyB2YWx1ZS5cbiAgICogQHNlZSBzdW1tYXJ5Q291bnRlclxuICAgKi9cbiAgY291bnRlcihvcHRpb25zPzogSmNTdW1tYXJ5Q291bnRlcklucHV0T3B0aW9ucyk6IEpjU3VtbWFyeUNvdW50ZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gc3VwZXIuc3VtbWFyeUNvdW50ZXIob3B0aW9ucylcbiAgfVxufVxuIl19
|