@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,757 @@
|
|
|
1
|
+
import { JcAmountControlBuilder } from './jc.amount-control.js';
|
|
2
|
+
import { JcAvatarBuilder } from './jc.avatar.js';
|
|
3
|
+
import { JcAvatarFieldBuilder } from './jc.avatar-field.js';
|
|
4
|
+
import { JcBannerBuilder } from './jc.banner.js';
|
|
5
|
+
import { JcBarChartBuilder } from './jc.bar-chart.js';
|
|
6
|
+
import { JcButtonBuilder } from './jc.button.js';
|
|
7
|
+
import { JcCardOnDefaultBuilder } from './jc.card.on-default.js';
|
|
8
|
+
import { JcCarouselBuilder } from './jc.carousel.js';
|
|
9
|
+
import { JcChatBuilder } from './jc.chat.js';
|
|
10
|
+
import { JcChatMessageBuilder } from './jc.chat-message.js';
|
|
11
|
+
import { JcCheckboxBuilder } from './jc.checkbox.js';
|
|
12
|
+
import { JcChoiceFieldBuilder } from './jc.choice-field.js';
|
|
13
|
+
import { JcChoiceFieldItemBuilder } from './jc.choice-field-item.js';
|
|
14
|
+
import { JcCountDownBuilder } from './jc.count-down.js';
|
|
15
|
+
import { JcCountUpBuilder } from './jc.count-up.js';
|
|
16
|
+
import { JcCustomComponentInteropBuilder, } from './jc.custom-component.interop.js';
|
|
17
|
+
import { JcDatePickerBuilder } from './jc.date-picker.js';
|
|
18
|
+
import { JcDividerBuilder } from './jc.divider.js';
|
|
19
|
+
import { JcDropdownBuilder } from './jc.dropdown.js';
|
|
20
|
+
import { JcDurationPickerBuilder } from './jc.duration-picker.js';
|
|
21
|
+
import { JcEmailFieldBuilder } from './jc.email-field.js';
|
|
22
|
+
import { JcEntityBuilder } from './jc.entity.js';
|
|
23
|
+
import { JcEntityFieldBuilder } from './jc.entity-field.js';
|
|
24
|
+
import { JcEventBuilder } from './jc.event.js';
|
|
25
|
+
import { JcExpanderBuilder } from './jc.expander.js';
|
|
26
|
+
import { JcFieldRowBuilder } from './jc.field-row.js';
|
|
27
|
+
import { JcEntityFieldRowBuilder } from './jc.field-row.entity.js';
|
|
28
|
+
import { JcFormBuilder } from './jc.form.js';
|
|
29
|
+
import { JcGalleryItemBuilder } from './jc.gallery-item.js';
|
|
30
|
+
import { JcGridBuilder } from './jc.grid.js';
|
|
31
|
+
import { JcGridItemBuilder } from './jc.grid-item.js';
|
|
32
|
+
import { JcIconBuilder } from './jc.icon.js';
|
|
33
|
+
import { JcImageOnCarouselBuilder } from './jc.image.on-carousel.js';
|
|
34
|
+
import { JcJigBuilder } from './jc.jig.js';
|
|
35
|
+
import { JcImageOnDefaultBuilder } from './jc.image.on-default.js';
|
|
36
|
+
import { JcInteractiveImageBuilder } from './jc.interactive-image.js';
|
|
37
|
+
import { JcInteractiveImageItemBuilder, } from './jc.interactive-image.item.js';
|
|
38
|
+
import { JcJigHeaderBuilder } from './jc.jig-header.js';
|
|
39
|
+
import { JcJigWidgetBuilder } from './jc.jig-widget.js';
|
|
40
|
+
import { JcLineChartBuilder } from './jc.line-chart.js';
|
|
41
|
+
import { JcListBuilder } from './jc.list.js';
|
|
42
|
+
import { JcListItemBuilder } from './jc.list-item.js';
|
|
43
|
+
import { JcListItemStandaloneBuilder, } from './jc.list-item.standalone.js';
|
|
44
|
+
import { JcLocationBuilder } from './jc.location.js';
|
|
45
|
+
import { JcMarkerItemBuilder } from './jc.marker-item.js';
|
|
46
|
+
import { JcMediaFieldBuilder } from './jc.media-field.js';
|
|
47
|
+
import { JcMenuItemBuilder } from './jc.menu-item.js';
|
|
48
|
+
import { JcNumberFieldBuilder } from './jc.number-field.js';
|
|
49
|
+
import { JcPieChartBuilder } from './jc.pie-chart.js';
|
|
50
|
+
import { JcProgressBarBuilder } from './jc.progress-bar.js';
|
|
51
|
+
import { JcRatingBuilder } from './jc.rating.js';
|
|
52
|
+
import { JcSectionOnDefaultBuilder } from './jc.section.on-default.js';
|
|
53
|
+
import { JcSegmentedControlBuilder } from './jc.segmented-control.js';
|
|
54
|
+
import { JcSignatureFieldBuilder } from './jc.signature-field.js';
|
|
55
|
+
import { JcSliderBuilder } from './jc.slider.js';
|
|
56
|
+
import { JcStageBuilder } from './jc.stage.js';
|
|
57
|
+
import { JcStepperBuilder } from './jc.stepper.js';
|
|
58
|
+
import { JcStoryGroupBuilder } from './jc.story-group.js';
|
|
59
|
+
import { JcSummaryCardBuilder } from './jc.summary.card.js';
|
|
60
|
+
import { JcSummaryCounterBuilder } from './jc.summary.counter.js';
|
|
61
|
+
import { JcSummaryDefaultBuilder } from './jc.summary.default.js';
|
|
62
|
+
import { JcSummaryProgressBuilder, } from './jc.summary.progress.js';
|
|
63
|
+
import { JcTextBuilder } from './jc.text.js';
|
|
64
|
+
import { JcTextFieldBuilder } from './jc.text-field.js';
|
|
65
|
+
import { JcTitlesBuilder } from './jc.titles.js';
|
|
66
|
+
import { JcTrendBuilder } from './jc.trend.js';
|
|
67
|
+
import { COMPONENT_TYPE } from './jc.types.js';
|
|
68
|
+
import { JcViewBuilder } from './jc.view.js';
|
|
69
|
+
import { JcVideoPlayerOnJigBuilder, } from './jc.video-player.on-jig.js';
|
|
70
|
+
import { JcWebViewOnDefaultBuilder, } from './jc.web-view.on-default.js';
|
|
71
|
+
import { JcWebViewOnFullBuilder } from './jc.web-view.on-full.js';
|
|
72
|
+
export const COMPONENT_TO_FACTORY_METHOD = {
|
|
73
|
+
[COMPONENT_TYPE.AMOUNT_CONTROL]: 'amountControl',
|
|
74
|
+
[COMPONENT_TYPE.AVATAR]: 'avatar',
|
|
75
|
+
[COMPONENT_TYPE.AVATAR_FIELD]: 'avatarField',
|
|
76
|
+
[COMPONENT_TYPE.BANNER]: 'banner',
|
|
77
|
+
[COMPONENT_TYPE.BAR_CHART]: 'barChart',
|
|
78
|
+
[COMPONENT_TYPE.BUTTON]: 'button',
|
|
79
|
+
[COMPONENT_TYPE.CARD]: 'cardOnDefault',
|
|
80
|
+
[COMPONENT_TYPE.CAROUSEL]: 'carousel',
|
|
81
|
+
[COMPONENT_TYPE.CHAT]: 'chat',
|
|
82
|
+
[COMPONENT_TYPE.CHAT_MESSAGE]: 'chatMessage',
|
|
83
|
+
[COMPONENT_TYPE.CHECKBOX]: 'checkbox',
|
|
84
|
+
[COMPONENT_TYPE.CHOICE_FIELD]: 'choiceField',
|
|
85
|
+
[COMPONENT_TYPE.CHOICE_FIELD_ITEM]: 'choiceFieldItem',
|
|
86
|
+
[COMPONENT_TYPE.COUNTDOWN]: 'countDown',
|
|
87
|
+
[COMPONENT_TYPE.COUNT_UP]: 'countUp',
|
|
88
|
+
[COMPONENT_TYPE.CUSTOM_COMPONENT]: 'customComponent',
|
|
89
|
+
[COMPONENT_TYPE.DATE_PICKER]: 'datePicker',
|
|
90
|
+
[COMPONENT_TYPE.DIVIDER]: 'divider',
|
|
91
|
+
[COMPONENT_TYPE.DROPDOWN]: 'dropdown',
|
|
92
|
+
[COMPONENT_TYPE.DURATION_PICKER]: 'durationPicker',
|
|
93
|
+
[COMPONENT_TYPE.EMAIL_FIELD]: 'emailField',
|
|
94
|
+
[COMPONENT_TYPE.ENTITY]: 'entity',
|
|
95
|
+
[COMPONENT_TYPE.ENTITY_FIELD]: 'entityField',
|
|
96
|
+
[COMPONENT_TYPE.EVENT]: 'event',
|
|
97
|
+
[COMPONENT_TYPE.EXPANDER]: 'expander',
|
|
98
|
+
[COMPONENT_TYPE.FIELD_ROW]: 'fieldRow',
|
|
99
|
+
[COMPONENT_TYPE.FORM]: 'form',
|
|
100
|
+
[COMPONENT_TYPE.GALLERY_ITEM]: 'galleryItem',
|
|
101
|
+
[COMPONENT_TYPE.GRID]: 'grid',
|
|
102
|
+
[COMPONENT_TYPE.GRID_ITEM]: 'gridItem',
|
|
103
|
+
[COMPONENT_TYPE.ICON]: 'icon',
|
|
104
|
+
[COMPONENT_TYPE.IMAGE]: 'imageOnDefault',
|
|
105
|
+
[COMPONENT_TYPE.INTERACTIVE_IMAGE]: 'interactiveImage',
|
|
106
|
+
[COMPONENT_TYPE.INTERACTIVE_IMAGE_ITEM]: 'interactiveImageItem',
|
|
107
|
+
[COMPONENT_TYPE.JIG]: 'jig',
|
|
108
|
+
[COMPONENT_TYPE.JIG_HEADER]: 'jigHeader',
|
|
109
|
+
[COMPONENT_TYPE.JIG_WIDGET]: 'widget',
|
|
110
|
+
[COMPONENT_TYPE.LINE_CHART]: 'lineChart',
|
|
111
|
+
[COMPONENT_TYPE.LIST]: 'list',
|
|
112
|
+
[COMPONENT_TYPE.LIST_ITEM]: 'listItem',
|
|
113
|
+
[COMPONENT_TYPE.LOCATION]: 'location',
|
|
114
|
+
[COMPONENT_TYPE.MARKER_ITEM]: 'markerItem',
|
|
115
|
+
[COMPONENT_TYPE.MEDIA_FIELD]: 'mediaField',
|
|
116
|
+
[COMPONENT_TYPE.MENU_ITEM]: 'menuItem',
|
|
117
|
+
[COMPONENT_TYPE.NUMBER_FIELD]: 'numberField',
|
|
118
|
+
[COMPONENT_TYPE.PIE_CHART]: 'pieChart',
|
|
119
|
+
[COMPONENT_TYPE.PROGRESS_BAR]: 'progressBar',
|
|
120
|
+
[COMPONENT_TYPE.RATING]: 'rating',
|
|
121
|
+
[COMPONENT_TYPE.SECTION]: 'sectionOnDefault',
|
|
122
|
+
[COMPONENT_TYPE.SEGMENTED_CONTROL]: 'segmentedControl',
|
|
123
|
+
[COMPONENT_TYPE.SIGNATURE_FIELD]: 'signatureField',
|
|
124
|
+
[COMPONENT_TYPE.SLIDER]: 'slider',
|
|
125
|
+
[COMPONENT_TYPE.STAGE]: 'stage',
|
|
126
|
+
[COMPONENT_TYPE.STEPPER]: 'stepper',
|
|
127
|
+
[COMPONENT_TYPE.STORY_GROUP]: 'storyGroup',
|
|
128
|
+
[COMPONENT_TYPE.SUMMARY]: 'summaryDefault', // Output-only type; not directly constructable
|
|
129
|
+
[COMPONENT_TYPE.SUMMARY_DEFAULT]: 'summaryDefault',
|
|
130
|
+
[COMPONENT_TYPE.SUMMARY_CARD]: 'summaryCard',
|
|
131
|
+
[COMPONENT_TYPE.SUMMARY_COUNTER]: 'summaryCounter',
|
|
132
|
+
[COMPONENT_TYPE.SUMMARY_PROGRESS]: 'summaryProgress',
|
|
133
|
+
[COMPONENT_TYPE.TEXT]: 'text',
|
|
134
|
+
[COMPONENT_TYPE.TEXT_FIELD]: 'textField',
|
|
135
|
+
[COMPONENT_TYPE.TITLES]: 'titles',
|
|
136
|
+
[COMPONENT_TYPE.TREND]: 'trend',
|
|
137
|
+
[COMPONENT_TYPE.VIDEO_PLAYER]: 'videoPlayerOnJig',
|
|
138
|
+
[COMPONENT_TYPE.VIEW]: 'view',
|
|
139
|
+
[COMPONENT_TYPE.WEB_VIEW]: 'webViewOnDefault',
|
|
140
|
+
[COMPONENT_TYPE.DROPDOWN_ITEM]: 'choiceFieldItem',
|
|
141
|
+
[COMPONENT_TYPE.PRODUCT_ITEM]: 'gridItem',
|
|
142
|
+
[COMPONENT_TYPE.STEP]: 'stage',
|
|
143
|
+
[COMPONENT_TYPE.TAB_BUTTON]: 'segmentedControl',
|
|
144
|
+
};
|
|
145
|
+
export class JcBuilderFactory {
|
|
146
|
+
_allowed;
|
|
147
|
+
_onComponentCreated;
|
|
148
|
+
constructor(allowed, onComponentCreated) {
|
|
149
|
+
this._allowed = allowed;
|
|
150
|
+
this._onComponentCreated = onComponentCreated;
|
|
151
|
+
}
|
|
152
|
+
amountControl(options) {
|
|
153
|
+
if (!this._allowed.includes('component.amount-control')) {
|
|
154
|
+
throw new Error(`Component type 'amount-control' is not allowed in this context.`);
|
|
155
|
+
}
|
|
156
|
+
const builder = new JcAmountControlBuilder(options);
|
|
157
|
+
this._onComponentCreated(builder);
|
|
158
|
+
return builder;
|
|
159
|
+
}
|
|
160
|
+
avatar(options) {
|
|
161
|
+
if (!this._allowed.includes('component.avatar')) {
|
|
162
|
+
throw new Error(`Component type 'avatar' is not allowed in this context.`);
|
|
163
|
+
}
|
|
164
|
+
const builder = new JcAvatarBuilder(options);
|
|
165
|
+
this._onComponentCreated(builder);
|
|
166
|
+
return builder;
|
|
167
|
+
}
|
|
168
|
+
banner(options) {
|
|
169
|
+
if (!this._allowed.includes('component.banner')) {
|
|
170
|
+
throw new Error(`Component type 'banner' is not allowed in this context.`);
|
|
171
|
+
}
|
|
172
|
+
const builder = new JcBannerBuilder(options);
|
|
173
|
+
this._onComponentCreated(builder);
|
|
174
|
+
return builder;
|
|
175
|
+
}
|
|
176
|
+
button(options) {
|
|
177
|
+
if (!this._allowed.includes('component.button')) {
|
|
178
|
+
throw new Error(`Component type 'button' is not allowed in this context.`);
|
|
179
|
+
}
|
|
180
|
+
const builder = new JcButtonBuilder(options);
|
|
181
|
+
this._onComponentCreated(builder);
|
|
182
|
+
return builder;
|
|
183
|
+
}
|
|
184
|
+
barChart(options) {
|
|
185
|
+
if (!this._allowed.includes('component.bar-chart')) {
|
|
186
|
+
throw new Error(`Component type 'bar-chart' is not allowed in this context.`);
|
|
187
|
+
}
|
|
188
|
+
const builder = new JcBarChartBuilder(options);
|
|
189
|
+
this._onComponentCreated(builder);
|
|
190
|
+
return builder;
|
|
191
|
+
}
|
|
192
|
+
cardOnDefault(options = {}) {
|
|
193
|
+
if (!this._allowed.includes('component.card')) {
|
|
194
|
+
throw new Error(`Component type 'cardOnDefault' is not allowed in this context.`);
|
|
195
|
+
}
|
|
196
|
+
const builder = new JcCardOnDefaultBuilder(options);
|
|
197
|
+
this._onComponentCreated(builder);
|
|
198
|
+
return builder;
|
|
199
|
+
}
|
|
200
|
+
carousel(options = {}) {
|
|
201
|
+
if (!this._allowed.includes('component.carousel')) {
|
|
202
|
+
throw new Error(`Component type 'carousel' is not allowed in this context.`);
|
|
203
|
+
}
|
|
204
|
+
const builder = new JcCarouselBuilder(options);
|
|
205
|
+
this._onComponentCreated(builder);
|
|
206
|
+
return builder;
|
|
207
|
+
}
|
|
208
|
+
chat(options) {
|
|
209
|
+
if (!this._allowed.includes('component.chat')) {
|
|
210
|
+
throw new Error(`Component type 'chat' is not allowed in this context.`);
|
|
211
|
+
}
|
|
212
|
+
const builder = new JcChatBuilder(options);
|
|
213
|
+
this._onComponentCreated(builder);
|
|
214
|
+
return builder;
|
|
215
|
+
}
|
|
216
|
+
choiceFieldItem(options) {
|
|
217
|
+
if (!this._allowed.includes('component.choice-field-item')) {
|
|
218
|
+
throw new Error(`Component type 'choiceFieldItem' is not allowed in this context.`);
|
|
219
|
+
}
|
|
220
|
+
const builder = new JcChoiceFieldItemBuilder(options);
|
|
221
|
+
this._onComponentCreated(builder);
|
|
222
|
+
return builder;
|
|
223
|
+
}
|
|
224
|
+
countDown(options) {
|
|
225
|
+
if (!this._allowed.includes('component.countdown')) {
|
|
226
|
+
throw new Error(`Component type 'countDown' is not allowed in this context.`);
|
|
227
|
+
}
|
|
228
|
+
const builder = new JcCountDownBuilder(options);
|
|
229
|
+
this._onComponentCreated(builder);
|
|
230
|
+
return builder;
|
|
231
|
+
}
|
|
232
|
+
countUp(options) {
|
|
233
|
+
if (!this._allowed.includes('component.count-up')) {
|
|
234
|
+
throw new Error(`Component type 'countUp' is not allowed in this context.`);
|
|
235
|
+
}
|
|
236
|
+
const builder = new JcCountUpBuilder(options);
|
|
237
|
+
this._onComponentCreated(builder);
|
|
238
|
+
return builder;
|
|
239
|
+
}
|
|
240
|
+
customComponent(options) {
|
|
241
|
+
if (!this._allowed.includes('component.custom-component')) {
|
|
242
|
+
throw new Error(`Component type 'customComponent' is not allowed in this context.`);
|
|
243
|
+
}
|
|
244
|
+
const builder = JcCustomComponentInteropBuilder.from(options);
|
|
245
|
+
this._onComponentCreated(builder);
|
|
246
|
+
return builder;
|
|
247
|
+
}
|
|
248
|
+
entity(options = {}) {
|
|
249
|
+
if (!this._allowed.includes('component.entity')) {
|
|
250
|
+
throw new Error(`Component type 'entity' is not allowed in this context.`);
|
|
251
|
+
}
|
|
252
|
+
const builder = new JcEntityBuilder(options);
|
|
253
|
+
this._onComponentCreated(builder);
|
|
254
|
+
return builder;
|
|
255
|
+
}
|
|
256
|
+
entityField(options) {
|
|
257
|
+
if (!this._allowed.includes('component.entity-field')) {
|
|
258
|
+
throw new Error(`Component type 'entityField' is not allowed in this context.`);
|
|
259
|
+
}
|
|
260
|
+
const builder = new JcEntityFieldBuilder(options);
|
|
261
|
+
this._onComponentCreated(builder);
|
|
262
|
+
return builder;
|
|
263
|
+
}
|
|
264
|
+
entityFieldRow(options) {
|
|
265
|
+
if (!this._allowed.includes('component.field-row')) {
|
|
266
|
+
throw new Error(`Component type 'entityFieldRow' is not allowed in this context.`);
|
|
267
|
+
}
|
|
268
|
+
const builder = new JcEntityFieldRowBuilder(options);
|
|
269
|
+
this._onComponentCreated(builder);
|
|
270
|
+
return builder;
|
|
271
|
+
}
|
|
272
|
+
event(options = {}) {
|
|
273
|
+
if (!this._allowed.includes('component.event')) {
|
|
274
|
+
throw new Error(`Component type 'event' is not allowed in this context.`);
|
|
275
|
+
}
|
|
276
|
+
const builder = new JcEventBuilder(options);
|
|
277
|
+
this._onComponentCreated(builder);
|
|
278
|
+
return builder;
|
|
279
|
+
}
|
|
280
|
+
expander(options = {}) {
|
|
281
|
+
if (!this._allowed.includes('component.expander')) {
|
|
282
|
+
throw new Error(`Component type 'expander' is not allowed in this context.`);
|
|
283
|
+
}
|
|
284
|
+
const builder = new JcExpanderBuilder(options);
|
|
285
|
+
this._onComponentCreated(builder);
|
|
286
|
+
return builder;
|
|
287
|
+
}
|
|
288
|
+
form(options = {}) {
|
|
289
|
+
if (!this._allowed.includes('component.form')) {
|
|
290
|
+
throw new Error(`Component type 'form' is not allowed in this context.`);
|
|
291
|
+
}
|
|
292
|
+
const builder = new JcFormBuilder(options);
|
|
293
|
+
this._onComponentCreated(builder);
|
|
294
|
+
return builder;
|
|
295
|
+
}
|
|
296
|
+
galleryItem(options) {
|
|
297
|
+
if (!this._allowed.includes('component.gallery-item')) {
|
|
298
|
+
throw new Error(`Component type 'component.gallery-item' is not allowed in this context.`);
|
|
299
|
+
}
|
|
300
|
+
const builder = new JcGalleryItemBuilder(options);
|
|
301
|
+
this._onComponentCreated(builder);
|
|
302
|
+
return builder;
|
|
303
|
+
}
|
|
304
|
+
grid(options) {
|
|
305
|
+
if (!this._allowed.includes('component.grid')) {
|
|
306
|
+
throw new Error(`Component type 'grid' is not allowed in this context.`);
|
|
307
|
+
}
|
|
308
|
+
const builder = new JcGridBuilder(options);
|
|
309
|
+
this._onComponentCreated(builder);
|
|
310
|
+
return builder;
|
|
311
|
+
}
|
|
312
|
+
gridItem(options) {
|
|
313
|
+
if (!this._allowed.includes('component.grid-item')) {
|
|
314
|
+
throw new Error(`Component type 'gridItem' is not allowed in this context.`);
|
|
315
|
+
}
|
|
316
|
+
const builder = new JcGridItemBuilder(options);
|
|
317
|
+
this._onComponentCreated(builder);
|
|
318
|
+
return builder;
|
|
319
|
+
}
|
|
320
|
+
icon(options) {
|
|
321
|
+
if (!this._allowed.includes('component.icon')) {
|
|
322
|
+
throw new Error(`Component type 'icon' is not allowed in this context.`);
|
|
323
|
+
}
|
|
324
|
+
const builder = new JcIconBuilder(options);
|
|
325
|
+
this._onComponentCreated(builder);
|
|
326
|
+
return builder;
|
|
327
|
+
}
|
|
328
|
+
imageOnCarousel(options) {
|
|
329
|
+
if (!this._allowed.includes('component.image')) {
|
|
330
|
+
throw new Error(`Component type 'imageOnCarousel' is not allowed in this context.`);
|
|
331
|
+
}
|
|
332
|
+
const builder = new JcImageOnCarouselBuilder(options);
|
|
333
|
+
this._onComponentCreated(builder);
|
|
334
|
+
return builder;
|
|
335
|
+
}
|
|
336
|
+
imageOnDefault(options) {
|
|
337
|
+
if (!this._allowed.includes('component.image')) {
|
|
338
|
+
throw new Error(`Component type 'imageOnDefault' is not allowed in this context.`);
|
|
339
|
+
}
|
|
340
|
+
const builder = new JcImageOnDefaultBuilder(options);
|
|
341
|
+
this._onComponentCreated(builder);
|
|
342
|
+
return builder;
|
|
343
|
+
}
|
|
344
|
+
interactiveImage(options) {
|
|
345
|
+
if (!this._allowed.includes('component.interactive-image')) {
|
|
346
|
+
throw new Error(`Component type 'interactiveImage' is not allowed in this context.`);
|
|
347
|
+
}
|
|
348
|
+
const builder = new JcInteractiveImageBuilder(options);
|
|
349
|
+
this._onComponentCreated(builder);
|
|
350
|
+
return builder;
|
|
351
|
+
}
|
|
352
|
+
jig(options) {
|
|
353
|
+
if (!this._allowed.includes('component.jig')) {
|
|
354
|
+
throw new Error(`Component type 'jig' is not allowed in this context.`);
|
|
355
|
+
}
|
|
356
|
+
const builder = new JcJigBuilder(options);
|
|
357
|
+
this._onComponentCreated(builder);
|
|
358
|
+
return builder;
|
|
359
|
+
}
|
|
360
|
+
jigHeader(options = {}) {
|
|
361
|
+
if (!this._allowed.includes('component.jig-header')) {
|
|
362
|
+
throw new Error(`Component type 'jigHeader' is not allowed in this context.`);
|
|
363
|
+
}
|
|
364
|
+
const builder = new JcJigHeaderBuilder(options);
|
|
365
|
+
this._onComponentCreated(builder);
|
|
366
|
+
return builder;
|
|
367
|
+
}
|
|
368
|
+
lineChart(options) {
|
|
369
|
+
if (!this._allowed.includes('component.line-chart')) {
|
|
370
|
+
throw new Error(`Component type 'lineChart' is not allowed in this context.`);
|
|
371
|
+
}
|
|
372
|
+
const builder = new JcLineChartBuilder(options);
|
|
373
|
+
this._onComponentCreated(builder);
|
|
374
|
+
return builder;
|
|
375
|
+
}
|
|
376
|
+
list(options) {
|
|
377
|
+
if (!this._allowed.includes('component.list')) {
|
|
378
|
+
throw new Error(`Component type 'list' is not allowed in this context.`);
|
|
379
|
+
}
|
|
380
|
+
const builder = new JcListBuilder(options);
|
|
381
|
+
this._onComponentCreated(builder);
|
|
382
|
+
return builder;
|
|
383
|
+
}
|
|
384
|
+
listItemStandalone(options) {
|
|
385
|
+
if (!this._allowed.includes('component.list-item')) {
|
|
386
|
+
throw new Error(`Component type 'listItemStandalone' is not allowed in this context.`);
|
|
387
|
+
}
|
|
388
|
+
const builder = new JcListItemStandaloneBuilder(options);
|
|
389
|
+
this._onComponentCreated(builder);
|
|
390
|
+
return builder;
|
|
391
|
+
}
|
|
392
|
+
location(options) {
|
|
393
|
+
if (!this._allowed.includes('component.location')) {
|
|
394
|
+
throw new Error(`Component type 'location' is not allowed in this context.`);
|
|
395
|
+
}
|
|
396
|
+
const builder = new JcLocationBuilder(options);
|
|
397
|
+
this._onComponentCreated(builder);
|
|
398
|
+
return builder;
|
|
399
|
+
}
|
|
400
|
+
markerItem(options) {
|
|
401
|
+
if (!this._allowed.includes('component.marker-item')) {
|
|
402
|
+
throw new Error(`Component type 'markerItem' is not allowed in this context.`);
|
|
403
|
+
}
|
|
404
|
+
const builder = new JcMarkerItemBuilder(options);
|
|
405
|
+
this._onComponentCreated(builder);
|
|
406
|
+
return builder;
|
|
407
|
+
}
|
|
408
|
+
pieChart(options) {
|
|
409
|
+
if (!this._allowed.includes('component.pie-chart')) {
|
|
410
|
+
throw new Error(`Component type 'pieChart' is not allowed in this context.`);
|
|
411
|
+
}
|
|
412
|
+
const builder = new JcPieChartBuilder(options);
|
|
413
|
+
this._onComponentCreated(builder);
|
|
414
|
+
return builder;
|
|
415
|
+
}
|
|
416
|
+
progressBar(options) {
|
|
417
|
+
if (!this._allowed.includes('component.progress-bar')) {
|
|
418
|
+
throw new Error(`Component type 'progressBar' is not allowed in this context.`);
|
|
419
|
+
}
|
|
420
|
+
const builder = new JcProgressBarBuilder(options);
|
|
421
|
+
this._onComponentCreated(builder);
|
|
422
|
+
return builder;
|
|
423
|
+
}
|
|
424
|
+
rating(options) {
|
|
425
|
+
if (!this._allowed.includes('component.rating')) {
|
|
426
|
+
throw new Error(`Component type 'rating' is not allowed in this context.`);
|
|
427
|
+
}
|
|
428
|
+
const builder = new JcRatingBuilder(options);
|
|
429
|
+
this._onComponentCreated(builder);
|
|
430
|
+
return builder;
|
|
431
|
+
}
|
|
432
|
+
stage(options) {
|
|
433
|
+
if (!this._allowed.includes('component.stage')) {
|
|
434
|
+
throw new Error(`Component type 'stage' is not allowed in this context.`);
|
|
435
|
+
}
|
|
436
|
+
const builder = new JcStageBuilder(options);
|
|
437
|
+
this._onComponentCreated(builder);
|
|
438
|
+
return builder;
|
|
439
|
+
}
|
|
440
|
+
stepper(options = {}) {
|
|
441
|
+
if (!this._allowed.includes('component.stepper')) {
|
|
442
|
+
throw new Error(`Component type 'stepper' is not allowed in this context.`);
|
|
443
|
+
}
|
|
444
|
+
const builder = new JcStepperBuilder(options);
|
|
445
|
+
this._onComponentCreated(builder);
|
|
446
|
+
return builder;
|
|
447
|
+
}
|
|
448
|
+
storyGroup(options) {
|
|
449
|
+
if (!this._allowed.includes('component.story-group')) {
|
|
450
|
+
throw new Error(`Component type 'story-group' is not allowed in this context.`);
|
|
451
|
+
}
|
|
452
|
+
const builder = new JcStoryGroupBuilder(options);
|
|
453
|
+
this._onComponentCreated(builder);
|
|
454
|
+
return builder;
|
|
455
|
+
}
|
|
456
|
+
summaryDefault(options) {
|
|
457
|
+
if (!this._allowed.includes('component.summary-default')) {
|
|
458
|
+
throw new Error(`Component type 'summary-default' is not allowed in this context.`);
|
|
459
|
+
}
|
|
460
|
+
const builder = new JcSummaryDefaultBuilder(options);
|
|
461
|
+
this._onComponentCreated(builder);
|
|
462
|
+
return builder;
|
|
463
|
+
}
|
|
464
|
+
summaryCard(options) {
|
|
465
|
+
if (!this._allowed.includes('component.summary-card')) {
|
|
466
|
+
throw new Error(`Component type 'summary-card' is not allowed in this context.`);
|
|
467
|
+
}
|
|
468
|
+
const builder = new JcSummaryCardBuilder(options);
|
|
469
|
+
this._onComponentCreated(builder);
|
|
470
|
+
return builder;
|
|
471
|
+
}
|
|
472
|
+
summaryCounter(options) {
|
|
473
|
+
if (!this._allowed.includes('component.summary-counter')) {
|
|
474
|
+
throw new Error(`Component type 'summary-counter' is not allowed in this context.`);
|
|
475
|
+
}
|
|
476
|
+
const builder = new JcSummaryCounterBuilder(options);
|
|
477
|
+
this._onComponentCreated(builder);
|
|
478
|
+
return builder;
|
|
479
|
+
}
|
|
480
|
+
summaryProgress(options) {
|
|
481
|
+
if (!this._allowed.includes('component.summary-progress')) {
|
|
482
|
+
throw new Error(`Component type 'summary-progress' is not allowed in this context.`);
|
|
483
|
+
}
|
|
484
|
+
const builder = new JcSummaryProgressBuilder(options);
|
|
485
|
+
this._onComponentCreated(builder);
|
|
486
|
+
return builder;
|
|
487
|
+
}
|
|
488
|
+
text(options) {
|
|
489
|
+
if (!this._allowed.includes('component.text')) {
|
|
490
|
+
throw new Error(`Component type 'text' is not allowed in this context.`);
|
|
491
|
+
}
|
|
492
|
+
const builder = new JcTextBuilder(options);
|
|
493
|
+
this._onComponentCreated(builder);
|
|
494
|
+
return builder;
|
|
495
|
+
}
|
|
496
|
+
titles(options) {
|
|
497
|
+
if (!this._allowed.includes('component.titles')) {
|
|
498
|
+
throw new Error(`Component type 'titles' is not allowed in this context.`);
|
|
499
|
+
}
|
|
500
|
+
const builder = new JcTitlesBuilder(options);
|
|
501
|
+
this._onComponentCreated(builder);
|
|
502
|
+
return builder;
|
|
503
|
+
}
|
|
504
|
+
trend(options = {}) {
|
|
505
|
+
if (!this._allowed.includes('component.trend')) {
|
|
506
|
+
throw new Error(`Component type 'trend' is not allowed in this context.`);
|
|
507
|
+
}
|
|
508
|
+
const builder = new JcTrendBuilder(options);
|
|
509
|
+
this._onComponentCreated(builder);
|
|
510
|
+
return builder;
|
|
511
|
+
}
|
|
512
|
+
videoPlayerOnJig(options) {
|
|
513
|
+
if (!this._allowed.includes('component.video-player')) {
|
|
514
|
+
throw new Error(`Component type 'videoPlayerOnJig' is not allowed in this context.`);
|
|
515
|
+
}
|
|
516
|
+
const builder = new JcVideoPlayerOnJigBuilder(options);
|
|
517
|
+
this._onComponentCreated(builder);
|
|
518
|
+
return builder;
|
|
519
|
+
}
|
|
520
|
+
view(options) {
|
|
521
|
+
if (!this._allowed.includes('component.view')) {
|
|
522
|
+
throw new Error(`Component type 'view' is not allowed in this context.`);
|
|
523
|
+
}
|
|
524
|
+
const builder = new JcViewBuilder(options);
|
|
525
|
+
this._onComponentCreated(builder);
|
|
526
|
+
return builder;
|
|
527
|
+
}
|
|
528
|
+
webViewOnDefault(options = {}) {
|
|
529
|
+
if (!this._allowed.includes('component.web-view')) {
|
|
530
|
+
throw new Error(`Component type 'webViewOnDefault' is not allowed in this context.`);
|
|
531
|
+
}
|
|
532
|
+
const builder = new JcWebViewOnDefaultBuilder(options);
|
|
533
|
+
this._onComponentCreated(builder);
|
|
534
|
+
return builder;
|
|
535
|
+
}
|
|
536
|
+
webViewOnFull(options = {}) {
|
|
537
|
+
if (!this._allowed.includes('component.web-view')) {
|
|
538
|
+
throw new Error(`Component type 'webViewOnFull' is not allowed in this context.`);
|
|
539
|
+
}
|
|
540
|
+
const builder = new JcWebViewOnFullBuilder(options);
|
|
541
|
+
this._onComponentCreated(builder);
|
|
542
|
+
return builder;
|
|
543
|
+
}
|
|
544
|
+
widget(options) {
|
|
545
|
+
if (!this._allowed.includes('component.jig-widget')) {
|
|
546
|
+
throw new Error(`Component type 'widget' is not allowed in this context.`);
|
|
547
|
+
}
|
|
548
|
+
const builder = new JcJigWidgetBuilder(options);
|
|
549
|
+
this._onComponentCreated(builder);
|
|
550
|
+
return builder;
|
|
551
|
+
}
|
|
552
|
+
avatarField(options) {
|
|
553
|
+
if (!this._allowed.includes('component.avatar-field')) {
|
|
554
|
+
throw new Error(`Component type 'avatarField' is not allowed in this context.`);
|
|
555
|
+
}
|
|
556
|
+
const builder = new JcAvatarFieldBuilder(options);
|
|
557
|
+
this._onComponentCreated(builder);
|
|
558
|
+
return builder;
|
|
559
|
+
}
|
|
560
|
+
checkbox(options) {
|
|
561
|
+
if (!this._allowed.includes('component.checkbox')) {
|
|
562
|
+
throw new Error(`Component type 'checkbox' is not allowed in this context.`);
|
|
563
|
+
}
|
|
564
|
+
const builder = new JcCheckboxBuilder(options);
|
|
565
|
+
this._onComponentCreated(builder);
|
|
566
|
+
return builder;
|
|
567
|
+
}
|
|
568
|
+
choiceField(options) {
|
|
569
|
+
if (!this._allowed.includes('component.choice-field')) {
|
|
570
|
+
throw new Error(`Component type 'choiceField' is not allowed in this context.`);
|
|
571
|
+
}
|
|
572
|
+
const builder = new JcChoiceFieldBuilder(options);
|
|
573
|
+
this._onComponentCreated(builder);
|
|
574
|
+
return builder;
|
|
575
|
+
}
|
|
576
|
+
datePicker(options) {
|
|
577
|
+
if (!this._allowed.includes('component.date-picker')) {
|
|
578
|
+
throw new Error(`Component type 'datePicker' is not allowed in this context.`);
|
|
579
|
+
}
|
|
580
|
+
const builder = new JcDatePickerBuilder(options);
|
|
581
|
+
this._onComponentCreated(builder);
|
|
582
|
+
return builder;
|
|
583
|
+
}
|
|
584
|
+
divider(options) {
|
|
585
|
+
if (!this._allowed.includes('component.divider')) {
|
|
586
|
+
throw new Error(`Component type 'divider' is not allowed in this context.`);
|
|
587
|
+
}
|
|
588
|
+
const builder = new JcDividerBuilder(options);
|
|
589
|
+
this._onComponentCreated(builder);
|
|
590
|
+
return builder;
|
|
591
|
+
}
|
|
592
|
+
dropdown(options) {
|
|
593
|
+
const builder = new JcDropdownBuilder(options);
|
|
594
|
+
this._onComponentCreated(builder);
|
|
595
|
+
return builder;
|
|
596
|
+
}
|
|
597
|
+
durationPicker(options) {
|
|
598
|
+
const builder = new JcDurationPickerBuilder(options);
|
|
599
|
+
this._onComponentCreated(builder);
|
|
600
|
+
return builder;
|
|
601
|
+
}
|
|
602
|
+
emailField(options) {
|
|
603
|
+
const builder = new JcEmailFieldBuilder(options);
|
|
604
|
+
this._onComponentCreated(builder);
|
|
605
|
+
return builder;
|
|
606
|
+
}
|
|
607
|
+
fieldRow(options = {}) {
|
|
608
|
+
const builder = new JcFieldRowBuilder(options);
|
|
609
|
+
this._onComponentCreated(builder);
|
|
610
|
+
return builder;
|
|
611
|
+
}
|
|
612
|
+
mediaField(options) {
|
|
613
|
+
const builder = new JcMediaFieldBuilder(options);
|
|
614
|
+
this._onComponentCreated(builder);
|
|
615
|
+
return builder;
|
|
616
|
+
}
|
|
617
|
+
menuItem(options) {
|
|
618
|
+
if (!this._allowed.includes('component.menu-item')) {
|
|
619
|
+
throw new Error(`Component type 'menu-item' is not allowed in this context.`);
|
|
620
|
+
}
|
|
621
|
+
const builder = new JcMenuItemBuilder(options);
|
|
622
|
+
this._onComponentCreated(builder);
|
|
623
|
+
return builder;
|
|
624
|
+
}
|
|
625
|
+
numberField(options) {
|
|
626
|
+
const builder = new JcNumberFieldBuilder(options);
|
|
627
|
+
this._onComponentCreated(builder);
|
|
628
|
+
return builder;
|
|
629
|
+
}
|
|
630
|
+
sectionOnDefault(options = {}) {
|
|
631
|
+
const builder = new JcSectionOnDefaultBuilder(options);
|
|
632
|
+
this._onComponentCreated(builder);
|
|
633
|
+
return builder;
|
|
634
|
+
}
|
|
635
|
+
segmentedControl(options) {
|
|
636
|
+
const builder = new JcSegmentedControlBuilder(options);
|
|
637
|
+
this._onComponentCreated(builder);
|
|
638
|
+
return builder;
|
|
639
|
+
}
|
|
640
|
+
signatureField(options) {
|
|
641
|
+
const builder = new JcSignatureFieldBuilder(options);
|
|
642
|
+
this._onComponentCreated(builder);
|
|
643
|
+
return builder;
|
|
644
|
+
}
|
|
645
|
+
slider(options) {
|
|
646
|
+
if (!this._allowed.includes('component.slider')) {
|
|
647
|
+
throw new Error(`Component type 'slider' is not allowed in this context.`);
|
|
648
|
+
}
|
|
649
|
+
const builder = new JcSliderBuilder(options);
|
|
650
|
+
this._onComponentCreated(builder);
|
|
651
|
+
return builder;
|
|
652
|
+
}
|
|
653
|
+
textField(options) {
|
|
654
|
+
const builder = new JcTextFieldBuilder(options);
|
|
655
|
+
this._onComponentCreated(builder);
|
|
656
|
+
return builder;
|
|
657
|
+
}
|
|
658
|
+
chatMessage(options) {
|
|
659
|
+
const builder = new JcChatMessageBuilder(options);
|
|
660
|
+
this._onComponentCreated(builder);
|
|
661
|
+
return builder;
|
|
662
|
+
}
|
|
663
|
+
interactiveImageItem(options) {
|
|
664
|
+
const builder = new JcInteractiveImageItemBuilder(options);
|
|
665
|
+
this._onComponentCreated(builder);
|
|
666
|
+
return builder;
|
|
667
|
+
}
|
|
668
|
+
listItem(options) {
|
|
669
|
+
const builder = new JcListItemBuilder(options);
|
|
670
|
+
this._onComponentCreated(builder);
|
|
671
|
+
return builder;
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
export const CAROUSEL_FACTORY_METHODS = {
|
|
675
|
+
...COMPONENT_TO_FACTORY_METHOD,
|
|
676
|
+
[COMPONENT_TYPE.CARD]: 'card',
|
|
677
|
+
[COMPONENT_TYPE.IMAGE]: 'image',
|
|
678
|
+
};
|
|
679
|
+
export class JcCarouselFactory extends JcBuilderFactory {
|
|
680
|
+
constructor(allowed, onComponentCreated) {
|
|
681
|
+
super(allowed, onComponentCreated);
|
|
682
|
+
}
|
|
683
|
+
card(options) {
|
|
684
|
+
return super.cardOnDefault(options);
|
|
685
|
+
}
|
|
686
|
+
image(options) {
|
|
687
|
+
return super.imageOnCarousel(options);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
export const FULL_SCREEN_FACTORY_METHODS = {
|
|
691
|
+
...COMPONENT_TO_FACTORY_METHOD,
|
|
692
|
+
[COMPONENT_TYPE.WEB_VIEW]: 'webView',
|
|
693
|
+
};
|
|
694
|
+
export class JcFullScreenFactory extends JcBuilderFactory {
|
|
695
|
+
constructor(allowed, onComponentCreated) {
|
|
696
|
+
super(allowed, onComponentCreated);
|
|
697
|
+
}
|
|
698
|
+
webView(options) {
|
|
699
|
+
return super.webViewOnFull(options);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
export const DEFAULT_SCREEN_FACTORY_METHODS = {
|
|
703
|
+
...COMPONENT_TO_FACTORY_METHOD,
|
|
704
|
+
[COMPONENT_TYPE.CARD]: 'card',
|
|
705
|
+
[COMPONENT_TYPE.IMAGE]: 'image',
|
|
706
|
+
[COMPONENT_TYPE.LIST_ITEM]: 'listItem',
|
|
707
|
+
[COMPONENT_TYPE.SECTION]: 'section',
|
|
708
|
+
[COMPONENT_TYPE.SEGMENTED_CONTROL]: 'segmented',
|
|
709
|
+
[COMPONENT_TYPE.VIDEO_PLAYER]: 'videoPlayer',
|
|
710
|
+
[COMPONENT_TYPE.WEB_VIEW]: 'webView',
|
|
711
|
+
};
|
|
712
|
+
export class JcDefaultScreenFactory extends JcBuilderFactory {
|
|
713
|
+
constructor(allowed, onComponentCreated) {
|
|
714
|
+
super(allowed, onComponentCreated);
|
|
715
|
+
}
|
|
716
|
+
card(options) {
|
|
717
|
+
return super.cardOnDefault(options);
|
|
718
|
+
}
|
|
719
|
+
image(options) {
|
|
720
|
+
return super.imageOnDefault(options);
|
|
721
|
+
}
|
|
722
|
+
webView(options) {
|
|
723
|
+
return super.webViewOnDefault(options);
|
|
724
|
+
}
|
|
725
|
+
videoPlayer(options) {
|
|
726
|
+
return super.videoPlayerOnJig(options);
|
|
727
|
+
}
|
|
728
|
+
section(options) {
|
|
729
|
+
return super.sectionOnDefault(options);
|
|
730
|
+
}
|
|
731
|
+
listItem(options) {
|
|
732
|
+
return super.listItemStandalone(options);
|
|
733
|
+
}
|
|
734
|
+
segmented(options) {
|
|
735
|
+
return super.segmentedControl(options);
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
export const SUMMARY_FACTORY_METHODS = {
|
|
739
|
+
[COMPONENT_TYPE.SUMMARY_DEFAULT]: 'default',
|
|
740
|
+
[COMPONENT_TYPE.SUMMARY_CARD]: 'card',
|
|
741
|
+
[COMPONENT_TYPE.SUMMARY_COUNTER]: 'counter',
|
|
742
|
+
};
|
|
743
|
+
export class JcSummaryFactory extends JcBuilderFactory {
|
|
744
|
+
constructor(allowed, onComponentCreated) {
|
|
745
|
+
super(allowed, onComponentCreated);
|
|
746
|
+
}
|
|
747
|
+
default(options) {
|
|
748
|
+
return super.summaryDefault(options);
|
|
749
|
+
}
|
|
750
|
+
card(options) {
|
|
751
|
+
return super.summaryCard(options);
|
|
752
|
+
}
|
|
753
|
+
counter(options) {
|
|
754
|
+
return super.summaryCounter(options);
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamMuYWJzdHJhY3QuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnQvamMuYWJzdHJhY3QuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsc0JBQXNCLEVBQTZCLE1BQU0sd0JBQXdCLENBQUE7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQTJCLE1BQU0sc0JBQXNCLENBQUE7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sbUJBQW1CLENBQUE7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQTZCLE1BQU0seUJBQXlCLENBQUE7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGtCQUFrQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sY0FBYyxDQUFBO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sa0JBQWtCLENBQUE7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUEyQixNQUFNLHNCQUFzQixDQUFBO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBK0IsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQXlCLE1BQU0sb0JBQW9CLENBQUE7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUF1QixNQUFNLGtCQUFrQixDQUFBO0FBQ3hFLE9BQU8sRUFDTCwrQkFBK0IsR0FFaEMsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTBCLE1BQU0s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QWdCLENBQUMsT0FBTyxDQUFDLENBQUE7SUFBQSxDQUN2QztDQUNGO0FBVUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFHckMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUUsU0FBUztJQUMzQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNO0lBQ3JDLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFNBQVM7Q0FDbkMsQ0FBQTtBQXNCVixNQUFNLE9BQU8sZ0JBRVgsU0FBUSxnQkFBbUI7SUFDM0IsWUFDRSxPQUFVLEVBQ1Ysa0JBQStFLEVBQy9FO1FBRUEsS0FBSyxDQUFDLE9BQU8sRUFBRSxrQkFBOEUsQ0FBQyxDQUFBO0lBQUEsQ0FDL0Y7SUFNRCxPQUFPLENBQUMsT0FBc0MsRUFBMkI7UUFDdkUsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQUEsQ0FDckM7SUFNRCxJQUFJLENBQUMsT0FBbUMsRUFBd0I7UUFDOUQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQUEsQ0FDbEM7SUFNRCxPQUFPLENBQUMsT0FBc0MsRUFBMkI7UUFDdkUsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQUEsQ0FDckM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgSW5zdGFuY2VJZCB9IGZyb20gJy4uL2Fic3RyYWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgSmNBbW91bnRDb250cm9sQnVpbGRlciwgdHlwZSBKY0Ftb3VudENvbnRyb2xJbnB1dCB9IGZyb20gJy4vamMuYW1vdW50LWNvbnRyb2wuanMnXG5pbXBvcnQgeyBKY0F2YXRhckJ1aWxkZXIsIHR5cGUgSmNBdmF0YXJJbnB1dCB9IGZyb20gJy4vamMuYXZhdGFyLmpzJ1xuaW1wb3J0IHsgSmNBdmF0YXJGaWVsZEJ1aWxkZXIsIHR5cGUgSmNBdmF0YXJGaWVsZElucHV0IH0gZnJvbSAnLi9qYy5hdmF0YXItZmllbGQuanMnXG5pbXBvcnQgeyBKY0Jhbm5lckJ1aWxkZXIsIHR5cGUgSmNCYW5uZXJJbnB1dCB9IGZyb20gJy4vamMuYmFubmVyLmpzJ1xuaW1wb3J0IHsgSmNCYXJDaGFydEJ1aWxkZXIsIHR5cGUgSmNCYXJDaGFydElucHV0IH0gZnJvbSAnLi9qYy5iYXItY2hhcnQuanMnXG5pbXBvcnQgeyBKY0J1dHRvbkJ1aWxkZXIsIHR5cGUgSmNCdXR0b25JbnB1dCB9IGZyb20gJy4vamMuYnV0dG9uLmpzJ1xuaW1wb3J0IHsgSmNDYXJkT25EZWZhdWx0QnVpbGRlciwgdHlwZSBKY0NhcmRPbkRlZmF1bHRJbnB1dCB9IGZyb20gJy4vamMuY2FyZC5vbi1kZWZhdWx0LmpzJ1xuaW1wb3J0IHsgSmNDYXJvdXNlbEJ1aWxkZXIsIHR5cGUgSmNDYXJvdXNlbElucHV0IH0gZnJvbSAnLi9qYy5jYXJvdXNlbC5qcydcbmltcG9ydCB7IEpjQ2hhdEJ1aWxkZXIsIHR5cGUgSmNDaGF0SW5wdXQgfSBmcm9tICcuL2pjLmNoYXQuanMnXG5pbXBvcnQgeyBKY0NoYXRNZXNzYWdlQnVpbGRlciwgdHlwZSBKY0NoYXRNZXNzYWdlSW5wdXQgfSBmcm9tICcuL2pjLmNoYXQtbWVzc2FnZS5qcydcbmltcG9ydCB7IEpjQ2hlY2tib3hCdWlsZGVyLCB0eXBlIEpjQ2hlY2tib3hJbnB1dCB9IGZyb20gJy4vamMuY2hlY2tib3guanMnXG5pbXBvcnQgeyBKY0Nob2ljZUZpZWxkQnVpbGRlciwgdHlwZSBKY0Nob2ljZUZpZWxkSW5wdXQgfSBmcm9tICcuL2pjLmNob2ljZS1maWVsZC5qcydcbmltcG9ydCB7IEpjQ2hvaWNlRmllbGRJdGVtQnVpbGRlciwgdHlwZSBKY0Nob2ljZUZpZWxkSXRlbUlucHV0IH0gZnJvbSAnLi9qYy5jaG9pY2UtZmllbGQtaXRlbS5qcydcbmltcG9ydCB7IEpjQ291bnREb3duQnVpbGRlciwgdHlwZSBKY0NvdW50RG93bklucHV0IH0gZnJvbSAnLi9qYy5jb3VudC1kb3duLmpzJ1xuaW1wb3J0IHsgSmNDb3VudFVwQnVpbGRlciwgdHlwZSBKY0NvdW50VXBJbnB1dCB9IGZyb20gJy4vamMuY291bnQtdXAuanMnXG5pbXBvcnQge1xuICBKY0N1c3RvbUNvbXBvbmVudEludGVyb3BCdWlsZGVyLFxuICB0eXBlIEpjQ3VzdG9tQ29tcG9uZW50SW50ZXJvcElucHV0LFxufSBmcm9tICcuL2pjLmN1c3RvbS1jb21wb25lbnQuaW50ZXJvcC5qcydcbmltcG9ydCB7IEpjRGF0ZVBpY2tlckJ1aWxkZXIsIHR5cGUgSmNEYXRlUGlja2VySW5wdXQgfSBmcm9tICcuL2pjLmRhdGUtcGlja2VyLmpzJ1xuaW1wb3J0IHsgSmNEaXZpZGVyQnVpbGRlciwgdHlwZSBKY0RpdmlkZXJJbnB1dCB9IGZyb20gJy4vamMuZGl2aWRlci5qcydcbmltcG9ydCB7IEpjRHJvcGRvd25CdWlsZGVyLCB0eXBlIEpjRHJvcGRvd25JbnB1dCB9IGZyb20gJy4vamMuZHJvcGRvd24uanMnXG5pbXBvcnQgeyBKY0R1cmF0aW9uUGlja2VyQnVpbGRlciwgdHlwZSBKY0R1cmF0aW9uUGlja2VySW5wdXQgfSBmcm9tICcuL2pjLmR1cmF0aW9uLXBpY2tlci5qcydcbmltcG9ydCB7IEpjRW1haWxGaWVsZEJ1aWxkZXIsIHR5cGUgSmNFbWFpbEZpZWxkSW5wdXQgfSBmcm9tICcuL2pjLmVtYWlsLWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNFbnRpdHlCdWlsZGVyLCB0eXBlIEpjRW50aXR5SW5wdXQgfSBmcm9tICcuL2pjLmVudGl0eS5qcydcbmltcG9ydCB7IEpjRW50aXR5RmllbGRCdWlsZGVyLCB0eXBlIEpjRW50aXR5RmllbGRJbnB1dCB9IGZyb20gJy4vamMuZW50aXR5LWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNFdmVudEJ1aWxkZXIsIHR5cGUgSmNFdmVudElucHV0IH0gZnJvbSAnLi9qYy5ldmVudC5qcydcbmltcG9ydCB7IEpjRXhwYW5kZXJCdWlsZGVyLCB0eXBlIEpjRXhwYW5kZXJJbnB1dCB9IGZyb20gJy4vamMuZXhwYW5kZXIuanMnXG5pbXBvcnQgeyBKY0ZpZWxkUm93QnVpbGRlciwgdHlwZSBKY0ZpZWxkUm93SW5wdXQgfSBmcm9tICcuL2pjLmZpZWxkLXJvdy5qcydcbmltcG9ydCB7IEpjRW50aXR5RmllbGRSb3dCdWlsZGVyIH0gZnJvbSAnLi9qYy5maWVsZC1yb3cuZW50aXR5LmpzJ1xuaW1wb3J0IHsgSmNGb3JtQnVpbGRlciwgdHlwZSBKY0Zvcm1JbnB1dCB9IGZyb20gJy4vamMuZm9ybS5qcydcbmltcG9ydCB7IEpjR2FsbGVyeUl0ZW1CdWlsZGVyLCB0eXBlIEpjR2FsbGVyeUl0ZW1JbnB1dCB9IGZyb20gJy4vamMuZ2FsbGVyeS1pdGVtLmpzJ1xuaW1wb3J0IHsgSmNHcmlkQnVpbGRlciwgdHlwZSBKY0dyaWRJbnB1dCB9IGZyb20gJy4vamMuZ3JpZC5qcydcbmltcG9ydCB7IEpjR3JpZEl0ZW1CdWlsZGVyLCB0eXBlIEpjR3JpZEl0ZW1JbnB1dCB9IGZyb20gJy4vamMuZ3JpZC1pdGVtLmpzJ1xuaW1wb3J0IHsgSmNJY29uQnVpbGRlciwgdHlwZSBKY0ljb25JbnB1dCB9IGZyb20gJy4vamMuaWNvbi5qcydcbmltcG9ydCB7IEpjSW1hZ2VPbkNhcm91c2VsQnVpbGRlciwgdHlwZSBKY0ltYWdlT25DYXJvdXNlbElucHV0IH0gZnJvbSAnLi9qYy5pbWFnZS5vbi1jYXJvdXNlbC5qcydcbmltcG9ydCB7IEpjSmlnQnVpbGRlciwgdHlwZSBKY0ppZ0lucHV0IH0gZnJvbSAnLi9qYy5qaWcuanMnXG5pbXBvcnQgeyBKY0ltYWdlT25EZWZhdWx0QnVpbGRlciwgdHlwZSBKY0ltYWdlT25EZWZhdWx0SW5wdXQgfSBmcm9tICcuL2pjLmltYWdlLm9uLWRlZmF1bHQuanMnXG5pbXBvcnQgeyBKY0ludGVyYWN0aXZlSW1hZ2VCdWlsZGVyLCB0eXBlIEpjSW50ZXJhY3RpdmVJbWFnZUlucHV0IH0gZnJvbSAnLi9qYy5pbnRlcmFjdGl2ZS1pbWFnZS5qcydcbmltcG9ydCB7XG4gIEpjSW50ZXJhY3RpdmVJbWFnZUl0ZW1CdWlsZGVyLFxuICB0eXBlIEpjSW50ZXJhY3RpdmVJbWFnZUl0ZW1JbnB1dCxcbn0gZnJvbSAnLi9qYy5pbnRlcmFjdGl2ZS1pbWFnZS5pdGVtLmpzJ1xuaW1wb3J0IHsgSmNKaWdIZWFkZXJCdWlsZGVyLCB0eXBlIEpjSmlnSGVhZGVySW5wdXQgfSBmcm9tICcuL2pjLmppZy1oZWFkZXIuanMnXG5pbXBvcnQgeyBKY0ppZ1dpZGdldEJ1aWxkZXIsIHR5cGUgSmNKaWdXaWRnZXRJbnB1dCB9IGZyb20gJy4vamMuamlnLXdpZGdldC5qcydcbmltcG9ydCB7IEpjTGluZUNoYXJ0QnVpbGRlciwgdHlwZSBKY0xpbmVDaGFydElucHV0IH0gZnJvbSAnLi9qYy5saW5lLWNoYXJ0LmpzJ1xuaW1wb3J0IHsgSmNMaXN0QnVpbGRlciwgdHlwZSBKY0xpc3RJbnB1dCB9IGZyb20gJy4vamMubGlzdC5qcydcbmltcG9ydCB7IEpjTGlzdEl0ZW1CdWlsZGVyLCB0eXBlIEpjTGlzdEl0ZW1PcHRpb25zIH0gZnJvbSAnLi9qYy5saXN0LWl0ZW0uanMnXG5pbXBvcnQge1xuICBKY0xpc3RJdGVtU3RhbmRhbG9uZUJ1aWxkZXIsXG4gIHR5cGUgSmNMaXN0SXRlbVN0YW5kYWxvbmVPcHRpb25zLFxufSBmcm9tICcuL2pjLmxpc3QtaXRlbS5zdGFuZGFsb25lLmpzJ1xuaW1wb3J0IHsgSmNMb2NhdGlvbkJ1aWxkZXIsIHR5cGUgSmNMb2NhdGlvbklucHV0IH0gZnJvbSAnLi9qYy5sb2NhdGlvbi5qcydcbmltcG9ydCB7IEpjTWFya2VySXRlbUJ1aWxkZXIsIHR5cGUgSmNNYXJrZXJJdGVtSW5wdXQgfSBmcm9tICcuL2pjLm1hcmtlci1pdGVtLmpzJ1xuaW1wb3J0IHsgSmNNZWRpYUZpZWxkQnVpbGRlciwgdHlwZSBKY01lZGlhRmllbGRJbnB1dCB9IGZyb20gJy4vamMubWVkaWEtZmllbGQuanMnXG5pbXBvcnQgeyBKY01lbnVJdGVtQnVpbGRlciwgdHlwZSBKY01lbnVJdGVtSW5wdXQgfSBmcm9tICcuL2pjLm1lbnUtaXRlbS5qcydcbmltcG9ydCB7IEpjTnVtYmVyRmllbGRCdWlsZGVyLCB0eXBlIEpjTnVtYmVyRmllbGRJbnB1dCB9IGZyb20gJy4vamMubnVtYmVyLWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNQaWVDaGFydEJ1aWxkZXIsIHR5cGUgSmNQaWVDaGFydElucHV0IH0gZnJvbSAnLi9qYy5waWUtY2hhcnQuanMnXG5pbXBvcnQgeyBKY1Byb2dyZXNzQmFyQnVpbGRlciwgdHlwZSBKY1Byb2dyZXNzQmFySW5wdXQgfSBmcm9tICcuL2pjLnByb2dyZXNzLWJhci5qcydcbmltcG9ydCB7IEpjUmF0aW5nQnVpbGRlciwgdHlwZSBKY1JhdGluZ0lucHV0IH0gZnJvbSAnLi9qYy5yYXRpbmcuanMnXG5pbXBvcnQgeyBKY1NlY3Rpb25PbkRlZmF1bHRCdWlsZGVyLCB0eXBlIEpjU2VjdGlvbk9uRGVmYXVsdElucHV0IH0gZnJvbSAnLi9qYy5zZWN0aW9uLm9uLWRlZmF1bHQuanMnXG5pbXBvcnQgeyBKY1NlZ21lbnRlZENvbnRyb2xCdWlsZGVyLCB0eXBlIEpjU2VnbWVudGVkQ29udHJvbElucHV0IH0gZnJvbSAnLi9qYy5zZWdtZW50ZWQtY29udHJvbC5qcydcbmltcG9ydCB7IEpjU2lnbmF0dXJlRmllbGRCdWlsZGVyLCB0eXBlIEpjU2lnbmF0dXJlRmllbGRJbnB1dCB9IGZyb20gJy4vamMuc2lnbmF0dXJlLWZpZWxkLmpzJ1xuaW1wb3J0IHsgSmNTbGlkZXJCdWlsZGVyLCB0eXBlIEpjU2xpZGVySW5wdXQgfSBmcm9tICcuL2pjLnNsaWRlci5qcydcbmltcG9ydCB7IEpjU3RhZ2VCdWlsZGVyLCB0eXBlIEpjU3RhZ2VJbnB1dCB9IGZyb20gJy4vamMuc3RhZ2UuanMnXG5pbXBvcnQgeyBKY1N0ZXBwZXJCdWlsZGVyLCB0eXBlIEpjU3RlcHBlcklucHV0IH0gZnJvbSAnLi9qYy5zdGVwcGVyLmpzJ1xuaW1wb3J0IHsgSmNTdG9yeUdyb3VwQnVpbGRlciwgdHlwZSBKY1N0b3J5R3JvdXBJbnB1dCB9IGZyb20gJy4vamMuc3RvcnktZ3JvdXAuanMnXG5pbXBvcnQgeyBKY1N1bW1hcnlDYXJkQnVpbGRlciwgdHlwZSBKY1N1bW1hcnlDYXJkSW5wdXRPcHRpb25zIH0gZnJvbSAnLi9qYy5zdW1tYXJ5LmNhcmQuanMnXG5pbXBvcnQgeyBKY1N1bW1hcnlDb3VudGVyQnVpbGRlciwgdHlwZSBKY1N1bW1hcnlDb3VudGVySW5wdXRPcHRpb25zIH0gZnJvbSAnLi9qYy5zdW1tYXJ5LmNvdW50ZXIuanMnXG5pbXBvcnQgeyBKY1N1bW1hcnlEZWZhdWx0QnVpbGRlciwgdHlwZSBKY1N1bW1hcnlEZWZhdWx0SW5wdXRPcHRpb25zIH0gZnJvbSAnLi9qYy5zdW1tYXJ5LmRlZmF1bHQuanMnXG5pbXBvcnQge1xuICBKY1N1bW1hcnlQcm9ncmVzc0J1aWxkZXIsXG4gIHR5cGUgSmNTdW1tYXJ5UHJvZ3Jlc3NJbnB1dE9wdGlvbnMsXG59IGZyb20gJy4vamMuc3VtbWFyeS5wcm9ncmVzcy5qcydcbmltcG9ydCB7IEpjVGV4dEJ1aWxkZXIsIHR5cGUgSmNUZXh0SW5wdXQgfSBmcm9tICcuL2pjLnRleHQuanMnXG5pbXBvcnQgeyBKY1RleHRGaWVsZEJ1aWxkZXIsIHR5cGUgSmNUZXh0RmllbGRJbnB1dCB9IGZyb20gJy4vamMudGV4dC1maWVsZC5qcydcbmltcG9ydCB7IEpjVGl0bGVzQnVpbGRlciwgdHlwZSBKY1RpdGxlc0lucHV0IH0gZnJvbSAnLi9qYy50aXRsZXMuanMnXG5pbXBvcnQgeyBKY1RyZW5kQnVpbGRlciwgdHlwZSBKY1RyZW5kSW5wdXQgfSBmcm9tICcuL2pjLnRyZW5kLmpzJ1xuaW1wb3J0IHsgQ09NUE9ORU5UX1RZUEUsIHR5cGUgQ29tcG9uZW50VHlwZSB9IGZyb20gJy4vamMudHlwZXMuanMnXG5pbXBvcnQgeyBKY1ZpZXdCdWlsZGVyLCB0eXBlIEpjVmlld0lucHV0IH0gZnJvbSAnLi9qYy52aWV3LmpzJ1xuaW1wb3J0IHtcbiAgSmNWaWRlb1BsYXllck9uSmlnQnVpbGRlcixcbiAgdHlwZSBKY1ZpZGVvUGxheWVyT25KaWdJbnB1dCxcbn0gZnJvbSAnLi9qYy52aWRlby1wbGF5ZXIub24tamlnLmpzJ1xuaW1wb3J0IHtcbiAgSmNXZWJWaWV3T25EZWZhdWx0QnVpbGRlcixcbiAgdHlwZSBKY1dlYlZpZXdPbkRlZmF1bHRJbnB1dCxcbn0gZnJvbSAnLi9qYy53ZWItdmlldy5vbi1kZWZhdWx0LmpzJ1xuaW1wb3J0IHsgSmNXZWJWaWV3T25GdWxsQnVpbGRlciwgdHlwZSBKY1dlYlZpZXdPbkZ1bGxJbnB1dCB9IGZyb20gJy4vamMud2ViLXZpZXcub24tZnVsbC5qcydcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCQVNFIEZBQ1RPUlkgLSBDb3JlIGNvbXBvbmVudCBmYWN0b3J5IHdpdGggYWxsIGNyZWF0aW9uIG1ldGhvZHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIE1hcHMgY29tcG9uZW50IHR5cGVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgYmFzZSBmYWN0b3J5IG1ldGhvZCBuYW1lcy5cbiAqIFVzZWQgdG8gZGVyaXZlIFBpY2sgdHlwZXMgZnJvbSBBTExPV0VEX1RZUEVTIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTVBPTkVOVF9UT19GQUNUT1JZX01FVEhPRCA9IHtcbiAgW0NPTVBPTkVOVF9UWVBFLkFNT1VOVF9DT05UUk9MXTogJ2Ftb3VudENvbnRyb2wnLFxuICBbQ09NUE9ORU5UX1RZUEUuQVZBVEFSXTogJ2F2YXRhcicsXG4gIFtDT01QT05FTlRfVFlQRS5BVkFUQVJfRklFTERdOiAnYXZhdGFyRmllbGQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQkFOTkVSXTogJ2Jhbm5lcicsXG4gIFtDT01QT05FTlRfVFlQRS5CQVJfQ0hBUlRdOiAnYmFyQ2hhcnQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQlVUVE9OXTogJ2J1dHRvbicsXG4gIFtDT01QT05FTlRfVFlQRS5DQVJEXTogJ2NhcmRPbkRlZmF1bHQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQ0FST1VTRUxdOiAnY2Fyb3VzZWwnLFxuICBbQ09NUE9ORU5UX1RZUEUuQ0hBVF06ICdjaGF0JyxcbiAgW0NPTVBPTkVOVF9UWVBFLkNIQVRfTUVTU0FHRV06ICdjaGF0TWVzc2FnZScsXG4gIFtDT01QT05FTlRfVFlQRS5DSEVDS0JPWF06ICdjaGVja2JveCcsXG4gIFtDT01QT05FTlRfVFlQRS5DSE9JQ0VfRklFTERdOiAnY2hvaWNlRmllbGQnLFxuICBbQ09NUE9ORU5UX1RZUEUuQ0hPSUNFX0ZJRUxEX0lURU1dOiAnY2hvaWNlRmllbGRJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkNPVU5URE9XTl06ICdjb3VudERvd24nLFxuICBbQ09NUE9ORU5UX1RZUEUuQ09VTlRfVVBdOiAnY291bnRVcCcsXG4gIFtDT01QT05FTlRfVFlQRS5DVVNUT01fQ09NUE9ORU5UXTogJ2N1c3RvbUNvbXBvbmVudCcsXG4gIFtDT01QT05FTlRfVFlQRS5EQVRFX1BJQ0tFUl06ICdkYXRlUGlja2VyJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkRJVklERVJdOiAnZGl2aWRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5EUk9QRE9XTl06ICdkcm9wZG93bicsXG4gIFtDT01QT05FTlRfVFlQRS5EVVJBVElPTl9QSUNLRVJdOiAnZHVyYXRpb25QaWNrZXInLFxuICBbQ09NUE9ORU5UX1RZUEUuRU1BSUxfRklFTERdOiAnZW1haWxGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5FTlRJVFldOiAnZW50aXR5JyxcbiAgW0NPTVBPTkVOVF9UWVBFLkVOVElUWV9GSUVMRF06ICdlbnRpdHlGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5FVkVOVF06ICdldmVudCcsXG4gIFtDT01QT05FTlRfVFlQRS5FWFBBTkRFUl06ICdleHBhbmRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5GSUVMRF9ST1ddOiAnZmllbGRSb3cnLFxuICBbQ09NUE9ORU5UX1RZUEUuRk9STV06ICdmb3JtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkdBTExFUllfSVRFTV06ICdnYWxsZXJ5SXRlbScsXG4gIFtDT01QT05FTlRfVFlQRS5HUklEXTogJ2dyaWQnLFxuICBbQ09NUE9ORU5UX1RZUEUuR1JJRF9JVEVNXTogJ2dyaWRJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLklDT05dOiAnaWNvbicsXG4gIFtDT01QT05FTlRfVFlQRS5JTUFHRV06ICdpbWFnZU9uRGVmYXVsdCcsXG4gIFtDT01QT05FTlRfVFlQRS5JTlRFUkFDVElWRV9JTUFHRV06ICdpbnRlcmFjdGl2ZUltYWdlJyxcbiAgW0NPTVBPTkVOVF9UWVBFLklOVEVSQUNUSVZFX0lNQUdFX0lURU1dOiAnaW50ZXJhY3RpdmVJbWFnZUl0ZW0nLFxuICBbQ09NUE9ORU5UX1RZUEUuSklHXTogJ2ppZycsXG4gIFtDT01QT05FTlRfVFlQRS5KSUdfSEVBREVSXTogJ2ppZ0hlYWRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5KSUdfV0lER0VUXTogJ3dpZGdldCcsXG4gIFtDT01QT05FTlRfVFlQRS5MSU5FX0NIQVJUXTogJ2xpbmVDaGFydCcsXG4gIFtDT01QT05FTlRfVFlQRS5MSVNUXTogJ2xpc3QnLFxuICBbQ09NUE9ORU5UX1RZUEUuTElTVF9JVEVNXTogJ2xpc3RJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLkxPQ0FUSU9OXTogJ2xvY2F0aW9uJyxcbiAgW0NPTVBPTkVOVF9UWVBFLk1BUktFUl9JVEVNXTogJ21hcmtlckl0ZW0nLFxuICBbQ09NUE9ORU5UX1RZUEUuTUVESUFfRklFTERdOiAnbWVkaWFGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5NRU5VX0lURU1dOiAnbWVudUl0ZW0nLFxuICBbQ09NUE9ORU5UX1RZUEUuTlVNQkVSX0ZJRUxEXTogJ251bWJlckZpZWxkJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlBJRV9DSEFSVF06ICdwaWVDaGFydCcsXG4gIFtDT01QT05FTlRfVFlQRS5QUk9HUkVTU19CQVJdOiAncHJvZ3Jlc3NCYXInLFxuICBbQ09NUE9ORU5UX1RZUEUuUkFUSU5HXTogJ3JhdGluZycsXG4gIFtDT01QT05FTlRfVFlQRS5TRUNUSU9OXTogJ3NlY3Rpb25PbkRlZmF1bHQnLFxuICBbQ09NUE9ORU5UX1RZUEUuU0VHTUVOVEVEX0NPTlRST0xdOiAnc2VnbWVudGVkQ29udHJvbCcsXG4gIFtDT01QT05FTlRfVFlQRS5TSUdOQVRVUkVfRklFTERdOiAnc2lnbmF0dXJlRmllbGQnLFxuICBbQ09NUE9ORU5UX1RZUEUuU0xJREVSXTogJ3NsaWRlcicsXG4gIFtDT01QT05FTlRfVFlQRS5TVEFHRV06ICdzdGFnZScsXG4gIFtDT01QT05FTlRfVFlQRS5TVEVQUEVSXTogJ3N0ZXBwZXInLFxuICBbQ09NUE9ORU5UX1RZUEUuU1RPUllfR1JPVVBdOiAnc3RvcnlHcm91cCcsXG4gIFtDT01QT05FTlRfVFlQRS5TVU1NQVJZXTogJ3N1bW1hcnlEZWZhdWx0JywgLy8gT3V0cHV0LW9ubHkgdHlwZTsgbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGVcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfREVGQVVMVF06ICdzdW1tYXJ5RGVmYXVsdCcsXG4gIFtDT01QT05FTlRfVFlQRS5TVU1NQVJZX0NBUkRdOiAnc3VtbWFyeUNhcmQnLFxuICBbQ09NUE9ORU5UX1RZUEUuU1VNTUFSWV9DT1VOVEVSXTogJ3N1bW1hcnlDb3VudGVyJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlNVTU1BUllfUFJPR1JFU1NdOiAnc3VtbWFyeVByb2dyZXNzJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlRFWFRdOiAndGV4dCcsXG4gIFtDT01QT05FTlRfVFlQRS5URVhUX0ZJRUxEXTogJ3RleHRGaWVsZCcsXG4gIFtDT01QT05FTlRfVFlQRS5USVRMRVNdOiAndGl0bGVzJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlRSRU5EXTogJ3RyZW5kJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlZJREVPX1BMQVlFUl06ICd2aWRlb1BsYXllck9uSmlnJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlZJRVddOiAndmlldycsXG4gIFtDT01QT05FTlRfVFlQRS5XRUJfVklFV106ICd3ZWJWaWV3T25EZWZhdWx0JyxcbiAgW0NPTVBPTkVOVF9UWVBFLkRST1BET1dOX0lURU1dOiAnY2hvaWNlRmllbGRJdGVtJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlBST0RVQ1RfSVRFTV06ICdncmlkSXRlbScsXG4gIFtDT01QT05FTlRfVFlQRS5TVEVQXTogJ3N0YWdlJyxcbiAgW0NPTVBPTkVOVF9UWVBFLlRBQl9CVVRUT05dOiAnc2VnbWVudGVkQ29udHJvbCcsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8Q29tcG9uZW50VHlwZSwga2V5b2YgSmNCdWlsZGVyRmFjdG9yeT5cblxuLyoqXG4gKiBEZXJpdmVzIGZhY3RvcnkgbWV0aG9kcyBmcm9tIGNvbXBvbmVudCB0eXBlcyBhcnJheS5cbiAqIFVzYWdlOiBGYWN0b3J5TWV0aG9kc0Zvcjx0eXBlb2YgQUxMT1dFRF9UWVBFUz5cbiAqL1xuZXhwb3J0IHR5cGUgRmFjdG9yeU1ldGhvZHNGb3I8VCBleHRlbmRzIHJlYWRvbmx5IENvbXBvbmVudFR5cGVbXT4gPVxuICBUW251bWJlcl0gZXh0ZW5kcyBrZXlvZiB0eXBlb2YgQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9EXG4gICAgPyBQaWNrPEpjQnVpbGRlckZhY3RvcnksICh0eXBlb2YgQ09NUE9ORU5UX1RPX0ZBQ1RPUllfTUVUSE9EKVtUW251bWJlcl1dPlxuICAgIDogbmV2ZXJcblxuLyoqXG4gKiBEZXJpdmVzIHVuaW9uIG9mIGJ1aWxkZXIgdHlwZXMgZnJvbSBhbGxvd2VkIGNvbXBvbmVudCB0eXBlcyBmb3IgYmFzZSBmYWN0b3J5IGNvbnRleHQuXG4gKiBVc2VkIGJ5IGNvbXBvbmVudHMgdGhhdCB1c2UgSmNCdWlsZGVyRmFjdG9yeSBkaXJlY3RseSB3aXRob3V0IGEgc3BlY2lhbGl6ZWQgZmFjdG9yeS5cbiAqXG4gKiBUaGlzIHR5cGUgaGVscGVyIGVsaW1pbmF0ZXMgbWFudWFsIG1haW50ZW5hbmNlIG9mIGJ1aWxkZXIgdW5pb24gdHlwZXNcbiAqIGJ5IGF1dG9tYXRpY2FsbHkgZXh0cmFjdGluZyByZXR1cm4gdHlwZXMgZnJvbSBmYWN0b3J5IG1ldGhvZHMuXG4gKlxuICogV2h5IHdlIG5lZWQgdGhpczpcbiAqIC0gQ29tcG9uZW50cyBuZWVkIHRvIHN0b3JlIGNoaWxkIGJ1aWxkZXJzIHdpdGggY29ycmVjdCB0eXBlc1xuICogLSBNYW51YWxseSBtYWludGFpbmluZyB1bmlvbnMgKGUuZy4sIEpjSW1hZ2VCdWlsZGVyIHwgSmNUZXh0QnVpbGRlcilcbiAqICAgaXMgZXJyb3ItcHJvbmUgYW5kIHZpb2xhdGVzIERSWSBwcmluY2lwbGVcbiAqIC0gV2hlbiBBTExPV0VEX1RZUEVTIGNoYW5nZXMsIHRoZSB1bmlvbiB0eXBlIHVwZGF0ZXMgYXV0b21hdGljYWxseVxuICpcbiAqIEhvdyBpdCB3b3JrczpcbiAqIDEuIFRha2VzIEFMTE9XRURfVFlQRVMgYXJyYXkgKGUuZy4sIFtDT01QT05FTlRfVFlQRS5JTUFHRSwgQ09NUE9ORU5UX1RZUEUuVEVYVCwgLi4uXSlcbiAqIDIuIEZhY3RvcnlNZXRob2RzRm9yPFQ+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
|