@decaf-ts/ui-decorators 0.20.7 → 0.20.8
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/dist/ui-decorators.cjs +2 -1059
- package/dist/ui-decorators.cjs.map +1 -0
- package/dist/ui-decorators.js +2 -1090
- package/dist/ui-decorators.js.map +1 -0
- package/lib/cjs/dashboard/constants.cjs +2 -2
- package/lib/cjs/dashboard/constants.cjs.map +1 -0
- package/lib/cjs/dashboard/decorators.cjs +2 -2
- package/lib/cjs/dashboard/decorators.cjs.map +1 -0
- package/lib/cjs/dashboard/index.cjs +2 -2
- package/lib/cjs/dashboard/index.cjs.map +1 -0
- package/lib/cjs/dashboard/reader.cjs +2 -2
- package/lib/cjs/dashboard/reader.cjs.map +1 -0
- package/lib/cjs/dashboard/registry.cjs +2 -2
- package/lib/cjs/dashboard/registry.cjs.map +1 -0
- package/lib/cjs/dashboard/types.cjs +2 -2
- package/lib/cjs/dashboard/types.cjs.map +1 -0
- package/lib/cjs/graph/GraphExecutionStateMapper.cjs +2 -2
- package/lib/cjs/graph/GraphExecutionStateMapper.cjs.map +1 -0
- package/lib/cjs/graph/GraphResolution.cjs +2 -2
- package/lib/cjs/graph/GraphResolution.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphCredentialReference.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphCredentialReference.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphIconReference.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphIconReference.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs +11 -2
- package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphNodeCapability.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeCapability.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphNodeManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeManifest.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphParameterBase.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterBase.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphParameterOption.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterOption.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphParameterValidation.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterValidation.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphPortManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphPortManifest.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphValueSchema.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphValueSchema.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs.map +1 -0
- package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs.map +1 -0
- package/lib/cjs/graph/catalog/index.cjs +2 -2
- package/lib/cjs/graph/catalog/index.cjs.map +1 -0
- package/lib/cjs/graph/constants.cjs +76 -11
- package/lib/cjs/graph/constants.cjs.map +1 -0
- package/lib/cjs/graph/decorators.cjs +2 -2
- package/lib/cjs/graph/decorators.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +2 -2
- package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphEdgeInstance.cjs +2 -2
- package/lib/cjs/graph/document/GraphEdgeInstance.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphEndpoint.cjs +2 -2
- package/lib/cjs/graph/document/GraphEndpoint.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphJsonValue.cjs +2 -2
- package/lib/cjs/graph/document/GraphJsonValue.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphLoopConfiguration.cjs +2 -2
- package/lib/cjs/graph/document/GraphLoopConfiguration.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphNodeBinding.cjs +2 -2
- package/lib/cjs/graph/document/GraphNodeBinding.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphNodeInstance.cjs +2 -2
- package/lib/cjs/graph/document/GraphNodeInstance.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphWorkflowDocument.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocument.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs.map +1 -0
- package/lib/cjs/graph/document/GraphWorkflowUiState.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowUiState.cjs.map +1 -0
- package/lib/cjs/graph/document/index.cjs +2 -2
- package/lib/cjs/graph/document/index.cjs.map +1 -0
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs.map +1 -0
- package/lib/cjs/graph/nodes/agents/agent.cjs +2 -2
- package/lib/cjs/graph/nodes/agents/agent.cjs.map +1 -0
- package/lib/cjs/graph/nodes/base.cjs +2 -2
- package/lib/cjs/graph/nodes/base.cjs.map +1 -0
- package/lib/cjs/graph/nodes/boundary/input-value.cjs +2 -2
- package/lib/cjs/graph/nodes/boundary/input-value.cjs.map +1 -0
- package/lib/cjs/graph/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/nodes/category-styles.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/break.cjs +3 -3
- package/lib/cjs/graph/nodes/flow-control/break.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +3 -3
- package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +3 -3
- package/lib/cjs/graph/nodes/flow-control/human-approval.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/if.cjs +2 -2
- package/lib/cjs/graph/nodes/flow-control/if.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/parallel.cjs +3 -3
- package/lib/cjs/graph/nodes/flow-control/parallel.cjs.map +1 -0
- package/lib/cjs/graph/nodes/flow-control/switch.cjs +12 -7
- package/lib/cjs/graph/nodes/flow-control/switch.cjs.map +1 -0
- package/lib/cjs/graph/nodes/index.cjs +2 -2
- package/lib/cjs/graph/nodes/index.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/foreach.cjs +2 -2
- package/lib/cjs/graph/nodes/loops/foreach.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/until.cjs +3 -3
- package/lib/cjs/graph/nodes/loops/until.cjs.map +1 -0
- package/lib/cjs/graph/nodes/loops/while.cjs +3 -3
- package/lib/cjs/graph/nodes/loops/while.cjs.map +1 -0
- package/lib/cjs/graph/nodes/manifests.cjs +17 -13
- package/lib/cjs/graph/nodes/manifests.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/chat.cjs +3 -3
- package/lib/cjs/graph/nodes/triggers/chat.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/event.cjs +3 -3
- package/lib/cjs/graph/nodes/triggers/event.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/form.cjs +3 -3
- package/lib/cjs/graph/nodes/triggers/form.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/manual.cjs +2 -2
- package/lib/cjs/graph/nodes/triggers/manual.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/schedule.cjs +3 -3
- package/lib/cjs/graph/nodes/triggers/schedule.cjs.map +1 -0
- package/lib/cjs/graph/nodes/triggers/webhook.cjs +3 -3
- package/lib/cjs/graph/nodes/triggers/webhook.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/code.cjs +3 -3
- package/lib/cjs/graph/nodes/utility/code.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/delay.cjs +3 -3
- package/lib/cjs/graph/nodes/utility/delay.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/log.cjs +3 -3
- package/lib/cjs/graph/nodes/utility/log.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/map.cjs +3 -3
- package/lib/cjs/graph/nodes/utility/map.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/merge.cjs +2 -2
- package/lib/cjs/graph/nodes/utility/merge.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/return.cjs +3 -3
- package/lib/cjs/graph/nodes/utility/return.cjs.map +1 -0
- package/lib/cjs/graph/nodes/utility/utility-log.cjs +3 -3
- package/lib/cjs/graph/nodes/utility/utility-log.cjs.map +1 -0
- package/lib/cjs/graph/overrides/Metadata.cjs +2 -2
- package/lib/cjs/graph/overrides/Metadata.cjs.map +1 -0
- package/lib/cjs/graph/overrides/Rendering.cjs +2 -2
- package/lib/cjs/graph/overrides/Rendering.cjs.map +1 -0
- package/lib/cjs/graph/overrides/index.cjs +2 -2
- package/lib/cjs/graph/overrides/index.cjs.map +1 -0
- package/lib/cjs/graph/overrides/overrides.cjs +2 -2
- package/lib/cjs/graph/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/graph/reader.cjs +5 -2
- package/lib/cjs/graph/reader.cjs.map +1 -0
- package/lib/cjs/graph/registry.cjs +2 -2
- package/lib/cjs/graph/registry.cjs.map +1 -0
- package/lib/cjs/graph/snapshot.cjs +2 -2
- package/lib/cjs/graph/snapshot.cjs.map +1 -0
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/graph/types.cjs.map +1 -0
- package/lib/cjs/index.cjs +4 -4
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/model/Renderable.cjs +2 -2
- package/lib/cjs/model/Renderable.cjs.map +1 -0
- package/lib/cjs/model/decorators.cjs +2 -2
- package/lib/cjs/model/decorators.cjs.map +1 -0
- package/lib/cjs/model/index.cjs +2 -2
- package/lib/cjs/model/index.cjs.map +1 -0
- package/lib/cjs/model/model.cjs +2 -2
- package/lib/cjs/model/model.cjs.map +1 -0
- package/lib/cjs/model/overrides.cjs +2 -2
- package/lib/cjs/model/overrides.cjs.map +1 -0
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +1 -0
- package/lib/cjs/overrides/index.cjs +2 -2
- package/lib/cjs/overrides/index.cjs.map +1 -0
- package/lib/cjs/ui/DecafComponent.cjs +2 -2
- package/lib/cjs/ui/DecafComponent.cjs.map +1 -0
- package/lib/cjs/ui/DecafEventHandler.cjs +2 -2
- package/lib/cjs/ui/DecafEventHandler.cjs.map +1 -0
- package/lib/cjs/ui/DecafTranslateService.cjs +2 -2
- package/lib/cjs/ui/DecafTranslateService.cjs.map +1 -0
- package/lib/cjs/ui/Rendering.cjs +2 -2
- package/lib/cjs/ui/Rendering.cjs.map +1 -0
- package/lib/cjs/ui/UIValidator.cjs +2 -2
- package/lib/cjs/ui/UIValidator.cjs.map +1 -0
- package/lib/cjs/ui/constants.cjs +2 -2
- package/lib/cjs/ui/constants.cjs.map +1 -0
- package/lib/cjs/ui/decorators.cjs +2 -2
- package/lib/cjs/ui/decorators.cjs.map +1 -0
- package/lib/cjs/ui/errors.cjs +2 -2
- package/lib/cjs/ui/errors.cjs.map +1 -0
- package/lib/cjs/ui/index.cjs +2 -2
- package/lib/cjs/ui/index.cjs.map +1 -0
- package/lib/cjs/ui/interfaces/IDecafModal.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafModal.cjs.map +1 -0
- package/lib/cjs/ui/interfaces/IDecafRouter.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafRouter.cjs.map +1 -0
- package/lib/cjs/ui/interfaces/IDecafSpinner.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafSpinner.cjs.map +1 -0
- package/lib/cjs/ui/interfaces/IDecafToast.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafToast.cjs.map +1 -0
- package/lib/cjs/ui/interfaces/index.cjs +2 -2
- package/lib/cjs/ui/interfaces/index.cjs.map +1 -0
- package/lib/cjs/ui/overrides.cjs +2 -2
- package/lib/cjs/ui/overrides.cjs.map +1 -0
- package/lib/cjs/ui/types.cjs +2 -2
- package/lib/cjs/ui/types.cjs.map +1 -0
- package/lib/cjs/ui/utils.cjs +2 -2
- package/lib/cjs/ui/utils.cjs.map +1 -0
- package/lib/cjs/ui/validator.cjs +2 -2
- package/lib/cjs/ui/validator.cjs.map +1 -0
- package/lib/cjs/user-requests/UserRequestHandler.cjs +2 -2
- package/lib/cjs/user-requests/UserRequestHandler.cjs.map +1 -0
- package/lib/cjs/user-requests/constants.cjs +2 -2
- package/lib/cjs/user-requests/constants.cjs.map +1 -0
- package/lib/cjs/user-requests/decorators.cjs +2 -2
- package/lib/cjs/user-requests/decorators.cjs.map +1 -0
- package/lib/cjs/user-requests/errors.cjs +2 -2
- package/lib/cjs/user-requests/errors.cjs.map +1 -0
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs.map +1 -0
- package/lib/cjs/user-requests/types.cjs +2 -2
- package/lib/cjs/user-requests/types.cjs.map +1 -0
- package/lib/esm/dashboard/constants.js +1 -1
- package/lib/esm/dashboard/constants.js.map +1 -0
- package/lib/esm/dashboard/decorators.js +1 -1
- package/lib/esm/dashboard/decorators.js.map +1 -0
- package/lib/esm/dashboard/index.js +1 -1
- package/lib/esm/dashboard/index.js.map +1 -0
- package/lib/esm/dashboard/reader.js +1 -1
- package/lib/esm/dashboard/reader.js.map +1 -0
- package/lib/esm/dashboard/registry.js +1 -1
- package/lib/esm/dashboard/registry.js.map +1 -0
- package/lib/esm/dashboard/types.js +1 -1
- package/lib/esm/dashboard/types.js.map +1 -0
- package/lib/esm/graph/GraphExecutionStateMapper.js +1 -1
- package/lib/esm/graph/GraphExecutionStateMapper.js.map +1 -0
- package/lib/esm/graph/GraphResolution.js +1 -1
- package/lib/esm/graph/GraphResolution.js.map +1 -0
- package/lib/esm/graph/catalog/GraphConnectionPolicy.js +1 -1
- package/lib/esm/graph/catalog/GraphConnectionPolicy.js.map +1 -0
- package/lib/esm/graph/catalog/GraphCredentialReference.js +1 -1
- package/lib/esm/graph/catalog/GraphCredentialReference.js.map +1 -0
- package/lib/esm/graph/catalog/GraphCredentialRequirement.js +1 -1
- package/lib/esm/graph/catalog/GraphCredentialRequirement.js.map +1 -0
- package/lib/esm/graph/catalog/GraphDynamicPortRule.js +1 -1
- package/lib/esm/graph/catalog/GraphDynamicPortRule.js.map +1 -0
- package/lib/esm/graph/catalog/GraphIconReference.js +1 -1
- package/lib/esm/graph/catalog/GraphIconReference.js.map +1 -0
- package/lib/esm/graph/catalog/GraphManifestCompiler.js +10 -1
- package/lib/esm/graph/catalog/GraphManifestCompiler.js.map +1 -0
- package/lib/esm/graph/catalog/GraphNodeCapability.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeCapability.js.map +1 -0
- package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js.map +1 -0
- package/lib/esm/graph/catalog/GraphNodeManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeManifest.js.map +1 -0
- package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js.map +1 -0
- package/lib/esm/graph/catalog/GraphNodeMethodManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeMethodManifest.js.map +1 -0
- package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +1 -0
- package/lib/esm/graph/catalog/GraphParameterBase.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterBase.js.map +1 -0
- package/lib/esm/graph/catalog/GraphParameterDefinition.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterDefinition.js.map +1 -0
- package/lib/esm/graph/catalog/GraphParameterOption.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterOption.js.map +1 -0
- package/lib/esm/graph/catalog/GraphParameterValidation.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterValidation.js.map +1 -0
- package/lib/esm/graph/catalog/GraphPortManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphPortManifest.js.map +1 -0
- package/lib/esm/graph/catalog/GraphResourceLocatorMode.js +1 -1
- package/lib/esm/graph/catalog/GraphResourceLocatorMode.js.map +1 -0
- package/lib/esm/graph/catalog/GraphValueSchema.js +1 -1
- package/lib/esm/graph/catalog/GraphValueSchema.js.map +1 -0
- package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js +1 -1
- package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js.map +1 -0
- package/lib/esm/graph/catalog/GraphVisibilityExpression.js +1 -1
- package/lib/esm/graph/catalog/GraphVisibilityExpression.js.map +1 -0
- package/lib/esm/graph/catalog/index.js +1 -1
- package/lib/esm/graph/catalog/index.js.map +1 -0
- package/lib/esm/graph/constants.js +73 -9
- package/lib/esm/graph/constants.js.map +1 -0
- package/lib/esm/graph/decorators.js +1 -1
- package/lib/esm/graph/decorators.js.map +1 -0
- package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +1 -1
- package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +1 -0
- package/lib/esm/graph/document/GraphEdgeInstance.js +1 -1
- package/lib/esm/graph/document/GraphEdgeInstance.js.map +1 -0
- package/lib/esm/graph/document/GraphEndpoint.js +1 -1
- package/lib/esm/graph/document/GraphEndpoint.js.map +1 -0
- package/lib/esm/graph/document/GraphJsonValue.js +1 -1
- package/lib/esm/graph/document/GraphJsonValue.js.map +1 -0
- package/lib/esm/graph/document/GraphLoopConfiguration.js +1 -1
- package/lib/esm/graph/document/GraphLoopConfiguration.js.map +1 -0
- package/lib/esm/graph/document/GraphNodeBinding.js +1 -1
- package/lib/esm/graph/document/GraphNodeBinding.js.map +1 -0
- package/lib/esm/graph/document/GraphNodeInstance.js +1 -1
- package/lib/esm/graph/document/GraphNodeInstance.js.map +1 -0
- package/lib/esm/graph/document/GraphWorkflowDocument.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocument.js.map +1 -0
- package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +1 -0
- package/lib/esm/graph/document/GraphWorkflowDocumentReader.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentReader.js.map +1 -0
- package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js.map +1 -0
- package/lib/esm/graph/document/GraphWorkflowUiState.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowUiState.js.map +1 -0
- package/lib/esm/graph/document/index.js +1 -1
- package/lib/esm/graph/document/index.js.map +1 -0
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/index.js.map +1 -0
- package/lib/esm/graph/nodes/agents/agent.js +1 -1
- package/lib/esm/graph/nodes/agents/agent.js.map +1 -0
- package/lib/esm/graph/nodes/base.js +1 -1
- package/lib/esm/graph/nodes/base.js.map +1 -0
- package/lib/esm/graph/nodes/boundary/input-value.js +1 -1
- package/lib/esm/graph/nodes/boundary/input-value.js.map +1 -0
- package/lib/esm/graph/nodes/category-styles.js +1 -1
- package/lib/esm/graph/nodes/category-styles.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/break.js +2 -2
- package/lib/esm/graph/nodes/flow-control/break.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/error-boundary.js +2 -2
- package/lib/esm/graph/nodes/flow-control/error-boundary.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/human-approval.js +2 -2
- package/lib/esm/graph/nodes/flow-control/human-approval.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/if.js +1 -1
- package/lib/esm/graph/nodes/flow-control/if.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/parallel.js +2 -2
- package/lib/esm/graph/nodes/flow-control/parallel.js.map +1 -0
- package/lib/esm/graph/nodes/flow-control/switch.js +12 -7
- package/lib/esm/graph/nodes/flow-control/switch.js.map +1 -0
- package/lib/esm/graph/nodes/index.js +1 -1
- package/lib/esm/graph/nodes/index.js.map +1 -0
- package/lib/esm/graph/nodes/loops/foreach.js +1 -1
- package/lib/esm/graph/nodes/loops/foreach.js.map +1 -0
- package/lib/esm/graph/nodes/loops/until.js +2 -2
- package/lib/esm/graph/nodes/loops/until.js.map +1 -0
- package/lib/esm/graph/nodes/loops/while.js +2 -2
- package/lib/esm/graph/nodes/loops/while.js.map +1 -0
- package/lib/esm/graph/nodes/manifests.js +16 -12
- package/lib/esm/graph/nodes/manifests.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/chat.js +2 -2
- package/lib/esm/graph/nodes/triggers/chat.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/event.js +2 -2
- package/lib/esm/graph/nodes/triggers/event.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/form.js +2 -2
- package/lib/esm/graph/nodes/triggers/form.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/manual.js +1 -1
- package/lib/esm/graph/nodes/triggers/manual.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/schedule.js +2 -2
- package/lib/esm/graph/nodes/triggers/schedule.js.map +1 -0
- package/lib/esm/graph/nodes/triggers/webhook.js +2 -2
- package/lib/esm/graph/nodes/triggers/webhook.js.map +1 -0
- package/lib/esm/graph/nodes/utility/code.js +2 -2
- package/lib/esm/graph/nodes/utility/code.js.map +1 -0
- package/lib/esm/graph/nodes/utility/delay.js +2 -2
- package/lib/esm/graph/nodes/utility/delay.js.map +1 -0
- package/lib/esm/graph/nodes/utility/log.js +2 -2
- package/lib/esm/graph/nodes/utility/log.js.map +1 -0
- package/lib/esm/graph/nodes/utility/map.js +2 -2
- package/lib/esm/graph/nodes/utility/map.js.map +1 -0
- package/lib/esm/graph/nodes/utility/merge.js +1 -1
- package/lib/esm/graph/nodes/utility/merge.js.map +1 -0
- package/lib/esm/graph/nodes/utility/return.js +2 -2
- package/lib/esm/graph/nodes/utility/return.js.map +1 -0
- package/lib/esm/graph/nodes/utility/utility-log.js +2 -2
- package/lib/esm/graph/nodes/utility/utility-log.js.map +1 -0
- package/lib/esm/graph/overrides/Metadata.js +1 -1
- package/lib/esm/graph/overrides/Metadata.js.map +1 -0
- package/lib/esm/graph/overrides/Rendering.js +1 -1
- package/lib/esm/graph/overrides/Rendering.js.map +1 -0
- package/lib/esm/graph/overrides/index.js +1 -1
- package/lib/esm/graph/overrides/index.js.map +1 -0
- package/lib/esm/graph/overrides/overrides.js +1 -1
- package/lib/esm/graph/overrides/overrides.js.map +1 -0
- package/lib/esm/graph/reader.js +4 -1
- package/lib/esm/graph/reader.js.map +1 -0
- package/lib/esm/graph/registry.js +1 -1
- package/lib/esm/graph/registry.js.map +1 -0
- package/lib/esm/graph/snapshot.js +1 -1
- package/lib/esm/graph/snapshot.js.map +1 -0
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/graph/types.js.map +1 -0
- package/lib/esm/index.js +3 -3
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/model/Renderable.js +1 -1
- package/lib/esm/model/Renderable.js.map +1 -0
- package/lib/esm/model/decorators.js +1 -1
- package/lib/esm/model/decorators.js.map +1 -0
- package/lib/esm/model/index.js +1 -1
- package/lib/esm/model/index.js.map +1 -0
- package/lib/esm/model/model.js +1 -1
- package/lib/esm/model/model.js.map +1 -0
- package/lib/esm/model/overrides.js +1 -1
- package/lib/esm/model/overrides.js.map +1 -0
- package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js.map +1 -0
- package/lib/esm/overrides/index.js +1 -1
- package/lib/esm/overrides/index.js.map +1 -0
- package/lib/esm/ui/DecafComponent.js +1 -1
- package/lib/esm/ui/DecafComponent.js.map +1 -0
- package/lib/esm/ui/DecafEventHandler.js +1 -1
- package/lib/esm/ui/DecafEventHandler.js.map +1 -0
- package/lib/esm/ui/DecafTranslateService.js +1 -1
- package/lib/esm/ui/DecafTranslateService.js.map +1 -0
- package/lib/esm/ui/Rendering.js +1 -1
- package/lib/esm/ui/Rendering.js.map +1 -0
- package/lib/esm/ui/UIValidator.js +1 -1
- package/lib/esm/ui/UIValidator.js.map +1 -0
- package/lib/esm/ui/constants.js +1 -1
- package/lib/esm/ui/constants.js.map +1 -0
- package/lib/esm/ui/decorators.js +1 -1
- package/lib/esm/ui/decorators.js.map +1 -0
- package/lib/esm/ui/errors.js +1 -1
- package/lib/esm/ui/errors.js.map +1 -0
- package/lib/esm/ui/index.js +1 -1
- package/lib/esm/ui/index.js.map +1 -0
- package/lib/esm/ui/interfaces/IDecafModal.js +1 -1
- package/lib/esm/ui/interfaces/IDecafModal.js.map +1 -0
- package/lib/esm/ui/interfaces/IDecafRouter.js +1 -1
- package/lib/esm/ui/interfaces/IDecafRouter.js.map +1 -0
- package/lib/esm/ui/interfaces/IDecafSpinner.js +1 -1
- package/lib/esm/ui/interfaces/IDecafSpinner.js.map +1 -0
- package/lib/esm/ui/interfaces/IDecafToast.js +1 -1
- package/lib/esm/ui/interfaces/IDecafToast.js.map +1 -0
- package/lib/esm/ui/interfaces/index.js +1 -1
- package/lib/esm/ui/interfaces/index.js.map +1 -0
- package/lib/esm/ui/overrides.js +1 -1
- package/lib/esm/ui/overrides.js.map +1 -0
- package/lib/esm/ui/types.js +1 -1
- package/lib/esm/ui/types.js.map +1 -0
- package/lib/esm/ui/utils.js +1 -1
- package/lib/esm/ui/utils.js.map +1 -0
- package/lib/esm/ui/validator.js +1 -1
- package/lib/esm/ui/validator.js.map +1 -0
- package/lib/esm/user-requests/UserRequestHandler.js +1 -1
- package/lib/esm/user-requests/UserRequestHandler.js.map +1 -0
- package/lib/esm/user-requests/constants.js +1 -1
- package/lib/esm/user-requests/constants.js.map +1 -0
- package/lib/esm/user-requests/decorators.js +1 -1
- package/lib/esm/user-requests/decorators.js.map +1 -0
- package/lib/esm/user-requests/errors.js +1 -1
- package/lib/esm/user-requests/errors.js.map +1 -0
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/user-requests/index.js.map +1 -0
- package/lib/esm/user-requests/types.js +1 -1
- package/lib/esm/user-requests/types.js.map +1 -0
- package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.cts +17 -0
- package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.mts +17 -0
- package/lib/types/graph/constants.d.cts +101 -6
- package/lib/types/graph/constants.d.mts +101 -6
- package/lib/types/graph/document/GraphWorkflowUiState.d.cts +8 -0
- package/lib/types/graph/document/GraphWorkflowUiState.d.mts +8 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/package.json +3 -1
package/lib/esm/graph/reader.js
CHANGED
|
@@ -209,6 +209,9 @@ export function graphDefinitionOf(model) {
|
|
|
209
209
|
maxChildren: graph.maxChildren,
|
|
210
210
|
minWidth: graph.minWidth,
|
|
211
211
|
width: graph.width,
|
|
212
|
+
shape: graph.shape,
|
|
213
|
+
cornerRadius: graph.cornerRadius,
|
|
214
|
+
sizeRules: graph.sizeRules,
|
|
212
215
|
props: ui?.props,
|
|
213
216
|
ui,
|
|
214
217
|
graph,
|
|
@@ -282,4 +285,4 @@ export function graphWorkflowDefinitionOf(model) {
|
|
|
282
285
|
workflow,
|
|
283
286
|
};
|
|
284
287
|
}
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBoL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLDZCQUF3QjtBQUN6QyxPQUFPLEVBQ0wsU0FBUyxHQUNWLHVCQUFvQjtBQVVyQixPQUFPLEVBQUUsYUFBYSxFQUFFLHVCQUFvQjtBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQW9CO0FBQzFFLGlDQUE0QjtBQUk1QixTQUFTLFlBQVksQ0FBa0IsS0FBd0I7SUFDN0QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUF1QixDQUFDLENBQUM7SUFDMUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUEwQixDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFJLEtBQWUsQ0FBQyxXQUFXLENBQUM7SUFDOUMsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUEwQixDQUFDO0lBQ3RFLE9BQU8sS0FBdUIsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1RCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUNoQixPQUE2QixFQUM3QixJQUEwQixFQUMx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LCBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuLi91aS9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIEdyYXBoS2V5cyxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdyYXBoTm9kZURlZmluaXRpb24sXG4gIEdyYXBoTm9kZU1ldGFkYXRhLFxuICBHcmFwaFBvcnREZWZpbml0aW9uLFxuICBHcmFwaFBvcnRHcm91cE1ldGFkYXRhLFxuICBHcmFwaFBvcnRNZXRhZGF0YSxcbiAgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24sXG4gIEdyYXBoV29ya2Zsb3dNZXRhZGF0YSxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBQb3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyByZXNvbHZlRWZmZWN0aXZlQ29sb3IsIHJlc29sdmVFZmZlY3RpdmVJY29uIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgXCIuLi9tb2RlbC9vdmVycmlkZXNcIjtcblxudHlwZSBHcmFwaE1vZGVsTGlrZTxNIGV4dGVuZHMgTW9kZWwgPSBNb2RlbD4gPSBDb25zdHJ1Y3RvcjxNPiB8IE07XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RlbDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBHcmFwaE1vZGVsTGlrZTxNPik6IENvbnN0cnVjdG9yPE0+IHtcbiAgY29uc3QgcmVzb2x2ZWQgPSBNZXRhZGF0YS5jb25zdHIobW9kZWwgYXMgQ29uc3RydWN0b3I8TT4pO1xuICBpZiAodHlwZW9mIHJlc29sdmVkID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiByZXNvbHZlZCBhcyBDb25zdHJ1Y3RvcjxNPjtcbiAgY29uc3QgZmFsbGJhY2sgPSAobW9kZWwgYXMgTW9kZWwpLmNvbnN0cnVjdG9yO1xuICBpZiAodHlwZW9mIGZhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmYWxsYmFjayBhcyBDb25zdHJ1Y3RvcjxNPjtcbiAgcmV0dXJuIG1vZGVsIGFzIENvbnN0cnVjdG9yPE0+O1xufVxuXG5mdW5jdGlvbiBhc1N0cmluZyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiBTdHJpbmcodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBwaWNrTGFiZWwoXG4gIGVsZW1lbnQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBwcm9wPzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgZmFsbGJhY2s/OiBzdHJpbmdcbikge1xuICBjb25zdCBlbGVtZW50TGFiZWwgPSBhc1N0cmluZyhlbGVtZW50Py5wcm9wcz8ubGFiZWwgPz8gZWxlbWVudD8ucHJvcHM/Lm5hbWUpO1xuICByZXR1cm4gKFxuICAgIGVsZW1lbnRMYWJlbCA/P1xuICAgIGFzU3RyaW5nKHByb3A/Lm5hbWUpID8/XG4gICAgZmFsbGJhY2sgPz9cbiAgICBcIlwiXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVOZXN0ZWRNb2RlbENvbnN0cnVjdG9yKFxuICBtb2RlbDogQ29uc3RydWN0b3I8TW9kZWw+LFxuICBwcm9wZXJ0eTogc3RyaW5nLFxuICB2YWxpZGF0aW9uPzogUmVjb3JkPHN0cmluZywgYW55PlxuKTogQ29uc3RydWN0b3I8TW9kZWw+IHwgdW5kZWZpbmVkIHtcbiAgLy8gMS4gRXhwbGljaXQgYG1vZGVsYCBvcHRpb24gb24gQGlucHV0KHsgbW9kZWw6IFNvbWVTY2hlbWEgfSkg4oCUIHN1cnZpdmVzXG4gIC8vICAgIGJ1bmRsZXIgdHJlZS1zaGFraW5nIGJlY2F1c2UgdGhlIGNsYXNzIGlzIHJlZmVyZW5jZWQgaW4gdGhlIGRlY29yYXRvclxuICAvLyAgICBjYWxsLCBub3QganVzdCBpbiBUeXBlU2NyaXB0J3MgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIC4uLikuXG4gIGNvbnN0IGdyYXBoID0gZ3JhcGhQb3J0TWV0YWRhdGFPZihtb2RlbCwgcHJvcGVydHkpO1xuICBpZiAoZ3JhcGg/Lm1vZGVsICYmIHR5cGVvZiBncmFwaC5tb2RlbCA9PT0gXCJmdW5jdGlvblwiICYmIE1vZGVsLmlzTW9kZWwoZ3JhcGgubW9kZWwgYXMgbmV2ZXIpKSB7XG4gICAgcmV0dXJuIGdyYXBoLm1vZGVsIGFzIENvbnN0cnVjdG9yPE1vZGVsPjtcbiAgfVxuXG4gIC8vIDIuIFR5cGVTY3JpcHQgZGVzaWduOnR5cGUgbWV0YWRhdGEgKGZyYWdpbGUg4oCUIGJ1bmRsZXJzIG1heSByZXBsYWNlIHdpdGhcbiAgLy8gICAgT2JqZWN0IHdoZW4gdGhlIGNsYXNzIGlzIHRyZWUtc2hha2VuKS5cbiAgY29uc3QgZGlyZWN0VHlwZSA9IE1ldGFkYXRhLnR5cGUobW9kZWwsIHByb3BlcnR5KTtcbiAgaWYgKHR5cGVvZiBkaXJlY3RUeXBlID09PSBcImZ1bmN0aW9uXCIgJiYgTW9kZWwuaXNNb2RlbChkaXJlY3RUeXBlKSkge1xuICAgIHJldHVybiBkaXJlY3RUeXBlIGFzIENvbnN0cnVjdG9yPE1vZGVsPjtcbiAgfVxuXG4gIGNvbnN0IGRlc2lnblR5cGVzID0gKChNZXRhZGF0YSBhcyBhbnkpLmdldFByb3BEZXNpZ25UeXBlcz8uKG1vZGVsLCBwcm9wZXJ0eSk/LmRlc2lnblR5cGVzIHx8XG4gICAgW10pIGFzIHVua25vd25bXTtcbiAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgZGVzaWduVHlwZXMpIHtcbiAgICBpZiAodHlwZW9mIGNhbmRpZGF0ZSA9PT0gXCJmdW5jdGlvblwiICYmIE1vZGVsLmlzTW9kZWwoY2FuZGlkYXRlIGFzIG5ldmVyKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZSBhcyBDb25zdHJ1Y3RvcjxNb2RlbD47XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY3VzdG9tVHlwZXMgPSB2YWxpZGF0aW9uPy5bVmFsaWRhdGlvbktleXMuVFlQRV0/LmN1c3RvbVR5cGVzIHx8IFtdO1xuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjdXN0b21UeXBlcyBhcyB1bmtub3duW10pIHtcbiAgICBpZiAodHlwZW9mIGNhbmRpZGF0ZSA9PT0gXCJmdW5jdGlvblwiICYmIE1vZGVsLmlzTW9kZWwoY2FuZGlkYXRlIGFzIG5ldmVyKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZSBhcyBDb25zdHJ1Y3RvcjxNb2RlbD47XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcHJlZml4R3JhcGhQb3J0UGF0aChcbiAgcG9ydDogR3JhcGhQb3J0RGVmaW5pdGlvbixcbiAgcHJlZml4OiBzdHJpbmdcbik6IEdyYXBoUG9ydERlZmluaXRpb24ge1xuICBjb25zdCBwYXRoID0gW3ByZWZpeCwgcG9ydC5wYXRoID8/IHBvcnQucHJvcGVydHldLmZpbHRlcihCb29sZWFuKS5qb2luKFwiLlwiKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5wb3J0LFxuICAgIHBhdGgsXG4gICAgY2hpbGRyZW46IHBvcnQuY2hpbGRyZW4/Lm1hcCgoY2hpbGQpID0+IHByZWZpeEdyYXBoUG9ydFBhdGgoY2hpbGQsIHBhdGgpKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoTm9kZU1ldGFkYXRhT2Y8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IEdyYXBoTW9kZWxMaWtlPE0+XG4pOiBHcmFwaE5vZGVNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsKG1vZGVsKTtcbiAgcmV0dXJuIE1ldGFkYXRhLmdldChyZXNvbHZlZCwgR3JhcGhLZXlzLk5PREUpIGFzIEdyYXBoTm9kZU1ldGFkYXRhIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhXb3JrZmxvd01ldGFkYXRhT2Y8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IEdyYXBoTW9kZWxMaWtlPE0+XG4pOiBHcmFwaFdvcmtmbG93TWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNb2RlbChtb2RlbCk7XG4gIHJldHVybiBNZXRhZGF0YS5nZXQocmVzb2x2ZWQsIEdyYXBoS2V5cy5HUkFQSCkgYXMgR3JhcGhXb3JrZmxvd01ldGFkYXRhIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhQb3J0TWV0YWRhdGFPZjxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogR3JhcGhNb2RlbExpa2U8TT4sXG4gIHByb3BlcnR5OiBrZXlvZiBNIHwgc3RyaW5nXG4pOiBHcmFwaFBvcnRNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsKG1vZGVsKTtcbiAgcmV0dXJuIE1ldGFkYXRhLmdldChyZXNvbHZlZCwgTWV0YWRhdGEua2V5KEdyYXBoS2V5cy5QT1JULCBTdHJpbmcocHJvcGVydHkpKSkgYXNcbiAgICB8IEdyYXBoUG9ydE1ldGFkYXRhXG4gICAgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFBvcnREZWZpbml0aW9uT2Y8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IEdyYXBoTW9kZWxMaWtlPE0+LFxuICBwcm9wZXJ0eToga2V5b2YgTSB8IHN0cmluZ1xuKTogR3JhcGhQb3J0RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBncmFwaFBvcnREZWZpbml0aW9uT2ZJbnRlcm5hbChyZXNvbHZlTW9kZWwobW9kZWwpLCBTdHJpbmcocHJvcGVydHkpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmbGF0dGVuZWQgcG9ydHMgb2YgYSBTY2hlbWEtdHlwZWQgYEBpbnB1dGAgLyBgQG91dHB1dGAgcHJvcGVydHlcbiAqIChhIFwiU2NoZW1hIHBvcnQgZ3JvdXBcIikuIFRoZSBTY2hlbWEncyBvd24gYEBpbnB1dGAgLyBgQG91dHB1dGAgcHJvcGVydGllc1xuICogd2hvc2UgZGlyZWN0aW9uIG1hdGNoZXMgYGRpcmVjdGlvbmAgYXJlIHNwbGljZWQgaW50byB0aGUgcmVzdWx0IFVOUFJFRklYRURcbiAqIChubyBgPHNjaGVtYVByb3A+LmAgcHJlZml4KS4gVGhlIGNhcnJpZXIgcHJvcGVydHkgaXRzZWxmIGlzIG5vdCBhIHBvcnQuXG4gKlxuICogUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBTY2hlbWEgZ3JvdXAgKG5vdFxuICogYGdyYXBoLnNjaGVtYWAsIG9yIG5vdCBTY2hlbWEtdHlwZWQpLCBzbyB0aGUgY2FsbGVyIGZhbGxzIGJhY2sgdG8gdGhlIGxlZ2FjeVxuICogc2luZ2xlLXBvcnQgLyBjb21wb3NpdGUgZXhwYW5zaW9uIHBhdGguXG4gKi9cbmZ1bmN0aW9uIHNjaGVtYUdyb3VwUG9ydHMoXG4gIHJlc29sdmVkOiBDb25zdHJ1Y3RvcjxNb2RlbD4sXG4gIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gIGRpcmVjdGlvbjogUG9ydERpcmVjdGlvbixcbiAgdmlzaXRlZDogU2V0PENvbnN0cnVjdG9yPE1vZGVsPj4gPSBuZXcgU2V0KClcbik6IEdyYXBoUG9ydERlZmluaXRpb25bXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdyYXBoID0gZ3JhcGhQb3J0TWV0YWRhdGFPZihyZXNvbHZlZCwgcHJvcGVydHlLZXkpO1xuICBpZiAoIWdyYXBoPy5zY2hlbWEpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHZhbGlkYXRpb24gPSAoTWV0YWRhdGEgYXMgYW55KS52YWxpZGF0aW9uRm9yKHJlc29sdmVkLCBwcm9wZXJ0eUtleSkgYXNcbiAgICB8IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICB8IHVuZGVmaW5lZDtcbiAgY29uc3QgbmVzdGVkTW9kZWwgPSByZXNvbHZlTmVzdGVkTW9kZWxDb25zdHJ1Y3RvcihyZXNvbHZlZCwgcHJvcGVydHlLZXksIHZhbGlkYXRpb24pO1xuICBpZiAoIW5lc3RlZE1vZGVsKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAodmlzaXRlZC5oYXMobmVzdGVkTW9kZWwpKSByZXR1cm4gW107IC8vIGN5Y2xlIGd1YXJkIOKAlCBzdG9wIHJlY3Vyc2luZ1xuICBjb25zdCBuZXh0VmlzaXRlZCA9IG5ldyBTZXQodmlzaXRlZCk7XG4gIG5leHRWaXNpdGVkLmFkZChyZXNvbHZlZCk7XG4gIG5leHRWaXNpdGVkLmFkZChuZXN0ZWRNb2RlbCk7XG4gIGNvbnN0IGNoaWxkUG9ydHMgPSBncmFwaFBvcnRzT2ZJbnRlcm5hbChuZXN0ZWRNb2RlbCwgbmV4dFZpc2l0ZWQpO1xuICByZXR1cm4gY2hpbGRQb3J0cy5maWx0ZXIoKGNoaWxkKSA9PiBjaGlsZC5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbik7XG59XG5cbmZ1bmN0aW9uIGdyYXBoUG9ydERlZmluaXRpb25PZkludGVybmFsKFxuICByZXNvbHZlZDogQ29uc3RydWN0b3I8TW9kZWw+LFxuICBwcm9wZXJ0eUtleTogc3RyaW5nLFxuICB2aXNpdGVkOiBTZXQ8Q29uc3RydWN0b3I8TW9kZWw+PiA9IG5ldyBTZXQoKVxuKTogR3JhcGhQb3J0RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdyYXBoID0gZ3JhcGhQb3J0TWV0YWRhdGFPZihyZXNvbHZlZCwgcHJvcGVydHlLZXkpO1xuICBpZiAoIWdyYXBoKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIC8vIFNjaGVtYSBwb3J0IGdyb3VwIChAaW5wdXQgLyBAb3V0cHV0IG9uIGEgU2NoZW1hLXR5cGVkIHByb3BlcnR5KTogdGhlXG4gIC8vIGNhcnJpZXIgaXMgbm90IGEgcG9ydCDigJQgaXRzIFNjaGVtYSdzIG1hdGNoaW5nLWRpcmVjdGlvbiBwb3J0cyBhcmUgc3BsaWNlZFxuICAvLyBpbnRvIHRoZSBwYXJlbnQgYnkgZ3JhcGhQb3J0c09mSW50ZXJuYWwuIFRoZSBzaW5ndWxhciByZWFkZXIgcmV0dXJuc1xuICAvLyB1bmRlZmluZWQgZm9yIHRoZSBjYXJyaWVyLlxuICBjb25zdCB2YWxpZGF0aW9uID0gKE1ldGFkYXRhIGFzIGFueSkudmFsaWRhdGlvbkZvcihyZXNvbHZlZCwgcHJvcGVydHlLZXkpIGFzXG4gICAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IG5lc3RlZE1vZGVsID0gcmVzb2x2ZU5lc3RlZE1vZGVsQ29uc3RydWN0b3IocmVzb2x2ZWQsIHByb3BlcnR5S2V5LCB2YWxpZGF0aW9uKTtcbiAgaWYgKGdyYXBoLnNjaGVtYSAmJiBuZXN0ZWRNb2RlbCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBlbGVtZW50ID0gKChNb2RlbCBhcyBhbnkpLnVpRWxlbWVudE9mKHJlc29sdmVkLCBwcm9wZXJ0eUtleSkgfHxcbiAgICB1bmRlZmluZWQpIGFzIFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHVpUHJvcCA9IChNb2RlbCBhcyBhbnkpLnVpRGVjb3JhdGlvbk9mKFxuICAgIHJlc29sdmVkLFxuICAgIHByb3BlcnR5S2V5LFxuICAgIFVJS2V5cy5QUk9QXG4gICkgYXMgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgY29uc3QgZGVzaWduVHlwZSA9IE1ldGFkYXRhLnR5cGUocmVzb2x2ZWQsIHByb3BlcnR5S2V5KTtcbiAgY29uc3QgdHlwZU5hbWUgPSBhc1N0cmluZyhcbiAgICB2YWxpZGF0aW9uPy5bVmFsaWRhdGlvbktleXMuVFlQRV0/LmN1c3RvbVR5cGVzPy5bMF0/Lm5hbWUgPz9cbiAgICAgIGVsZW1lbnQ/LnByb3BzPy50eXBlID8/XG4gICAgICB1aVByb3A/LnR5cGUgPz9cbiAgICAgIGRlc2lnblR5cGU/Lm5hbWVcbiAgKTtcbiAgY29uc3Qgc2hvdWxkRXhwYW5kID0gISFncmFwaC5leHBhbmQgfHwgKCEhbmVzdGVkTW9kZWwgJiYgIXZpc2l0ZWQuaGFzKG5lc3RlZE1vZGVsKSk7XG4gIGNvbnN0IGNoaWxkcmVuID1cbiAgICBzaG91bGRFeHBhbmQgJiYgbmVzdGVkTW9kZWxcbiAgICAgID8gKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXh0VmlzaXRlZCA9IG5ldyBTZXQodmlzaXRlZCk7XG4gICAgICAgICAgbmV4dFZpc2l0ZWQuYWRkKHJlc29sdmVkKTtcbiAgICAgICAgICBuZXh0VmlzaXRlZC5hZGQobmVzdGVkTW9kZWwpO1xuICAgICAgICAgIHJldHVybiBncmFwaFBvcnRzT2ZJbnRlcm5hbChuZXN0ZWRNb2RlbCwgbmV4dFZpc2l0ZWQpLm1hcCgoY2hpbGQpID0+XG4gICAgICAgICAgICBwcmVmaXhHcmFwaFBvcnRQYXRoKGNoaWxkLCBwcm9wZXJ0eUtleSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSgpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnR5OiBwcm9wZXJ0eUtleSxcbiAgICBwYXRoOiBwcm9wZXJ0eUtleSxcbiAgICBkaXJlY3Rpb246IGdyYXBoLmRpcmVjdGlvbixcbiAgICBuYW1lOiBwcm9wZXJ0eUtleSxcbiAgICBsYWJlbDogcGlja0xhYmVsKGVsZW1lbnQsIHVpUHJvcCwgcHJvcGVydHlLZXkpLFxuICAgIHR5cGU6IHR5cGVOYW1lPy50b0xvd2VyQ2FzZSgpLFxuICAgIHJlcXVpcmVkOiAhIXZhbGlkYXRpb24/LltWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRF0sXG4gICAgaGlkZGVuOiAhIShNb2RlbCBhcyBhbnkpLnVpSXNIaWRkZW4ocmVzb2x2ZWQsIHByb3BlcnR5S2V5KSxcbiAgICBkZXNpZ25UeXBlOiBkZXNpZ25UeXBlPy5uYW1lLFxuICAgIGVsZW1lbnQsXG4gICAgcHJvcDogdWlQcm9wLFxuICAgIHZhbGlkYXRpb24sXG4gICAgZ3JhcGgsXG4gICAgY29ubmVjdGlvblJ1bGVzOiBncmFwaC5jb25uZWN0aW9uUnVsZXMsXG4gICAgY29tcG9zaXRlOiAhIWNoaWxkcmVuPy5sZW5ndGgsXG4gICAgY2hpbGRyZW4sXG4gICAgbW9kZWw6IG5lc3RlZE1vZGVsPy5uYW1lLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhQb3J0c09mPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBHcmFwaE1vZGVsTGlrZTxNPlxuKTogR3JhcGhQb3J0RGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIGdyYXBoUG9ydHNPZkludGVybmFsKHJlc29sdmVNb2RlbChtb2RlbCkpO1xufVxuXG5mdW5jdGlvbiBncmFwaFBvcnRzT2ZJbnRlcm5hbChcbiAgcmVzb2x2ZWQ6IENvbnN0cnVjdG9yPE1vZGVsPixcbiAgdmlzaXRlZDogU2V0PENvbnN0cnVjdG9yPE1vZGVsPj4gPSBuZXcgU2V0KClcbik6IEdyYXBoUG9ydERlZmluaXRpb25bXSB7XG4gIGNvbnN0IHByb3BlcnRpZXMgPSBNZXRhZGF0YS5wcm9wZXJ0aWVzKHJlc29sdmVkKSB8fCBbXTtcbiAgY29uc3QgcmVzdWx0OiBHcmFwaFBvcnREZWZpbml0aW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgY29uc3Qga2V5ID0gU3RyaW5nKHByb3BlcnR5KTtcbiAgICBjb25zdCBncmFwaCA9IGdyYXBoUG9ydE1ldGFkYXRhT2YocmVzb2x2ZWQsIGtleSk7XG4gICAgLy8gU2NoZW1hIHBvcnQgZ3JvdXA6IHNwbGljZSB0aGUgU2NoZW1hJ3MgbWF0Y2hpbmctZGlyZWN0aW9uIHBvcnRzXG4gICAgLy8gKHVucHJlZml4ZWQpIGluc3RlYWQgb2YgZW1pdHRpbmcgdGhlIGNhcnJpZXIuXG4gICAgaWYgKGdyYXBoPy5zY2hlbWEpIHtcbiAgICAgIGNvbnN0IGdyb3VwUG9ydHMgPSBzY2hlbWFHcm91cFBvcnRzKHJlc29sdmVkLCBrZXksIGdyYXBoLmRpcmVjdGlvbiwgdmlzaXRlZCk7XG4gICAgICBpZiAoZ3JvdXBQb3J0cykge1xuICAgICAgICByZXN1bHQucHVzaCguLi5ncm91cFBvcnRzKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBvcnQgPSBncmFwaFBvcnREZWZpbml0aW9uT2ZJbnRlcm5hbChyZXNvbHZlZCwga2V5LCB2aXNpdGVkKTtcbiAgICBpZiAocG9ydCkgcmVzdWx0LnB1c2gocG9ydCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoTGVhZlBvcnRzT2YocG9ydHM6IEdyYXBoUG9ydERlZmluaXRpb25bXSk6IEdyYXBoUG9ydERlZmluaXRpb25bXSB7XG4gIHJldHVybiBwb3J0cy5mbGF0TWFwKChwb3J0KSA9PlxuICAgIHBvcnQuY2hpbGRyZW4gJiYgcG9ydC5jaGlsZHJlbi5sZW5ndGggPyBncmFwaExlYWZQb3J0c09mKHBvcnQuY2hpbGRyZW4pIDogW3BvcnRdXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFdvcmtmbG93SW5wdXRMZWFmUG9ydHNPZjxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogR3JhcGhNb2RlbExpa2U8TT5cbik6IEdyYXBoUG9ydERlZmluaXRpb25bXSB7XG4gIHJldHVybiBncmFwaExlYWZQb3J0c09mKGdyYXBoV29ya2Zsb3dEZWZpbml0aW9uT2YobW9kZWwpLmlucHV0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFdvcmtmbG93T3V0cHV0TGVhZlBvcnRzT2Y8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IEdyYXBoTW9kZWxMaWtlPE0+XG4pOiBHcmFwaFBvcnREZWZpbml0aW9uW10ge1xuICByZXR1cm4gZ3JhcGhMZWFmUG9ydHNPZihncmFwaFdvcmtmbG93RGVmaW5pdGlvbk9mKG1vZGVsKS5vdXRwdXRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoRGVmaW5pdGlvbk9mPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBHcmFwaE1vZGVsTGlrZTxNPlxuKTogR3JhcGhOb2RlRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsKG1vZGVsKTtcbiAgY29uc3QgdWkgPSBNb2RlbC51aU1vZGVsT2YocmVzb2x2ZWQpO1xuICBjb25zdCBncmFwaCA9IGdyYXBoTm9kZU1ldGFkYXRhT2YocmVzb2x2ZWQpIHx8IHt9O1xuICBjb25zdCB0YWcgPSB1aT8udGFnIHx8IHJlc29sdmVkLm5hbWU7XG4gIGNvbnN0IHBvcnRzID0gZ3JhcGhQb3J0c09mKHJlc29sdmVkKTtcbiAgY29uc3QgcG9ydEdyb3VwcyA9IHJlc29sdmVQb3J0R3JvdXBzKHJlc29sdmVkLCBncmFwaCk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiByZXNvbHZlZC5uYW1lLFxuICAgIHRhZyxcbiAgICBraW5kOiBncmFwaC5raW5kIHx8IHRhZyxcbiAgICBjYXRlZ29yeTogZ3JhcGguY2F0ZWdvcnksXG4gICAgY29sb3I6IGdyYXBoLmNvbG9yLFxuICAgIGVmZmVjdGl2ZUNvbG9yOiByZXNvbHZlRWZmZWN0aXZlQ29sb3IoZ3JhcGguY29sb3IsIGdyYXBoLmNhdGVnb3J5KSxcbiAgICBncm91cDogZ3JhcGguZ3JvdXAsXG4gICAgaGVpZ2h0OiBncmFwaC5oZWlnaHQsXG4gICAgaWNvbjogZ3JhcGguaWNvbixcbiAgICBlZmZlY3RpdmVJY29uOiByZXNvbHZlRWZmZWN0aXZlSWNvbihncmFwaC5pY29uLCBncmFwaC5jYXRlZ29yeSksXG4gICAgbGFiZWxzOiBncmFwaC5sYWJlbHMgfHwgW10sXG4gICAgbWF4Q2hpbGRyZW46IGdyYXBoLm1heENoaWxkcmVuLFxuICAgIG1pbldpZHRoOiBncmFwaC5taW5XaWR0aCxcbiAgICB3aWR0aDogZ3JhcGgud2lkdGgsXG4gICAgcHJvcHM6IHVpPy5wcm9wcyxcbiAgICB1aSxcbiAgICBncmFwaCxcbiAgICBwb3J0cyxcbiAgICBwb3J0R3JvdXBzLFxuICB9O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZWZmZWN0aXZlIGBwb3J0R3JvdXBzYCBsaXN0IGZvciBhIG5vZGU6IHN0YXJ0cyBmcm9tIHRoZSBkZWNsYXJlZFxuICogYEdyYXBoTm9kZU1ldGFkYXRhLnBvcnRHcm91cHNgIGFuZCBlbnN1cmVzIGV2ZXJ5IFNjaGVtYS10eXBlZCBgQGlucHV0YCAvXG4gKiBgQG91dHB1dGAgcHJvcGVydHkgbm90IGV4cGxpY2l0bHkgbGlzdGVkIGdldHMgYSBkZWZhdWx0XG4gKiBgeyBwcm9wZXJ0eSwgdG9nZ2xlOiBcImFsbFwiIH1gIGVudHJ5LiBOb24tU2NoZW1hLXR5cGVkIGBAaW5wdXRgIC8gYEBvdXRwdXRgXG4gKiBwcm9wZXJ0aWVzIGFyZSBub3QgZ3JvdXBzIGFuZCBhcmUgaWdub3JlZC5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVBvcnRHcm91cHMoXG4gIHJlc29sdmVkOiBDb25zdHJ1Y3RvcjxNb2RlbD4sXG4gIGdyYXBoOiBHcmFwaE5vZGVNZXRhZGF0YVxuKTogR3JhcGhQb3J0R3JvdXBNZXRhZGF0YVtdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVjbGFyZWQgPSBncmFwaC5wb3J0R3JvdXBzIHx8IFtdO1xuICBjb25zdCBkZWNsYXJlZEJ5UHJvcGVydHkgPSBuZXcgTWFwKGRlY2xhcmVkLm1hcCgoZykgPT4gW2cucHJvcGVydHksIGddKSk7XG4gIGNvbnN0IGdyb3VwczogR3JhcGhQb3J0R3JvdXBNZXRhZGF0YVtdID0gW107XG4gIGNvbnN0IHByb3BlcnRpZXMgPSBNZXRhZGF0YS5wcm9wZXJ0aWVzKHJlc29sdmVkKSB8fCBbXTtcbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgY29uc3Qga2V5ID0gU3RyaW5nKHByb3BlcnR5KTtcbiAgICBjb25zdCBwb3J0TWV0YSA9IGdyYXBoUG9ydE1ldGFkYXRhT2YocmVzb2x2ZWQsIGtleSk7XG4gICAgaWYgKCFwb3J0TWV0YT8uc2NoZW1hKSBjb250aW51ZTtcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gKE1ldGFkYXRhIGFzIGFueSkudmFsaWRhdGlvbkZvcihyZXNvbHZlZCwga2V5KSBhc1xuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBuZXN0ZWRNb2RlbCA9IHJlc29sdmVOZXN0ZWRNb2RlbENvbnN0cnVjdG9yKHJlc29sdmVkLCBrZXksIHZhbGlkYXRpb24pO1xuICAgIGlmICghbmVzdGVkTW9kZWwpIGNvbnRpbnVlOyAvLyBub3QgU2NoZW1hLXR5cGVkIOKAlCBub3QgYSBncm91cFxuICAgIGNvbnN0IGRlY2xhcmVkR3JvdXAgPSBkZWNsYXJlZEJ5UHJvcGVydHkuZ2V0KGtleSk7XG4gICAgZ3JvdXBzLnB1c2goXG4gICAgICBkZWNsYXJlZEdyb3VwXG4gICAgICAgID8geyAuLi5kZWNsYXJlZEdyb3VwLCB0b2dnbGU6IGRlY2xhcmVkR3JvdXAudG9nZ2xlID8/IFwiYWxsXCIgfVxuICAgICAgICA6IHsgcHJvcGVydHk6IGtleSwgdG9nZ2xlOiBcImFsbFwiIGFzIGNvbnN0IH1cbiAgICApO1xuICB9XG4gIC8vIGFsc28ga2VlcCBkZWNsYXJlZCBncm91cHMgdGhhdCBkb24ndCBjb3JyZXNwb25kIHRvIGEgU2NoZW1hIHByb3BlcnR5XG4gIC8vIChkZWZlbnNpdmUg4oCUIGxldHMgY2FsbGVycyBjYXJyeSBsYWJlbHMgZm9yIGZ1dHVyZSBncm91cHMpXG4gIGZvciAoY29uc3QgZyBvZiBkZWNsYXJlZCkge1xuICAgIGlmICghZ3JvdXBzLnNvbWUoKHgpID0+IHgucHJvcGVydHkgPT09IGcucHJvcGVydHkpKSBncm91cHMucHVzaChnKTtcbiAgfVxuICByZXR1cm4gZ3JvdXBzLmxlbmd0aCA/IGdyb3VwcyA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dEZWZpbml0aW9uT2Y8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IEdyYXBoTW9kZWxMaWtlPE0+XG4pOiBHcmFwaFdvcmtmbG93RGVmaW5pdGlvbiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZU1vZGVsKG1vZGVsKTtcbiAgY29uc3Qgd29ya2Zsb3cgPSBncmFwaFdvcmtmbG93TWV0YWRhdGFPZihyZXNvbHZlZCkgfHwge307XG4gIGNvbnN0IG5vZGUgPSBncmFwaERlZmluaXRpb25PZihyZXNvbHZlZCk7XG4gIGNvbnN0IGlucHV0cyA9XG4gICAgd29ya2Zsb3cuaW5wdXRzIHx8XG4gICAgbm9kZS5wb3J0cy5maWx0ZXIoKHBvcnQpID0+IHBvcnQuZGlyZWN0aW9uID09PSBQb3J0RGlyZWN0aW9uLklOUFVUKTtcbiAgY29uc3Qgb3V0cHV0cyA9XG4gICAgd29ya2Zsb3cub3V0cHV0cyB8fFxuICAgIG5vZGUucG9ydHMuZmlsdGVyKChwb3J0KSA9PiBwb3J0LmRpcmVjdGlvbiA9PT0gUG9ydERpcmVjdGlvbi5PVVRQVVQpO1xuICBjb25zdCBjb25uZWN0aW9ucyA9XG4gICAgd29ya2Zsb3cuY29ubmVjdGlvbnMgfHxcbiAgICBub2RlLnBvcnRzLmZpbHRlcigocG9ydCkgPT4gcG9ydC5kaXJlY3Rpb24gPT09IFBvcnREaXJlY3Rpb24uQ09OTkVDVElPTik7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5ub2RlLFxuICAgIGtpbmQ6IHdvcmtmbG93LmtpbmQgfHwgbm9kZS5raW5kLFxuICAgIGNhdGVnb3J5OiB3b3JrZmxvdy5jYXRlZ29yeSA/PyBub2RlLmNhdGVnb3J5LFxuICAgIGNvbG9yOiB3b3JrZmxvdy5jb2xvciA/PyBub2RlLmNvbG9yLFxuICAgIGVmZmVjdGl2ZUNvbG9yOiByZXNvbHZlRWZmZWN0aXZlQ29sb3Iod29ya2Zsb3cuY29sb3IgPz8gbm9kZS5jb2xvciwgd29ya2Zsb3cuY2F0ZWdvcnkgPz8gbm9kZS5jYXRlZ29yeSksXG4gICAgZ3JvdXA6IHdvcmtmbG93Lmdyb3VwID8/IG5vZGUuZ3JvdXAsXG4gICAgaGVpZ2h0OiB3b3JrZmxvdy5oZWlnaHQgPz8gbm9kZS5oZWlnaHQsXG4gICAgaWNvbjogd29ya2Zsb3cuaWNvbiA/PyBub2RlLmljb24sXG4gICAgZWZmZWN0aXZlSWNvbjogcmVzb2x2ZUVmZmVjdGl2ZUljb24od29ya2Zsb3cuaWNvbiA/PyBub2RlLmljb24sIHdvcmtmbG93LmNhdGVnb3J5ID8/IG5vZGUuY2F0ZWdvcnkpLFxuICAgIGxhYmVsczogd29ya2Zsb3cubGFiZWxzIHx8IG5vZGUubGFiZWxzLFxuICAgIG1heENoaWxkcmVuOiB3b3JrZmxvdy5tYXhDaGlsZHJlbiA/PyBub2RlLm1heENoaWxkcmVuLFxuICAgIG1pbldpZHRoOiB3b3JrZmxvdy5taW5XaWR0aCA/PyBub2RlLm1pbldpZHRoLFxuICAgIHdpZHRoOiB3b3JrZmxvdy53aWR0aCA/PyBub2RlLndpZHRoLFxuICAgIGlucHV0cyxcbiAgICBvdXRwdXRzLFxuICAgIGNvbm5lY3Rpb25zLFxuICAgIG5vZGVzOiB3b3JrZmxvdy5ub2RlcyB8fCBbXSxcbiAgICByZWxhdGlvbnM6IHdvcmtmbG93LnJlbGF0aW9ucyB8fCBbXSxcbiAgICB3b3JrZmxvdyxcbiAgfTtcbn1cbiJdfQ==
|
|
288
|
+
//# sourceMappingURL=reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/graph/reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,4 +56,4 @@ export function resetGraphRegistries() {
|
|
|
56
56
|
NODE_REGISTRY.clear();
|
|
57
57
|
WORKFLOW_REGISTRY.clear();
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/graph/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;GAEG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAe,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAiB;IAC5C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -677,4 +677,4 @@ export function graphWorkflowSnapshotLikeToCanonical(value) {
|
|
|
677
677
|
}
|
|
678
678
|
return { document: value };
|
|
679
679
|
}
|
|
680
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ3JhcGgvc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLG9CQUFpQjtBQWF2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUNBQWtDO0FBRWpFLE9BQU8sRUFDTCw4QkFBOEIsR0FFL0IsZ0RBQTZDO0FBRTlDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXpFLE1BQU0sMkJBQTJCLEdBQUc7SUFDbEMsTUFBTTtJQUNOLFlBQVk7SUFDWixhQUFhO0lBQ2IsYUFBYTtJQUNiLFlBQVk7SUFDWixVQUFVO0NBQ1gsQ0FBQztBQUlGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQVUsQ0FBQztBQXFIMUQsU0FBUyxhQUFhLENBQUMsS0FBYztJQUNuQyxPQUFPLENBQ0wsQ0FBQyxDQUFDLEtBQUs7UUFDUCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDckIsQ0FBQyxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FDekIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBSSxLQUFRO0lBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFNLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUks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SUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUk7UUFDdkMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLFFBQVE7UUFDbkQsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLEtBQUs7UUFDMUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLEtBQUs7UUFDMUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU07UUFDN0MsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUk7UUFDdkMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQy9ELFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxXQUFXO1FBQzVELFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxRQUFRO1FBQ25ELEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLO1FBQzFDLFFBQVEsRUFBRSxVQUFVLENBQ2xCLFNBQVMsQ0FBQyxRQUFRO1lBQ2hCLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN6RTtRQUNELE1BQU0sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUMvRCxPQUFPLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbEUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzVE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QUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3BFLENBQVU7UUFDWCxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFVO0tBQ3ZELENBQUM7SUFDRixPQUFPO1FBQ0wsT0FBTyxFQUFFLCtCQUErQjtRQUN4QyxVQUFVO1FBQ1YsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUErQjtJQUM3RCxPQUFPO1FBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBVTtLQUNqQixDQUFDO0FBQ3RDLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxLQUF3RDtJQUV4RCxJQUFJLFVBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN4QixPQUFPLEtBQThCLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksT0FBTyxJQUFJLEtBQUssSUFBSSxZQUFZLElBQUksS0FBSyxFQUFFLENBQUM7UUFDOUMsT0FBTywrQkFBK0IsQ0FBQyxLQUFvQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBOEIsRUFBRSxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBHcmFwaFBvcnREZWZpbml0aW9uLFxuICBHcmFwaFdvcmtmbG93RGVmaW5pdGlvbixcbiAgR3JhcGhXb3JrZmxvd01ldGFkYXRhLFxuICBHcmFwaFdvcmtmbG93Tm9kZU1ldGFkYXRhLFxuICBHcmFwaFdvcmtmbG93UmVsYXRpb25NZXRhZGF0YSxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBncmFwaExlYWZQb3J0c09mLCBncmFwaFdvcmtmbG93RGVmaW5pdGlvbk9mIH0gZnJvbSBcIi4vcmVhZGVyXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdyYXBoV29ya2Zsb3dEb2N1bWVudCxcbiAgR3JhcGhXb3JrZmxvd1BvcnRJbnN0YW5jZSxcbn0gZnJvbSBcIi4vZG9jdW1lbnQvR3JhcGhXb3JrZmxvd0RvY3VtZW50XCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoTm9kZUluc3RhbmNlIH0gZnJvbSBcIi4vZG9jdW1lbnQvR3JhcGhOb2RlSW5zdGFuY2VcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFZGdlSW5zdGFuY2UgfSBmcm9tIFwiLi9kb2N1bWVudC9HcmFwaEVkZ2VJbnN0YW5jZVwiO1xuaW1wb3J0IHR5cGUge1xuICBHcmFwaEVuZHBvaW50LFxuICBHcmFwaFdvcmtmbG93RW5kcG9pbnQsXG59IGZyb20gXCIuL2RvY3VtZW50L0dyYXBoRW5kcG9pbnRcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhJbnB1dEJpbmRpbmcgfSBmcm9tIFwiLi9kb2N1bWVudC9HcmFwaE5vZGVCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoSnNvblZhbHVlIH0gZnJvbSBcIi4vZG9jdW1lbnQvR3JhcGhKc29uVmFsdWVcIjtcbmltcG9ydCB7IGlzR3JhcGhKc29uU2FmZVZhbHVlIH0gZnJvbSBcIi4vZG9jdW1lbnQvR3JhcGhKc29uVmFsdWVcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhOb2RlVWlTdGF0ZSwgR3JhcGhXb3JrZmxvd1VpU3RhdGUgfSBmcm9tIFwiLi9kb2N1bWVudC9HcmFwaFdvcmtmbG93VWlTdGF0ZVwiO1xuaW1wb3J0IHtcbiAgZ3JhcGhWYWx1ZVNjaGVtYUZyb21WYWxpZGF0aW9uLFxuICB0eXBlIEdyYXBoVmFsaWRhdGlvblJlY29yZCxcbn0gZnJvbSBcIi4vY2F0YWxvZy9HcmFwaFZhbHVlU2NoZW1hRGVyaXZhdGlvblwiO1xuXG5jb25zdCBHUkFQSF9MRUdBQ1lfQk9VTkRBUllfQUxJQVNFUyA9IFtcIiR3b3JrZmxvd1wiLCBcIndvcmtmbG93XCIsIFwiZ3JhcGhcIl07XG5cbmNvbnN0IEdSQVBIX0NPTlNUUlVDVE9SX0RBVEFfS0VZUyA9IFtcbiAgXCJub2RlXCIsXG4gIFwibW9kZWxDbGFzc1wiLFxuICBcInNvdXJjZUNsYXNzXCIsXG4gIFwiY29uc3RydWN0b3JcIixcbiAgXCJkZWZpbml0aW9uXCIsXG4gIFwiZXhlY3V0b3JcIixcbl07XG5cbnR5cGUgR3JhcGhNb2RlbExpa2U8TSBleHRlbmRzIE1vZGVsID0gTW9kZWw+ID0gQ29uc3RydWN0b3I8TT4gfCBNO1xuXG5leHBvcnQgY29uc3QgR1JBUEhfV09SS0ZMT1dfU05BUFNIT1RfVkVSU0lPTiA9IDEgYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFJlZmVyZW5jZSA9IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGtpbmQ/OiBzdHJpbmc7XG4gIHRhZz86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgcHJvcGVydHk/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaFdvcmtmbG93U25hcHNob3RQb3NpdGlvbiA9IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaFdvcmtmbG93U25hcHNob3RTaXplID0ge1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgR3JhcGhXb3JrZmxvd1NuYXBzaG90UG9ydFN0YXRlID0ge1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIHZhbHVlPzogdW5rbm93bjtcbiAgbW9kZT86IFwicG9ydFwiIHwgXCJ2YWx1ZVwiO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufTtcblxuZXhwb3J0IHR5cGUgR3JhcGhXb3JrZmxvd1NuYXBzaG90VmFsdWUgPSB7XG4gIHBhdGg6IHN0cmluZztcbiAgdmFsdWU/OiB1bmtub3duO1xuICBsYWJlbD86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBtb2RlbD86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn07XG5cbmV4cG9ydCB0eXBlIEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGUgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHJlZj86IEdyYXBoV29ya2Zsb3dTbmFwc2hvdFJlZmVyZW5jZTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGtpbmQ/OiBzdHJpbmc7XG4gIHBvc2l0aW9uPzogR3JhcGhXb3JrZmxvd1NuYXBzaG90UG9zaXRpb247XG4gIHNpemU/OiBHcmFwaFdvcmtmbG93U25hcHNob3RTaXplO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIHBvcnRzPzogUmVjb3JkPHN0cmluZywgR3JhcGhXb3JrZmxvd1NuYXBzaG90UG9ydFN0YXRlPjtcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufTtcblxuZXhwb3J0IHR5cGUgR3JhcGhXb3JrZmxvd1NuYXBzaG90RWRnZSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNvdXJjZVJlZj86IHN0cmluZztcbiAgc291cmNlUG9ydD86IHN0cmluZztcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIHRhcmdldFJlZj86IHN0cmluZztcbiAgdGFyZ2V0UG9ydD86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRhZzogc3RyaW5nO1xuICBraW5kOiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgZ3JvdXA/OiBzdHJpbmc7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgaWNvbj86IHN0cmluZztcbiAgbGFiZWxzOiBzdHJpbmdbXTtcbiAgbWF4Q2hpbGRyZW4/OiBudW1iZXI7XG4gIG1pbldpZHRoPzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbiAgbWV0YWRhdGE/OiBHcmFwaFdvcmtmbG93TWV0YWRhdGE7XG4gIGlucHV0czogR3JhcGhQb3J0RGVmaW5pdGlvbltdO1xuICBvdXRwdXRzOiBHcmFwaFBvcnREZWZpbml0aW9uW107XG4gIG5vZGVzOiBHcmFwaFdvcmtmbG93Tm9kZU1ldGFkYXRhW107XG4gIHJlbGF0aW9uczogR3JhcGhXb3JrZmxvd1JlbGF0aW9uTWV0YWRhdGFbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFN0YXRlID0ge1xuICBpbnB1dHM6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdFZhbHVlW107XG4gIG91dHB1dHM6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdFZhbHVlW107XG4gIG5vZGVzOiBHcmFwaFdvcmtmbG93U25hcHNob3ROb2RlW107XG4gIGVkZ2VzOiBHcmFwaFdvcmtmbG93U25hcHNob3RFZGdlW107XG4gIHVpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufTtcblxuLyoqIFNuYXBzaG90IHNjaGVtYSB2ZXJzaW9uIGxpdGVyYWwgdHlwZSAoe0BsaW5rIEdSQVBIX1dPUktGTE9XX1NOQVBTSE9UX1ZFUlNJT059KS4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFZlcnNpb24gPSB0eXBlb2YgR1JBUEhfV09SS0ZMT1dfU05BUFNIT1RfVkVSU0lPTjtcblxuLyoqXG4gKiBMZWdhY3kgcGVyc2lzdGVkIHNuYXBzaG90IChgeyB2ZXJzaW9uLCBkZWZpbml0aW9uLCBzdGF0ZSB9YCkuIEtlcHQgb25seSBmb3JcbiAqIGxvYWRpbmcvY29tcGF0aWJpbGl0eSBvZiBwZXJzaXN0ZWQgZGF0YTsgdGhlIGNhbm9uaWNhbCBzbmFwc2hvdCBpc1xuICoge0BsaW5rIEdyYXBoV29ya2Zsb3dTbmFwc2hvdH0gKGB7IGRvY3VtZW50LCBlZGl0b3I/LCBtZXRhZGF0YT8gfWApLlxuICogQ29udmVydCB3aXRoIHtAbGluayBncmFwaFdvcmtmbG93U25hcHNob3RGcm9tTGVnYWN5fSAvXG4gKiB7QGxpbmsgZ3JhcGhXb3JrZmxvd1NuYXBzaG90VG9MZWdhY3l9LlxuICovXG5leHBvcnQgdHlwZSBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3QgPSB7XG4gIHZlcnNpb246IEdyYXBoV29ya2Zsb3dTbmFwc2hvdFZlcnNpb247XG4gIGRlZmluaXRpb246IEdyYXBoV29ya2Zsb3dTbmFwc2hvdERlZmluaXRpb247XG4gIHN0YXRlOiBHcmFwaFdvcmtmbG93U25hcHNob3RTdGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIEdyYXBoV29ya2Zsb3dTbmFwc2hvdElucHV0ID0ge1xuICBkZWZpbml0aW9uPzogUGFydGlhbDxHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uPjtcbiAgaW5wdXRzPzogR3JhcGhXb3JrZmxvd1NuYXBzaG90VmFsdWVbXSB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBvdXRwdXRzPzogR3JhcGhXb3JrZmxvd1NuYXBzaG90VmFsdWVbXSB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBub2Rlcz86IEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGVbXTtcbiAgZWRnZXM/OiBHcmFwaFdvcmtmbG93U25hcHNob3RFZGdlW107XG4gIHVpPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gKFxuICAgICEhdmFsdWUgJiZcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gY2xvbmVWYWx1ZTxUPih2YWx1ZTogVCk6IFQge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKChlbnRyeSkgPT4gY2xvbmVWYWx1ZShlbnRyeSkpIGFzIFQ7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFRpbWUoKSkgYXMgVDtcbiAgfVxuXG4gIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgIGNvbnN0IGNsb25lZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGVudHJ5XSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIGNsb25lZFtrZXldID0gY2xvbmVWYWx1ZShlbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiBjbG9uZWQgYXMgVDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gYXNTdHJpbmcodmFsdWU6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogU3RyaW5nKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gaXNXb3JrZmxvd0RlZmluaXRpb25MaWtlKFxuICB2YWx1ZTogdW5rbm93blxuKTogdmFsdWUgaXMgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24gfCBHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uIHtcbiAgcmV0dXJuIChcbiAgICBpc1BsYWluT2JqZWN0KHZhbHVlKSAmJlxuICAgIHR5cGVvZiB2YWx1ZS5uYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIHZhbHVlLnRhZyA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiB2YWx1ZS5raW5kID09PSBcInN0cmluZ1wiICYmXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZS5pbnB1dHMpICYmXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZS5vdXRwdXRzKSAmJlxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUubm9kZXMpICYmXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZS5yZWxhdGlvbnMpXG4gICk7XG59XG5cbmZ1bmN0aW9uIHNuYXBzaG90Tm9kZUtleShub2RlOiBQYXJ0aWFsPEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGU+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG5vZGUucmVmPy5pZCA/PyBub2RlLmlkID8/IG5vZGUucmVmPy5wYXRoID8/IG5vZGUucmVmPy5wcm9wZXJ0eTtcbn1cblxuZnVuY3Rpb24gc25hcHNob3RFZGdlS2V5KGVkZ2U6IFBhcnRpYWw8R3JhcGhXb3JrZmxvd1NuYXBzaG90RWRnZT4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKFxuICAgIGVkZ2UuaWQgPz9cbiAgICBbZWRnZS5zb3VyY2VSZWYgPz8gZWRnZS5zb3VyY2UsIGVkZ2Uuc291cmNlUG9ydCwgZWRnZS50YXJnZXRSZWYgPz8gZWRnZS50YXJnZXQsIGVkZ2UudGFyZ2V0UG9ydF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKFwiOjpcIilcbiAgKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWVFbnRyaWVzKFxuICBlbnRyaWVzOiBHcmFwaFdvcmtmbG93U25hcHNob3RWYWx1ZVtdIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gIGRlZmluaXRpb25zOiBHcmFwaFBvcnREZWZpbml0aW9uW11cbik6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdFZhbHVlW10ge1xuICBjb25zdCBieVBhdGggPSBuZXcgTWFwPHN0cmluZywgR3JhcGhXb3JrZmxvd1NuYXBzaG90VmFsdWU+KCk7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZW50cmllcykpIHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGlmICghZW50cnk/LnBhdGgpIGNvbnRpbnVlO1xuICAgICAgYnlQYXRoLnNldChlbnRyeS5wYXRoLCBjbG9uZVZhbHVlKGVudHJ5KSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QoZW50cmllcykpIHtcbiAgICBmb3IgKGNvbnN0IFtwYXRoLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZW50cmllcykpIHtcbiAgICAgIGJ5UGF0aC5zZXQocGF0aCwgeyBwYXRoLCB2YWx1ZTogY2xvbmVWYWx1ZSh2YWx1ZSkgfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplZDogR3JhcGhXb3JrZmxvd1NuYXBzaG90VmFsdWVbXSA9IGRlZmluaXRpb25zLm1hcCgoZGVmaW5pdGlvbikgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBkZWZpbml0aW9uLnBhdGggPz8gZGVmaW5pdGlvbi5wcm9wZXJ0eTtcbiAgICBjb25zdCBjdXJyZW50ID0gYnlQYXRoLmdldChwYXRoKTtcbiAgICBjb25zdCBlbnRyeTogR3JhcGhXb3JrZmxvd1NuYXBzaG90VmFsdWUgPSB7XG4gICAgICBsYWJlbDogZGVmaW5pdGlvbi5sYWJlbCxcbiAgICAgIHR5cGU6IGRlZmluaXRpb24udHlwZSxcbiAgICAgIHJlcXVpcmVkOiBkZWZpbml0aW9uLnJlcXVpcmVkLFxuICAgICAgbW9kZWw6IGRlZmluaXRpb24ubW9kZWwsXG4gICAgICBtZXRhZGF0YTogY2xvbmVWYWx1ZShcbiAgICAgICAgZGVmaW5pdGlvbi5ncmFwaD8ubWV0YWRhdGEgPz9cbiAgICAgICAgICBkZWZpbml0aW9uLmVsZW1lbnQ/LnByb3BzID8/XG4gICAgICAgICAgZGVmaW5pdGlvbi5wcm9wPy5wcm9wcyA/P1xuICAgICAgICAgIHt9XG4gICAgICApLFxuICAgICAgLi4uY3VycmVudCxcbiAgICAgIHBhdGgsXG4gICAgfTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkubWV0YWRhdGEgfHwge30pLmxlbmd0aCkge1xuICAgICAgZGVsZXRlIGVudHJ5Lm1ldGFkYXRhO1xuICAgIH1cbiAgICByZXR1cm4gZW50cnk7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgYnlQYXRoLnZhbHVlcygpKSB7XG4gICAgaWYgKG5vcm1hbGl6ZWQuc29tZSgoY3VycmVudCkgPT4gY3VycmVudC5wYXRoID09PSBlbnRyeS5wYXRoKSkgY29udGludWU7XG4gICAgbm9ybWFsaXplZC5wdXNoKGNsb25lVmFsdWUoZW50cnkpKTtcbiAgfVxuXG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVOb2RlcyhcbiAgbm9kZXM6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGVbXSB8IHVuZGVmaW5lZCxcbiAgZGVmaW5pdGlvbnM6IEdyYXBoV29ya2Zsb3dOb2RlTWV0YWRhdGFbXVxuKTogR3JhcGhXb3JrZmxvd1NuYXBzaG90Tm9kZVtdIHtcbiAgY29uc3QgYnlLZXkgPSBuZXcgTWFwPHN0cmluZywgR3JhcGhXb3JrZmxvd1NuYXBzaG90Tm9kZT4oKTtcbiAgY29uc3QgcmVzdWx0OiBHcmFwaFdvcmtmbG93U25hcHNob3ROb2RlW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGRlZmluaXRpb24gb2YgZGVmaW5pdGlvbnMpIHtcbiAgICBjb25zdCBub2RlOiBHcmFwaFdvcmtmbG93U25hcHNob3ROb2RlID0ge1xuICAgICAgaWQ6IGRlZmluaXRpb24uaWQsXG4gICAgICByZWY6IHtcbiAgICAgICAgaWQ6IGRlZmluaXRpb24uaWQsXG4gICAgICAgIGtpbmQ6IGRlZmluaXRpb24ua2luZCxcbiAgICAgIH0sXG4gICAgICBsYWJlbDogZGVmaW5pdGlvbi5sYWJlbCxcbiAgICAgIGtpbmQ6IGRlZmluaXRpb24ua2luZCxcbiAgICAgIGRhdGE6IGRlZmluaXRpb24ubm9kZSAhPT0gdW5kZWZpbmVkID8geyBub2RlOiBjbG9uZVZhbHVlKGRlZmluaXRpb24ubm9kZSkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIG1ldGFkYXRhOiBjbG9uZVZhbHVlKGRlZmluaXRpb24ubWV0YWRhdGEpLFxuICAgIH07XG4gICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgYnlLZXkuc2V0KGRlZmluaXRpb24uaWQsIG5vZGUpO1xuICB9XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBub2RlcyB8fCBbXSkge1xuICAgIGNvbnN0IGtleSA9IHNuYXBzaG90Tm9kZUtleShlbnRyeSk7XG4gICAgY29uc3QgY3VycmVudCA9IGtleSA/IGJ5S2V5LmdldChrZXkpIDogdW5kZWZpbmVkO1xuICAgIGlmIChjdXJyZW50KSB7XG4gICAgICBjb25zdCBtZXJnZWQ6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGUgPSB7XG4gICAgICAgIC4uLmN1cnJlbnQsXG4gICAgICAgIC4uLmNsb25lVmFsdWUoZW50cnkpLFxuICAgICAgICBpZDogZW50cnkuaWQgfHwgY3VycmVudC5pZCxcbiAgICAgICAgcmVmOiB7XG4gICAgICAgICAgLi4uY3VycmVudC5yZWYsXG4gICAgICAgICAgLi4uZW50cnkucmVmLFxuICAgICAgICAgIGlkOiBlbnRyeS5yZWY/LmlkID8/IGN1cnJlbnQucmVmPy5pZCA/PyBjdXJyZW50LmlkLFxuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjogZW50cnkucG9zaXRpb24gPyBjbG9uZVZhbHVlKGVudHJ5LnBvc2l0aW9uKSA6IGN1cnJlbnQucG9zaXRpb24sXG4gICAgICAgIHNpemU6IGVudHJ5LnNpemUgPyBjbG9uZVZhbHVlKGVudHJ5LnNpemUpIDogY3VycmVudC5zaXplLFxuICAgICAgICBwb3J0czoge1xuICAgICAgICAgIC4uLihjdXJyZW50LnBvcnRzIHx8IHt9KSxcbiAgICAgICAgICAuLi4oZW50cnkucG9ydHMgfHwge30pLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4uKGN1cnJlbnQuZGF0YSB8fCB7fSksXG4gICAgICAgICAgLi4uKGVudHJ5LmRhdGEgfHwge30pLFxuICAgICAgICB9LFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIC4uLihjdXJyZW50Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICAgICAgICAuLi4oZW50cnkubWV0YWRhdGEgfHwge30pLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGlmIChrZXkpIGJ5S2V5LnNldChrZXksIG1lcmdlZCk7XG4gICAgICBjb25zdCBpbmRleCA9IHJlc3VsdC5maW5kSW5kZXgoKHZhbHVlKSA9PiB2YWx1ZS5pZCA9PT0gY3VycmVudC5pZCk7XG4gICAgICBpZiAoaW5kZXggPj0gMCkgcmVzdWx0W2luZGV4XSA9IG1lcmdlZDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lZCA9IGNsb25lVmFsdWUoZW50cnkpO1xuICAgIHJlc3VsdC5wdXNoKGNsb25lZCk7XG4gICAgaWYgKGtleSkgYnlLZXkuc2V0KGtleSwgY2xvbmVkKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUVkZ2VzKFxuICBlZGdlczogR3JhcGhXb3JrZmxvd1NuYXBzaG90RWRnZVtdIHwgdW5kZWZpbmVkLFxuICByZWxhdGlvbnM6IEdyYXBoV29ya2Zsb3dSZWxhdGlvbk1ldGFkYXRhW11cbik6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdEVkZ2VbXSB7XG4gIGNvbnN0IGJ5S2V5ID0gbmV3IE1hcDxzdHJpbmcsIEdyYXBoV29ya2Zsb3dTbmFwc2hvdEVkZ2U+KCk7XG4gIGNvbnN0IHJlc3VsdDogR3JhcGhXb3JrZmxvd1NuYXBzaG90RWRnZVtdID0gW107XG5cbiAgZm9yIChjb25zdCBbaW5kZXgsIHJlbGF0aW9uXSBvZiByZWxhdGlvbnMuZW50cmllcygpKSB7XG4gICAgY29uc3Qgc291cmNlID0gYXNTdHJpbmcocmVsYXRpb24uc291cmNlKSA/PyBgc291cmNlLSR7aW5kZXh9YDtcbiAgICBjb25zdCB0YXJnZXQgPSBhc1N0cmluZyhyZWxhdGlvbi50YXJnZXQpID8/IGB0YXJnZXQtJHtpbmRleH1gO1xuICAgIGNvbnN0IGVkZ2U6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdEVkZ2UgPSB7XG4gICAgICBpZDogcmVsYXRpb24ubGFiZWwgfHwgYCR7c291cmNlfToke3JlbGF0aW9uLnNvdXJjZVBvcnQgPz8gXCIqXCJ9LT4ke3RhcmdldH06JHtyZWxhdGlvbi50YXJnZXRQb3J0ID8/IFwiKlwifWAsXG4gICAgICBzb3VyY2UsXG4gICAgICBzb3VyY2VSZWY6IHNvdXJjZSxcbiAgICAgIHNvdXJjZVBvcnQ6IHJlbGF0aW9uLnNvdXJjZVBvcnQsXG4gICAgICB0YXJnZXQsXG4gICAgICB0YXJnZXRSZWY6IHRhcmdldCxcbiAgICAgIHRhcmdldFBvcnQ6IHJlbGF0aW9uLnRhcmdldFBvcnQsXG4gICAgICBsYWJlbDogcmVsYXRpb24ubGFiZWwsXG4gICAgICBtZXRhZGF0YTogY2xvbmVWYWx1ZShyZWxhdGlvbi5tZXRhZGF0YSksXG4gICAgfTtcbiAgICByZXN1bHQucHVzaChlZGdlKTtcbiAgICBieUtleS5zZXQoZWRnZS5pZCwgZWRnZSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVkZ2VzIHx8IFtdKSB7XG4gICAgY29uc3Qga2V5ID0gc25hcHNob3RFZGdlS2V5KGVudHJ5KTtcbiAgICBjb25zdCBjdXJyZW50ID0ga2V5ID8gYnlLZXkuZ2V0KGtleSkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IG1lcmdlZDogR3JhcGhXb3JrZmxvd1NuYXBzaG90RWRnZSA9IHtcbiAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgLi4uY2xvbmVWYWx1ZShlbnRyeSksXG4gICAgICAgIGlkOiBlbnRyeS5pZCB8fCBjdXJyZW50LmlkLFxuICAgICAgICBzb3VyY2U6IGVudHJ5LnNvdXJjZSB8fCBjdXJyZW50LnNvdXJjZSxcbiAgICAgICAgc291cmNlUmVmOiBlbnRyeS5zb3VyY2VSZWYgPz8gY3VycmVudC5zb3VyY2VSZWYgPz8gZW50cnkuc291cmNlID8/IGN1cnJlbnQuc291cmNlLFxuICAgICAgICB0YXJnZXQ6IGVudHJ5LnRhcmdldCB8fCBjdXJyZW50LnRhcmdldCxcbiAgICAgICAgdGFyZ2V0UmVmOiBlbnRyeS50YXJnZXRSZWYgPz8gY3VycmVudC50YXJnZXRSZWYgPz8gZW50cnkudGFyZ2V0ID8/IGN1cnJlbnQudGFyZ2V0LFxuICAgICAgICAvLyBMYWJlbHMgYXJlIGRvY3VtZW50LWNhcnJpZWQgZGlzcGxheSBzZW1hbnRpY3MgKMKnNC40LjcpOiBhIHJvdyBtZXJnZWRcbiAgICAgICAgLy8gZnJvbSBhIGNhbnZhcyBjbG9uZSB0aGF0IG5ldmVyIGNhcnJpZWQgaXRzIG93biBsYWJlbCBtdXN0IG5vdCBlcmFzZVxuICAgICAgICAvLyB0aGUgcmVsYXRpb24gcm93J3MgbGFiZWwuXG4gICAgICAgIGxhYmVsOiBlbnRyeS5sYWJlbCA/PyBjdXJyZW50LmxhYmVsLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIC4uLihjdXJyZW50Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICAgICAgICAuLi4oZW50cnkubWV0YWRhdGEgfHwge30pLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGlmIChrZXkpIGJ5S2V5LnNldChrZXksIG1lcmdlZCk7XG4gICAgICBjb25zdCBpbmRleCA9IHJlc3VsdC5maW5kSW5kZXgoKHZhbHVlKSA9PiB2YWx1ZS5pZCA9PT0gY3VycmVudC5pZCk7XG4gICAgICBpZiAoaW5kZXggPj0gMCkgcmVzdWx0W2luZGV4XSA9IG1lcmdlZDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lZCA9IGNsb25lVmFsdWUoZW50cnkpO1xuICAgIHJlc3VsdC5wdXNoKGNsb25lZCk7XG4gICAgaWYgKGtleSkgYnlLZXkuc2V0KGtleSwgY2xvbmVkKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVdvcmtmbG93RGVmaW5pdGlvbihcbiAgZGVmaW5pdGlvbjogR3JhcGhXb3JrZmxvd0RlZmluaXRpb24gfCBHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uLFxuICBvdmVycmlkZXM6IFBhcnRpYWw8R3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvbj4gPSB7fVxuKTogR3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogb3ZlcnJpZGVzLm5hbWUgPz8gZGVmaW5pdGlvbi5uYW1lLFxuICAgIHRhZzogb3ZlcnJpZGVzLnRhZyA/PyBkZWZpbml0aW9uLnRhZyxcbiAgICBraW5kOiBvdmVycmlkZXMua2luZCA/PyBkZWZpbml0aW9uLmtpbmQsXG4gICAgY2F0ZWdvcnk6IG92ZXJyaWRlcy5jYXRlZ29yeSA/PyBkZWZpbml0aW9uLmNhdGVnb3J5LFxuICAgIGNvbG9yOiBvdmVycmlkZXMuY29sb3IgPz8gZGVmaW5pdGlvbi5jb2xvcixcbiAgICBncm91cDogb3ZlcnJpZGVzLmdyb3VwID8/IGRlZmluaXRpb24uZ3JvdXAsXG4gICAgaGVpZ2h0OiBvdmVycmlkZXMuaGVpZ2h0ID8/IGRlZmluaXRpb24uaGVpZ2h0LFxuICAgIGljb246IG92ZXJyaWRlcy5pY29uID8/IGRlZmluaXRpb24uaWNvbixcbiAgICBsYWJlbHM6IGNsb25lVmFsdWUob3ZlcnJpZGVzLmxhYmVscyA/PyBkZWZpbml0aW9uLmxhYmVscyA/PyBbXSksXG4gICAgbWF4Q2hpbGRyZW46IG92ZXJyaWRlcy5tYXhDaGlsZHJlbiA/PyBkZWZpbml0aW9uLm1heENoaWxkcmVuLFxuICAgIG1pbldpZHRoOiBvdmVycmlkZXMubWluV2lkdGggPz8gZGVmaW5pdGlvbi5taW5XaWR0aCxcbiAgICB3aWR0aDogb3ZlcnJpZGVzLndpZHRoID8/IGRlZmluaXRpb24ud2lkdGgsXG4gICAgbWV0YWRhdGE6IGNsb25lVmFsdWUoXG4gICAgICBvdmVycmlkZXMubWV0YWRhdGEgPz9cbiAgICAgICAgKFwid29ya2Zsb3dcIiBpbiBkZWZpbml0aW9uID8gZGVmaW5pdGlvbi53b3JrZmxvdyA6IGRlZmluaXRpb24ubWV0YWRhdGEpXG4gICAgKSxcbiAgICBpbnB1dHM6IGNsb25lVmFsdWUob3ZlcnJpZGVzLmlucHV0cyA/PyBkZWZpbml0aW9uLmlucHV0cyA/PyBbXSksXG4gICAgb3V0cHV0czogY2xvbmVWYWx1ZShvdmVycmlkZXMub3V0cHV0cyA/PyBkZWZpbml0aW9uLm91dHB1dHMgPz8gW10pLFxuICAgIG5vZGVzOiBjbG9uZVZhbHVlKG92ZXJyaWRlcy5ub2RlcyA/PyBkZWZpbml0aW9uLm5vZGVzID8/IFtdKSxcbiAgICByZWxhdGlvbnM6IGNsb25lVmFsdWUob3ZlcnJpZGVzLnJlbGF0aW9ucyA/PyBkZWZpbml0aW9uLnJlbGF0aW9ucyA/PyBbXSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uT2Y8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IEdyYXBoTW9kZWxMaWtlPE0+IHwgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24gfCBHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uXG4pOiBHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uIHtcbiAgY29uc3QgZGVmaW5pdGlvbiA9IGlzV29ya2Zsb3dEZWZpbml0aW9uTGlrZShtb2RlbClcbiAgICA/IG1vZGVsXG4gICAgOiBncmFwaFdvcmtmbG93RGVmaW5pdGlvbk9mKG1vZGVsIGFzIEdyYXBoTW9kZWxMaWtlPE0+KTtcbiAgcmV0dXJuIG5vcm1hbGl6ZVdvcmtmbG93RGVmaW5pdGlvbihkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dTbmFwc2hvdE9mPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBHcmFwaE1vZGVsTGlrZTxNPiB8IEdyYXBoV29ya2Zsb3dEZWZpbml0aW9uIHwgR3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvbixcbiAgaW5wdXQ/OiBHcmFwaFdvcmtmbG93U25hcHNob3RJbnB1dFxuKTogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90IHtcbiAgY29uc3Qgbm9ybWFsaXplZERlZmluaXRpb24gPSBub3JtYWxpemVXb3JrZmxvd0RlZmluaXRpb24oXG4gICAgZ3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvbk9mKG1vZGVsIGFzIGFueSksXG4gICAgaW5wdXQ/LmRlZmluaXRpb25cbiAgKTtcbiAgY29uc3QgaW5wdXRQb3J0cyA9IGdyYXBoTGVhZlBvcnRzT2Yobm9ybWFsaXplZERlZmluaXRpb24uaW5wdXRzKTtcbiAgY29uc3Qgb3V0cHV0UG9ydHMgPSBncmFwaExlYWZQb3J0c09mKG5vcm1hbGl6ZWREZWZpbml0aW9uLm91dHB1dHMpO1xuXG4gIHJldHVybiB7XG4gICAgdmVyc2lvbjogR1JBUEhfV09SS0ZMT1dfU05BUFNIT1RfVkVSU0lPTixcbiAgICBkZWZpbml0aW9uOiBub3JtYWxpemVkRGVmaW5pdGlvbixcbiAgICBzdGF0ZToge1xuICAgICAgaW5wdXRzOiBub3JtYWxpemVWYWx1ZUVudHJpZXMoaW5wdXQ/LmlucHV0cywgaW5wdXRQb3J0cyksXG4gICAgICBvdXRwdXRzOiBub3JtYWxpemVWYWx1ZUVudHJpZXMoaW5wdXQ/Lm91dHB1dHMsIG91dHB1dFBvcnRzKSxcbiAgICAgIG5vZGVzOiBub3JtYWxpemVOb2RlcyhpbnB1dD8ubm9kZXMsIG5vcm1hbGl6ZWREZWZpbml0aW9uLm5vZGVzKSxcbiAgICAgIGVkZ2VzOiBub3JtYWxpemVFZGdlcyhpbnB1dD8uZWRnZXMsIG5vcm1hbGl6ZWREZWZpbml0aW9uLnJlbGF0aW9ucyksXG4gICAgICB1aTogY2xvbmVWYWx1ZShpbnB1dD8udWkgfHwge30pLFxuICAgICAgbWV0YWRhdGE6IGNsb25lVmFsdWUoaW5wdXQ/Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhXb3JrZmxvd1NuYXBzaG90UmVzdG9yZTxNIGV4dGVuZHMgTW9kZWw+KFxuICBzbmFwc2hvdDogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90IHwgR3JhcGhXb3JrZmxvd1NuYXBzaG90SW5wdXQsXG4gIG1vZGVsPzogR3JhcGhNb2RlbExpa2U8TT4gfCBHcmFwaFdvcmtmbG93RGVmaW5pdGlvbiB8IEdyYXBoV29ya2Zsb3dTbmFwc2hvdERlZmluaXRpb25cbik6IExlZ2FjeUdyYXBoV29ya2Zsb3dTbmFwc2hvdCB7XG4gIGlmICghKFwidmVyc2lvblwiIGluIHNuYXBzaG90KSkge1xuICAgIHJldHVybiBncmFwaFdvcmtmbG93U25hcHNob3RPZihcbiAgICAgIG1vZGVsID8/XG4gICAgICAgIChzbmFwc2hvdC5kZWZpbml0aW9uIGFzXG4gICAgICAgICAgfCBHcmFwaFdvcmtmbG93RGVmaW5pdGlvblxuICAgICAgICAgIHwgR3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvblxuICAgICAgICAgIHwgdW5kZWZpbmVkKSA/P1xuICAgICAgICAoe30gYXMgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24pLFxuICAgICAgc25hcHNob3RcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZnVsbFNuYXBzaG90ID0gc25hcHNob3QgYXMgTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90O1xuICBjb25zdCBkZWZpbml0aW9uID0gbW9kZWxcbiAgICA/IGdyYXBoV29ya2Zsb3dTbmFwc2hvdERlZmluaXRpb25PZihtb2RlbClcbiAgICA6IGZ1bGxTbmFwc2hvdC5kZWZpbml0aW9uO1xuXG4gIHJldHVybiBncmFwaFdvcmtmbG93U25hcHNob3RPZihkZWZpbml0aW9uLCB7XG4gICAgaW5wdXRzOiBmdWxsU25hcHNob3Quc3RhdGUuaW5wdXRzLFxuICAgIG91dHB1dHM6IGZ1bGxTbmFwc2hvdC5zdGF0ZS5vdXRwdXRzLFxuICAgIG5vZGVzOiBmdWxsU25hcHNob3Quc3RhdGUubm9kZXMsXG4gICAgZWRnZXM6IGZ1bGxTbmFwc2hvdC5zdGF0ZS5lZGdlcyxcbiAgICB1aTogZnVsbFNuYXBzaG90LnN0YXRlLnVpLFxuICAgIG1ldGFkYXRhOiBmdWxsU25hcHNob3Quc3RhdGUubWV0YWRhdGEsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhXb3JrZmxvd1NuYXBzaG90VG9KU09OKFxuICBzbmFwc2hvdDogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90LFxuICBzcGFjZT86IG51bWJlclxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNuYXBzaG90LCB1bmRlZmluZWQsIHNwYWNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dTbmFwc2hvdEZyb21KU09OKFxuICBpbnB1dDogc3RyaW5nIHwgTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90LFxuICBtb2RlbD86IEdyYXBoTW9kZWxMaWtlIHwgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24gfCBHcmFwaFdvcmtmbG93U25hcHNob3REZWZpbml0aW9uXG4pOiBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3Qge1xuICBjb25zdCBzbmFwc2hvdCA9XG4gICAgdHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiID8gKEpTT04ucGFyc2UoaW5wdXQpIGFzIExlZ2FjeUdyYXBoV29ya2Zsb3dTbmFwc2hvdCkgOiBpbnB1dDtcbiAgcmV0dXJuIGdyYXBoV29ya2Zsb3dTbmFwc2hvdFJlc3RvcmUoc25hcHNob3QsIG1vZGVsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dTbmFwc2hvdElucHV0VmFsdWVzT2YoXG4gIHNuYXBzaG90OiBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3Rcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzbmFwc2hvdC5zdGF0ZS5pbnB1dHMubWFwKChlbnRyeSkgPT4gW2VudHJ5LnBhdGgsIGNsb25lVmFsdWUoZW50cnkudmFsdWUpXSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dTbmFwc2hvdE91dHB1dFZhbHVlc09mKFxuICBzbmFwc2hvdDogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90XG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgc25hcHNob3Quc3RhdGUub3V0cHV0cy5tYXAoKGVudHJ5KSA9PiBbZW50cnkucGF0aCwgY2xvbmVWYWx1ZShlbnRyeS52YWx1ZSldKVxuICApO1xufVxuXG4vKipcbiAqIEVkaXRvci1vbmx5IHN0YXRlIHRoYXQgdGhlIGNhbm9uaWNhbCB7QGxpbmsgR3JhcGhXb3JrZmxvd0RvY3VtZW50fSBjYW5ub3RcbiAqIGV4cHJlc3MgKGxheW91dCBiZXlvbmQgbm9kZSBwb3NpdGlvbnMsIGNvbmZpZy1zdG9yZSB2YWx1ZXMsIHBlci1wb3J0IG1vZGVzLFxuICogd29ya2Zsb3cgYm91bmRhcnkgdmFsdWVzLCBhbmQgZHVwbGljYXRlIGNvdW50cykuIFN0b3JlZCBhcyBKU09OLXNhZmUgdmFsdWVzXG4gKiBvbmx5OyBjb25zdHJ1Y3RvcnMgYW5kIGBtb2RlbENsYXNzYC9gc291cmNlQ2xhc3NgIHJlZmVyZW5jZXMgYXJlIGRyb3BwZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoU25hcHNob3RFZGl0b3JTdGF0ZSA9IHtcbiAgdmlld3BvcnQ/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyBzY2FsZTogbnVtYmVyIH07XG4gIGR1cGxpY2F0ZUNvdW50cz86IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIGJvdW5kYXJ5SW5wdXRWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT47XG4gIGJvdW5kYXJ5T3V0cHV0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgR3JhcGhKc29uVmFsdWU+O1xuICBub2RlUG9ydHM/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT4+O1xuICBub2RlQ29uZmlncz86IFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPjtcbiAgZGlhZ3JhbU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgR3JhcGhKc29uVmFsdWU+O1xuICBkZWZpbml0aW9uRGlzcGxheT86IFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPjtcbiAgbGVnYWN5PzogR3JhcGhKc29uVmFsdWU7XG59ICYgeyBba2V5OiBzdHJpbmddOiBHcmFwaEpzb25WYWx1ZSB8IHVuZGVmaW5lZCB9O1xuXG4vKipcbiAqIENhbm9uaWNhbCBkb2N1bWVudC1maXJzdCBzbmFwc2hvdC4gYGRvY3VtZW50YCBpcyB0aGUgZXhlY3V0YWJsZSBzZW1hbnRpY1xuICogdHJ1dGg7IGBlZGl0b3JgIHByZXNlcnZlcyBsZWdhY3kgZWRpdG9yLW9ubHkgc3RhdGUgZm9yIGxvc3NsZXNzIHJvdW5kIHRyaXBzLlxuICovXG5leHBvcnQgdHlwZSBHcmFwaFdvcmtmbG93U25hcHNob3QgPSB7XG4gIGRvY3VtZW50OiBHcmFwaFdvcmtmbG93RG9jdW1lbnQ7XG4gIGVkaXRvcj86IEdyYXBoU25hcHNob3RFZGl0b3JTdGF0ZTtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT47XG59O1xuXG5leHBvcnQgdHlwZSBHcmFwaFdvcmtmbG93U25hcHNob3RMaWtlID1cbiAgfCBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3RcbiAgfCBHcmFwaFdvcmtmbG93U25hcHNob3Q7XG5cbmZ1bmN0aW9uIGRyb3BVbnNhZmVFbnRyaWVzKFxuICBzb3VyY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4pOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhzb3VyY2UpKSB7XG4gICAgaWYgKEdSQVBIX0NPTlNUUlVDVE9SX0RBVEFfS0VZUy5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcbiAgICBjb25zdCBzYW5pdGl6ZWQgPSBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUodmFsdWUpO1xuICAgIGlmIChzYW5pdGl6ZWQgIT09IHVuZGVmaW5lZCkgcmVzdWx0W2tleV0gPSBzYW5pdGl6ZWQ7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZXMgYSBsZWdhY3kgc25hcHNob3QgaW50byBhIEpTT04tc2FmZSBwYXlsb2FkIHdoaWxlIHByZXNlcnZpbmcgaXRzXG4gKiBzdHJ1Y3R1cmFsIGtleXMgKGB2ZXJzaW9uYCwgYGRlZmluaXRpb25gLCBgc3RhdGVgKS4gQ29uc3RydWN0b3Ita2V5IHN0cmlwcGluZ1xuICogc3RpbGwgYXBwbGllcyB0byB0aGUgcGF5bG9hZCBjb250ZW50cyBpbnNpZGUsIHNvIHRoZSBjYW5vbmljYWzihpJsZWdhY3lcbiAqIHJvdW5kIHRyaXAgc3RheXMgbG9zc2xlc3MgZm9yIHBlcnNpc3RlZCBkYXRhLlxuICovXG5mdW5jdGlvbiBzYW5pdGl6ZUxlZ2FjeVNuYXBzaG90UGF5bG9hZChcbiAgc25hcHNob3Q6IExlZ2FjeUdyYXBoV29ya2Zsb3dTbmFwc2hvdFxuKTogR3JhcGhKc29uVmFsdWUge1xuICByZXR1cm4ge1xuICAgIHZlcnNpb246IHNuYXBzaG90LnZlcnNpb24sXG4gICAgZGVmaW5pdGlvbjogZHJvcFVuc2FmZUVudHJpZXMoXG4gICAgICAoc25hcHNob3QuZGVmaW5pdGlvbiA/PyB7fSkgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICksXG4gICAgc3RhdGU6IGRyb3BVbnNhZmVFbnRyaWVzKFxuICAgICAgKHNuYXBzaG90LnN0YXRlID8/IHt9KSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2FuaXRpemVUb0dyYXBoSnNvblZhbHVlKHZhbHVlOiB1bmtub3duKTogR3JhcGhKc29uVmFsdWUgfCB1bmRlZmluZWQge1xuICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHZhbHVlIGFzIEdyYXBoSnNvblZhbHVlO1xuICBpZiAodHlwZSA9PT0gXCJudW1iZXJcIikgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSBhcyBudW1iZXIpID8gKHZhbHVlIGFzIG51bWJlcikgOiB1bmRlZmluZWQ7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGNvbnN0IGl0ZW1zOiBHcmFwaEpzb25WYWx1ZVtdID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICBjb25zdCBzYW5pdGl6ZWQgPSBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUoaXRlbSk7XG4gICAgICBpZiAoc2FuaXRpemVkICE9PSB1bmRlZmluZWQpIGl0ZW1zLnB1c2goc2FuaXRpemVkKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG4gIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGRyb3BVbnNhZmVFbnRyaWVzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBib3VuZGFyeUFsaWFzZXNGb3IoZGVmaW5pdGlvbjogR3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvbik6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgYWxpYXNlcyA9IG5ldyBTZXQ8c3RyaW5nPihHUkFQSF9MRUdBQ1lfQk9VTkRBUllfQUxJQVNFUyk7XG4gIGlmIChkZWZpbml0aW9uLnRhZykgYWxpYXNlcy5hZGQoZGVmaW5pdGlvbi50YWcpO1xuICBpZiAoZGVmaW5pdGlvbi5uYW1lKSBhbGlhc2VzLmFkZChkZWZpbml0aW9uLm5hbWUpO1xuICByZXR1cm4gYWxpYXNlcztcbn1cblxuZnVuY3Rpb24gbGVnYWN5RW5kcG9pbnQoXG4gIHJlZklkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHBvcnQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgYWxpYXNlczogU2V0PHN0cmluZz4sXG4gIGJvdW5kYXJ5UG9ydElkcz86IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPlxuKTogR3JhcGhFbmRwb2ludCB7XG4gIGNvbnN0IHJlc29sdmVkUG9ydCA9IHBvcnQgPz8gXCJcIjtcbiAgaWYgKCFyZWZJZCB8fCBhbGlhc2VzLmhhcyhyZWZJZCkpIHtcbiAgICByZXR1cm4geyBzY29wZTogXCJ3b3JrZmxvd1wiLCBwb3J0OiByZXNvbHZlZFBvcnQgfSBzYXRpc2ZpZXMgR3JhcGhXb3JrZmxvd0VuZHBvaW50O1xuICB9XG4gIC8vIFRoZSBsZWdhY3kgZGVjb3JhdGVkLXJvb3QgY2FudmFzIHJlbmRlcmVkIHdvcmtmbG93IGlucHV0IHBvcnRzIGFzIGRyYWdnYWJsZVxuICAvLyBib3VuZGFyeSBiYWRnZXMgKGBpbnB1dC17cG9ydH1gLCBwb3J0IGhhbmRsZSBgdmFsdWVgKS4gVGhvc2UgYmluZGluZ3Mgc3RheVxuICAvLyBsb3NzbGVzcyBvbmx5IHdoZW4gdGhlIGJhZGdlIGlkIGZvbGRzIGJhY2sgb250byB0aGUgd29ya2Zsb3cgcG9ydCBpdCB3YXNcbiAgLy8gZHJhd24gZm9yIChERUNBRi01MCDCpzQuMTEpOyBvdGhlcndpc2UgYSB3b3JrZmxvdyBwb3J0IHdvdWxkIGNvbGxhcHNlIGludG9cbiAgLy8gb25lIHNoYXJlZCBib3VuZGFyeSBlbmRwb2ludCBhbmQgZHJvcCByZWFsIGVkZ2VzICjCpzQuNC42IGNhbm9uaWNhbCBmb3JtKS5cbiAgaWYgKHJlZklkLnN0YXJ0c1dpdGgoXCJpbnB1dC1cIikpIHtcbiAgICBjb25zdCB3b3JrZmxvd1BvcnRJZCA9IGJvdW5kYXJ5UG9ydElkcz8uZ2V0KHJlZklkLnNsaWNlKFwiaW5wdXQtXCIubGVuZ3RoKSA/PyBcIlwiKTtcbiAgICBpZiAod29ya2Zsb3dQb3J0SWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNjb3BlOiBcIndvcmtmbG93XCIsXG4gICAgICAgIHBvcnQ6IHdvcmtmbG93UG9ydElkLFxuICAgICAgfSBzYXRpc2ZpZXMgR3JhcGhXb3JrZmxvd0VuZHBvaW50O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBzY29wZTogXCJub2RlXCIsIG5vZGVJZDogcmVmSWQsIHBvcnQ6IHJlc29sdmVkUG9ydCB9IHNhdGlzZmllcyBHcmFwaEVuZHBvaW50O1xufVxuXG4vKipcbiAqIE1hcHMgd29ya2Zsb3cgaW5wdXQtcHJvcGVydHkgbmFtZXMgdG8gdGhlaXIgbGVnYWN5IGJvdW5kYXJ5LWJhZGdlIGlkc1xuICogKGBpbnB1dC17cHJvcGVydHl9YCksIHNvIGJhZGdlcyBkcmF3biBvbiB0aGUgY2FudmFzIHJlc29sdmUgYmFjayB0byB0aGVcbiAqIHdvcmtmbG93IHBvcnQgdGhleSByZXByZXNlbnQgKMKnNC4xMSkuXG4gKi9cbmZ1bmN0aW9uIGJvdW5kYXJ5UG9ydElkc0ZvcihzbmFwc2hvdDogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90KTogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBwb3J0IG9mIHNuYXBzaG90LmRlZmluaXRpb24uaW5wdXRzKSB7XG4gICAgbWFwLnNldChgaW5wdXQtJHtwb3J0LnByb3BlcnR5fWAsIHBvcnQucHJvcGVydHkpO1xuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGRlY29yYXRlZCBkZWZpbml0aW9uJ3Mgb3duIGVkZ2UgbGFiZWxzIGJ5IGNhbm9uaWNhbCBlbmRwb2ludFxuICogcGFpciwgc28gY29udmVydGVkIGxlZ2FjeSBlZGdlcyB0aGF0IG5ldmVyIGNhcnJpZWQgYSBsYWJlbCBvbiB0aGUgZWRnZSByb3dcbiAqIChjYW52YXMtZHJhd24gY2xvbmVzIG1lcmdlZCBvdmVyIHRoZSByZWxhdGlvbiByb3dzKSBzdGlsbCByZXN0b3JlIHRoZVxuICogZG9jdW1lbnQtY2FycmllZCB7QGxpbmsgR3JhcGhFZGdlSW5zdGFuY2UubGFiZWx9ICjCpzQuNC43KSBpbnN0ZWFkIG9mIGxvc2luZ1xuICogdGhlIGRpc3BsYXkgYWZmb3JkYW5jZSBvbiBzYXZlL3JlbG9hZC5cbiAqL1xuZnVuY3Rpb24gbGVnYWN5UmVsYXRpb25MYWJlbEJ5RW5kcG9pbnQoXG4gIHNuYXBzaG90OiBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3QsXG4gIGFsaWFzZXM6IFNldDxzdHJpbmc+LFxuICBib3VuZGFyeVBvcnRJZHM6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPlxuKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCByZWxhdGlvbiBvZiBzbmFwc2hvdC5kZWZpbml0aW9uLnJlbGF0aW9ucykge1xuICAgIGNvbnN0IGxhYmVsID0gdHlwZW9mIHJlbGF0aW9uLmxhYmVsID09PSBcInN0cmluZ1wiID8gcmVsYXRpb24ubGFiZWwgOiB1bmRlZmluZWQ7XG4gICAgaWYgKCFsYWJlbCkgY29udGludWU7XG4gICAgY29uc3Qgc291cmNlUmVmID0gdHlwZW9mIHJlbGF0aW9uLnNvdXJjZSA9PT0gXCJzdHJpbmdcIiA/IHJlbGF0aW9uLnNvdXJjZSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0eXBlb2YgcmVsYXRpb24udGFyZ2V0ID09PSBcInN0cmluZ1wiID8gcmVsYXRpb24udGFyZ2V0IDogdW5kZWZpbmVkO1xuICAgIG1hcC5zZXQoXG4gICAgICBlZGdlUGFpcktleU9mKHtcbiAgICAgICAgc291cmNlOiBsZWdhY3lFbmRwb2ludChzb3VyY2VSZWYsIHJlbGF0aW9uLnNvdXJjZVBvcnQsIGFsaWFzZXMsIGJvdW5kYXJ5UG9ydElkcyksXG4gICAgICAgIHRhcmdldDogbGVnYWN5RW5kcG9pbnQodGFyZ2V0UmVmLCByZWxhdGlvbi50YXJnZXRQb3J0LCBhbGlhc2VzLCBib3VuZGFyeVBvcnRJZHMpLFxuICAgICAgfSksXG4gICAgICBsYWJlbFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cblxuZnVuY3Rpb24gZW5kcG9pbnRUb0xlZ2FjeVJlZihlbmRwb2ludDogR3JhcGhFbmRwb2ludCk6IHsgcmVmSWQ6IHN0cmluZzsgcG9ydDogc3RyaW5nIH0ge1xuICBpZiAoZW5kcG9pbnQuc2NvcGUgPT09IFwid29ya2Zsb3dcIikge1xuICAgIHJldHVybiB7IHJlZklkOiBcIiR3b3JrZmxvd1wiLCBwb3J0OiBlbmRwb2ludC5wb3J0IH07XG4gIH1cbiAgcmV0dXJuIHsgcmVmSWQ6IGVuZHBvaW50Lm5vZGVJZCwgcG9ydDogZW5kcG9pbnQucG9ydCB9O1xufVxuXG5mdW5jdGlvbiBwb3J0SW5zdGFuY2VGcm9tRGVmaW5pdGlvbihcbiAgcG9ydDogR3JhcGhQb3J0RGVmaW5pdGlvbixcbiAgdmFsdWU/OiBHcmFwaEpzb25WYWx1ZVxuKTogR3JhcGhXb3JrZmxvd1BvcnRJbnN0YW5jZSB7XG4gIGNvbnN0IGluc3RhbmNlOiBHcmFwaFdvcmtmbG93UG9ydEluc3RhbmNlID0ge1xuICAgIGlkOiBwb3J0LnByb3BlcnR5LFxuICAgIGxhYmVsOiBwb3J0LmxhYmVsLFxuICB9O1xuICBpbnN0YW5jZS5zY2hlbWEgPSBncmFwaFZhbHVlU2NoZW1hRnJvbVZhbGlkYXRpb24oXG4gICAgcG9ydC52YWxpZGF0aW9uIGFzIEdyYXBoVmFsaWRhdGlvblJlY29yZCB8IHVuZGVmaW5lZCxcbiAgICBwb3J0LnR5cGUsXG4gICAgcG9ydC5tb2RlbFxuICApO1xuICBpZiAocG9ydC5yZXF1aXJlZCkgaW5zdGFuY2UucmVxdWlyZWQgPSB0cnVlO1xuICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgaW5zdGFuY2UuZGVmYXVsdFZhbHVlID0gdmFsdWU7XG4gIGNvbnN0IG1ldGFkYXRhID0gc2FuaXRpemVUb0dyYXBoSnNvblZhbHVlKHBvcnQuZ3JhcGggPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG1ldGFkYXRhICYmIE9iamVjdC5rZXlzKG1ldGFkYXRhKS5sZW5ndGgpIGluc3RhbmNlLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gaW5wdXRCaW5kaW5nc0Zyb21Qb3J0cyhcbiAgcG9ydHM6IFJlY29yZDxzdHJpbmcsIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFBvcnRTdGF0ZT4gfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIEdyYXBoSW5wdXRCaW5kaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghcG9ydHMpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IGJpbmRpbmdzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaElucHV0QmluZGluZz4gPSB7fTtcbiAgZm9yIChjb25zdCBbcHJvcGVydHksIHBvcnRdIG9mIE9iamVjdC5lbnRyaWVzKHBvcnRzKSkge1xuICAgIGlmIChwb3J0Py5tb2RlID09PSBcInBvcnRcIikge1xuICAgICAgYmluZGluZ3NbcHJvcGVydHldID0geyBtb2RlOiBcImVkZ2VcIiB9O1xuICAgIH0gZWxzZSBpZiAoXCJ2YWx1ZVwiIGluIChwb3J0ID8/IHt9KSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUocG9ydC52YWx1ZSk7XG4gICAgICBiaW5kaW5nc1twcm9wZXJ0eV0gPSB7IG1vZGU6IFwibGl0ZXJhbFwiLCB2YWx1ZTogdmFsdWUgPz8gbnVsbCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoYmluZGluZ3MpLmxlbmd0aCA/IGJpbmRpbmdzIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBub2RlSW5zdGFuY2VGcm9tTGVnYWN5KG5vZGU6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGUpOiBHcmFwaE5vZGVJbnN0YW5jZSB7XG4gIGNvbnN0IGluc3RhbmNlOiBHcmFwaE5vZGVJbnN0YW5jZSA9IHtcbiAgICBpZDogbm9kZS5pZCxcbiAgICBraW5kOiBub2RlLmtpbmQgPz8gbm9kZS5yZWY/LmtpbmQgPz8gbm9kZS5pZCxcbiAgICBwYXJhbWV0ZXJzOiBkcm9wVW5zYWZlRW50cmllcyhub2RlLmRhdGEgPz8ge30pLFxuICB9O1xuICBpZiAobm9kZS5sYWJlbCkgaW5zdGFuY2UubGFiZWwgPSBub2RlLmxhYmVsO1xuICBjb25zdCBiaW5kaW5ncyA9IGlucHV0QmluZGluZ3NGcm9tUG9ydHMobm9kZS5wb3J0cyk7XG4gIGlmIChiaW5kaW5ncykgaW5zdGFuY2UuaW5wdXRCaW5kaW5ncyA9IGJpbmRpbmdzO1xuICBjb25zdCBtZXRhZGF0YSA9IHNhbml0aXplVG9HcmFwaEpzb25WYWx1ZShub2RlLm1ldGFkYXRhID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT4gfCB1bmRlZmluZWQ7XG4gIGlmIChtZXRhZGF0YSAmJiBPYmplY3Qua2V5cyhtZXRhZGF0YSkubGVuZ3RoKSBpbnN0YW5jZS5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICBpZiAobm9kZS5wb3NpdGlvbiB8fCBub2RlLnNpemUgfHwgbm9kZS5leHBhbmRlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgdWk6IEdyYXBoTm9kZVVpU3RhdGUgPSB7XG4gICAgICBwb3NpdGlvbjogbm9kZS5wb3NpdGlvbiA/IHsgeDogbm9kZS5wb3NpdGlvbi54LCB5OiBub2RlLnBvc2l0aW9uLnkgfSA6IHsgeDogMCwgeTogMCB9LFxuICAgIH07XG4gICAgaWYgKG5vZGUuc2l6ZSkgdWkuc2l6ZSA9IHsgd2lkdGg6IG5vZGUuc2l6ZS53aWR0aCwgaGVpZ2h0OiBub2RlLnNpemUuaGVpZ2h0IH07XG4gICAgaWYgKG5vZGUuZXhwYW5kZWQgIT09IHVuZGVmaW5lZCkgdWkuZXhwYW5kZWQgPSBub2RlLmV4cGFuZGVkO1xuICAgIGluc3RhbmNlLnVpID0gdWk7XG4gIH1cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG5mdW5jdGlvbiBlZGdlSW5zdGFuY2VGcm9tTGVnYWN5KFxuICBlZGdlOiBHcmFwaFdvcmtmbG93U25hcHNob3RFZGdlLFxuICBhbGlhc2VzOiBTZXQ8c3RyaW5nPixcbiAgYm91bmRhcnlQb3J0SWRzPzogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+LFxuICByZWxhdGlvbkxhYmVsQnlQYWlyPzogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+XG4pOiBHcmFwaEVkZ2VJbnN0YW5jZSB7XG4gIGNvbnN0IHNvdXJjZSA9IGxlZ2FjeUVuZHBvaW50KFxuICAgIGVkZ2Uuc291cmNlUmVmID8/IGVkZ2Uuc291cmNlLFxuICAgIGVkZ2Uuc291cmNlUG9ydCxcbiAgICBhbGlhc2VzLFxuICAgIGJvdW5kYXJ5UG9ydElkc1xuICApO1xuICBjb25zdCB0YXJnZXQgPSBsZWdhY3lFbmRwb2ludChcbiAgICBlZGdlLnRhcmdldFJlZiA/PyBlZGdlLnRhcmdldCxcbiAgICBlZGdlLnRhcmdldFBvcnQsXG4gICAgYWxpYXNlcyxcbiAgICBib3VuZGFyeVBvcnRJZHNcbiAgKTtcbiAgY29uc3QgaW5zdGFuY2U6IEdyYXBoRWRnZUluc3RhbmNlID0ge1xuICAgIGlkOiBlZGdlLmlkLFxuICAgIHR5cGU6IFwiZGF0YVwiLFxuICAgIHNvdXJjZSxcbiAgICB0YXJnZXQsXG4gIH07XG4gIGNvbnN0IGxhYmVsID0gZWRnZS5sYWJlbCA/PyByZWxhdGlvbkxhYmVsQnlQYWlyPy5nZXQoZWRnZVBhaXJLZXlPZih7IHNvdXJjZSwgdGFyZ2V0IH0pKTtcbiAgaWYgKGxhYmVsKSBpbnN0YW5jZS5sYWJlbCA9IGxhYmVsO1xuICBjb25zdCBtZXRhZGF0YSA9IHNhbml0aXplVG9HcmFwaEpzb25WYWx1ZShlZGdlLm1ldGFkYXRhID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT4gfCB1bmRlZmluZWQ7XG4gIGlmIChtZXRhZGF0YSAmJiBPYmplY3Qua2V5cyhtZXRhZGF0YSkubGVuZ3RoKSBpbnN0YW5jZS5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8qKiBFbmRwb2ludC1wYWlyIGtleSBmb3IgZWRnZSBpZGVudGl0eSAoY2Fub25pY2FsIGBHcmFwaEVuZHBvaW50YCBzaGFwZSkuICovXG5mdW5jdGlvbiBlZGdlUGFpcktleU9mKGVkZ2U6IHsgc291cmNlOiBHcmFwaEVuZHBvaW50OyB0YXJnZXQ6IEdyYXBoRW5kcG9pbnQgfSk6IHN0cmluZyB7XG4gIGNvbnN0IGtleU9mID0gKGVuZHBvaW50OiBHcmFwaEVuZHBvaW50KTogc3RyaW5nID0+XG4gICAgZW5kcG9pbnQuc2NvcGUgPT09IFwibm9kZVwiXG4gICAgICA/IGBub2RlOiR7ZW5kcG9pbnQubm9kZUlkfToke2VuZHBvaW50LnBvcnR9YFxuICAgICAgOiBgd29ya2Zsb3c6JHtlbmRwb2ludC5wb3J0fWA7XG4gIHJldHVybiBgJHtrZXlPZihlZGdlLnNvdXJjZSl9LT4ke2tleU9mKGVkZ2UudGFyZ2V0KX1gO1xufVxuXG4vKipcbiAqIE1hcHMgYSBsZWdhY3kgKHByZS1QNykgY2FudmFzIHNuYXBzaG90IHRvIHRoZSBjYW5vbmljYWxcbiAqIHtAbGluayBHcmFwaFdvcmtmbG93RG9jdW1lbnR9IChERUNBRi01MCDCpzQuNC42KTogbGVnYWN5IGBub2RlLmRhdGFgIGJlY29tZXNcbiAqIGluc3RhbmNlIGBwYXJhbWV0ZXJzYCwgbGVnYWN5IGBub2RlLm1ldGFkYXRhYCBiZWNvbWVzIGluc3RhbmNlIGBtZXRhZGF0YWAsXG4gKiB3b3JrZmxvdyBib3VuZGFyeSBiYWRnZXMgKGBpbnB1dC17cG9ydH1gKSBmb2xkIGJhY2sgb250byB0aGVpciB3b3JrZmxvd1xuICogcG9ydHMsIGFuZCBlZGdlIGxhYmVscyBtaXNzaW5nIGZyb20gY2xvbmVkIGVkZ2Ugcm93cyBhcmUgcmVzdG9yZWQgZnJvbSB0aGVcbiAqIGRlY29yYXRlZCBkZWZpbml0aW9uJ3MgcmVsYXRpb24gbGFiZWxzICjCpzQuNC43KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dEb2N1bWVudEZyb21MZWdhY3lTbmFwc2hvdChcbiAgc25hcHNob3Q6IExlZ2FjeUdyYXBoV29ya2Zsb3dTbmFwc2hvdFxuKTogR3JhcGhXb3JrZmxvd0RvY3VtZW50IHtcbiAgY29uc3QgYWxpYXNlcyA9IGJvdW5kYXJ5QWxpYXNlc0ZvcihzbmFwc2hvdC5kZWZpbml0aW9uKTtcbiAgY29uc3QgYm91bmRhcnlQb3J0SWRzID0gYm91bmRhcnlQb3J0SWRzRm9yKHNuYXBzaG90KTtcbiAgY29uc3QgcmVsYXRpb25MYWJlbEJ5UGFpciA9IGxlZ2FjeVJlbGF0aW9uTGFiZWxCeUVuZHBvaW50KHNuYXBzaG90LCBhbGlhc2VzLCBib3VuZGFyeVBvcnRJZHMpO1xuICBjb25zdCBpbnB1dHMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgc25hcHNob3Quc3RhdGUuaW5wdXRzLm1hcCgoZW50cnkpID0+IFtlbnRyeS5wYXRoLCBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUoZW50cnkudmFsdWUpXSlcbiAgKTtcbiAgY29uc3Qgb3V0cHV0cyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzbmFwc2hvdC5zdGF0ZS5vdXRwdXRzLm1hcCgoZW50cnkpID0+IFtlbnRyeS5wYXRoLCBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUoZW50cnkudmFsdWUpXSlcbiAgKTtcbiAgY29uc3QgZG9jdW1lbnQ6IEdyYXBoV29ya2Zsb3dEb2N1bWVudCA9IHtcbiAgICBpZDogc25hcHNob3QuZGVmaW5pdGlvbi50YWcgfHwgc25hcHNob3QuZGVmaW5pdGlvbi5uYW1lLFxuICAgIG5hbWU6IHNuYXBzaG90LmRlZmluaXRpb24ubmFtZSxcbiAgICBpbnB1dHM6IHNuYXBzaG90LmRlZmluaXRpb24uaW5wdXRzLm1hcCgocG9ydCkgPT5cbiAgICAgIHBvcnRJbnN0YW5jZUZyb21EZWZpbml0aW9uKHBvcnQsIGlucHV0c1twb3J0LnByb3BlcnR5XSlcbiAgICApLFxuICAgIG91dHB1dHM6IHNuYXBzaG90LmRlZmluaXRpb24ub3V0cHV0cy5tYXAoKHBvcnQpID0+XG4gICAgICBwb3J0SW5zdGFuY2VGcm9tRGVmaW5pdGlvbihwb3J0LCBvdXRwdXRzW3BvcnQucHJvcGVydHldKVxuICAgICksXG4gICAgbm9kZXM6IHNuYXBzaG90LnN0YXRlLm5vZGVzLm1hcChub2RlSW5zdGFuY2VGcm9tTGVnYWN5KSxcbiAgICBlZGdlczogc25hcHNob3Quc3RhdGUuZWRnZXMubWFwKChlZGdlKSA9PlxuICAgICAgZWRnZUluc3RhbmNlRnJvbUxlZ2FjeShlZGdlLCBhbGlhc2VzLCBib3VuZGFyeVBvcnRJZHMsIHJlbGF0aW9uTGFiZWxCeVBhaXIpXG4gICAgKSxcbiAgfTtcbiAgaWYgKHNuYXBzaG90LmRlZmluaXRpb24ubWV0YWRhdGEpIHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHNhbml0aXplVG9HcmFwaEpzb25WYWx1ZShcbiAgICAgIHNuYXBzaG90LmRlZmluaXRpb24ubWV0YWRhdGFcbiAgICApIGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPiB8IHVuZGVmaW5lZDtcbiAgICBpZiAobWV0YWRhdGEgJiYgT2JqZWN0LmtleXMobWV0YWRhdGEpLmxlbmd0aCkgZG9jdW1lbnQubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgfVxuICBjb25zdCB1aTogR3JhcGhXb3JrZmxvd1VpU3RhdGUgPSB7fTtcbiAgY29uc3Qgdmlld3BvcnQgPSBzbmFwc2hvdC5zdGF0ZS51aT8uW1wiZGlhZ3JhbU1ldGFkYXRhXCJdIGFzXG4gICAgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgIHwgdW5kZWZpbmVkO1xuICBjb25zdCBwYXJzZWRWaWV3cG9ydCA9IHZpZXdwb3J0Py5bXCJ2aWV3cG9ydFwiXTtcbiAgaWYgKHBhcnNlZFZpZXdwb3J0ICYmIHR5cGVvZiBwYXJzZWRWaWV3cG9ydCA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHYgPSBwYXJzZWRWaWV3cG9ydCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCB4ID0gdHlwZW9mIHZbXCJ4XCJdID09PSBcIm51bWJlclwiID8gdltcInhcIl0gOiBOdW1iZXIodltcInhcIl0pIHx8IDA7XG4gICAgY29uc3QgeSA9IHR5cGVvZiB2W1wieVwiXSA9PT0gXCJudW1iZXJcIiA/IHZbXCJ5XCJdIDogTnVtYmVyKHZbXCJ5XCJdKSB8fCAwO1xuICAgIGNvbnN0IHpvb20gPSB0eXBlb2YgdltcInNjYWxlXCJdID09PSBcIm51bWJlclwiID8gdltcInNjYWxlXCJdIDogTnVtYmVyKHZbXCJzY2FsZVwiXSkgfHwgMTtcbiAgICB1aS52aWV3cG9ydCA9IHsgeCwgeSwgem9vbSB9O1xuICB9XG4gIGlmICh1aS52aWV3cG9ydCkgZG9jdW1lbnQudWkgPSB1aTtcbiAgcmV0dXJuIGRvY3VtZW50O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGVnYWN5IHBlcnNpc3RlZCBzbmFwc2hvdCBpbnRvIHRoZSBjYW5vbmljYWwgd3JhcHBlci4gVGhlIGNhbm9uaWNhbFxuICogYGRvY3VtZW50YCBjYXJyaWVzIGV4ZWN1dGFibGUgc2VtYW50aWNzOyBgZWRpdG9yLmxlZ2FjeWAga2VlcHMgdGhlIHNhbml0aXplZFxuICogKGNvbnN0cnVjdG9yLWZyZWUpIGxlZ2FjeSBwYXlsb2FkIHNvIGEgY2Fub25pY2Fs4oaSbGVnYWN5IHJvdW5kIHRyaXAgaXMgbG9zc2xlc3NcbiAqIGZvciBwZXJzaXN0ZWQgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyYXBoV29ya2Zsb3dTbmFwc2hvdEZyb21MZWdhY3koXG4gIHNuYXBzaG90OiBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3Rcbik6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdCB7XG4gIGNvbnN0IGRvY3VtZW50ID0gZ3JhcGhXb3JrZmxvd0RvY3VtZW50RnJvbUxlZ2FjeVNuYXBzaG90KHNuYXBzaG90KTtcbiAgY29uc3QgZWRpdG9yOiBHcmFwaFNuYXBzaG90RWRpdG9yU3RhdGUgPSB7fTtcbiAgY29uc3Qgc2FuaXRpemVkTGVnYWN5ID0gc2FuaXRpemVMZWdhY3lTbmFwc2hvdFBheWxvYWQoc25hcHNob3QpO1xuICBpZiAoc2FuaXRpemVkTGVnYWN5ICYmIGlzR3JhcGhKc29uU2FmZVZhbHVlKHNhbml0aXplZExlZ2FjeSkpIGVkaXRvci5sZWdhY3kgPSBzYW5pdGl6ZWRMZWdhY3k7XG4gIGNvbnN0IHVpID0gc25hcHNob3Quc3RhdGUudWk7XG4gIGlmICh1aSkge1xuICAgIGNvbnN0IGR1cGxpY2F0ZUNvdW50cyA9IHVpW1wiZHVwbGljYXRlQ291bnRzXCJdO1xuICAgIGlmIChkdXBsaWNhdGVDb3VudHMgJiYgdHlwZW9mIGR1cGxpY2F0ZUNvdW50cyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgZWRpdG9yLmR1cGxpY2F0ZUNvdW50cyA9IGR1cGxpY2F0ZUNvdW50cyBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICAgIH1cbiAgICBjb25zdCBkaWFncmFtTWV0YWRhdGEgPSB1aVtcImRpYWdyYW1NZXRhZGF0YVwiXTtcbiAgICBpZiAoZGlhZ3JhbU1ldGFkYXRhICYmIHR5cGVvZiBkaWFncmFtTWV0YWRhdGEgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGVkaXRvci5kaWFncmFtTWV0YWRhdGEgPSBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUoXG4gICAgICAgIGRpYWdyYW1NZXRhZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBHcmFwaEpzb25WYWx1ZT47XG4gICAgfVxuICAgIGNvbnN0IG5vZGVDb25maWdzID0gdWlbXCJub2RlQ29uZmlnc1wiXTtcbiAgICBpZiAobm9kZUNvbmZpZ3MgJiYgdHlwZW9mIG5vZGVDb25maWdzID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBlZGl0b3Iubm9kZUNvbmZpZ3MgPSBzYW5pdGl6ZVRvR3JhcGhKc29uVmFsdWUoXG4gICAgICAgIG5vZGVDb25maWdzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICApIGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPjtcbiAgICB9XG4gIH1cbiAgZWRpdG9yLm5vZGVQb3J0cyA9IHt9O1xuICBmb3IgKGNvbnN0IG5vZGUgb2Ygc25hcHNob3Quc3RhdGUubm9kZXMpIHtcbiAgICBpZiAobm9kZS5wb3J0cykge1xuICAgICAgZWRpdG9yLm5vZGVQb3J0c1tub2RlLmlkXSA9IHNhbml0aXplVG9HcmFwaEpzb25WYWx1ZShcbiAgICAgICAgbm9kZS5wb3J0cyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICApIGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPjtcbiAgICB9XG4gIH1cbiAgaWYgKCFPYmplY3Qua2V5cyhlZGl0b3Iubm9kZVBvcnRzKS5sZW5ndGgpIGRlbGV0ZSBlZGl0b3Iubm9kZVBvcnRzO1xuICBjb25zdCBkZWZpbml0aW9uRGlzcGxheSA9IGRyb3BVbnNhZmVFbnRyaWVzKFxuICAgIHNuYXBzaG90LmRlZmluaXRpb24gYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApO1xuICBkZWxldGUgZGVmaW5pdGlvbkRpc3BsYXlbXCJpbnB1dHNcIl07XG4gIGRlbGV0ZSBkZWZpbml0aW9uRGlzcGxheVtcIm91dHB1dHNcIl07XG4gIGRlbGV0ZSBkZWZpbml0aW9uRGlzcGxheVtcIm5vZGVzXCJdO1xuICBkZWxldGUgZGVmaW5pdGlvbkRpc3BsYXlbXCJyZWxhdGlvbnNcIl07XG4gIGVkaXRvci5kZWZpbml0aW9uRGlzcGxheSA9IGRlZmluaXRpb25EaXNwbGF5O1xuICBjb25zdCBtZXRhZGF0YSA9IHNhbml0aXplVG9HcmFwaEpzb25WYWx1ZShcbiAgICBzbmFwc2hvdC5zdGF0ZS5tZXRhZGF0YSA/PyB7fVxuICApIGFzIFJlY29yZDxzdHJpbmcsIEdyYXBoSnNvblZhbHVlPjtcbiAgcmV0dXJuIHsgZG9jdW1lbnQsIGVkaXRvciwgbWV0YWRhdGE6IE9iamVjdC5rZXlzKG1ldGFkYXRhKS5sZW5ndGggPyBtZXRhZGF0YSA6IHVuZGVmaW5lZCB9O1xufVxuXG4vKipcbiAqIFJlY29uc3RydWN0cyBhIGxlZ2FjeSBzbmFwc2hvdCBmcm9tIGEgY2Fub25pY2FsIHdyYXBwZXIuIFVzZXMgdGhlXG4gKiBgZWRpdG9yLmxlZ2FjeWAgcGF5bG9hZCB3aGVuIHByZXNlbnQgZm9yIGV4YWN0IHJvdW5kIHRyaXBzOyBvdGhlcndpc2UgaXRcbiAqIHJlYnVpbGRzIGEgYmVzdC1lZmZvcnQgbGVnYWN5IHNuYXBzaG90IGZyb20gdGhlIGRvY3VtZW50ICsgZWRpdG9yIHN0YXRlXG4gKiAoY29uc3RydWN0b3JzIGFyZSBuZXZlciByZXN0b3JlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFdvcmtmbG93U25hcHNob3RUb0xlZ2FjeShcbiAgc25hcHNob3Q6IEdyYXBoV29ya2Zsb3dTbmFwc2hvdFxuKTogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90IHtcbiAgaWYgKHNuYXBzaG90LmVkaXRvcj8ubGVnYWN5ICYmIGlzR3JhcGhKc29uU2FmZVZhbHVlKHNuYXBzaG90LmVkaXRvci5sZWdhY3kpKSB7XG4gICAgcmV0dXJuIGNsb25lVmFsdWUoc25hcHNob3QuZWRpdG9yLmxlZ2FjeSkgYXMgdW5rbm93biBhcyBMZWdhY3lHcmFwaFdvcmtmbG93U25hcHNob3Q7XG4gIH1cbiAgY29uc3QgeyBkb2N1bWVudCwgZWRpdG9yIH0gPSBzbmFwc2hvdDtcbiAgY29uc3QgYWxpYXNlcyA9IG5ldyBTZXQ8c3RyaW5nPihHUkFQSF9MRUdBQ1lfQk9VTkRBUllfQUxJQVNFUyk7XG4gIGlmIChkb2N1bWVudC5pZCkgYWxpYXNlcy5hZGQoZG9jdW1lbnQuaWQpO1xuICBpZiAoZG9jdW1lbnQubmFtZSkgYWxpYXNlcy5hZGQoZG9jdW1lbnQubmFtZSk7XG4gIGNvbnN0IGRpc3BsYXkgPSAoZWRpdG9yPy5kZWZpbml0aW9uRGlzcGxheSA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGRlZmluaXRpb24gPSB7XG4gICAgLi4uY2xvbmVWYWx1ZShkaXNwbGF5KSxcbiAgICBuYW1lOiBkb2N1bWVudC5uYW1lLFxuICAgIHRhZzogZG9jdW1lbnQuaWQgfHwgKGRpc3BsYXlbXCJ0YWdcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fCBkb2N1bWVudC5uYW1lLFxuICAgIGlucHV0czogZG9jdW1lbnQuaW5wdXRzLm1hcCgocG9ydCkgPT4gcG9ydFRvTGVnYWN5RGVmaW5pdGlvbihwb3J0KSksXG4gICAgb3V0cHV0czogZG9jdW1lbnQub3V0cHV0cy5tYXAoKHBvcnQpID0+IHBvcnRUb0xlZ2FjeURlZmluaXRpb24ocG9ydCkpLFxuICAgIG5vZGVzOiBkb2N1bWVudC5ub2Rlcy5tYXAoKG5vZGUpID0+ICh7IGlkOiBub2RlLmlkLCBraW5kOiBub2RlLmtpbmQgfSkpLFxuICAgIHJlbGF0aW9uczogZG9jdW1lbnQuZWRnZXMubWFwKChlZGdlKSA9PiAoe1xuICAgICAgaWQ6IGVkZ2UuaWQsXG4gICAgICBzb3VyY2U6IGVuZHBvaW50VG9MZWdhY3lSZWYoZWRnZS5zb3VyY2UpLnJlZklkLFxuICAgICAgc291cmNlUG9ydDogZWRnZS5zb3VyY2UucG9ydCxcbiAgICAgIHRhcmdldDogZW5kcG9pbnRUb0xlZ2FjeVJlZihlZGdlLnRhcmdldCkucmVmSWQsXG4gICAgICB0YXJnZXRQb3J0OiBlZGdlLnRhcmdldC5wb3J0LFxuICAgICAgbGFiZWw6IGVkZ2UubGFiZWwsXG4gICAgfSkpLFxuICB9IGFzIHVua25vd24gYXMgTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90W1wiZGVmaW5pdGlvblwiXTtcblxuICBjb25zdCBzdGF0ZTogTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90W1wic3RhdGVcIl0gPSB7XG4gICAgaW5wdXRzOiBkb2N1bWVudC5pbnB1dHMubWFwKChwb3J0KSA9PiAoe1xuICAgICAgcGF0aDogcG9ydC5pZCxcbiAgICAgIHZhbHVlOiBjbG9uZVZhbHVlKHBvcnQuZGVmYXVsdFZhbHVlKSBhcyBuZXZlcixcbiAgICAgIGxhYmVsOiBwb3J0LmxhYmVsLFxuICAgICAgcmVxdWlyZWQ6IHBvcnQucmVxdWlyZWQsXG4gICAgfSkpLFxuICAgIG91dHB1dHM6IGRvY3VtZW50Lm91dHB1dHMubWFwKChwb3J0KSA9PiAoe1xuICAgICAgcGF0aDogcG9ydC5pZCxcbiAgICAgIHZhbHVlOiBjbG9uZVZhbHVlKHBvcnQuZGVmYXVsdFZhbHVlKSBhcyBuZXZlcixcbiAgICAgIGxhYmVsOiBwb3J0LmxhYmVsLFxuICAgICAgcmVxdWlyZWQ6IHBvcnQucmVxdWlyZWQsXG4gICAgfSkpLFxuICAgIG5vZGVzOiBkb2N1bWVudC5ub2Rlcy5tYXAoKG5vZGUpID0+ICh7XG4gICAgICBpZDogbm9kZS5pZCxcbiAgICAgIHJlZjogeyBpZDogbm9kZS5pZCwga2luZDogbm9kZS5raW5kIH0sXG4gICAgICBsYWJlbDogbm9kZS5sYWJlbCxcbiAgICAgIGtpbmQ6IG5vZGUua2luZCxcbiAgICAgIHBvc2l0aW9uOiBub2RlLnVpPy5wb3NpdGlvbiA/IHsgeDogbm9kZS51aS5wb3NpdGlvbi54LCB5OiBub2RlLnVpLnBvc2l0aW9uLnkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHNpemU6IG5vZGUudWk/LnNpemUgPyB7IHdpZHRoOiBub2RlLnVpLnNpemUud2lkdGgsIGhlaWdodDogbm9kZS51aS5zaXplLmhlaWdodCB9IDogdW5kZWZpbmVkLFxuICAgICAgZXhwYW5kZWQ6IG5vZGUudWk/LmV4cGFuZGVkLFxuICAgICAgcG9ydHM6IChlZGl0b3I/Lm5vZGVQb3J0cz8uW25vZGUuaWRdIGFzIG5ldmVyKSA/PyB1bmRlZmluZWQsXG4gICAgICBkYXRhOiBjbG9uZVZhbHVlKG5vZGUucGFyYW1ldGVycyA/PyB7fSkgYXMgbmV2ZXIsXG4gICAgICBtZXRhZGF0YTogY2xvbmVWYWx1ZShub2RlLm1ldGFkYXRhID8/IHt9KSBhcyBuZXZlcixcbiAgICB9KSksXG4gICAgZWRnZXM6IGRvY3VtZW50LmVkZ2VzLm1hcCgoZWRnZSkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0gZW5kcG9pbnRUb0xlZ2FjeVJlZihlZGdlLnNvdXJjZSk7XG4gICAgICBjb25zdCB0YXJnZXQgPSBlbmRwb2ludFRvTGVnYWN5UmVmKGVkZ2UudGFyZ2V0KTtcbiAgICAgIGNvbnN0IGlzQm91bmRhcnkgPSBzb3VyY2UucmVmSWQgPT09IFwiJHdvcmtmbG93XCIgfHwgdGFyZ2V0LnJlZklkID09PSBcIiR3b3JrZmxvd1wiO1xuICAgICAgY29uc3QgaXNDb25uZWN0aW9uID0gZWRnZS50eXBlID09PSBcImNvbm5lY3Rpb25cIjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBlZGdlLmlkLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZS5yZWZJZCxcbiAgICAgICAgc291cmNlUmVmOiBzb3VyY2UucmVmSWQsXG4gICAgICAgIHNvdXJjZVBvcnQ6IHNvdXJjZS5wb3J0LFxuICAgICAgICB0YXJnZXQ6IHRhcmdldC5yZWZJZCxcbiAgICAgICAgdGFyZ2V0UmVmOiB0YXJnZXQucmVmSWQsXG4gICAgICAgIHRhcmdldFBvcnQ6IHRhcmdldC5wb3J0LFxuICAgICAgICBsYWJlbDogZWRnZS5sYWJlbCxcbiAgICAgICAgdHlwZTogaXNDb25uZWN0aW9uID8gXCJjb25uZWN0aW9uXCIgOiBpc0JvdW5kYXJ5ID8gXCJvdXRwdXRcIiA6IFwiZGF0YVwiLFxuICAgICAgICBtZXRhZGF0YTogY2xvbmVWYWx1ZShlZGdlLm1ldGFkYXRhID8/IHt9KSBhcyBuZXZlcixcbiAgICAgIH0gYXMgbmV2ZXI7XG4gICAgfSksXG4gICAgdWk6IGNsb25lVmFsdWUoe1xuICAgICAgLi4uKGVkaXRvcj8uZHVwbGljYXRlQ291bnRzID8geyBkdXBsaWNhdGVDb3VudHM6IGVkaXRvci5kdXBsaWNhdGVDb3VudHMgfSA6IHt9KSxcbiAgICAgIC4uLihlZGl0b3I/LmRpYWdyYW1NZXRhZGF0YSA/IHsgZGlhZ3JhbU1ldGFkYXRhOiBlZGl0b3IuZGlhZ3JhbU1ldGFkYXRhIH0gOiB7fSksXG4gICAgICAuLi4oZWRpdG9yPy5ub2RlQ29uZmlncyA/IHsgbm9kZUNvbmZpZ3M6IGVkaXRvci5ub2RlQ29uZmlncyB9IDoge30pLFxuICAgIH0pIGFzIG5ldmVyLFxuICAgIG1ldGFkYXRhOiBjbG9uZVZhbHVlKHNuYXBzaG90Lm1ldGFkYXRhID8/IHt9KSBhcyBuZXZlcixcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICB2ZXJzaW9uOiBHUkFQSF9XT1JLRkxPV19TTkFQU0hPVF9WRVJTSU9OLFxuICAgIGRlZmluaXRpb24sXG4gICAgc3RhdGUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBvcnRUb0xlZ2FjeURlZmluaXRpb24ocG9ydDogR3JhcGhXb3JrZmxvd1BvcnRJbnN0YW5jZSk6IEdyYXBoUG9ydERlZmluaXRpb24ge1xuICByZXR1cm4ge1xuICAgIHByb3BlcnR5OiBwb3J0LmlkLFxuICAgIGxhYmVsOiBwb3J0LmxhYmVsLFxuICAgIHJlcXVpcmVkOiBwb3J0LnJlcXVpcmVkLFxuICAgIG1ldGFkYXRhOiBjbG9uZVZhbHVlKHBvcnQubWV0YWRhdGEgPz8ge30pIGFzIG5ldmVyLFxuICB9IGFzIHVua25vd24gYXMgR3JhcGhQb3J0RGVmaW5pdGlvbjtcbn1cblxuLyoqIE5vcm1hbGl6ZXMgYW55IGFjY2VwdGVkIHNuYXBzaG90L2RvY3VtZW50IGZvcm0gdG8gYSBjYW5vbmljYWwgd3JhcHBlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaFdvcmtmbG93U25hcHNob3RMaWtlVG9DYW5vbmljYWwoXG4gIHZhbHVlOiBHcmFwaFdvcmtmbG93U25hcHNob3RMaWtlIHwgR3JhcGhXb3JrZmxvd0RvY3VtZW50XG4pOiBHcmFwaFdvcmtmbG93U25hcHNob3Qge1xuICBpZiAoXCJkb2N1bWVudFwiIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIEdyYXBoV29ya2Zsb3dTbmFwc2hvdDtcbiAgfVxuICBpZiAoXCJzdGF0ZVwiIGluIHZhbHVlIHx8IFwiZGVmaW5pdGlvblwiIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIGdyYXBoV29ya2Zsb3dTbmFwc2hvdEZyb21MZWdhY3kodmFsdWUgYXMgTGVnYWN5R3JhcGhXb3JrZmxvd1NuYXBzaG90KTtcbiAgfVxuICByZXR1cm4geyBkb2N1bWVudDogdmFsdWUgYXMgR3JhcGhXb3JrZmxvd0RvY3VtZW50IH07XG59XG4iXX0=
|
|
680
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/graph/snapshot.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,oBAAiB;AAavE,OAAO,EAAE,oBAAoB,EAAE,qCAAkC;AAEjE,OAAO,EACL,8BAA8B,GAE/B,gDAA6C;AAE9C,MAAM,6BAA6B,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAEzE,MAAM,2BAA2B,GAAG;IAClC,MAAM;IACN,YAAY;IACZ,aAAa;IACb,aAAa;IACb,YAAY;IACZ,UAAU;CACX,CAAC;AAIF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAU,CAAC;AAqH1D,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAM,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAM,CAAC;IACxC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAc;IAEd,OAAO,CACL,aAAa,CAAC,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAwC;IAC/D,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,IAAwC;IAC/D,OAAO,CACL,IAAI,CAAC,EAAE;QACP,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC;aAC7F,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA2E,EAC3E,WAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE7D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,IAAI;gBAAE,SAAS;YAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAiC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAA+B;YACxC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,QAAQ,EAAE,UAAU,CAClB,UAAU,CAAC,KAAK,EAAE,QAAQ;gBACxB,UAAU,CAAC,OAAO,EAAE,KAAK;gBACzB,UAAU,CAAC,IAAI,EAAE,KAAK;gBACtB,EAAE,CACL;YACD,GAAG,OAAO;YACV,IAAI;SACL,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACxE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CACrB,KAA8C,EAC9C,WAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC3D,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAA8B;YACtC,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,GAAG,EAAE;gBACH,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;YACD,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACvF,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC1C,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAA8B;gBACxC,GAAG,OAAO;gBACV,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE;gBAC1B,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,GAAG,KAAK,CAAC,GAAG;oBACZ,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,EAAE;iBACnD;gBACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;gBACxE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;gBACxD,KAAK,EAAE;oBACL,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;iBACvB;gBACD,IAAI,EAAE;oBACJ,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;oBACvB,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;iBACtB;gBACD,QAAQ,EAAE;oBACR,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;iBAC1B;aACF,CAAC;YACF,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACrB,KAA8C,EAC9C,SAA0C;IAE1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC3D,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;QAC9D,MAAM,IAAI,GAA8B;YACtC,EAAE,EAAE,QAAQ,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YACxG,MAAM;YACN,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM;YACN,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACxC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAA8B;gBACxC,GAAG,OAAO;gBACV,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACjF,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACjF,uEAAuE;gBACvE,sEAAsE;gBACtE,4BAA4B;gBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;gBACnC,QAAQ,EAAE;oBACR,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;iBAC1B;aACF,CAAC;YACF,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAClC,UAAqE,EACrE,YAAsD,EAAE;IAExD,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACvC,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG;QACpC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACvC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;QACnD,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;QAC1C,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;QAC1C,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;QAC7C,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACvC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QAC/D,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW;QAC5D,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;QACnD,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;QAC1C,QAAQ,EAAE,UAAU,CAClB,SAAS,CAAC,QAAQ;YAChB,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CACzE;QACD,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QAC/D,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAClE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5D,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAoF;IAEpF,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,yBAAyB,CAAC,KAA0B,CAAC,CAAC;IAC1D,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAoF,EACpF,KAAkC;IAElC,MAAM,oBAAoB,GAAG,2BAA2B,CACtD,iCAAiC,CAAC,KAAY,CAAC,EAC/C,KAAK,EAAE,UAAU,CAClB,CAAC;IACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,oBAAoB;QAChC,KAAK,EAAE;YACL,MAAM,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC;YACxD,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;YAC3D,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;YAC/D,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC;YACnE,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC;YAC/B,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAkE,EAClE,KAAqF;IAErF,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,uBAAuB,CAC5B,KAAK;YACF,QAAQ,CAAC,UAGI;YACb,EAA8B,EACjC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,QAAuC,CAAC;IAC7D,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC,iCAAiC,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;IAE5B,OAAO,uBAAuB,CAAC,UAAU,EAAE;QACzC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM;QACjC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO;QACnC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK;QAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK;QAC/B,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;QACzB,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAqC,EACrC,KAAc;IAEd,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAA2C,EAC3C,KAAkF;IAElF,MAAM,QAAQ,GACZ,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzF,OAAO,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,QAAqC;IAErC,OAAO,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,QAAqC;IAErC,OAAO,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7E,CAAC;AACJ,CAAC;AAkCD,SAAS,iBAAiB,CACxB,MAA+B;IAE/B,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,2BAA2B,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QACxD,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CACpC,QAAqC;IAErC,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,iBAAiB,CAC3B,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAuC,CAClE;QACD,KAAK,EAAE,iBAAiB,CACtB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAuC,CAC7D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAuB,CAAC;IAC5E,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAe,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC,KAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA2C;IACrE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,6BAA6B,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CACrB,KAAyB,EACzB,IAAwB,EACxB,OAAoB,EACpB,eAA6C;IAE7C,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAkC,CAAC;IACnF,CAAC;IACD,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,cAAc;aACW,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAA0B,CAAC;AACtF,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,QAAqC;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6BAA6B,CACpC,QAAqC,EACrC,OAAoB,EACpB,eAA4C;IAE5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,GAAG,CAAC,GAAG,CACL,aAAa,CAAC;YACZ,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC;YAChF,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC;SACjF,CAAC,EACF,KAAK,CACN,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuB;IAClD,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,0BAA0B,CACjC,IAAyB,EACzB,KAAsB;IAEtB,MAAM,QAAQ,GAA8B;QAC1C,EAAE,EAAE,IAAI,CAAC,QAAQ;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;IACF,QAAQ,CAAC,MAAM,GAAG,8BAA8B,CAC9C,IAAI,CAAC,UAA+C,EACpD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,CACX,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5C,IAAI,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC;IACvD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA+C,CAAC;IAC1G,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;QAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAiE;IAEjE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,QAAQ,GAAsC,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA+B;IAC7D,MAAM,QAAQ,GAAsB;QAClC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE;QAC5C,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;KAC/C,CAAC;IACF,IAAI,IAAI,CAAC,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,QAAQ;QAAE,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC;IAChD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAA+C,CAAC;IAC7G,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;QAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3E,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9D,MAAM,EAAE,GAAqB;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;SACtF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI;YAAE,EAAE,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7D,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAA+B,EAC/B,OAAoB,EACpB,eAA6C,EAC7C,mBAAiD;IAEjD,MAAM,MAAM,GAAG,cAAc,CAC3B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAC7B,IAAI,CAAC,UAAU,EACf,OAAO,EACP,eAAe,CAChB,CAAC;IACF,MAAM,MAAM,GAAG,cAAc,CAC3B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAC7B,IAAI,CAAC,UAAU,EACf,OAAO,EACP,eAAe,CAChB,CAAC;IACF,MAAM,QAAQ,GAAsB;QAClC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,MAAM;QACZ,MAAM;QACN,MAAM;KACP,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,mBAAmB,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxF,IAAI,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAA+C,CAAC;IAC7G,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;QAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,IAAsD;IAC3E,MAAM,KAAK,GAAG,CAAC,QAAuB,EAAU,EAAE,CAChD,QAAQ,CAAC,KAAK,KAAK,MAAM;QACvB,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC5C,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uCAAuC,CACrD,QAAqC;IAErC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1F,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC3F,CAAC;IACF,MAAM,QAAQ,GAA0B;QACtC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI;QACvD,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI;QAC9B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACxD;QACD,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACzD;QACD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACvD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAC5E;KACF,CAAC;IACF,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,wBAAwB,CACvC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CACiB,CAAC;QAChD,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;YAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7E,CAAC;IACD,MAAM,EAAE,GAAyB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAEzC,CAAC;IACd,MAAM,cAAc,GAAG,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,cAAyC,CAAC;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACnF,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,EAAE,CAAC,QAAQ;QAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAC7C,QAAqC;IAErC,MAAM,QAAQ,GAAG,uCAAuC,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,eAAe,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,eAAe,IAAI,oBAAoB,CAAC,eAAe,CAAC;QAAE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9F,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7B,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,eAAe,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,CAAC,eAAe,GAAG,eAAyC,CAAC;QACrE,CAAC;QACD,MAAM,eAAe,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,CAAC,eAAe,GAAG,wBAAwB,CAC/C,eAA0C,CACT,CAAC;QACtC,CAAC;QACD,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;QACtC,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,wBAAwB,CAC3C,WAAsC,CACL,CAAC;QACtC,CAAC;IACH,CAAC;IACD,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAClD,IAAI,CAAC,KAA2C,CACf,CAAC;QACtC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC;IACnE,MAAM,iBAAiB,GAAG,iBAAiB,CACzC,QAAQ,CAAC,UAAgD,CAC1D,CAAC;IACF,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,MAAM,QAAQ,GAAG,wBAAwB,CACvC,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CACI,CAAC;IACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAA+B;IAE/B,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5E,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAA2C,CAAC;IACtF,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,6BAA6B,CAAC,CAAC;IAC/D,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,IAAI,QAAQ,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAA4B,CAAC;IAC7E,MAAM,UAAU,GAAG;QACjB,GAAG,UAAU,CAAC,OAAO,CAAC;QACtB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAK,OAAO,CAAC,KAAK,CAAwB,IAAI,QAAQ,CAAC,IAAI;QAC3E,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACrE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;YAC9C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC5B,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;YAC9C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;KACoD,CAAC;IAE1D,MAAM,KAAK,GAAyC;QAClD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAU;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAU;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAC1F,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;YAC5F,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ;YAC3B,KAAK,EAAG,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAW,IAAI,SAAS;YAC3D,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAU;YAChD,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAU;SACnD,CAAC,CAAC;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC;YAChF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;YAChD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBAClE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAU;aAC1C,CAAC;QACb,CAAC,CAAC;QACF,EAAE,EAAE,UAAU,CAAC;YACb,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAU;QACX,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAU;KACvD,CAAC;IACF,OAAO;QACL,OAAO,EAAE,+BAA+B;QACxC,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA+B;IAC7D,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAU;KACjB,CAAC;AACtC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,oCAAoC,CAClD,KAAwD;IAExD,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACxB,OAAO,KAA8B,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC9C,OAAO,+BAA+B,CAAC,KAAoC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAA8B,EAAE,CAAC;AACtD,CAAC"}
|
package/lib/esm/graph/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { PortDirection } from "./constants.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ3JhcGgvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSx1QkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBQb3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgdHlwZSB7XG4gIEdyYXBoQ29ubmVjdGlvblJ1bGUsXG4gIEdyYXBoTm9kZURlZmluaXRpb24sXG4gIEdyYXBoTm9kZUtpbmQsXG4gIEdyYXBoTm9kZU1ldGFkYXRhLFxuICBHcmFwaFBvcnREZWZpbml0aW9uLFxuICBHcmFwaFBvcnRNZXRhZGF0YSxcbiAgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24sXG4gIEdyYXBoV29ya2Zsb3dNZXRhZGF0YSxcbiAgR3JhcGhXb3JrZmxvd05vZGVNZXRhZGF0YSxcbiAgR3JhcGhXb3JrZmxvd1JlbGF0aW9uTWV0YWRhdGEsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0IHR5cGUge1xuICBHcmFwaFdvcmtmbG93U25hcHNob3QsXG4gIExlZ2FjeUdyYXBoV29ya2Zsb3dTbmFwc2hvdCxcbiAgR3JhcGhXb3JrZmxvd1NuYXBzaG90RGVmaW5pdGlvbixcbiAgR3JhcGhXb3JrZmxvd1NuYXBzaG90RWRnZSxcbiAgR3JhcGhXb3JrZmxvd1NuYXBzaG90SW5wdXQsXG4gIEdyYXBoV29ya2Zsb3dTbmFwc2hvdE5vZGUsXG4gIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFBvc2l0aW9uLFxuICBHcmFwaFdvcmtmbG93U25hcHNob3RSZWZlcmVuY2UsXG4gIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFNpemUsXG4gIEdyYXBoV29ya2Zsb3dTbmFwc2hvdFN0YXRlLFxuICBHcmFwaFdvcmtmbG93U25hcHNob3RWYWx1ZSxcbiAgR3JhcGhXb3JrZmxvd1NuYXBzaG90UG9ydFN0YXRlLFxuICBHcmFwaFdvcmtmbG93U25hcHNob3RMaWtlLFxuICBHcmFwaFNuYXBzaG90RWRpdG9yU3RhdGUsXG59IGZyb20gXCIuL3NuYXBzaG90XCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2hhcmVkIGdyYXBoIGV4ZWN1dGlvbiBjb250cmFjdCAoREVDQUYtNTAgUGhhc2UgQSwgbW92ZWQgZnJvbVxuLy8gaW50ZWdyYXRpb25zL2dyYXBoL3NoYXJlZCk6IGZyb250ZW5kLXNhZmUgdHlwZSBkZWNsYXJhdGlvbnMgY29uc3VtZWQgYnlcbi8vIGJvdGggdGhlIGJhY2tlbmQgZW5naW5lIGFuZCBmcm9udGVuZCBidW5kbGVzIG92ZXIgU1NFLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmltcG9ydCB0eXBlIHsgR3JhcGhQb3J0RGVmaW5pdGlvbiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEdyYXBoRXhlY3V0aW9uRXZlbnRUeXBlLFxuICBHcmFwaEV4ZWN1dGlvblN0YXR1cyxcbiAgR3JhcGhWaXN1YWxTdGF0ZSxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmltcG9ydCB0eXBlIHsgR3JhcGhKc29uVmFsdWUgfSBmcm9tIFwiLi9kb2N1bWVudFwiO1xuXG4vKipcbiAqIEEgdmFsdWUgcmVmZXJlbmNlIGluc2lkZSBhIHtAbGluayBDb25kaXRpb25FeHByZXNzaW9ufS5cbiAqXG4gKiAtIGB7IGNvbnN0OiB4IH1gIOKAlCBhIGxpdGVyYWwgY29uc3RhbnQuXG4gKiAtIGB7IHBhdGg6IFwiYS5iXCIgfWAg4oCUIGEgZG90dGVkIHBhdGggcmVzb2x2ZWQgYWdhaW5zdCB0aGUgY3VycmVudCBsb29wIHN0YXRlLlxuICogLSBgeyBzdGVwOiBcIm5vZGVJZFwiLCBwYXRoOiBcIm91dFwiIH1gIOKAlCBhIGNyb3NzLW5vZGUgcmVmZXJlbmNlIChyZXNvbHZlZCBmcm9tXG4gKiAgIHRoZSBleGVjdXRpb24gc3RhdGUgaW4gdjE7IHJlc2VydmVkIGZvciBmdXR1cmUgbXVsdGktc3RlcCBldmFsdWF0aW9uKS5cbiAqL1xuZXhwb3J0IHR5cGUgRXhwclZhbHVlID1cbiAgfCB7IGNvbnN0OiB1bmtub3duIH1cbiAgfCB7IHBhdGg6IHN0cmluZyB9XG4gIHwgeyBzdGVwOiBzdHJpbmc7IHBhdGg6IHN0cmluZyB9O1xuXG4vKipcbiAqIERlY2xhcmF0aXZlLCBzZXJpYWxpemFibGUgY29uZGl0aW9uIGV4cHJlc3Npb24gRFNMIChBTEZSRUQtNSDCpzggLyBERUNBRi0zMiDCpzIyLjMpLlxuICpcbiAqIFRoZSBlbmdpbmUncyBgR3JhcGhDb25kaXRpb25FdmFsdWF0b3JgIHJlY29nbmlzZXMgdGhpcyBEU0wgd2hlbiB0aGVcbiAqIGNvbmRpdGlvbiBvYmplY3QgY2FycmllcyBhbiBgb3BgIGZpZWxkIGFuZCBkaXNwYXRjaGVzIHRvIHRoZVxuICogYENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3JgLlxuICovXG5leHBvcnQgdHlwZSBDb25kaXRpb25FeHByZXNzaW9uID1cbiAgfCB7IG9wOiBcImVxXCI7IGxlZnQ6IEV4cHJWYWx1ZTsgcmlnaHQ6IEV4cHJWYWx1ZSB9XG4gIHwgeyBvcDogXCJuZXFcIjsgbGVmdDogRXhwclZhbHVlOyByaWdodDogRXhwclZhbHVlIH1cbiAgfCB7IG9wOiBcImd0XCI7IGxlZnQ6IEV4cHJWYWx1ZTsgcmlnaHQ6IEV4cHJWYWx1ZSB9XG4gIHwgeyBvcDogXCJndGVcIjsgbGVmdDogRXhwclZhbHVlOyByaWdodDogRXhwclZhbHVlIH1cbiAgfCB7IG9wOiBcImx0XCI7IGxlZnQ6IEV4cHJWYWx1ZTsgcmlnaHQ6IEV4cHJWYWx1ZSB9XG4gIHwgeyBvcDogXCJsdGVcIjsgbGVmdDogRXhwclZhbHVlOyByaWdodDogRXhwclZhbHVlIH1cbiAgfCB7IG9wOiBcImFuZFwiOyBjb25kaXRpb25zOiBDb25kaXRpb25FeHByZXNzaW9uW10gfVxuICB8IHsgb3A6IFwib3JcIjsgY29uZGl0aW9uczogQ29uZGl0aW9uRXhwcmVzc2lvbltdIH1cbiAgfCB7IG9wOiBcIm5vdFwiOyBjb25kaXRpb246IENvbmRpdGlvbkV4cHJlc3Npb24gfVxuICB8IHsgb3A6IFwiZXhpc3RzXCI7IHZhbHVlOiBFeHByVmFsdWUgfTtcblxuLyoqXG4gKiBBIGNvZGUtYmFzZWQgY29uZGl0aW9uIGV2YWx1YXRlZCBpbiBhIHJlc3RyaWN0ZWQgVk0gc2FuZGJveCAowqcyMi40KS5cbiAqXG4gKiBUaGUgZW5naW5lIGRvZXMgTk9UIGltcGxlbWVudCB0aGUgc2FuZGJveCBkaXJlY3RseSDigJQgYSBwbHVnZ2FibGVcbiAqIGBDb2RlU2FuZGJveEV2YWx1YXRvcmAgbXVzdCBiZSByZWdpc3RlcmVkIGZvciBjb2RlIGNvbmRpdGlvbnMgdG8gd29yay5cbiAqIFRoZSBjb2RlIG11c3QgZm9sbG93IHRoZSBzYW1lIHJlc3RyaWN0aW9ucyBhcyB0aGUgQ29kZSBOb2RlICjCpzIyLjQpOlxuICogbm8gc3lzdGVtIEFQSSBhY2Nlc3MsIHBsYWNlaG9sZGVyIHN5bnRheCBmb3Igd29ya2Zsb3cgZGF0YSByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb25kaXRpb24ge1xuICB0eXBlOiBcImNvZGVcIjtcbiAgY29kZTogc3RyaW5nO1xuICBsYW5ndWFnZT86IFwiamF2YXNjcmlwdFwiIHwgXCJ0eXBlc2NyaXB0XCI7XG59XG5cbi8qKlxuICogQSBjb25kaXRpb24gb24gYSBTd2l0Y2ggY2FzZSDigJQgZWl0aGVyIGEgZGVjbGFyYXRpdmVcbiAqIHtAbGluayBDb25kaXRpb25FeHByZXNzaW9ufSAoZ3JhcGhpY2FsIG1vZGUpIG9yIGEge0BsaW5rIENvZGVDb25kaXRpb259XG4gKiAoY29kZSBtb2RlKS5cbiAqL1xuZXhwb3J0IHR5cGUgU3dpdGNoQ2FzZUNvbmRpdGlvbiA9IENvbmRpdGlvbkV4cHJlc3Npb24gfCBDb2RlQ29uZGl0aW9uO1xuXG4vKipcbiAqIEEgc2luZ2xlIGNhc2UgaW4gYSBTd2l0Y2ggbm9kZS5cbiAqXG4gKiBFYWNoIGNhc2UgcGFpcnMgYSBjb25kaXRpb24gd2l0aCBhIGRlZGljYXRlZCBvdXRwdXQgcG9ydC4gV2hlbiB0aGVcbiAqIGNvbmRpdGlvbiBldmFsdWF0ZXMgdG8gYHRydWVgLCB0aGUgaW5wdXQgaXMgcm91dGVkIHRvIGBvdXRwdXRQb3J0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hDYXNlIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgY29uZGl0aW9uOiBTd2l0Y2hDYXNlQ29uZGl0aW9uO1xuICBvdXRwdXRQb3J0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGEgU3dpdGNoIG5vZGUsIHN0b3JlZCBpbiBgbWV0YWRhdGEuc3dpdGNoYC5cbiAqXG4gKiBXaGVuIGBoYXNEZWZhdWx0YCBpcyBgZmFsc2VgICh0aGUgZGVmYXVsdCksIHRoZSBgZGVmYXVsdGAgb3V0cHV0IHBvcnQgaXNcbiAqIGhpZGRlbiBhbmQgdGhlIGV4ZWN1dG9yIHRocm93cyBhIGBHcmFwaEV4ZWN1dGlvbkVycm9yYCB3aGVuIG5vIGNhc2VcbiAqIG1hdGNoZXMuIFdoZW4gYGhhc0RlZmF1bHRgIGlzIGB0cnVlYCwgdGhlIGBkZWZhdWx0YCBvdXRwdXQgcG9ydCBpcyB2aXNpYmxlXG4gKiBhbmQgcmVjZWl2ZXMgdGhlIGlucHV0IHdoZW4gbm8gY2FzZSBtYXRjaGVzIChERUNBRi0zNCDCpzYuMikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoTm9kZU1ldGFkYXRhIHtcbiAgY2FzZXM6IFN3aXRjaENhc2VbXTtcbiAgZGVmYXVsdFBvcnQ/OiBzdHJpbmc7XG4gIGhhc0RlZmF1bHQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgYXBwbHlpbmcgYSBtZXRhZGF0YSBjaGFuZ2UgdG8gYSBub2RlLiBFYWNoIGNvbmNyZXRlIG5vZGVcbiAqIGNsYXNzIHRoYXQgb3ZlcnJpZGVzIGBHcmFwaE5vZGUuYXBwbHlNZXRhZGF0YSgpYCByZXR1cm5zIHRoaXMgc28gdGhlXG4gKiByZW5kZXJlciBjYW4gdXBkYXRlIHRoZSBkaWFncmFtIG1vZGVsIOKAlCB0aGUgbm9kZSBvd25zIGl0cyBwb3J0cywgaXRzXG4gKiBzaXplLCBhbmQgYW55IGRhdGEgcGF0Y2hlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlTWV0YWRhdGFDaGFuZ2Uge1xuICBwb3J0czogR3JhcGhQb3J0RGVmaW5pdGlvbltdO1xuICBzaXplOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH07XG4gIGRhdGFQYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogU2VyaWFsaXplZCBlcnJvciBwYXlsb2FkIGluY2x1ZGVkIGluIGV4ZWN1dGlvbiBldmVudHMgYW5kIHJlc3VsdHMuXG4gKlxuICogRnJvbnRlbmQtc2FmZTogdGhlIGZyb250ZW5kIHJlY2VpdmVzIHRoaXMgb3ZlciBTU0Ugd2hlbiBhIG5vZGUgb3Igd29ya2Zsb3dcbiAqIGZhaWxzIGFuZCBuZWVkcyB0byByZW5kZXIgdGhlIGVycm9yIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhFeGVjdXRpb25FcnJvclBheWxvYWQge1xuICBuYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc3RhY2s/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGRldGFpbHM/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIGV2ZW50IGVtaXR0ZWQgZHVyaW5nIGdyYXBoIGV4ZWN1dGlvbi5cbiAqXG4gKiBGcm9udGVuZC1zYWZlOiB0aGUgZnJvbnRlbmQgY29uc3VtZXMgdGhlc2UgZXZlbnRzIG92ZXIgdGhlIFNTRSBlbmRwb2ludFxuICogKGBHRVQgL2dyYXBoL2V2ZW50c2ApIGFuZCBtYXBzIHRoZW0gdG8gVUkgc3RhdGUgdXBkYXRlcyB2aWFcbiAqIGBHcmFwaEV4ZWN1dGlvblN0YXRlTWFwcGVyYC4gVGhlIGB0aW1lc3RhbXBgIGlzIHNlcmlhbGlzZWQgYXMgYW4gSVNPIHN0cmluZ1xuICogb3ZlciB0aGUgd2lyZTsgdGhlIGZyb250ZW5kIGRlc2VyaWFsaXNlcyBpdCBiYWNrIHRvIGEgYERhdGVgIHdoZW4gbWFwcGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaEV4ZWN1dGlvbkV2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgc2VxdWVuY2U6IG51bWJlcjtcbiAgcnVuSWQ6IHN0cmluZztcbiAgcGFyZW50UnVuSWQ/OiBzdHJpbmc7XG4gIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGU7XG4gIHRpbWVzdGFtcDogRGF0ZTtcbiAgbm9kZUlkPzogc3RyaW5nO1xuICBlZGdlSWQ/OiBzdHJpbmc7XG4gIHBvcnQ/OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbj86IG51bWJlcjtcbiAgcGF0aDogc3RyaW5nW107XG4gIHN0YXR1cz86IEdyYXBoRXhlY3V0aW9uU3RhdHVzO1xuICBwYXlsb2FkPzogdW5rbm93bjtcbiAgZXJyb3I/OiBHcmFwaEV4ZWN1dGlvbkVycm9yUGF5bG9hZDtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIGNhcnJpZWQgYnkgYE5PREVfU1RBVEVfQ0hBTkdFRGAgZXZlbnRzIChERUNBRi00OCDCpzQuNCkuXG4gKlxuICogVGhlIHZpc3VhbCBzdGF0ZSBpcyB0aGUgZW5naW5lLWFnbm9zdGljIGNvbnRyYWN0IGEgTWFzdHJhL05lc3RKUyBkcml2ZXJcbiAqIE1VU1QgZW1pdDsgdGhlIHJlZmVyZW5jZSBlbmdpbmUgZGVyaXZlcyBpdCBmcm9tIGl0cyBvd24gZXhlY3V0aW9uIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaE5vZGVTdGF0ZUNoYW5nZWRQYXlsb2FkIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIHN0YXRlOiBHcmFwaFZpc3VhbFN0YXRlO1xuICBydW5JZDogc3RyaW5nO1xuICB3b3JrZmxvd0lkOiBzdHJpbmc7XG4gIC8qKiBFbmdpbmUgc3RhdHVzIHRoYXQgcHJvZHVjZWQgdGhlIHZpc3VhbCBzdGF0ZSAod2hlbiBhdmFpbGFibGUpLiAqL1xuICBzdGF0dXM/OiBHcmFwaEV4ZWN1dGlvblN0YXR1cztcbiAgaXRlcmF0aW9uPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBheWxvYWQgY2FycmllZCBieSBgRURHRV9TVEFURV9DSEFOR0VEYCBldmVudHMgKERFQ0FGLTQ4IMKnNC40KS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaEVkZ2VTdGF0ZUNoYW5nZWRQYXlsb2FkIHtcbiAgZWRnZUlkOiBzdHJpbmc7XG4gIHN0YXRlOiBHcmFwaFZpc3VhbFN0YXRlO1xuICBydW5JZDogc3RyaW5nO1xuICB3b3JrZmxvd0lkOiBzdHJpbmc7XG4gIC8qKiBTb3VyY2Ugbm9kZSBvZiB0aGUgcm91dGVkIGVkZ2UgKHdoZW4gYXZhaWxhYmxlKS4gKi9cbiAgbm9kZUlkPzogc3RyaW5nO1xuICAvKiogRW5naW5lIHN0YXR1cyB0aGF0IHByb2R1Y2VkIHRoZSB2aXN1YWwgc3RhdGUgKHdoZW4gYXZhaWxhYmxlKS4gKi9cbiAgc3RhdHVzPzogR3JhcGhFeGVjdXRpb25TdGF0dXM7XG59XG5cbi8qKlxuICogU3RydWN0dXJlZCBsb2cgbGluZSBzdHJlYW1lZCBvdmVyIHRoZSBgZ3JhcGgucnVuLmxvZ2AgU1NFIGNoYW5uZWxcbiAqIChERUNBRi00OCDCpzQuMykuIFNlcmlhbGl6ZWQgZnJvbSB0aGUgcnVuJ3MgYGN0eC5sb2dnZXJgIG91dHB1dDsgdGhlIGxldmVsXG4gKiBkcml2ZXMgdGhlIENocm9tZS1jb25zb2xlLXN0eWxlIGZpbHRlciB3aGlsZSB0aGUgYXR0cmlidXRlcyByZW5kZXIgYXNcbiAqIGRpc2NyZXRlIGNvbHVtbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhSdW5Mb2dFbnRyeSB7XG4gIC8qKiBMb2cgc2V2ZXJpdHkgbGV2ZWwgZHJpdmluZyB0aGUgQ2hyb21lLWNvbnNvbGUtc3R5bGUgd2lkZ2V0IGZpbHRlciAoYWxsIGBMb2dOb2RlTGV2ZWxgIHZhbHVlcyBwbHVzIGBiZW5jaG1hcmtgKS4gKi9cbiAgbGV2ZWw6IFwic2lsbHlcIiB8IFwidHJhY2VcIiB8IFwiZGVidWdcIiB8IFwidmVyYm9zZVwiIHwgXCJpbmZvXCIgfCBcIndhcm5cIiB8IFwiZXJyb3JcIiB8IFwiY3JpdGljYWxcIiB8IFwiZmF0YWxcIiB8IFwiYmVuY2htYXJrXCI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgbm9kZUlkPzogc3RyaW5nO1xuICB1c2VyPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFN0cnVjdHVyZWQgcGF5bG9hZCBhc3NvY2lhdGVkIHdpdGggdGhlIGxvZyBsaW5lLCBpZiBhbnkuICovXG4gIHBheWxvYWQ/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIFN0cnVjdHVyZWQgcGVyLW5vZGUgSS9PIHBheWxvYWQgZXhwb3NlZCBmb3Igbm9kZSBpbnNwZWN0aW9uIChERUNBRi00OCDCpzQuNikuXG4gKlxuICogRnJvbnRlbmQtc2FmZTogcHVyZSBkYXRhIGRlbGl2ZXJlZCB2aWEgdGhlIHNoYXJlZCBncmFwaCB0eXBlcyBvdmVyIHRoZSBTU0VcbiAqIHN0YXRlIGNoYW5uZWwgKG9yIGEgYEdFVCAvZ3JhcGgvcmVzdWx0cy86cnVuSWRgIGxvb2t1cCk7IHRoZSBmcm9udGVuZFxuICogcmVuZGVycyBib3RoIHBhbmVzIChpbnB1dHMgcmlnaHQsIG91dHB1dHMvZXJyb3IgbGVmdCkgZnJvbSB0aGlzIG9uZSBzaGFwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaE5vZGVJbnNwZWN0aW9uUGF5bG9hZCB7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIHN0YXRlOiBHcmFwaFZpc3VhbFN0YXRlO1xuICBpbnB1dHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogUHJlc2VudCB3aGVuIFNVQ0NFRURFRCAob3IgZnJvbSBjYWNoZSkuICovXG4gIG91dHB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIFByZXNlbnQgd2hlbiBGQUlMRUQuICovXG4gIGVycm9yPzogR3JhcGhFeGVjdXRpb25FcnJvclBheWxvYWQ7XG59XG5cbi8qKlxuICogTG9nIGxldmVscyBhY2NlcHRlZCBieSB0aGUgTG9nIG5vZGUgKERFQ0FGLTQ4IMKnNC4zKS5cbiAqXG4gKiBNaXJyb3JzIHRoZSBERUNBRi05IGxvZyBsZXZlbCBzZXQgc28gdGhlIExvZyBub2RlIGV4ZWN1dG9yIChhbmQgdGhlXG4gKiBgR3JhcGhSdW5Mb2dnZXJgIGRpc3BhdGNoKSBjYW4gZm9yd2FyZCBvbnRvIHRoZSBydW4ncyBgY3R4LmxvZ2dlcmAuXG4gKiBJbmNsdWRlcyBldmVyeSBsZXZlbCByZW5kZXJlZCBieSB0aGUgQ2hyb21lLWNvbnNvbGUtc3R5bGUgd2lkZ2V0IGZpbHRlci5cbiAqL1xuZXhwb3J0IHR5cGUgTG9nTm9kZUxldmVsID1cbiAgfCBcInNpbGx5XCJcbiAgfCBcInRyYWNlXCJcbiAgfCBcImRlYnVnXCJcbiAgfCBcInZlcmJvc2VcIlxuICB8IFwiaW5mb1wiXG4gIHwgXCJ3YXJuXCJcbiAgfCBcImVycm9yXCJcbiAgfCBcImNyaXRpY2FsXCJcbiAgfCBcImZhdGFsXCI7XG5cbi8qKlxuICogUnVuLXNjb3BlZCBTU0Ugc3Vic2NyaXB0aW9uIG93bmVyc2hpcCBrZXkgKERFQ0FGLTQ4IMKnNC4yKS5cbiAqXG4gKiBTdWJzY3JpcHRpb24tbW9kZSBTU0UgaXMga2V5ZWQgYnkgcnVuIG93bmVyc2hpcDogYSBjb25zdW1lciBpcyBvbmx5XG4gKiBkZWxpdmVyZWQgZ3JhcGggZXZlbnRzL2xvZ3MgZm9yIHJ1bnMgaXQgb3ducy4gVGhpcyB0dXBsZSBpcyB0aGVcbiAqIGVuZ2luZS1hZ25vc3RpYyBjb250cmFjdCBhIE1hc3RyYS9OZXN0SlMgZHJpdmVyIE1VU1QgaG9ub3VyIOKAlFxuICogYHJ1bklkYCB0b2dldGhlciB3aXRoIHRoZSBvd25pbmcgYHVzZXJgIChvciBhIGBzeXN0ZW1gIHJ1bm5lciB3aGVuIHRoZVxuICogaWRlbnRpdHkgaXMgYWJzZW50KSBzY29wZSBldmVyeSBgZ3JhcGgucnVuLipgIGV2ZW50IGJlZm9yZSBgbmV4dCguLi4pYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaFJ1blN1YnNjcmlwdGlvbiB7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIG93bmVyVXNlcjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIE9wdGlvbmFsIHRvcGljIGZpbHRlciAoZS5nLiBgZ3JhcGgucnVuLmxvZ2AsIGBncmFwaC5ydW4uc3RhdGVgKS4gKi9cbiAgdG9waWNzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogU3RhdHVzIG9mIGEgZ3JhcGggcnVuIGxpZmVjeWNsZSAoREVDQUYtNTAgwqc0LjE0KS5cbiAqXG4gKiBGcm9udGVuZC1zYWZlOiByZW5kZXJlZCBhcyBydW4gc3RhdHVzIGJhZGdlcyBhbmQgbWlycm9yZWQgaW50byB0aGVcbiAqIEFuZ3VsYXIgcnVuIHN0YXRlIHN0b3JlLiBgcXVldWVkYCDigJQgYWNjZXB0ZWQsIG5vdCB5ZXQgdmFsaWRhdGVkO1xuICogYHZhbGlkYXRpbmdgIOKAlCBkb2N1bWVudCB2YWxpZGF0aW9uIGdhdGUgaW4gcHJvZ3Jlc3M7IGBydW5uaW5nYCDigJQgdGhlXG4gKiBlbmdpbmUgaXMgZXhlY3V0aW5nIHRoZSBwbGFubmVkIGdyYXBoLlxuICogYHN1Y2NlZWRlZGAvYGZhaWxlZGAvYGNhbmNlbGxlZGAgYXJlIHRlcm1pbmFsIChgaXNHcmFwaFJ1blRlcm1pbmFsU3RhdHVzYCkuXG4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoUnVuU3RhdHVzID1cbiAgfCBcInF1ZXVlZFwiXG4gIHwgXCJ2YWxpZGF0aW5nXCJcbiAgfCBcInJ1bm5pbmdcIlxuICB8IFwic3VjY2VlZGVkXCJcbiAgfCBcImZhaWxlZFwiXG4gIHwgXCJjYW5jZWxsZWRcIjtcblxuLyoqXG4gKiBGcm9udGVuZC1zYWZlIHJ1biBldmVudCBlbnZlbG9wZSBzdHJlYW1lZCBvdmVyIHRoZSBydW4gU1NFIGVuZHBvaW50XG4gKiAoYEdFVCAvZ3JhcGgvcnVucy86cnVuSWQvZXZlbnRzYCwgREVDQUYtNTAgwqc0LjE1KS5cbiAqXG4gKiBFbnZlbG9wZXMgYXJlIG51bWJlcmVkIHdpdGggYSBnYXBsZXNzIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBgc2VxdWVuY2VgXG4gKiBzdGFydGluZyBhdCBgMWA7IGB0aW1lc3RhbXBgIGlzIHNlcmlhbGlzZWQgYXMgYW4gSVNPIHN0cmluZyBvdmVyIHRoZSB3aXJlXG4gKiAodW5saWtlIGBHcmFwaEV4ZWN1dGlvbkV2ZW50YCwgd2hvc2UgYHRpbWVzdGFtcGAgc3RheXMgYSBgRGF0ZWBcbiAqIGVuZ2luZS1zaWRlKS4gYGVycm9yP2AgY2FycmllcyB0aGUgc3RydWN0dXJlZCBmYWlsdXJlIHBheWxvYWQgZm9yXG4gKiBmYWlsdXJlLXR5cGVkIGV2ZW50czsgYHBhdGg/YCBzY29wZXMgbmVzdGVkIGxvb3AtcGxhbiBldmVudHMgdG8gdGhlaXJcbiAqIGV4ZWN1dGlvbiBwYXRoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoUnVuRXZlbnRFbnZlbG9wZSB7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgc2VxdWVuY2U6IG51bWJlcjtcbiAgdHlwZTogR3JhcGhFeGVjdXRpb25FdmVudFR5cGU7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBub2RlSWQ/OiBzdHJpbmc7XG4gIGVkZ2VJZD86IHN0cmluZztcbiAgcGF5bG9hZD86IEdyYXBoSnNvblZhbHVlO1xuICBlcnJvcj86IEdyYXBoRXhlY3V0aW9uRXJyb3JQYXlsb2FkO1xuICBwYXJlbnRSdW5JZD86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIElucHV0IHRvIHRoZSBydW4gZXZlbnQgcHVibGlzaGVyIGJlZm9yZSBzZXF1ZW5jaW5nL3RpbWVzdGFtcGluZ1xuICogKERFQ0FGLTUwIMKnNC4xNCkuIFRoZSBwdWJsaXNoZXIgZmlsbHMgYHNlcXVlbmNlYCBhbmQgYHRpbWVzdGFtcGAuXG4gKi9cbmV4cG9ydCB0eXBlIEdyYXBoUnVuRXZlbnRFbnZlbG9wZUlucHV0ID0gT21pdDxcbiAgR3JhcGhSdW5FdmVudEVudmVsb3BlLFxuICBcInNlcXVlbmNlXCIgfCBcInRpbWVzdGFtcFwiXG4+O1xuIl19
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/graph/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,uBAAoB"}
|
package/lib/esm/index.js
CHANGED
|
@@ -24,14 +24,14 @@ export const VERSION = "0.20.7";
|
|
|
24
24
|
* the placeholder with the actual commit hash at publish time.
|
|
25
25
|
* @const COMMIT
|
|
26
26
|
*/
|
|
27
|
-
export const COMMIT = "
|
|
27
|
+
export const COMMIT = "d286514";
|
|
28
28
|
/**
|
|
29
29
|
* @description Represents the full version string of the module.
|
|
30
30
|
* @summary Stores the semver version and commit hash for the package.
|
|
31
31
|
* The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
|
|
32
32
|
* @const FULL_VERSION
|
|
33
33
|
*/
|
|
34
|
-
export const FULL_VERSION = "0.20.7-
|
|
34
|
+
export const FULL_VERSION = "0.20.7-d286514";
|
|
35
35
|
export const PACKAGE_NAME = "@decaf-ts/ui-decorators";
|
|
36
36
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
37
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8BAAqB;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,qCAA4B;AAC5B,iCAAwB;AACxB,8BAAqB;AACrB,qCAA4B;AAE5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=Renderable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Renderable.js","sourceRoot":"","sources":["../../../src/model/Renderable.ts"],"names":[],"mappings":""}
|
|
@@ -377,4 +377,4 @@ export function uisteppedmodel(tag, pages = 1, paginated = false, props = {}) {
|
|
|
377
377
|
props,
|
|
378
378
|
});
|
|
379
379
|
}
|
|
380
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsNkJBQXdCO0FBUXpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSw2QkFBd0I7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBWSxFQUFFLEtBQTJCO0lBQy9ELDZEQUE2RDtJQUM3RCxPQUFPLENBQUMsUUFBYSxFQUFFLFdBQWlCLEVBQUUsRUFBRTtRQUMxQyxNQUFNLElBQUksR0FBb0I7WUFDNUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSTtZQUN6QixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FDYixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUM1QyxJQUFJLENBQ0wsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYztJQUN2QyxPQUFPLEtBQUssQ0FDVixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FDbkUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFDSCxNQUFNLFVB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OlsiaW1wb3J0IHsgVUlLZXlzIH0gZnJvbSBcIi4uL3VpL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgVUlIYW5kbGVyTWV0YWRhdGEsXG4gIFVJTGlzdE1vZGVsTWV0YWRhdGEsXG4gIFVJTW9kZWxNZXRhZGF0YSxcbiAgVUlMYXlvdXRNZXRhZGF0YSxcbiAgSVBhZ2VkQ29tcG9uZW50UHJvcGVydGllcyxcbn0gZnJvbSBcIi4uL3VpL3R5cGVzXCI7XG5pbXBvcnQgeyBVSU1lZGlhQnJlYWtQb2ludHMgfSBmcm9tIFwiLi4vdWkvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBhcHBseSwgTWV0YWRhdGEsIG1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHRhZ3MgYSBjbGFzcyBhcyBhIFVJIG1vZGVsXG4gKiBAc3VtbWFyeSBBZGRzIHJlbmRlcmluZyBjYXBhYmlsaXRpZXMgdG8gYSBtb2RlbCBjbGFzcyBieSBwcm92aWRpbmcgYSByZW5kZXIgbWV0aG9kXG4gKiBUaGlzIGRlY29yYXRvciBhcHBsaWVzIG1ldGFkYXRhIHRvIHRoZSBjbGFzcyB0aGF0IGVuYWJsZXMgaXQgdG8gYmUgcmVuZGVyZWQgYnkgdGhlIFVJIHJlbmRlcmluZyBlbmdpbmUuXG4gKiBUaGUgbW9kZWwgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRoZSBzcGVjaWZpZWQgdGFnIGFuZCBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbdGFnXSBUaGUgSFRNTCB0YWcgdG8gdXNlIHdoZW4gcmVuZGVyaW5nIHRoaXMgbW9kZWwgKGRlZmF1bHRzIHRvIGNsYXNzIG5hbWUpXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtwcm9wc10gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIHJlbmRlcmVkIGVsZW1lbnRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGNsYXNzIGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aW1vZGVsXG4gKiBAY2F0ZWdvcnkgQ2xhc3MgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyB1c2FnZSB3aXRoIGRlZmF1bHQgdGFnIChjbGFzcyBuYW1lKVxuICogQHVpbW9kZWwoKVxuICogY2xhc3MgVXNlclByb2ZpbGUgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBuYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgZW1haWw6IHN0cmluZztcbiAqIH1cbiAqXG4gKiAvLyBVc2FnZSB3aXRoIGN1c3RvbSB0YWcgYW5kIHByb3BlcnRpZXNcbiAqIEB1aW1vZGVsKCdkaXYnLCB7IGNsYXNzOiAndXNlci1jYXJkJyB9KVxuICogY2xhc3MgVXNlckNhcmQgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB1c2VybmFtZTogc3RyaW5nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgU3lzdGVtXG4gKiAgIHBhcnRpY2lwYW50IHVpbW9kZWxcbiAqICAgcGFydGljaXBhbnQgY29uc3RydWN0b3JcbiAqICAgcGFydGljaXBhbnQgaW5zdGFuY2VcbiAqICAgU3lzdGVtLT4+dWltb2RlbDpkbyhjb25zdHJ1Y3RvcilcbiAqICAgdWltb2RlbC0+PmNvbnN0cnVjdG9yOiBFeGVjdXRlcyB0aGUgY29uc3RydWN0b3JcbiAqICAgY29uc3RydWN0b3ItPj51aW1vZGVsOiByZXR1cm5zIGluc3RhbmNlXG4gKiAgIHVpbW9kZWwtPj5pbnN0YW5jZTogYWRkcyB0aGUgcmVuZGVyIG1ldGhvZFxuICogICB1aW1vZGVsLT4+U3lzdGVtOiByZXR1cm5zIFVJTW9kZWwgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpbW9kZWwodGFnPzogc3RyaW5nLCBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICByZXR1cm4gKG9yaWdpbmFsOiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0YTogVUlNb2RlbE1ldGFkYXRhID0ge1xuICAgICAgdGFnOiB0YWcgfHwgb3JpZ2luYWwubmFtZSxcbiAgICAgIHByb3BzOiBwcm9wcyxcbiAgICB9O1xuICAgIHJldHVybiBtZXRhZGF0YShcbiAgICAgIE1ldGFkYXRhLmtleShVSUtleXMuUkVGTEVDVCwgVUlLZXlzLlVJTU9ERUwpLFxuICAgICAgbWV0YVxuICAgICkob3JpZ2luYWwpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBzcGVjaWZpZXMgd2hpY2ggcmVuZGVyaW5nIGVuZ2luZSB0byB1c2UgZm9yIGEgbW9kZWxcbiAqIEBzdW1tYXJ5IEFzc29jaWF0ZXMgYSBtb2RlbCB3aXRoIGEgc3BlY2lmaWMgcmVuZGVyaW5nIGVuZ2luZSBpbXBsZW1lbnRhdGlvblxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCByZW5kZXJpbmcgZW5naW5lIGZvciBhIHNwZWNpZmljIG1vZGVsIGNsYXNzLFxuICogZW5hYmxpbmcgZGlmZmVyZW50IHJlbmRlcmluZyBzdHJhdGVnaWVzIGZvciBkaWZmZXJlbnQgbW9kZWxzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBlbmdpbmUgVGhlIG5hbWUgb2YgdGhlIHJlbmRlcmluZyBlbmdpbmUgdG8gdXNlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBjbGFzcyBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gcmVuZGVyZWRCeVxuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3BlY2lmeSBhIGN1c3RvbSByZW5kZXJpbmcgZW5naW5lIGZvciBhIG1vZGVsXG4gKiBAdWltb2RlbCgpXG4gKiBAcmVuZGVyZWRCeSgncmVhY3QnKVxuICogY2xhc3MgUmVhY3RDb21wb25lbnQgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB0aXRsZTogc3RyaW5nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgU3lzdGVtXG4gKiAgIHBhcnRpY2lwYW50IHJlbmRlcmVkQnlcbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIFN5c3RlbS0+PnJlbmRlcmVkQnk6IGFwcGx5IHRvIE1vZGVsXG4gKiAgIHJlbmRlcmVkQnktPj5Nb2RlbDogYWRkcyBlbmdpbmUgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IHVzZXMgc3BlY2lmaWVkIGVuZ2luZVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5TeXN0ZW06IHJlbmRlcnMgd2l0aCBjdXN0b20gZW5naW5lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJlZEJ5KGVuZ2luZTogc3RyaW5nKSB7XG4gIHJldHVybiBhcHBseShcbiAgICBtZXRhZGF0YShNZXRhZGF0YS5rZXkoVUlLZXlzLlJFRkxFQ1QsIFVJS2V5cy5SRU5ERVJFRF9CWSksIGVuZ2luZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgdGFncyBhIG1vZGVsIGFzIGEgbGlzdCBpdGVtIGZvciBVSSByZW5kZXJpbmdcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBob3cgYSBtb2RlbCBzaG91bGQgYmUgcmVuZGVyZWQgd2hlbiBkaXNwbGF5ZWQgaW4gYSBsaXN0IGNvbnRleHRcbiAqIFRoaXMgZGVjb3JhdG9yIGFwcGxpZXMgbWV0YWRhdGEgdG8gdGhlIGNsYXNzIHRoYXQgZW5hYmxlcyBpdCB0byBiZSByZW5kZXJlZCBhcyBhIGxpc3QgaXRlbVxuICogYnkgdGhlIFVJIHJlbmRlcmluZyBlbmdpbmUuIFRoZSBtb2RlbCB3aWxsIGJlIHJlbmRlcmVkIHdpdGggdGhlIHNwZWNpZmllZCB0YWcgYW5kIHByb3BlcnRpZXNcbiAqIHdoZW4gaXQgYXBwZWFycyBpbiBhIGxpc3QuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFt0YWddIFRoZSBIVE1MIHRhZyB0byB1c2Ugd2hlbiByZW5kZXJpbmcgdGhpcyBtb2RlbCBhcyBhIGxpc3QgaXRlbSAoZGVmYXVsdHMgdG8gY2xhc3MgbmFtZSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzXSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgcmVuZGVyZWQgbGlzdCBpdGVtIGVsZW1lbnRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGNsYXNzIGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxpc3Rtb2RlbFxuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgdXNhZ2Ugd2l0aCBkZWZhdWx0IHRhZyAoY2xhc3MgbmFtZSlcbiAqIEB1aW1vZGVsKClcbiAqIEB1aWxpc3Rtb2RlbCgpXG4gKiBjbGFzcyBUb2RvSXRlbSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHRpdGxlOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgY29tcGxldGVkOiBib29sZWFuO1xuICogfVxuICpcbiAqIC8vIFVzYWdlIHdpdGggY3VzdG9tIHRhZyBhbmQgcHJvcGVydGllc1xuICogQHVpbW9kZWwoKVxuICogQHVpbGlzdG1vZGVsKCdsaScsIHsgY2xhc3M6ICdsaXN0LWdyb3VwLWl0ZW0nIH0pXG4gKiBjbGFzcyBMaXN0SXRlbSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHRleHQ6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCB1aWxpc3Rtb2RlbFxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgU3lzdGVtLT4+dWlsaXN0bW9kZWw6IGFwcGx5IHRvIE1vZGVsXG4gKiAgIHVpbGlzdG1vZGVsLT4+TW9kZWw6IGFkZHMgbGlzdCBpdGVtIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiB1c2VzIGxpc3QgaXRlbSBtZXRhZGF0YSB3aGVuIGluIGxpc3QgY29udGV4dFxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5TeXN0ZW06IHJlbmRlcnMgd2l0aCBsaXN0IGl0ZW0gc3R5bGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWlsaXN0bW9kZWwobmFtZT86IHN0cmluZywgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcmV0dXJuIChvcmlnaW5hbDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGE6IFVJTGlzdE1vZGVsTWV0YWRhdGEgPSB7XG4gICAgICBpdGVtOiB7XG4gICAgICAgIHRhZzogbmFtZSB8fCBvcmlnaW5hbC5uYW1lLFxuICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIG1ldGFkYXRhKFxuICAgICAgTWV0YWRhdGEua2V5KFVJS2V5cy5SRUZMRUNULCBVSUtleXMuVUlMSVNUTU9ERUwpLFxuICAgICAgbWV0YVxuICAgICkob3JpZ2luYWwpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBhZGRzIGV2ZW50IGhhbmRsZXJzIHRvIGEgVUkgbW9kZWxcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBldmVudCBoYW5kbGVycyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgcmVuZGVyZWQgbW9kZWxcbiAqIFRoaXMgZGVjb3JhdG9yIGFsbG93cyB5b3UgdG8gZGVmaW5lIGV2ZW50IGhhbmRsZXJzIHRoYXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5XG4gKiBhdHRhY2hlZCB0byB0aGUgcmVuZGVyZWQgVUkgZWxlbWVudC4gVGhlIGhhbmRsZXJzIGFyZSBwYXNzZWQgYXMgcHJvcGVydGllc1xuICogdG8gdGhlIHJlbmRlcmluZyBlbmdpbmUuXG4gKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcHJvcHNdIE9iamVjdCBjb250YWluaW5nIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zIGFuZCBvdGhlciBwcm9wZXJ0aWVzXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBjbGFzcyBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWloYW5kbGVyc1xuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIGV2ZW50IGhhbmRsZXJzIHRvIGEgbW9kZWxcbiAqIEB1aW1vZGVsKCdidXR0b24nKVxuICogQHVpaGFuZGxlcnMoe1xuICogICBvbkNsaWNrOiAoZXZlbnQpID0+IGNvbnNvbGUubG9nKCdCdXR0b24gY2xpY2tlZCcpLFxuICogICBvbk1vdXNlT3ZlcjogKGV2ZW50KSA9PiBjb25zb2xlLmxvZygnTW91c2Ugb3ZlciBidXR0b24nKSxcbiAqICAgZGlzYWJsZWQ6IGZhbHNlXG4gKiB9KVxuICogY2xhc3MgQ2xpY2thYmxlQnV0dG9uIGV4dGVuZHMgTW9kZWwge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgbGFiZWw6IHN0cmluZztcbiAqIH1cbiAqXG4gKiAvLyBBZGQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsZXJzXG4gKiBAdWltb2RlbCgnZm9ybScpXG4gKiBAdWloYW5kbGVycyh7XG4gKiAgIG9uU3VibWl0OiAoZXZlbnQpID0+IHtcbiAqICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICogICAgIGNvbnNvbGUubG9nKCdGb3JtIHN1Ym1pdHRlZCcpO1xuICogICB9LFxuICogICBvblJlc2V0OiAoZXZlbnQpID0+IGNvbnNvbGUubG9nKCdGb3JtIHJlc2V0JylcbiAqIH0pXG4gKiBjbGFzcyBDb250YWN0Rm9ybSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIGVtYWlsOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBTeXN0ZW1cbiAqICAgcGFydGljaXBhbnQgdWloYW5kbGVyc1xuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgU3lzdGVtLT4+dWloYW5kbGVyczogYXBwbHkgdG8gTW9kZWxcbiAqICAgdWloYW5kbGVycy0+Pk1vZGVsOiBhZGRzIGhhbmRsZXIgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IHJlcXVlc3RzIHJlbmRlcmluZyB3aXRoIGhhbmRsZXJzXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlVJOiByZW5kZXJzIGVsZW1lbnQgd2l0aCBldmVudCBoYW5kbGVycyBhdHRhY2hlZFxuICogICBVSS0+Pk1vZGVsOiB0cmlnZ2VycyBoYW5kbGVycyBvbiBldmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpaGFuZGxlcnMocHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIHJldHVybiAob3JpZ2luYWw6IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGE6IFVJSGFuZGxlck1ldGFkYXRhID0ge1xuICAgICAgaGFuZGxlcnM6IHByb3BzLFxuICAgIH07XG4gICAgcmV0dXJuIG1ldGFkYXRhKFxuICAgICAgTWV0YWRhdGEua2V5KFVJS2V5cy5SRUZMRUNULCBVSUtleXMuSEFORExFUlMpLFxuICAgICAgbWV0YVxuICAgICkob3JpZ2luYWwpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBjcmVhdGVzIGEgbGF5b3V0IGNvbnRhaW5lciB3aXRoIGdyaWQgc3BlY2lmaWNhdGlvbnNcbiAqIEBzdW1tYXJ5IENvbWJpbmVzIFVJIG1vZGVsIGZ1bmN0aW9uYWxpdHkgd2l0aCBsYXlvdXQgZ3JpZCBjb25maWd1cmF0aW9uXG4gKiBUaGlzIGRlY29yYXRvciBjcmVhdGVzIGEgVUkgbW9kZWwgdGhhdCBhY3RzIGFzIGEgbGF5b3V0IGNvbnRhaW5lciB3aXRoIHNwZWNpZmllZFxuICogY29sdW1uIGFuZCByb3cgY29uZmlndXJhdGlvbnMuIEl0J3MgYSBjb252ZW5pZW5jZSBkZWNvcmF0b3IgdGhhdCBjb21iaW5lcy5cbiAqIEB1aW1vZGVsIHdpdGggbGF5b3V0LXNwZWNpZmljIHByb3BlcnRpZXMgZm9yIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXRzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgdGFnIHRvIHVzZSBmb3IgdGhlIGxheW91dCBjb250YWluZXJcbiAqIEBwYXJhbSB7bnVtYmVyfGJvb2xlYW59IFtjb2xzTW9kZT0xXSBOdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQgb3IgYSBib29sZWFuIGZvciBmbGV4IG1vZGVcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ1tdfSBbcm93cz0xXSBOdW1iZXIgb2Ygcm93cyBvciBhcnJheSBvZiByb3cgZGVmaW5pdGlvbnNcbiAqIEBwYXJhbSB7VUlNZWRpYUJyZWFrUG9pbnRzfSBbYnJlYWtwb2ludD0nbSddIE1lZGlhIGJyZWFrcG9pbnQgZm9yIHJlc3BvbnNpdmUgYmVoYXZpb3JcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGNsYXNzIGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxheW91dFxuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgc2ltcGxlIDItY29sdW1uIGxheW91dFxuICogQHVpbGF5b3V0KCdkaXYnLCAyLCAzKVxuICogY2xhc3MgVHdvQ29sdW1uTGF5b3V0IGV4dGVuZHMgTW9kZWwge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgxLCAxKVxuICogICBoZWFkZXI6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlsYXlvdXRwcm9wKDEsIDIpXG4gKiAgIGxlZnRDb250ZW50OiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgyLCAyKVxuICogICByaWdodENvbnRlbnQ6IHN0cmluZztcbiAqIH1cbiAqXG4gKiAvLyBDcmVhdGUgYSByZXNwb25zaXZlIGxheW91dCB3aXRoIGN1c3RvbSBicmVha3BvaW50XG4gKiBAdWlsYXlvdXQoJ3NlY3Rpb24nLCB0cnVlLCAyLCAnbCcpXG4gKiBjbGFzcyBSZXNwb25zaXZlTGF5b3V0IGV4dGVuZHMgTW9kZWwge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgxLCAxKVxuICogICB0aXRsZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxheW91dHByb3AoMiwgMSlcbiAqICAgc3VidGl0bGU6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCB1aWxheW91dFxuICogICBwYXJ0aWNpcGFudCB1aW1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBTeXN0ZW0tPj51aWxheW91dDogYXBwbHkgdG8gTW9kZWxcbiAqICAgdWlsYXlvdXQtPj51aW1vZGVsOiBjYWxsIHdpdGggbGF5b3V0IHByb3BzXG4gKiAgIHVpbW9kZWwtPj5Nb2RlbDogYWRkcyBtb2RlbCBtZXRhZGF0YSB3aXRoIGxheW91dCBjb25maWdcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IHJlcXVlc3RzIHJlbmRlcmluZyBhcyBsYXlvdXQgY29udGFpbmVyXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlN5c3RlbTogcmVuZGVycyBncmlkIGxheW91dCB3aXRoIHNwZWNpZmllZCBkaW1lbnNpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWxheW91dChcbiAgdGFnOiBzdHJpbmcsXG4gIGNvbHNNb2RlOiBudW1iZXIgfCBib29sZWFuID0gMSxcbiAgcm93czogbnVtYmVyIHwgc3RyaW5nW10gPSAxLFxuICBwcm9wczogYW55ID0ge31cbikge1xuICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAuLi4odHlwZW9mIGNvbHNNb2RlID09PSBcImJvb2xlYW5cIlxuICAgICAgPyB7XG4gICAgICAgICAgZmxleE1vZGU6IGNvbHNNb2RlLFxuICAgICAgICAgIGNvbHM6IDEsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGZsZXhNb2RlOiBmYWxzZSxcbiAgICAgICAgICBjb2xzOiBjb2xzTW9kZSxcbiAgICAgICAgfSksXG4gICAgcm93cyxcbiAgICAuLi5PYmplY3QuYXNzaWduKHsgYnJlYWtwb2ludDogVUlNZWRpYUJyZWFrUG9pbnRzLkxBUkdFIH0sIHByb3BzKSxcbiAgfSBhcyBVSUxheW91dE1ldGFkYXRhKTtcbiAgcmV0dXJuIChvcmlnaW5hbDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIG1ldGFkYXRhKE1ldGFkYXRhLmtleShVSUtleXMuUkVGTEVDVCwgVUlLZXlzLlVJTEFZT1VUKSwgY29uZmlnKShvcmlnaW5hbCk7XG4gICAgcmV0dXJuIHVpbW9kZWwodGFnLCBjb25maWcpKG9yaWdpbmFsLCBwcm9wZXJ0eUtleSk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IGNyZWF0ZXMgYSBtdWx0aS1zdGVwIGZvcm0gbW9kZWwgd2l0aCBwYWdlIG5hdmlnYXRpb25cbiAqIEBzdW1tYXJ5IENvbWJpbmVzIFVJIG1vZGVsIGZ1bmN0aW9uYWxpdHkgd2l0aCBzdGVwcGVkL3dpemFyZCBmb3JtIGNvbmZpZ3VyYXRpb25cbiAqIFRoaXMgZGVjb3JhdG9yIGNyZWF0ZXMgYSBVSSBtb2RlbCB0aGF0IGFjdHMgYXMgYSBtdWx0aS1zdGVwIGNvbnRhaW5lciB3aXRoIHBhZ2UgbmF2aWdhdGlvblxuICogY2FwYWJpbGl0aWVzLiBJdCBpcyBkZXNpZ25lZCBmb3Igd2l6YXJkLXN0eWxlIGZvcm1zIG9yIG11bHRpLXBhZ2Ugd29ya2Zsb3dzIHdoZXJlIHVzZXJzXG4gKiBwcm9ncmVzcyB0aHJvdWdoIHNlcXVlbnRpYWwgc3RlcHMuIFRoZSBkZWNvcmF0b3IgY29tYmluZXMgQHVpbW9kZWwgd2l0aCBwYWdlLXNwZWNpZmljXG4gKiBwcm9wZXJ0aWVzIGFuZCBvcHRpb25hbCBwYWdpbmF0aW9uIGNvbnRyb2xzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgLSBUaGUgSFRNTCB0YWcgdG8gdXNlIGZvciB0aGUgc3RlcHBlZCBmb3JtIGNvbnRhaW5lclxuICogQHBhcmFtIHtudW1iZXIgfCBJUGFnZWRDb21wb25lbnRQcm9wZXJ0aWVzW119IFtwYWdlcz0xXSAtIE51bWJlciBvZiBwYWdlcyBvciBhbiBhcnJheSBvZiBwYWdlIGRlZmluaXRpb25zIHdpdGggbWV0YWRhdGFcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BhZ2luYXRlZD1mYWxzZV0gLSBXaGV0aGVyIHRvIHNob3cgcGFnaW5hdGlvbiBjb250cm9scyAoZS5nLiwgcHJldi9uZXh0IGJ1dHRvbnMpXG4gKiBAcGFyYW0ge2FueX0gW3Byb3BzPXt9XSAtIEFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIgZWxlbWVudFxuICogQHJldHVybiB7RnVuY3Rpb259IEEgY2xhc3MgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpc3RlcHBlZG1vZGVsXG4gKiBAY2F0ZWdvcnkgQ2xhc3MgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgYSBzaW1wbGUgMy1zdGVwIHdpemFyZCBmb3JtXG4gKiBAdWlzdGVwcGVkbW9kZWwoJ2RpdicsIDMsIHRydWUpXG4gKiBjbGFzcyBSZWdpc3RyYXRpb25XaXphcmQgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIC8vIFBhZ2UgMTogUGVyc29uYWwgSW5mb1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgbGFzdE5hbWU6IHN0cmluZztcbiAqXG4gKiAgIC8vIFBhZ2UgMjogQ29udGFjdCBJbmZvXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgyKVxuICogICBlbWFpbDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDIpXG4gKiAgIHBob25lOiBzdHJpbmc7XG4gKlxuICogICAvLyBQYWdlIDM6IENvbmZpcm1hdGlvblxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMylcbiAqICAgYWNjZXB0VGVybXM6IGJvb2xlYW47XG4gKiB9XG4gKlxuICogLy8gQ3JlYXRlIGEgd2l6YXJkIHdpdGggY3VzdG9tIHBhZ2UgZGVmaW5pdGlvbnNcbiAqIEB1aXN0ZXBwZWRtb2RlbCgnc2VjdGlvbicsIFtcbiAqICAgeyB0aXRsZTogJ1BlcnNvbmFsJywgaWNvbjogJ3VzZXInIH0sXG4gKiAgIHsgdGl0bGU6ICdDb250YWN0JywgaWNvbjogJ2VtYWlsJyB9LFxuICogICB7IHRpdGxlOiAnUmV2aWV3JywgaWNvbjogJ2NoZWNrJyB9XG4gKiBdLCB0cnVlLCB7IGNsYXNzOiAnd2l6YXJkLWNvbnRhaW5lcicgfSlcbiAqIGNsYXNzIE9uYm9hcmRpbmdXaXphcmQgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgxKVxuICogICB1c2VybmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDIpXG4gKiAgIGVtYWlsOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMylcbiAqICAgcHJlZmVyZW5jZXM6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCB1aXN0ZXBwZWRtb2RlbFxuICogICBwYXJ0aWNpcGFudCB1aW1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBQYWdpbmF0aW9uQ29udHJvbGxlclxuICogICBTeXN0ZW0tPj51aXN0ZXBwZWRtb2RlbDogYXBwbHkgdG8gTW9kZWxcbiAqICAgdWlzdGVwcGVkbW9kZWwtPj51aW1vZGVsOiBjYWxsIHdpdGggcGFnZSBjb25maWdcbiAqICAgdWltb2RlbC0+Pk1vZGVsOiBhZGRzIG1vZGVsIG1ldGFkYXRhIHdpdGggcGFnZXMgYW5kIHBhZ2luYXRpb25cbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IHJlcXVlc3RzIHJlbmRlcmluZyBhcyBzdGVwcGVkIGZvcm1cbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+UGFnaW5hdGlvbkNvbnRyb2xsZXI6IGluaXRpYWxpemUgcGFnZSBuYXZpZ2F0aW9uXG4gKiAgIFBhZ2luYXRpb25Db250cm9sbGVyLT4+U3lzdGVtOiByZW5kZXJzIGN1cnJlbnQgcGFnZSB3aXRoIG5hdmlnYXRpb24gY29udHJvbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpc3RlcHBlZG1vZGVsKFxuICB0YWc6IHN0cmluZyxcbiAgcGFnZXM6IG51bWJlciB8IElQYWdlZENvbXBvbmVudFByb3BlcnRpZXNbXSA9IDEsXG4gIHBhZ2luYXRlZDogYm9vbGVhbiA9IGZhbHNlLFxuICBwcm9wczogYW55ID0ge31cbikge1xuICBsZXQgcGFnZVRpdGxlczogSVBhZ2VkQ29tcG9uZW50UHJvcGVydGllc1tdID0gW107XG4gIGlmICh0eXBlb2YgcGFnZXMgPT09IFwib2JqZWN0XCIpIHtcbiAgICBwYWdlVGl0bGVzID0gcGFnZXMgYXMgSVBhZ2VkQ29tcG9uZW50UHJvcGVydGllc1tdO1xuICAgIHBhZ2VzID0gcGFnZVRpdGxlcy5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIHVpbW9kZWwodGFnLCB7XG4gICAgcGFnZXMsXG4gICAgcGFnaW5hdGVkLFxuICAgIHBhZ2VUaXRsZXMsXG4gICAgcHJvcHMsXG4gIH0pO1xufVxuIl19
|
|
380
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/model/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/model/index.js
CHANGED
|
@@ -2,4 +2,4 @@ import "./model.js";
|
|
|
2
2
|
export * from "./decorators.js";
|
|
3
3
|
export * from "./overrides.js";
|
|
4
4
|
export * from "./Renderable.js";
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,oBAAiB;AAEjB,gCAA6B;AAC7B,+BAA4B;AAC5B,gCAA6B"}
|
package/lib/esm/model/model.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model/model.ts"],"names":[],"mappings":""}
|