@decaf-ts/ui-decorators 0.20.4 → 0.20.7
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 +1059 -2
- package/dist/ui-decorators.js +1090 -2
- package/lib/cjs/dashboard/constants.cjs +11 -0
- package/lib/cjs/dashboard/decorators.cjs +61 -0
- package/lib/cjs/dashboard/index.cjs +23 -0
- package/lib/cjs/dashboard/reader.cjs +67 -0
- package/lib/cjs/dashboard/registry.cjs +45 -0
- package/lib/cjs/dashboard/types.cjs +4 -0
- package/lib/cjs/graph/GraphExecutionStateMapper.cjs +97 -0
- package/lib/cjs/graph/GraphResolution.cjs +17 -0
- package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphCredentialReference.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphIconReference.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeCapability.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterBase.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterOption.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphParameterValidation.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphPortManifest.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphValueSchema.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs +2 -2
- package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs +2 -2
- package/lib/cjs/graph/catalog/index.cjs +2 -2
- package/lib/cjs/graph/constants.cjs +159 -3
- package/lib/cjs/graph/decorators.cjs +2 -2
- package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +2 -2
- package/lib/cjs/graph/document/GraphEdgeInstance.cjs +2 -2
- package/lib/cjs/graph/document/GraphEndpoint.cjs +2 -2
- package/lib/cjs/graph/document/GraphJsonValue.cjs +2 -2
- package/lib/cjs/graph/document/GraphLoopConfiguration.cjs +2 -2
- package/lib/cjs/graph/document/GraphNodeBinding.cjs +2 -2
- package/lib/cjs/graph/document/GraphNodeInstance.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocument.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs +2 -2
- package/lib/cjs/graph/document/GraphWorkflowUiState.cjs +2 -2
- package/lib/cjs/graph/document/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +5 -2
- package/lib/cjs/graph/nodes/agents/agent.cjs +110 -0
- package/lib/cjs/graph/nodes/base.cjs +36 -0
- package/lib/cjs/graph/nodes/boundary/input-value.cjs +57 -0
- package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
- package/lib/cjs/graph/nodes/flow-control/break.cjs +63 -0
- package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +67 -0
- package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +69 -0
- package/lib/cjs/graph/nodes/flow-control/if.cjs +71 -0
- package/lib/cjs/graph/nodes/flow-control/parallel.cjs +61 -0
- package/lib/cjs/graph/nodes/flow-control/switch.cjs +121 -0
- package/lib/cjs/graph/nodes/index.cjs +123 -0
- package/lib/cjs/graph/nodes/loops/foreach.cjs +86 -0
- package/lib/cjs/graph/nodes/loops/until.cjs +74 -0
- package/lib/cjs/graph/nodes/loops/while.cjs +74 -0
- package/lib/cjs/graph/nodes/manifests.cjs +338 -0
- package/lib/cjs/graph/nodes/triggers/chat.cjs +70 -0
- package/lib/cjs/graph/nodes/triggers/event.cjs +58 -0
- package/lib/cjs/graph/nodes/triggers/form.cjs +59 -0
- package/lib/cjs/graph/nodes/triggers/manual.cjs +60 -0
- package/lib/cjs/graph/nodes/triggers/schedule.cjs +60 -0
- package/lib/cjs/graph/nodes/triggers/webhook.cjs +62 -0
- package/lib/cjs/graph/nodes/utility/code.cjs +99 -0
- package/lib/cjs/graph/nodes/utility/delay.cjs +61 -0
- package/lib/cjs/graph/nodes/utility/log.cjs +62 -0
- package/lib/cjs/graph/nodes/utility/map.cjs +61 -0
- package/lib/cjs/graph/nodes/utility/merge.cjs +62 -0
- package/lib/cjs/graph/nodes/utility/return.cjs +61 -0
- package/lib/cjs/graph/nodes/utility/utility-log.cjs +66 -0
- package/lib/cjs/graph/overrides/Metadata.cjs +2 -2
- package/lib/cjs/graph/overrides/Rendering.cjs +2 -2
- package/lib/cjs/graph/overrides/index.cjs +2 -2
- package/lib/cjs/graph/overrides/overrides.cjs +2 -2
- package/lib/cjs/graph/reader.cjs +2 -2
- package/lib/cjs/graph/registry.cjs +2 -2
- package/lib/cjs/graph/snapshot.cjs +2 -2
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/index.cjs +6 -5
- package/lib/cjs/model/Renderable.cjs +2 -2
- package/lib/cjs/model/decorators.cjs +2 -2
- package/lib/cjs/model/index.cjs +2 -2
- package/lib/cjs/model/model.cjs +2 -2
- package/lib/cjs/model/overrides.cjs +2 -2
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
- package/lib/cjs/overrides/index.cjs +2 -2
- package/lib/cjs/ui/DecafComponent.cjs +2 -2
- package/lib/cjs/ui/DecafEventHandler.cjs +2 -2
- package/lib/cjs/ui/DecafTranslateService.cjs +2 -2
- package/lib/cjs/ui/Rendering.cjs +2 -2
- package/lib/cjs/ui/UIValidator.cjs +2 -2
- package/lib/cjs/ui/constants.cjs +2 -2
- package/lib/cjs/ui/decorators.cjs +2 -2
- package/lib/cjs/ui/errors.cjs +2 -2
- package/lib/cjs/ui/index.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafModal.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafRouter.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafSpinner.cjs +2 -2
- package/lib/cjs/ui/interfaces/IDecafToast.cjs +2 -2
- package/lib/cjs/ui/interfaces/index.cjs +2 -2
- package/lib/cjs/ui/overrides.cjs +2 -2
- package/lib/cjs/ui/types.cjs +2 -2
- package/lib/cjs/ui/utils.cjs +2 -2
- package/lib/cjs/ui/validator.cjs +2 -2
- package/lib/cjs/user-requests/UserRequestHandler.cjs +2 -2
- package/lib/cjs/user-requests/constants.cjs +2 -2
- package/lib/cjs/user-requests/decorators.cjs +2 -2
- package/lib/cjs/user-requests/errors.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/user-requests/types.cjs +2 -2
- package/lib/esm/dashboard/constants.js +24 -0
- package/lib/esm/dashboard/decorators.js +57 -0
- package/lib/esm/dashboard/index.js +6 -0
- package/lib/esm/dashboard/reader.js +62 -0
- package/lib/esm/dashboard/registry.js +39 -0
- package/lib/esm/dashboard/types.js +9 -0
- package/lib/esm/graph/GraphExecutionStateMapper.js +91 -0
- package/lib/esm/graph/GraphResolution.js +13 -0
- package/lib/esm/graph/catalog/GraphConnectionPolicy.js +1 -1
- package/lib/esm/graph/catalog/GraphCredentialReference.js +1 -1
- package/lib/esm/graph/catalog/GraphCredentialRequirement.js +1 -1
- package/lib/esm/graph/catalog/GraphDynamicPortRule.js +1 -1
- package/lib/esm/graph/catalog/GraphIconReference.js +1 -1
- package/lib/esm/graph/catalog/GraphManifestCompiler.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeCapability.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js +1 -1
- package/lib/esm/graph/catalog/GraphNodeMethodManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterBase.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterDefinition.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterOption.js +1 -1
- package/lib/esm/graph/catalog/GraphParameterValidation.js +1 -1
- package/lib/esm/graph/catalog/GraphPortManifest.js +1 -1
- package/lib/esm/graph/catalog/GraphResourceLocatorMode.js +1 -1
- package/lib/esm/graph/catalog/GraphValueSchema.js +1 -1
- package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js +1 -1
- package/lib/esm/graph/catalog/GraphVisibilityExpression.js +1 -1
- package/lib/esm/graph/catalog/index.js +1 -1
- package/lib/esm/graph/constants.js +180 -1
- package/lib/esm/graph/decorators.js +1 -1
- package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +1 -1
- package/lib/esm/graph/document/GraphEdgeInstance.js +1 -1
- package/lib/esm/graph/document/GraphEndpoint.js +1 -1
- package/lib/esm/graph/document/GraphJsonValue.js +1 -1
- package/lib/esm/graph/document/GraphLoopConfiguration.js +1 -1
- package/lib/esm/graph/document/GraphNodeBinding.js +1 -1
- package/lib/esm/graph/document/GraphNodeInstance.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocument.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentReader.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js +1 -1
- package/lib/esm/graph/document/GraphWorkflowUiState.js +1 -1
- package/lib/esm/graph/document/index.js +1 -1
- package/lib/esm/graph/index.js +4 -1
- package/lib/esm/graph/nodes/agents/agent.js +101 -0
- package/lib/esm/graph/nodes/base.js +31 -0
- package/lib/esm/graph/nodes/boundary/input-value.js +48 -0
- package/lib/esm/graph/nodes/category-styles.js +34 -0
- package/lib/esm/graph/nodes/flow-control/break.js +54 -0
- package/lib/esm/graph/nodes/flow-control/error-boundary.js +58 -0
- package/lib/esm/graph/nodes/flow-control/human-approval.js +60 -0
- package/lib/esm/graph/nodes/flow-control/if.js +62 -0
- package/lib/esm/graph/nodes/flow-control/parallel.js +52 -0
- package/lib/esm/graph/nodes/flow-control/switch.js +112 -0
- package/lib/esm/graph/nodes/index.js +105 -0
- package/lib/esm/graph/nodes/loops/foreach.js +77 -0
- package/lib/esm/graph/nodes/loops/until.js +65 -0
- package/lib/esm/graph/nodes/loops/while.js +65 -0
- package/lib/esm/graph/nodes/manifests.js +334 -0
- package/lib/esm/graph/nodes/triggers/chat.js +61 -0
- package/lib/esm/graph/nodes/triggers/event.js +49 -0
- package/lib/esm/graph/nodes/triggers/form.js +50 -0
- package/lib/esm/graph/nodes/triggers/manual.js +51 -0
- package/lib/esm/graph/nodes/triggers/schedule.js +51 -0
- package/lib/esm/graph/nodes/triggers/webhook.js +53 -0
- package/lib/esm/graph/nodes/utility/code.js +90 -0
- package/lib/esm/graph/nodes/utility/delay.js +52 -0
- package/lib/esm/graph/nodes/utility/log.js +53 -0
- package/lib/esm/graph/nodes/utility/map.js +52 -0
- package/lib/esm/graph/nodes/utility/merge.js +53 -0
- package/lib/esm/graph/nodes/utility/return.js +52 -0
- package/lib/esm/graph/nodes/utility/utility-log.js +57 -0
- package/lib/esm/graph/overrides/Metadata.js +1 -1
- package/lib/esm/graph/overrides/Rendering.js +1 -1
- package/lib/esm/graph/overrides/index.js +1 -1
- package/lib/esm/graph/overrides/overrides.js +1 -1
- package/lib/esm/graph/reader.js +1 -1
- package/lib/esm/graph/registry.js +1 -1
- package/lib/esm/graph/snapshot.js +1 -1
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/index.js +5 -4
- package/lib/esm/model/Renderable.js +1 -1
- package/lib/esm/model/decorators.js +1 -1
- package/lib/esm/model/index.js +1 -1
- package/lib/esm/model/model.js +1 -1
- package/lib/esm/model/overrides.js +1 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
- package/lib/esm/overrides/index.js +1 -1
- package/lib/esm/ui/DecafComponent.js +1 -1
- package/lib/esm/ui/DecafEventHandler.js +1 -1
- package/lib/esm/ui/DecafTranslateService.js +1 -1
- package/lib/esm/ui/Rendering.js +1 -1
- package/lib/esm/ui/UIValidator.js +1 -1
- package/lib/esm/ui/constants.js +1 -1
- package/lib/esm/ui/decorators.js +1 -1
- package/lib/esm/ui/errors.js +1 -1
- package/lib/esm/ui/index.js +1 -1
- package/lib/esm/ui/interfaces/IDecafModal.js +1 -1
- package/lib/esm/ui/interfaces/IDecafRouter.js +1 -1
- package/lib/esm/ui/interfaces/IDecafSpinner.js +1 -1
- package/lib/esm/ui/interfaces/IDecafToast.js +1 -1
- package/lib/esm/ui/interfaces/index.js +1 -1
- package/lib/esm/ui/overrides.js +1 -1
- package/lib/esm/ui/types.js +1 -1
- package/lib/esm/ui/utils.js +1 -1
- package/lib/esm/ui/validator.js +1 -1
- package/lib/esm/user-requests/UserRequestHandler.js +1 -1
- package/lib/esm/user-requests/constants.js +1 -1
- package/lib/esm/user-requests/decorators.js +1 -1
- package/lib/esm/user-requests/errors.js +1 -1
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/user-requests/types.js +1 -1
- package/lib/types/dashboard/constants.d.cts +22 -0
- package/lib/types/dashboard/constants.d.mts +22 -0
- package/lib/types/dashboard/decorators.d.cts +34 -0
- package/lib/types/dashboard/decorators.d.mts +34 -0
- package/lib/types/dashboard/index.d.cts +5 -0
- package/lib/types/dashboard/index.d.mts +5 -0
- package/lib/types/dashboard/reader.d.cts +30 -0
- package/lib/types/dashboard/reader.d.mts +30 -0
- package/lib/types/dashboard/registry.d.cts +29 -0
- package/lib/types/dashboard/registry.d.mts +29 -0
- package/lib/types/dashboard/types.d.cts +67 -0
- package/lib/types/dashboard/types.d.mts +67 -0
- package/lib/types/graph/GraphExecutionStateMapper.d.cts +66 -0
- package/lib/types/graph/GraphExecutionStateMapper.d.mts +66 -0
- package/lib/types/graph/GraphResolution.d.cts +53 -0
- package/lib/types/graph/GraphResolution.d.mts +53 -0
- package/lib/types/graph/constants.d.cts +165 -0
- package/lib/types/graph/constants.d.mts +165 -0
- package/lib/types/graph/index.d.cts +3 -0
- package/lib/types/graph/index.d.mts +3 -0
- package/lib/types/graph/nodes/agents/agent.d.cts +44 -0
- package/lib/types/graph/nodes/agents/agent.d.mts +44 -0
- package/lib/types/graph/nodes/base.d.cts +28 -0
- package/lib/types/graph/nodes/base.d.mts +28 -0
- package/lib/types/graph/nodes/boundary/input-value.d.cts +13 -0
- package/lib/types/graph/nodes/boundary/input-value.d.mts +13 -0
- package/lib/types/graph/nodes/category-styles.d.cts +8 -0
- package/lib/types/graph/nodes/category-styles.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control/break.d.cts +15 -0
- package/lib/types/graph/nodes/flow-control/break.d.mts +15 -0
- package/lib/types/graph/nodes/flow-control/error-boundary.d.cts +12 -0
- package/lib/types/graph/nodes/flow-control/error-boundary.d.mts +12 -0
- package/lib/types/graph/nodes/flow-control/human-approval.d.cts +13 -0
- package/lib/types/graph/nodes/flow-control/human-approval.d.mts +13 -0
- package/lib/types/graph/nodes/flow-control/if.d.cts +16 -0
- package/lib/types/graph/nodes/flow-control/if.d.mts +16 -0
- package/lib/types/graph/nodes/flow-control/parallel.d.cts +11 -0
- package/lib/types/graph/nodes/flow-control/parallel.d.mts +11 -0
- package/lib/types/graph/nodes/flow-control/switch.d.cts +21 -0
- package/lib/types/graph/nodes/flow-control/switch.d.mts +21 -0
- package/lib/types/graph/nodes/index.d.cts +79 -0
- package/lib/types/graph/nodes/index.d.mts +79 -0
- package/lib/types/graph/nodes/loops/foreach.d.cts +19 -0
- package/lib/types/graph/nodes/loops/foreach.d.mts +19 -0
- package/lib/types/graph/nodes/loops/until.d.cts +16 -0
- package/lib/types/graph/nodes/loops/until.d.mts +16 -0
- package/lib/types/graph/nodes/loops/while.d.cts +16 -0
- package/lib/types/graph/nodes/loops/while.d.mts +16 -0
- package/lib/types/graph/nodes/manifests.d.cts +62 -0
- package/lib/types/graph/nodes/manifests.d.mts +62 -0
- package/lib/types/graph/nodes/triggers/chat.d.cts +13 -0
- package/lib/types/graph/nodes/triggers/chat.d.mts +13 -0
- package/lib/types/graph/nodes/triggers/event.d.cts +10 -0
- package/lib/types/graph/nodes/triggers/event.d.mts +10 -0
- package/lib/types/graph/nodes/triggers/form.d.cts +11 -0
- package/lib/types/graph/nodes/triggers/form.d.mts +11 -0
- package/lib/types/graph/nodes/triggers/manual.d.cts +12 -0
- package/lib/types/graph/nodes/triggers/manual.d.mts +12 -0
- package/lib/types/graph/nodes/triggers/schedule.d.cts +11 -0
- package/lib/types/graph/nodes/triggers/schedule.d.mts +11 -0
- package/lib/types/graph/nodes/triggers/webhook.d.cts +11 -0
- package/lib/types/graph/nodes/triggers/webhook.d.mts +11 -0
- package/lib/types/graph/nodes/utility/code.d.cts +31 -0
- package/lib/types/graph/nodes/utility/code.d.mts +31 -0
- package/lib/types/graph/nodes/utility/delay.d.cts +11 -0
- package/lib/types/graph/nodes/utility/delay.d.mts +11 -0
- package/lib/types/graph/nodes/utility/log.d.cts +13 -0
- package/lib/types/graph/nodes/utility/log.d.mts +13 -0
- package/lib/types/graph/nodes/utility/map.d.cts +11 -0
- package/lib/types/graph/nodes/utility/map.d.mts +11 -0
- package/lib/types/graph/nodes/utility/merge.d.cts +12 -0
- package/lib/types/graph/nodes/utility/merge.d.mts +12 -0
- package/lib/types/graph/nodes/utility/return.d.cts +11 -0
- package/lib/types/graph/nodes/utility/return.d.mts +11 -0
- package/lib/types/graph/nodes/utility/utility-log.d.cts +15 -0
- package/lib/types/graph/nodes/utility/utility-log.d.mts +15 -0
- package/lib/types/graph/types.d.cts +286 -0
- package/lib/types/graph/types.d.mts +286 -0
- package/lib/types/index.d.cts +4 -3
- package/lib/types/index.d.mts +4 -3
- package/package.json +1 -1
- package/dist/ui-decorators.cjs.map +0 -1
- package/dist/ui-decorators.js.map +0 -1
- package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphCredentialReference.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphIconReference.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphNodeCapability.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphNodeManifest.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphParameterBase.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphParameterOption.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphParameterValidation.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphPortManifest.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphValueSchema.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs.map +0 -1
- package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs.map +0 -1
- package/lib/cjs/graph/catalog/index.cjs.map +0 -1
- package/lib/cjs/graph/constants.cjs.map +0 -1
- package/lib/cjs/graph/decorators.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphEdgeInstance.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphEndpoint.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphJsonValue.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphLoopConfiguration.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphNodeBinding.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphNodeInstance.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphWorkflowDocument.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs.map +0 -1
- package/lib/cjs/graph/document/GraphWorkflowUiState.cjs.map +0 -1
- package/lib/cjs/graph/document/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/overrides/Metadata.cjs.map +0 -1
- package/lib/cjs/graph/overrides/Rendering.cjs.map +0 -1
- package/lib/cjs/graph/overrides/index.cjs.map +0 -1
- package/lib/cjs/graph/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/graph/reader.cjs.map +0 -1
- package/lib/cjs/graph/registry.cjs.map +0 -1
- package/lib/cjs/graph/snapshot.cjs.map +0 -1
- package/lib/cjs/graph/types.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/model/Renderable.cjs.map +0 -1
- package/lib/cjs/model/decorators.cjs.map +0 -1
- package/lib/cjs/model/index.cjs.map +0 -1
- package/lib/cjs/model/model.cjs.map +0 -1
- package/lib/cjs/model/overrides.cjs.map +0 -1
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +0 -1
- package/lib/cjs/overrides/index.cjs.map +0 -1
- package/lib/cjs/ui/DecafComponent.cjs.map +0 -1
- package/lib/cjs/ui/DecafEventHandler.cjs.map +0 -1
- package/lib/cjs/ui/DecafTranslateService.cjs.map +0 -1
- package/lib/cjs/ui/Rendering.cjs.map +0 -1
- package/lib/cjs/ui/UIValidator.cjs.map +0 -1
- package/lib/cjs/ui/constants.cjs.map +0 -1
- package/lib/cjs/ui/decorators.cjs.map +0 -1
- package/lib/cjs/ui/errors.cjs.map +0 -1
- package/lib/cjs/ui/index.cjs.map +0 -1
- package/lib/cjs/ui/interfaces/IDecafModal.cjs.map +0 -1
- package/lib/cjs/ui/interfaces/IDecafRouter.cjs.map +0 -1
- package/lib/cjs/ui/interfaces/IDecafSpinner.cjs.map +0 -1
- package/lib/cjs/ui/interfaces/IDecafToast.cjs.map +0 -1
- package/lib/cjs/ui/interfaces/index.cjs.map +0 -1
- package/lib/cjs/ui/overrides.cjs.map +0 -1
- package/lib/cjs/ui/types.cjs.map +0 -1
- package/lib/cjs/ui/utils.cjs.map +0 -1
- package/lib/cjs/ui/validator.cjs.map +0 -1
- package/lib/cjs/user-requests/UserRequestHandler.cjs.map +0 -1
- package/lib/cjs/user-requests/constants.cjs.map +0 -1
- package/lib/cjs/user-requests/decorators.cjs.map +0 -1
- package/lib/cjs/user-requests/errors.cjs.map +0 -1
- package/lib/cjs/user-requests/index.cjs.map +0 -1
- package/lib/cjs/user-requests/types.cjs.map +0 -1
- package/lib/esm/graph/catalog/GraphConnectionPolicy.js.map +0 -1
- package/lib/esm/graph/catalog/GraphCredentialReference.js.map +0 -1
- package/lib/esm/graph/catalog/GraphCredentialRequirement.js.map +0 -1
- package/lib/esm/graph/catalog/GraphDynamicPortRule.js.map +0 -1
- package/lib/esm/graph/catalog/GraphIconReference.js.map +0 -1
- package/lib/esm/graph/catalog/GraphManifestCompiler.js.map +0 -1
- package/lib/esm/graph/catalog/GraphNodeCapability.js.map +0 -1
- package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js.map +0 -1
- package/lib/esm/graph/catalog/GraphNodeManifest.js.map +0 -1
- package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js.map +0 -1
- package/lib/esm/graph/catalog/GraphNodeMethodManifest.js.map +0 -1
- package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +0 -1
- package/lib/esm/graph/catalog/GraphParameterBase.js.map +0 -1
- package/lib/esm/graph/catalog/GraphParameterDefinition.js.map +0 -1
- package/lib/esm/graph/catalog/GraphParameterOption.js.map +0 -1
- package/lib/esm/graph/catalog/GraphParameterValidation.js.map +0 -1
- package/lib/esm/graph/catalog/GraphPortManifest.js.map +0 -1
- package/lib/esm/graph/catalog/GraphResourceLocatorMode.js.map +0 -1
- package/lib/esm/graph/catalog/GraphValueSchema.js.map +0 -1
- package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js.map +0 -1
- package/lib/esm/graph/catalog/GraphVisibilityExpression.js.map +0 -1
- package/lib/esm/graph/catalog/index.js.map +0 -1
- package/lib/esm/graph/constants.js.map +0 -1
- package/lib/esm/graph/decorators.js.map +0 -1
- package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +0 -1
- package/lib/esm/graph/document/GraphEdgeInstance.js.map +0 -1
- package/lib/esm/graph/document/GraphEndpoint.js.map +0 -1
- package/lib/esm/graph/document/GraphJsonValue.js.map +0 -1
- package/lib/esm/graph/document/GraphLoopConfiguration.js.map +0 -1
- package/lib/esm/graph/document/GraphNodeBinding.js.map +0 -1
- package/lib/esm/graph/document/GraphNodeInstance.js.map +0 -1
- package/lib/esm/graph/document/GraphWorkflowDocument.js.map +0 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +0 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentReader.js.map +0 -1
- package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js.map +0 -1
- package/lib/esm/graph/document/GraphWorkflowUiState.js.map +0 -1
- package/lib/esm/graph/document/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/overrides/Metadata.js.map +0 -1
- package/lib/esm/graph/overrides/Rendering.js.map +0 -1
- package/lib/esm/graph/overrides/index.js.map +0 -1
- package/lib/esm/graph/overrides/overrides.js.map +0 -1
- package/lib/esm/graph/reader.js.map +0 -1
- package/lib/esm/graph/registry.js.map +0 -1
- package/lib/esm/graph/snapshot.js.map +0 -1
- package/lib/esm/graph/types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/model/Renderable.js.map +0 -1
- package/lib/esm/model/decorators.js.map +0 -1
- package/lib/esm/model/index.js.map +0 -1
- package/lib/esm/model/model.js.map +0 -1
- package/lib/esm/model/overrides.js.map +0 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js.map +0 -1
- package/lib/esm/overrides/index.js.map +0 -1
- package/lib/esm/ui/DecafComponent.js.map +0 -1
- package/lib/esm/ui/DecafEventHandler.js.map +0 -1
- package/lib/esm/ui/DecafTranslateService.js.map +0 -1
- package/lib/esm/ui/Rendering.js.map +0 -1
- package/lib/esm/ui/UIValidator.js.map +0 -1
- package/lib/esm/ui/constants.js.map +0 -1
- package/lib/esm/ui/decorators.js.map +0 -1
- package/lib/esm/ui/errors.js.map +0 -1
- package/lib/esm/ui/index.js.map +0 -1
- package/lib/esm/ui/interfaces/IDecafModal.js.map +0 -1
- package/lib/esm/ui/interfaces/IDecafRouter.js.map +0 -1
- package/lib/esm/ui/interfaces/IDecafSpinner.js.map +0 -1
- package/lib/esm/ui/interfaces/IDecafToast.js.map +0 -1
- package/lib/esm/ui/interfaces/index.js.map +0 -1
- package/lib/esm/ui/overrides.js.map +0 -1
- package/lib/esm/ui/types.js.map +0 -1
- package/lib/esm/ui/utils.js.map +0 -1
- package/lib/esm/ui/validator.js.map +0 -1
- package/lib/esm/user-requests/UserRequestHandler.js.map +0 -1
- package/lib/esm/user-requests/constants.js.map +0 -1
- package/lib/esm/user-requests/decorators.js.map +0 -1
- package/lib/esm/user-requests/errors.js.map +0 -1
- package/lib/esm/user-requests/index.js.map +0 -1
- package/lib/esm/user-requests/types.js.map +0 -1
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GRAPH_BUILT_IN_NODE_MANIFESTS_BY_KIND = exports.GRAPH_BUILT_IN_NODE_MANIFESTS = exports.AGENT_GRAPH_NODE_MANIFEST = exports.BREAK_GRAPH_NODE_MANIFEST = exports.UTILITY_LOG_GRAPH_NODE_MANIFEST = exports.LOG_GRAPH_NODE_MANIFEST = exports.CODE_GRAPH_NODE_MANIFEST = exports.RETURN_GRAPH_NODE_MANIFEST = exports.HUMAN_APPROVAL_GRAPH_NODE_MANIFEST = exports.ERROR_BOUNDARY_GRAPH_NODE_MANIFEST = exports.DELAY_GRAPH_NODE_MANIFEST = exports.MAP_GRAPH_NODE_MANIFEST = exports.MERGE_GRAPH_NODE_MANIFEST = exports.PARALLEL_GRAPH_NODE_MANIFEST = exports.IF_GRAPH_NODE_MANIFEST = exports.CHAT_TRIGGER_GRAPH_NODE_MANIFEST = exports.FORM_TRIGGER_GRAPH_NODE_MANIFEST = exports.EVENT_TRIGGER_GRAPH_NODE_MANIFEST = exports.SCHEDULE_TRIGGER_GRAPH_NODE_MANIFEST = exports.WEBHOOK_TRIGGER_GRAPH_NODE_MANIFEST = exports.MANUAL_TRIGGER_GRAPH_NODE_MANIFEST = exports.SWITCH_GRAPH_NODE_MANIFEST = exports.UNTIL_GRAPH_NODE_MANIFEST = exports.WHILE_GRAPH_NODE_MANIFEST = exports.FOREACH_GRAPH_NODE_MANIFEST = void 0;
|
|
4
|
+
const index_js_1 = require("./../catalog/index.cjs");
|
|
5
|
+
const agent_js_1 = require("./agents/agent.cjs");
|
|
6
|
+
const break_js_1 = require("./flow-control/break.cjs");
|
|
7
|
+
const error_boundary_js_1 = require("./flow-control/error-boundary.cjs");
|
|
8
|
+
const human_approval_js_1 = require("./flow-control/human-approval.cjs");
|
|
9
|
+
const if_js_1 = require("./flow-control/if.cjs");
|
|
10
|
+
const parallel_js_1 = require("./flow-control/parallel.cjs");
|
|
11
|
+
const switch_js_1 = require("./flow-control/switch.cjs");
|
|
12
|
+
const code_js_1 = require("./utility/code.cjs");
|
|
13
|
+
const delay_js_1 = require("./utility/delay.cjs");
|
|
14
|
+
const log_js_1 = require("./utility/log.cjs");
|
|
15
|
+
const map_js_1 = require("./utility/map.cjs");
|
|
16
|
+
const merge_js_1 = require("./utility/merge.cjs");
|
|
17
|
+
const return_js_1 = require("./utility/return.cjs");
|
|
18
|
+
const utility_log_js_1 = require("./utility/utility-log.cjs");
|
|
19
|
+
const chat_js_1 = require("./triggers/chat.cjs");
|
|
20
|
+
const event_js_1 = require("./triggers/event.cjs");
|
|
21
|
+
const form_js_1 = require("./triggers/form.cjs");
|
|
22
|
+
const manual_js_1 = require("./triggers/manual.cjs");
|
|
23
|
+
const schedule_js_1 = require("./triggers/schedule.cjs");
|
|
24
|
+
const webhook_js_1 = require("./triggers/webhook.cjs");
|
|
25
|
+
/**
|
|
26
|
+
* Builds a single {@link GraphPortManifest} from its id, label, direction,
|
|
27
|
+
* and optional extra fields — the terse constructor used by the hand-authored
|
|
28
|
+
* loop manifests below.
|
|
29
|
+
*
|
|
30
|
+
* @param id - Port identifier (matches the decorated property handle).
|
|
31
|
+
* @param label - Human-readable port label.
|
|
32
|
+
* @param direction - Port direction (`input` or `output`).
|
|
33
|
+
* @param extra - Optional manifest fields merged over the defaults.
|
|
34
|
+
* @returns The assembled port manifest.
|
|
35
|
+
*/
|
|
36
|
+
function port(id, label, direction, extra = {}) {
|
|
37
|
+
return { id, label, direction, ...extra };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Compiles a `@node`-decorated class into its published
|
|
41
|
+
* {@link GraphNodeManifest}, so the served shape matches what the Angular
|
|
42
|
+
* palette consumes.
|
|
43
|
+
*
|
|
44
|
+
* @param node - The decorated node class constructor.
|
|
45
|
+
* @param name - Display name override for the compiled manifest.
|
|
46
|
+
* @returns The compiled node manifest.
|
|
47
|
+
*/
|
|
48
|
+
function compile(node, name) {
|
|
49
|
+
return (0, index_js_1.graphNodeManifest)(node, { name });
|
|
50
|
+
}
|
|
51
|
+
/** Manifest for the `core.loop.foreach` node: runs the loop body once per item (or slice) of the input array. */
|
|
52
|
+
exports.FOREACH_GRAPH_NODE_MANIFEST = {
|
|
53
|
+
kind: "core.loop.foreach",
|
|
54
|
+
capabilities: ["loop"],
|
|
55
|
+
display: {
|
|
56
|
+
name: "Foreach",
|
|
57
|
+
description: "Runs the loop body once per item (or per slice of items) of the input array, collecting the results in order.",
|
|
58
|
+
category: "Flow Control",
|
|
59
|
+
color: "#8b5cf6",
|
|
60
|
+
icon: { type: "catalogue", name: "ti-repeat" },
|
|
61
|
+
width: 120,
|
|
62
|
+
height: 140,
|
|
63
|
+
labels: ["flow", "loop", "foreach", "iteration"],
|
|
64
|
+
},
|
|
65
|
+
inputs: [
|
|
66
|
+
port("items", "Items", "input", {
|
|
67
|
+
required: true,
|
|
68
|
+
schema: { type: "array", items: { type: "any" } },
|
|
69
|
+
}),
|
|
70
|
+
port("slice", "Slice size", "input", { schema: { type: "number", integer: true, min: 1 } }),
|
|
71
|
+
port("state", "Initial state", "input", { schema: { type: "any" } }),
|
|
72
|
+
],
|
|
73
|
+
outputs: [
|
|
74
|
+
port("results", "Results", "output", {
|
|
75
|
+
schema: { type: "array", items: { type: "any" } },
|
|
76
|
+
}),
|
|
77
|
+
port("completed", "Completed", "output", {
|
|
78
|
+
schema: { type: "array", items: { type: "any" } },
|
|
79
|
+
}),
|
|
80
|
+
port("iterations", "Iterations", "output", { schema: { type: "number", integer: true, min: 0 } }),
|
|
81
|
+
port("broken", "Broken", "output", { schema: { type: "boolean" } }),
|
|
82
|
+
port("state", "Final state", "output", { schema: { type: "any" } }),
|
|
83
|
+
],
|
|
84
|
+
parameters: [
|
|
85
|
+
{
|
|
86
|
+
type: "number",
|
|
87
|
+
id: "maxIterations",
|
|
88
|
+
label: "Max iterations",
|
|
89
|
+
integer: true,
|
|
90
|
+
min: 1,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: "object",
|
|
94
|
+
id: "condition",
|
|
95
|
+
label: "Condition",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: "string",
|
|
99
|
+
id: "itemPort",
|
|
100
|
+
label: "Item port",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: "string",
|
|
104
|
+
id: "resultPort",
|
|
105
|
+
label: "Result port",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: "string",
|
|
109
|
+
id: "statePort",
|
|
110
|
+
label: "State port",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: "number",
|
|
114
|
+
id: "slice",
|
|
115
|
+
label: "Slice size",
|
|
116
|
+
integer: true,
|
|
117
|
+
min: 1,
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
};
|
|
121
|
+
/** Manifest for the `core.loop.while` node: repeats the loop body while the condition holds. */
|
|
122
|
+
exports.WHILE_GRAPH_NODE_MANIFEST = {
|
|
123
|
+
kind: "core.loop.while",
|
|
124
|
+
capabilities: ["loop"],
|
|
125
|
+
display: {
|
|
126
|
+
name: "While",
|
|
127
|
+
description: "Runs the loop body while the configured condition evaluates to true, threading the state between iterations.",
|
|
128
|
+
category: "Flow Control",
|
|
129
|
+
color: "#8b5cf6",
|
|
130
|
+
icon: { type: "catalogue", name: "ti-repeat-once" },
|
|
131
|
+
width: 120,
|
|
132
|
+
height: 140,
|
|
133
|
+
labels: ["flow", "loop", "while", "condition"],
|
|
134
|
+
},
|
|
135
|
+
inputs: [port("state", "Initial state", "input", { schema: { type: "any" } })],
|
|
136
|
+
outputs: [
|
|
137
|
+
port("state", "Final state", "output", { schema: { type: "any" } }),
|
|
138
|
+
port("iterations", "Iterations", "output", { schema: { type: "number", integer: true, min: 0 } }),
|
|
139
|
+
],
|
|
140
|
+
parameters: [
|
|
141
|
+
{
|
|
142
|
+
type: "number",
|
|
143
|
+
id: "maxIterations",
|
|
144
|
+
label: "Max iterations",
|
|
145
|
+
integer: true,
|
|
146
|
+
min: 1,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: "object",
|
|
150
|
+
id: "condition",
|
|
151
|
+
label: "Condition",
|
|
152
|
+
required: true,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: "string",
|
|
156
|
+
id: "statePort",
|
|
157
|
+
label: "State port",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: "string",
|
|
161
|
+
id: "inputPort",
|
|
162
|
+
label: "Input port",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: "string",
|
|
166
|
+
id: "outputPort",
|
|
167
|
+
label: "Output port",
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
};
|
|
171
|
+
/** Manifest for the `core.loop.until` node: repeats the loop body until the condition holds. */
|
|
172
|
+
exports.UNTIL_GRAPH_NODE_MANIFEST = {
|
|
173
|
+
kind: "core.loop.until",
|
|
174
|
+
capabilities: ["loop"],
|
|
175
|
+
display: {
|
|
176
|
+
name: "Until",
|
|
177
|
+
description: "Runs the loop body at least once, then repeats until the configured condition evaluates to true.",
|
|
178
|
+
category: "Flow Control",
|
|
179
|
+
color: "#8b5cf6",
|
|
180
|
+
icon: { type: "catalogue", name: "ti-repeat" },
|
|
181
|
+
width: 120,
|
|
182
|
+
height: 140,
|
|
183
|
+
labels: ["flow", "loop", "until", "condition"],
|
|
184
|
+
},
|
|
185
|
+
inputs: [port("state", "Initial state", "input", { schema: { type: "any" } })],
|
|
186
|
+
outputs: [
|
|
187
|
+
port("state", "Final state", "output", { schema: { type: "any" } }),
|
|
188
|
+
port("iterations", "Iterations", "output", { schema: { type: "number", integer: true, min: 0 } }),
|
|
189
|
+
],
|
|
190
|
+
parameters: [
|
|
191
|
+
{
|
|
192
|
+
type: "number",
|
|
193
|
+
id: "maxIterations",
|
|
194
|
+
label: "Max iterations",
|
|
195
|
+
integer: true,
|
|
196
|
+
min: 1,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: "object",
|
|
200
|
+
id: "condition",
|
|
201
|
+
label: "Condition",
|
|
202
|
+
required: true,
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: "string",
|
|
206
|
+
id: "statePort",
|
|
207
|
+
label: "State port",
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: "string",
|
|
211
|
+
id: "inputPort",
|
|
212
|
+
label: "Input port",
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: "string",
|
|
216
|
+
id: "outputPort",
|
|
217
|
+
label: "Output port",
|
|
218
|
+
},
|
|
219
|
+
],
|
|
220
|
+
};
|
|
221
|
+
const switchCompiled = compile(switch_js_1.SwitchFlowNode, "Switch");
|
|
222
|
+
/** Manifest for the `core.flow.switch` node: routes execution by switch-case conditions (cases live under `parameters["switch"]`). */
|
|
223
|
+
exports.SWITCH_GRAPH_NODE_MANIFEST = {
|
|
224
|
+
...switchCompiled,
|
|
225
|
+
outputs: [],
|
|
226
|
+
parameters: [
|
|
227
|
+
...switchCompiled.parameters,
|
|
228
|
+
{
|
|
229
|
+
type: "collection",
|
|
230
|
+
id: "cases",
|
|
231
|
+
label: "Cases",
|
|
232
|
+
required: true,
|
|
233
|
+
itemIdPath: "outputPort",
|
|
234
|
+
itemLabelPath: "label",
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: "boolean",
|
|
238
|
+
id: "hasDefault",
|
|
239
|
+
label: "Has default",
|
|
240
|
+
defaultValue: false,
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
dynamicPorts: [
|
|
244
|
+
{
|
|
245
|
+
type: "repeatFromParameter",
|
|
246
|
+
parameter: "cases",
|
|
247
|
+
itemIdPath: "outputPort",
|
|
248
|
+
itemLabelPath: "label",
|
|
249
|
+
direction: "output",
|
|
250
|
+
portIdTemplate: "${id}",
|
|
251
|
+
defaultPort: {
|
|
252
|
+
id: "case",
|
|
253
|
+
label: "Case",
|
|
254
|
+
direction: "output",
|
|
255
|
+
schema: { type: "any" },
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
type: "togglePort",
|
|
260
|
+
parameter: "hasDefault",
|
|
261
|
+
equals: true,
|
|
262
|
+
port: {
|
|
263
|
+
id: "default",
|
|
264
|
+
label: "Default",
|
|
265
|
+
direction: "output",
|
|
266
|
+
schema: { type: "any" },
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
],
|
|
270
|
+
};
|
|
271
|
+
/** Manifest for the manual-trigger node (starts a run on demand). */
|
|
272
|
+
exports.MANUAL_TRIGGER_GRAPH_NODE_MANIFEST = compile(manual_js_1.ManualTriggerNode, "Manual trigger");
|
|
273
|
+
/** Manifest for the webhook-trigger node (starts a run from an inbound webhook). */
|
|
274
|
+
exports.WEBHOOK_TRIGGER_GRAPH_NODE_MANIFEST = compile(webhook_js_1.WebhookTriggerNode, "Webhook trigger");
|
|
275
|
+
/** Manifest for the schedule-trigger node (starts a run on a schedule). */
|
|
276
|
+
exports.SCHEDULE_TRIGGER_GRAPH_NODE_MANIFEST = compile(schedule_js_1.ScheduleTriggerNode, "Schedule trigger");
|
|
277
|
+
/** Manifest for the event-trigger node (starts a run on an observed event). */
|
|
278
|
+
exports.EVENT_TRIGGER_GRAPH_NODE_MANIFEST = compile(event_js_1.EventTriggerNode, "Event trigger");
|
|
279
|
+
/** Manifest for the form-trigger node (starts a run from a form submission). */
|
|
280
|
+
exports.FORM_TRIGGER_GRAPH_NODE_MANIFEST = compile(form_js_1.FormTriggerNode, "Form trigger");
|
|
281
|
+
/** Manifest for the chat-trigger node (starts a run from a chat message). */
|
|
282
|
+
exports.CHAT_TRIGGER_GRAPH_NODE_MANIFEST = compile(chat_js_1.ChatTriggerNode, "Chat trigger");
|
|
283
|
+
/** Manifest for the if node (conditional branch on a boolean condition). */
|
|
284
|
+
exports.IF_GRAPH_NODE_MANIFEST = compile(if_js_1.IfFlowNode, "If");
|
|
285
|
+
/** Manifest for the parallel node (runs branches concurrently). */
|
|
286
|
+
exports.PARALLEL_GRAPH_NODE_MANIFEST = compile(parallel_js_1.ParallelFlowNode, "Parallel");
|
|
287
|
+
/** Manifest for the merge node (joins parallel branches). */
|
|
288
|
+
exports.MERGE_GRAPH_NODE_MANIFEST = compile(merge_js_1.MergeFlowNode, "Merge");
|
|
289
|
+
/** Manifest for the map node (transforms each input item). */
|
|
290
|
+
exports.MAP_GRAPH_NODE_MANIFEST = compile(map_js_1.MapFlowNode, "Map");
|
|
291
|
+
/** Manifest for the delay node (pauses execution for a duration). */
|
|
292
|
+
exports.DELAY_GRAPH_NODE_MANIFEST = compile(delay_js_1.DelayFlowNode, "Delay");
|
|
293
|
+
/** Manifest for the error-boundary node (isolates branch failures). */
|
|
294
|
+
exports.ERROR_BOUNDARY_GRAPH_NODE_MANIFEST = compile(error_boundary_js_1.ErrorBoundaryFlowNode, "Error boundary");
|
|
295
|
+
/** Manifest for the human-approval node (waits for an approval decision). */
|
|
296
|
+
exports.HUMAN_APPROVAL_GRAPH_NODE_MANIFEST = compile(human_approval_js_1.HumanApprovalFlowNode, "Human approval");
|
|
297
|
+
/** Manifest for the return node (terminates the workflow with output values). */
|
|
298
|
+
exports.RETURN_GRAPH_NODE_MANIFEST = compile(return_js_1.ReturnFlowNode, "Return");
|
|
299
|
+
/** Manifest for the code node (executes user code). */
|
|
300
|
+
exports.CODE_GRAPH_NODE_MANIFEST = compile(code_js_1.CodeFlowNode, "Code");
|
|
301
|
+
/** Manifest for the log node (logs its input). */
|
|
302
|
+
exports.LOG_GRAPH_NODE_MANIFEST = compile(log_js_1.LogFlowNode, "Log");
|
|
303
|
+
/** Manifest for the utility-log node (log-shaped utility sink). */
|
|
304
|
+
exports.UTILITY_LOG_GRAPH_NODE_MANIFEST = compile(utility_log_js_1.UtilityLogNode, "Utility Log");
|
|
305
|
+
/** Manifest for the break node (exits the enclosing loop). */
|
|
306
|
+
exports.BREAK_GRAPH_NODE_MANIFEST = compile(break_js_1.BreakFlowNode, "Break");
|
|
307
|
+
/** Manifest for the agent node (delegates work to an agent). */
|
|
308
|
+
exports.AGENT_GRAPH_NODE_MANIFEST = compile(agent_js_1.AgentNode, "Agent");
|
|
309
|
+
/** All built-in node manifests, in catalogue display order. */
|
|
310
|
+
exports.GRAPH_BUILT_IN_NODE_MANIFESTS = [
|
|
311
|
+
exports.MANUAL_TRIGGER_GRAPH_NODE_MANIFEST,
|
|
312
|
+
exports.WEBHOOK_TRIGGER_GRAPH_NODE_MANIFEST,
|
|
313
|
+
exports.SCHEDULE_TRIGGER_GRAPH_NODE_MANIFEST,
|
|
314
|
+
exports.EVENT_TRIGGER_GRAPH_NODE_MANIFEST,
|
|
315
|
+
exports.FORM_TRIGGER_GRAPH_NODE_MANIFEST,
|
|
316
|
+
exports.CHAT_TRIGGER_GRAPH_NODE_MANIFEST,
|
|
317
|
+
exports.IF_GRAPH_NODE_MANIFEST,
|
|
318
|
+
exports.SWITCH_GRAPH_NODE_MANIFEST,
|
|
319
|
+
exports.PARALLEL_GRAPH_NODE_MANIFEST,
|
|
320
|
+
exports.MERGE_GRAPH_NODE_MANIFEST,
|
|
321
|
+
exports.MAP_GRAPH_NODE_MANIFEST,
|
|
322
|
+
exports.DELAY_GRAPH_NODE_MANIFEST,
|
|
323
|
+
exports.ERROR_BOUNDARY_GRAPH_NODE_MANIFEST,
|
|
324
|
+
exports.HUMAN_APPROVAL_GRAPH_NODE_MANIFEST,
|
|
325
|
+
exports.RETURN_GRAPH_NODE_MANIFEST,
|
|
326
|
+
exports.CODE_GRAPH_NODE_MANIFEST,
|
|
327
|
+
exports.LOG_GRAPH_NODE_MANIFEST,
|
|
328
|
+
exports.UTILITY_LOG_GRAPH_NODE_MANIFEST,
|
|
329
|
+
exports.BREAK_GRAPH_NODE_MANIFEST,
|
|
330
|
+
exports.AGENT_GRAPH_NODE_MANIFEST,
|
|
331
|
+
exports.FOREACH_GRAPH_NODE_MANIFEST,
|
|
332
|
+
exports.WHILE_GRAPH_NODE_MANIFEST,
|
|
333
|
+
exports.UNTIL_GRAPH_NODE_MANIFEST,
|
|
334
|
+
];
|
|
335
|
+
/** Built-in manifests indexed by node `kind` — the source for built-in catalogue registrations. */
|
|
336
|
+
exports.GRAPH_BUILT_IN_NODE_MANIFESTS_BY_KIND = Object.fromEntries(exports.GRAPH_BUILT_IN_NODE_MANIFESTS.map((manifest) => [manifest.kind, manifest]));
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dyYXBoL25vZGVzL21hbmlmZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsOEJBQW1CO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQXVCO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0NBQTZCO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5Q0FBc0M7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlDQUFzQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLDZCQUEwQjtBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUNBQWdDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUNBQThCO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQXVCO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQXdCO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUseUJBQXNCO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUseUJBQXNCO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQXdCO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsNEJBQXlCO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUNBQThCO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQXdCO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSw0QkFBeUI7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSwyQkFBd0I7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDZCQUEwQjtBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsK0JBQTRCO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSw4QkFBMkI7QUFFeEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsSUFBSSxDQUNYLEVBQVUsRUFDVixLQUFhLEVBQ2IsU0FB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QUN6QixrQ0FBa0M7SUFDbEMsa0NBQWtDO0lBQ2xDLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQix5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIseUJBQXlCO0NBQzFCLENBQUM7QUFFRixtR0FBbUc7QUFDbkcsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBRzlDLE1BQU0sQ0FBQyxXQUFXLENBQ3BCLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgdWktZGVjb3JhdG9ycy9ncmFwaC9ub2Rlcy9tYW5pZmVzdHNcbiAqIEBzdW1tYXJ5IEJ1aWx0LWluIG5vZGUgbWFuaWZlc3RzIChERUNBRi01MCDCpzQuMTIpLlxuICogQGRlc2NyaXB0aW9uIFRoZSBjYXRhbG9ndWUtcHVibGlzaGVkIEpTT04gbWFuaWZlc3RzIGZvciBldmVyeSBub2RlIGtpbmRcbiAqIHRoZSBiYWNrZW5kIHNoaXBzLiBMb29wIG1hbmlmZXN0cyBhcmUgaGFuZC1hdXRob3JlZCAodGhlaXIgbG9vcC1ib2R5XG4gKiBzaGFwZXMgYXJlIHN0cnVjdHVyYWwpOyB0aGUgcmVzdCBhcmUgY29tcGlsZWQgZnJvbSB0aGUgc2hhcmVkXG4gKiBgQG5vZGVgLWRlY29yYXRlZCBjbGFzc2VzIHZpYSBgZ3JhcGhOb2RlTWFuaWZlc3RgLCBzbyB0aGUgc2VydmVkIHNoYXBlIGlzXG4gKiBpZGVudGljYWwgdG8gd2hhdCB0aGUgQW5ndWxhciBwYWxldHRlIGNvbnN1bWVzLiBBZ2dyZWdhdGVkIGluXG4gKiBgR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFNgIGFuZCBpbmRleGVkIGJ5IGtpbmQgaW5cbiAqIGBHUkFQSF9CVUlMVF9JTl9OT0RFX01BTklGRVNUU19CWV9LSU5EYC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBHcmFwaE5vZGVNYW5pZmVzdCxcbiAgR3JhcGhQb3J0TWFuaWZlc3QsXG59IGZyb20gXCIuLi9jYXRhbG9nXCI7XG5pbXBvcnQgeyBncmFwaE5vZGVNYW5pZmVzdCB9IGZyb20gXCIuLi9jYXRhbG9nXCI7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBBZ2VudE5vZGUgfSBmcm9tIFwiLi9hZ2VudHMvYWdlbnRcIjtcbmltcG9ydCB7IEJyZWFrRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvYnJlYWtcIjtcbmltcG9ydCB7IEVycm9yQm91bmRhcnlGbG93Tm9kZSB9IGZyb20gXCIuL2Zsb3ctY29udHJvbC9lcnJvci1ib3VuZGFyeVwiO1xuaW1wb3J0IHsgSHVtYW5BcHByb3ZhbEZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL2h1bWFuLWFwcHJvdmFsXCI7XG5pbXBvcnQgeyBJZkZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL2lmXCI7XG5pbXBvcnQgeyBQYXJhbGxlbEZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL3BhcmFsbGVsXCI7XG5pbXBvcnQgeyBTd2l0Y2hGbG93Tm9kZSB9IGZyb20gXCIuL2Zsb3ctY29udHJvbC9zd2l0Y2hcIjtcbmltcG9ydCB7IENvZGVGbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvY29kZVwiO1xuaW1wb3J0IHsgRGVsYXlGbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvZGVsYXlcIjtcbmltcG9ydCB7IExvZ0Zsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9sb2dcIjtcbmltcG9ydCB7IE1hcEZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9tYXBcIjtcbmltcG9ydCB7IE1lcmdlRmxvd05vZGUgfSBmcm9tIFwiLi91dGlsaXR5L21lcmdlXCI7XG5pbXBvcnQgeyBSZXR1cm5GbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvcmV0dXJuXCI7XG5pbXBvcnQgeyBVdGlsaXR5TG9nTm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvdXRpbGl0eS1sb2dcIjtcbmltcG9ydCB7IENoYXRUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL2NoYXRcIjtcbmltcG9ydCB7IEV2ZW50VHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9ldmVudFwiO1xuaW1wb3J0IHsgRm9ybVRyaWdnZXJOb2RlIH0gZnJvbSBcIi4vdHJpZ2dlcnMvZm9ybVwiO1xuaW1wb3J0IHsgTWFudWFsVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9tYW51YWxcIjtcbmltcG9ydCB7IFNjaGVkdWxlVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9zY2hlZHVsZVwiO1xuaW1wb3J0IHsgV2ViaG9va1RyaWdnZXJOb2RlIH0gZnJvbSBcIi4vdHJpZ2dlcnMvd2ViaG9va1wiO1xuXG4vKipcbiAqIEJ1aWxkcyBhIHNpbmdsZSB7QGxpbmsgR3JhcGhQb3J0TWFuaWZlc3R9IGZyb20gaXRzIGlkLCBsYWJlbCwgZGlyZWN0aW9uLFxuICogYW5kIG9wdGlvbmFsIGV4dHJhIGZpZWxkcyDigJQgdGhlIHRlcnNlIGNvbnN0cnVjdG9yIHVzZWQgYnkgdGhlIGhhbmQtYXV0aG9yZWRcbiAqIGxvb3AgbWFuaWZlc3RzIGJlbG93LlxuICpcbiAqIEBwYXJhbSBpZCAtIFBvcnQgaWRlbnRpZmllciAobWF0Y2hlcyB0aGUgZGVjb3JhdGVkIHByb3BlcnR5IGhhbmRsZSkuXG4gKiBAcGFyYW0gbGFiZWwgLSBIdW1hbi1yZWFkYWJsZSBwb3J0IGxhYmVsLlxuICogQHBhcmFtIGRpcmVjdGlvbiAtIFBvcnQgZGlyZWN0aW9uIChgaW5wdXRgIG9yIGBvdXRwdXRgKS5cbiAqIEBwYXJhbSBleHRyYSAtIE9wdGlvbmFsIG1hbmlmZXN0IGZpZWxkcyBtZXJnZWQgb3ZlciB0aGUgZGVmYXVsdHMuXG4gKiBAcmV0dXJucyBUaGUgYXNzZW1ibGVkIHBvcnQgbWFuaWZlc3QuXG4gKi9cbmZ1bmN0aW9uIHBvcnQoXG4gIGlkOiBzdHJpbmcsXG4gIGxhYmVsOiBzdHJpbmcsXG4gIGRpcmVjdGlvbjogXCJpbnB1dFwiIHwgXCJvdXRwdXRcIixcbiAgZXh0cmE6IFBhcnRpYWw8R3JhcGhQb3J0TWFuaWZlc3Q+ID0ge31cbik6IEdyYXBoUG9ydE1hbmlmZXN0IHtcbiAgcmV0dXJuIHsgaWQsIGxhYmVsLCBkaXJlY3Rpb24sIC4uLmV4dHJhIH07XG59XG5cbi8qKlxuICogQ29tcGlsZXMgYSBgQG5vZGVgLWRlY29yYXRlZCBjbGFzcyBpbnRvIGl0cyBwdWJsaXNoZWRcbiAqIHtAbGluayBHcmFwaE5vZGVNYW5pZmVzdH0sIHNvIHRoZSBzZXJ2ZWQgc2hhcGUgbWF0Y2hlcyB3aGF0IHRoZSBBbmd1bGFyXG4gKiBwYWxldHRlIGNvbnN1bWVzLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGRlY29yYXRlZCBub2RlIGNsYXNzIGNvbnN0cnVjdG9yLlxuICogQHBhcmFtIG5hbWUgLSBEaXNwbGF5IG5hbWUgb3ZlcnJpZGUgZm9yIHRoZSBjb21waWxlZCBtYW5pZmVzdC5cbiAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBub2RlIG1hbmlmZXN0LlxuICovXG5mdW5jdGlvbiBjb21waWxlKG5vZGU6IHVua25vd24sIG5hbWU6IHN0cmluZyk6IEdyYXBoTm9kZU1hbmlmZXN0IHtcbiAgcmV0dXJuIGdyYXBoTm9kZU1hbmlmZXN0KG5vZGUgYXMgQ29uc3RydWN0b3IsIHsgbmFtZSB9KTtcbn1cblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgYGNvcmUubG9vcC5mb3JlYWNoYCBub2RlOiBydW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3Igc2xpY2UpIG9mIHRoZSBpbnB1dCBhcnJheS4gKi9cbmV4cG9ydCBjb25zdCBGT1JFQUNIX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICBraW5kOiBcImNvcmUubG9vcC5mb3JlYWNoXCIsXG4gIGNhcGFiaWxpdGllczogW1wibG9vcFwiXSxcbiAgZGlzcGxheToge1xuICAgIG5hbWU6IFwiRm9yZWFjaFwiLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJSdW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3IgcGVyIHNsaWNlIG9mIGl0ZW1zKSBvZiB0aGUgaW5wdXQgYXJyYXksIGNvbGxlY3RpbmcgdGhlIHJlc3VsdHMgaW4gb3JkZXIuXCIsXG4gICAgY2F0ZWdvcnk6IFwiRmxvdyBDb250cm9sXCIsXG4gICAgY29sb3I6IFwiIzhiNWNmNlwiLFxuICAgIGljb246IHsgdHlwZTogXCJjYXRhbG9ndWVcIiwgbmFtZTogXCJ0aS1yZXBlYXRcIiB9LFxuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiAxNDAsXG4gICAgbGFiZWxzOiBbXCJmbG93XCIsIFwibG9vcFwiLCBcImZvcmVhY2hcIiwgXCJpdGVyYXRpb25cIl0sXG4gIH0sXG4gIGlucHV0czogW1xuICAgIHBvcnQoXCJpdGVtc1wiLCBcIkl0ZW1zXCIsIFwiaW5wdXRcIiwge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBzY2hlbWE6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcImFueVwiIH0gfSxcbiAgICB9KSxcbiAgICBwb3J0KFwic2xpY2VcIiwgXCJTbGljZSBzaXplXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJudW1iZXJcIiwgaW50ZWdlcjogdHJ1ZSwgbWluOiAxIH0gfSksXG4gICAgcG9ydChcInN0YXRlXCIsIFwiSW5pdGlhbCBzdGF0ZVwiLCBcImlucHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgIHBvcnQoXCJyZXN1bHRzXCIsIFwiUmVzdWx0c1wiLCBcIm91dHB1dFwiLCB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcImFueVwiIH0gfSxcbiAgICB9KSxcbiAgICBwb3J0KFwiY29tcGxldGVkXCIsIFwiQ29tcGxldGVkXCIsIFwib3V0cHV0XCIsIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwiYW55XCIgfSB9LFxuICAgIH0pLFxuICAgIHBvcnQoXCJpdGVyYXRpb25zXCIsIFwiSXRlcmF0aW9uc1wiLCBcIm91dHB1dFwiLCB7IHNjaGVtYTogeyB0eXBlOiBcIm51bWJlclwiLCBpbnRlZ2VyOiB0cnVlLCBtaW46IDAgfSB9KSxcbiAgICBwb3J0KFwiYnJva2VuXCIsIFwiQnJva2VuXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0gfSksXG4gICAgcG9ydChcInN0YXRlXCIsIFwiRmluYWwgc3RhdGVcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pLFxuICBdLFxuICBwYXJhbWV0ZXJzOiBbXG4gICAge1xuICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIGlkOiBcIm1heEl0ZXJhdGlvbnNcIixcbiAgICAgIGxhYmVsOiBcIk1heCBpdGVyYXRpb25zXCIsXG4gICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgbWluOiAxLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIGlkOiBcImNvbmRpdGlvblwiLFxuICAgICAgbGFiZWw6IFwiQ29uZGl0aW9uXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgaWQ6IFwiaXRlbVBvcnRcIixcbiAgICAgIGxhYmVsOiBcIkl0ZW0gcG9ydFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcInJlc3VsdFBvcnRcIixcbiAgICAgIGxhYmVsOiBcIlJlc3VsdCBwb3J0XCIsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgaWQ6IFwic3RhdGVQb3J0XCIsXG4gICAgICBsYWJlbDogXCJTdGF0ZSBwb3J0XCIsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgaWQ6IFwic2xpY2VcIixcbiAgICAgIGxhYmVsOiBcIlNsaWNlIHNpemVcIixcbiAgICAgIGludGVnZXI6IHRydWUsXG4gICAgICBtaW46IDEsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmxvb3Aud2hpbGVgIG5vZGU6IHJlcGVhdHMgdGhlIGxvb3AgYm9keSB3aGlsZSB0aGUgY29uZGl0aW9uIGhvbGRzLiAqL1xuZXhwb3J0IGNvbnN0IFdISUxFX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICBraW5kOiBcImNvcmUubG9vcC53aGlsZVwiLFxuICBjYXBhYmlsaXRpZXM6IFtcImxvb3BcIl0sXG4gIGRpc3BsYXk6IHtcbiAgICBuYW1lOiBcIldoaWxlXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlJ1bnMgdGhlIGxvb3AgYm9keSB3aGlsZSB0aGUgY29uZmlndXJlZCBjb25kaXRpb24gZXZhbHVhdGVzIHRvIHRydWUsIHRocmVhZGluZyB0aGUgc3RhdGUgYmV0d2VlbiBpdGVyYXRpb25zLlwiLFxuICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgIGNvbG9yOiBcIiM4YjVjZjZcIixcbiAgICBpY29uOiB7IHR5cGU6IFwiY2F0YWxvZ3VlXCIsIG5hbWU6IFwidGktcmVwZWF0LW9uY2VcIiB9LFxuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiAxNDAsXG4gICAgbGFiZWxzOiBbXCJmbG93XCIsIFwibG9vcFwiLCBcIndoaWxlXCIsIFwiY29uZGl0aW9uXCJdLFxuICB9LFxuICBpbnB1dHM6IFtwb3J0KFwic3RhdGVcIiwgXCJJbml0aWFsIHN0YXRlXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pXSxcbiAgb3V0cHV0czogW1xuICAgIHBvcnQoXCJzdGF0ZVwiLCBcIkZpbmFsIHN0YXRlXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgICBwb3J0KFwiaXRlcmF0aW9uc1wiLCBcIkl0ZXJhdGlvbnNcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJudW1iZXJcIiwgaW50ZWdlcjogdHJ1ZSwgbWluOiAwIH0gfSksXG4gIF0sXG4gIHBhcmFtZXRlcnM6IFtcbiAgICB7XG4gICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgaWQ6IFwibWF4SXRlcmF0aW9uc1wiLFxuICAgICAgbGFiZWw6IFwiTWF4IGl0ZXJhdGlvbnNcIixcbiAgICAgIGludGVnZXI6IHRydWUsXG4gICAgICBtaW46IDEsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgaWQ6IFwiY29uZGl0aW9uXCIsXG4gICAgICBsYWJlbDogXCJDb25kaXRpb25cIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcInN0YXRlUG9ydFwiLFxuICAgICAgbGFiZWw6IFwiU3RhdGUgcG9ydFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcImlucHV0UG9ydFwiLFxuICAgICAgbGFiZWw6IFwiSW5wdXQgcG9ydFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGlkOiBcIm91dHB1dFBvcnRcIixcbiAgICAgIGxhYmVsOiBcIk91dHB1dCBwb3J0XCIsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmxvb3AudW50aWxgIG5vZGU6IHJlcGVhdHMgdGhlIGxvb3AgYm9keSB1bnRpbCB0aGUgY29uZGl0aW9uIGhvbGRzLiAqL1xuZXhwb3J0IGNvbnN0IFVOVElMX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICBraW5kOiBcImNvcmUubG9vcC51bnRpbFwiLFxuICBjYXBhYmlsaXRpZXM6IFtcImxvb3BcIl0sXG4gIGRpc3BsYXk6IHtcbiAgICBuYW1lOiBcIlVudGlsXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlJ1bnMgdGhlIGxvb3AgYm9keSBhdCBsZWFzdCBvbmNlLCB0aGVuIHJlcGVhdHMgdW50aWwgdGhlIGNvbmZpZ3VyZWQgY29uZGl0aW9uIGV2YWx1YXRlcyB0byB0cnVlLlwiLFxuICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgIGNvbG9yOiBcIiM4YjVjZjZcIixcbiAgICBpY29uOiB7IHR5cGU6IFwiY2F0YWxvZ3VlXCIsIG5hbWU6IFwidGktcmVwZWF0XCIgfSxcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogMTQwLFxuICAgIGxhYmVsczogW1wiZmxvd1wiLCBcImxvb3BcIiwgXCJ1bnRpbFwiLCBcImNvbmRpdGlvblwiXSxcbiAgfSxcbiAgaW5wdXRzOiBbcG9ydChcInN0YXRlXCIsIFwiSW5pdGlhbCBzdGF0ZVwiLCBcImlucHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KV0sXG4gIG91dHB1dHM6IFtcbiAgICBwb3J0KFwic3RhdGVcIiwgXCJGaW5hbCBzdGF0ZVwiLCBcIm91dHB1dFwiLCB7IHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0gfSksXG4gICAgcG9ydChcIml0ZXJhdGlvbnNcIiwgXCJJdGVyYXRpb25zXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMCB9IH0pLFxuICBdLFxuICBwYXJhbWV0ZXJzOiBbXG4gICAge1xuICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgIGlkOiBcIm1heEl0ZXJhdGlvbnNcIixcbiAgICAgIGxhYmVsOiBcIk1heCBpdGVyYXRpb25zXCIsXG4gICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgbWluOiAxLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIGlkOiBcImNvbmRpdGlvblwiLFxuICAgICAgbGFiZWw6IFwiQ29uZGl0aW9uXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBpZDogXCJzdGF0ZVBvcnRcIixcbiAgICAgIGxhYmVsOiBcIlN0YXRlIHBvcnRcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBpZDogXCJpbnB1dFBvcnRcIixcbiAgICAgIGxhYmVsOiBcIklucHV0IHBvcnRcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBpZDogXCJvdXRwdXRQb3J0XCIsXG4gICAgICBsYWJlbDogXCJPdXRwdXQgcG9ydFwiLFxuICAgIH0sXG4gIF0sXG59O1xuXG5jb25zdCBzd2l0Y2hDb21waWxlZCA9IGNvbXBpbGUoU3dpdGNoRmxvd05vZGUsIFwiU3dpdGNoXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBgY29yZS5mbG93LnN3aXRjaGAgbm9kZTogcm91dGVzIGV4ZWN1dGlvbiBieSBzd2l0Y2gtY2FzZSBjb25kaXRpb25zIChjYXNlcyBsaXZlIHVuZGVyIGBwYXJhbWV0ZXJzW1wic3dpdGNoXCJdYCkuICovXG5leHBvcnQgY29uc3QgU1dJVENIX0dSQVBIX05PREVfTUFOSUZFU1Q6IEdyYXBoTm9kZU1hbmlmZXN0ID0ge1xuICAuLi5zd2l0Y2hDb21waWxlZCxcbiAgb3V0cHV0czogW10sXG4gIHBhcmFtZXRlcnM6IFtcbiAgICAuLi5zd2l0Y2hDb21waWxlZC5wYXJhbWV0ZXJzLFxuICAgIHtcbiAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiLFxuICAgICAgaWQ6IFwiY2FzZXNcIixcbiAgICAgIGxhYmVsOiBcIkNhc2VzXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIGl0ZW1JZFBhdGg6IFwib3V0cHV0UG9ydFwiLFxuICAgICAgaXRlbUxhYmVsUGF0aDogXCJsYWJlbFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICBpZDogXCJoYXNEZWZhdWx0XCIsXG4gICAgICBsYWJlbDogXCJIYXMgZGVmYXVsdFwiLFxuICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICB9LFxuICBdLFxuICBkeW5hbWljUG9ydHM6IFtcbiAgICB7XG4gICAgICB0eXBlOiBcInJlcGVhdEZyb21QYXJhbWV0ZXJcIixcbiAgICAgIHBhcmFtZXRlcjogXCJjYXNlc1wiLFxuICAgICAgaXRlbUlkUGF0aDogXCJvdXRwdXRQb3J0XCIsXG4gICAgICBpdGVtTGFiZWxQYXRoOiBcImxhYmVsXCIsXG4gICAgICBkaXJlY3Rpb246IFwib3V0cHV0XCIsXG4gICAgICBwb3J0SWRUZW1wbGF0ZTogXCIke2lkfVwiLFxuICAgICAgZGVmYXVsdFBvcnQ6IHtcbiAgICAgICAgaWQ6IFwiY2FzZVwiLFxuICAgICAgICBsYWJlbDogXCJDYXNlXCIsXG4gICAgICAgIGRpcmVjdGlvbjogXCJvdXRwdXRcIixcbiAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBcInRvZ2dsZVBvcnRcIixcbiAgICAgIHBhcmFtZXRlcjogXCJoYXNEZWZhdWx0XCIsXG4gICAgICBlcXVhbHM6IHRydWUsXG4gICAgICBwb3J0OiB7XG4gICAgICAgIGlkOiBcImRlZmF1bHRcIixcbiAgICAgICAgbGFiZWw6IFwiRGVmYXVsdFwiLFxuICAgICAgICBkaXJlY3Rpb246IFwib3V0cHV0XCIsXG4gICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBtYW51YWwtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gb24gZGVtYW5kKS4gKi9cbmV4cG9ydCBjb25zdCBNQU5VQUxfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShNYW51YWxUcmlnZ2VyTm9kZSwgXCJNYW51YWwgdHJpZ2dlclwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgd2ViaG9vay10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBmcm9tIGFuIGluYm91bmQgd2ViaG9vaykuICovXG5leHBvcnQgY29uc3QgV0VCSE9PS19UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFdlYmhvb2tUcmlnZ2VyTm9kZSwgXCJXZWJob29rIHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIHNjaGVkdWxlLXRyaWdnZXIgbm9kZSAoc3RhcnRzIGEgcnVuIG9uIGEgc2NoZWR1bGUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDSEVEVUxFX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoU2NoZWR1bGVUcmlnZ2VyTm9kZSwgXCJTY2hlZHVsZSB0cmlnZ2VyXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBldmVudC10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBvbiBhbiBvYnNlcnZlZCBldmVudCkuICovXG5leHBvcnQgY29uc3QgRVZFTlRfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShFdmVudFRyaWdnZXJOb2RlLCBcIkV2ZW50IHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGZvcm0tdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gZnJvbSBhIGZvcm0gc3VibWlzc2lvbikuICovXG5leHBvcnQgY29uc3QgRk9STV9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEZvcm1UcmlnZ2VyTm9kZSwgXCJGb3JtIHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGNoYXQtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gZnJvbSBhIGNoYXQgbWVzc2FnZSkuICovXG5leHBvcnQgY29uc3QgQ0hBVF9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKENoYXRUcmlnZ2VyTm9kZSwgXCJDaGF0IHRyaWdnZXJcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGlmIG5vZGUgKGNvbmRpdGlvbmFsIGJyYW5jaCBvbiBhIGJvb2xlYW4gY29uZGl0aW9uKS4gKi9cbmV4cG9ydCBjb25zdCBJRl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShJZkZsb3dOb2RlLCBcIklmXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBwYXJhbGxlbCBub2RlIChydW5zIGJyYW5jaGVzIGNvbmN1cnJlbnRseSkuICovXG5leHBvcnQgY29uc3QgUEFSQUxMRUxfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoUGFyYWxsZWxGbG93Tm9kZSwgXCJQYXJhbGxlbFwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgbWVyZ2Ugbm9kZSAoam9pbnMgcGFyYWxsZWwgYnJhbmNoZXMpLiAqL1xuZXhwb3J0IGNvbnN0IE1FUkdFX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKE1lcmdlRmxvd05vZGUsIFwiTWVyZ2VcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIG1hcCBub2RlICh0cmFuc2Zvcm1zIGVhY2ggaW5wdXQgaXRlbSkuICovXG5leHBvcnQgY29uc3QgTUFQX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKE1hcEZsb3dOb2RlLCBcIk1hcFwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgZGVsYXkgbm9kZSAocGF1c2VzIGV4ZWN1dGlvbiBmb3IgYSBkdXJhdGlvbikuICovXG5leHBvcnQgY29uc3QgREVMQVlfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoRGVsYXlGbG93Tm9kZSwgXCJEZWxheVwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgZXJyb3ItYm91bmRhcnkgbm9kZSAoaXNvbGF0ZXMgYnJhbmNoIGZhaWx1cmVzKS4gKi9cbmV4cG9ydCBjb25zdCBFUlJPUl9CT1VOREFSWV9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShFcnJvckJvdW5kYXJ5Rmxvd05vZGUsIFwiRXJyb3IgYm91bmRhcnlcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGh1bWFuLWFwcHJvdmFsIG5vZGUgKHdhaXRzIGZvciBhbiBhcHByb3ZhbCBkZWNpc2lvbikuICovXG5leHBvcnQgY29uc3QgSFVNQU5fQVBQUk9WQUxfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoSHVtYW5BcHByb3ZhbEZsb3dOb2RlLCBcIkh1bWFuIGFwcHJvdmFsXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSByZXR1cm4gbm9kZSAodGVybWluYXRlcyB0aGUgd29ya2Zsb3cgd2l0aCBvdXRwdXQgdmFsdWVzKS4gKi9cbmV4cG9ydCBjb25zdCBSRVRVUk5fR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoUmV0dXJuRmxvd05vZGUsIFwiUmV0dXJuXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSBjb2RlIG5vZGUgKGV4ZWN1dGVzIHVzZXIgY29kZSkuICovXG5leHBvcnQgY29uc3QgQ09ERV9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShDb2RlRmxvd05vZGUsIFwiQ29kZVwiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgbG9nIG5vZGUgKGxvZ3MgaXRzIGlucHV0KS4gKi9cbmV4cG9ydCBjb25zdCBMT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoTG9nRmxvd05vZGUsIFwiTG9nXCIpO1xuXG4vKiogTWFuaWZlc3QgZm9yIHRoZSB1dGlsaXR5LWxvZyBub2RlIChsb2ctc2hhcGVkIHV0aWxpdHkgc2luaykuICovXG5leHBvcnQgY29uc3QgVVRJTElUWV9MT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoVXRpbGl0eUxvZ05vZGUsIFwiVXRpbGl0eSBMb2dcIik7XG5cbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGJyZWFrIG5vZGUgKGV4aXRzIHRoZSBlbmNsb3NpbmcgbG9vcCkuICovXG5leHBvcnQgY29uc3QgQlJFQUtfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoQnJlYWtGbG93Tm9kZSwgXCJCcmVha1wiKTtcblxuLyoqIE1hbmlmZXN0IGZvciB0aGUgYWdlbnQgbm9kZSAoZGVsZWdhdGVzIHdvcmsgdG8gYW4gYWdlbnQpLiAqL1xuZXhwb3J0IGNvbnN0IEFHRU5UX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEFnZW50Tm9kZSwgXCJBZ2VudFwiKTtcblxuLyoqIEFsbCBidWlsdC1pbiBub2RlIG1hbmlmZXN0cywgaW4gY2F0YWxvZ3VlIGRpc3BsYXkgb3JkZXIuICovXG5leHBvcnQgY29uc3QgR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFM6IEdyYXBoTm9kZU1hbmlmZXN0W10gPSBbXG4gIE1BTlVBTF9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFdFQkhPT0tfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBTQ0hFRFVMRV9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIEVWRU5UX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgRk9STV9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIENIQVRfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBJRl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBTV0lUQ0hfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgUEFSQUxMRUxfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgTUVSR0VfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgTUFQX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIERFTEFZX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIEVSUk9SX0JPVU5EQVJZX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIEhVTUFOX0FQUFJPVkFMX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFJFVFVSTl9HUkFQSF9OT0RFX01BTklGRVNULFxuICBDT0RFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIExPR19HUkFQSF9OT0RFX01BTklGRVNULFxuICBVVElMSVRZX0xPR19HUkFQSF9OT0RFX01BTklGRVNULFxuICBCUkVBS19HUkFQSF9OT0RFX01BTklGRVNULFxuICBBR0VOVF9HUkFQSF9OT0RFX01BTklGRVNULFxuICBGT1JFQUNIX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFdISUxFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gIFVOVElMX0dSQVBIX05PREVfTUFOSUZFU1QsXG5dO1xuXG4vKiogQnVpbHQtaW4gbWFuaWZlc3RzIGluZGV4ZWQgYnkgbm9kZSBga2luZGAg4oCUIHRoZSBzb3VyY2UgZm9yIGJ1aWx0LWluIGNhdGFsb2d1ZSByZWdpc3RyYXRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0JVSUxUX0lOX05PREVfTUFOSUZFU1RTX0JZX0tJTkQ6IFJlY29yZDxcbiAgc3RyaW5nLFxuICBHcmFwaE5vZGVNYW5pZmVzdFxuPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFMubWFwKChtYW5pZmVzdCkgPT4gW21hbmlmZXN0LmtpbmQsIG1hbmlmZXN0XSlcbik7XG4iXX0=
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFuaWZlc3RzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUEwRDtBQUMxRCxnREFBOEM7QUFDOUMsc0RBQXdEO0FBQ3hELHdFQUF5RTtBQUN6RSx3RUFBeUU7QUFDekUsZ0RBQWtEO0FBQ2xELDREQUE4RDtBQUM5RCx3REFBMEQ7QUFDMUQsK0NBQWlEO0FBQ2pELGlEQUFtRDtBQUNuRCw2Q0FBK0M7QUFDL0MsNkNBQStDO0FBQy9DLGlEQUFtRDtBQUNuRCxtREFBcUQ7QUFDckQsNkRBQTBEO0FBQzFELGdEQUFxRDtBQUNyRCxrREFBdUQ7QUFDdkQsZ0RBQXFEO0FBQ3JELG9EQUF5RDtBQUN6RCx3REFBNkQ7QUFDN0Qsc0RBQTJEO0FBQzNEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsRUFBRTtJQUMxQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBQ0Q7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSTtJQUN2QixPQUFPLElBQUEsNEJBQWlCLEVBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsaUhBQWlIO0FBQ3BHLFFBQUEsMkJBQTJCLEdBQUc7SUFDdkMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDdEIsT0FBTyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsK0dBQStHO1FBQzVILFFBQVEsRUFBRSxjQUFjO1FBQ3hCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxF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UyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JFLCtEQUErRDtBQUNsRCxRQUFBLDZCQUE2QixHQUFHO0lBQ3pDLDBDQUFrQztJQUNsQywyQ0FBbUM7SUFDbkMsNENBQW9DO0lBQ3BDLHlDQUFpQztJQUNqQyx3Q0FBZ0M7SUFDaEMsd0NBQWdDO0lBQ2hDLDhCQUFzQjtJQUN0QixrQ0FBMEI7SUFDMUIsb0NBQTRCO0lBQzVCLGlDQUF5QjtJQUN6QiwrQkFBdUI7SUFDdkIsaUNBQXlCO0lBQ3pCLDBDQUFrQztJQUNsQywwQ0FBa0M7SUFDbEMsa0NBQTBCO0lBQzFCLGdDQUF3QjtJQUN4QiwrQkFBdUI7SUFDdkIsdUNBQStCO0lBQy9CLGlDQUF5QjtJQUN6QixpQ0FBeUI7SUFDekIsbUNBQTJCO0lBQzNCLGlDQUF5QjtJQUN6QixpQ0FBeUI7Q0FDNUIsQ0FBQztBQUNGLG1HQUFtRztBQUN0RixRQUFBLHFDQUFxQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMscUNBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BKLGtpNkJBQWtpNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncmFwaE5vZGVNYW5pZmVzdCB9IGZyb20gXCIuLy4uL2NhdGFsb2cvaW5kZXguanNcIjtcbmltcG9ydCB7IEFnZW50Tm9kZSB9IGZyb20gXCIuL2FnZW50cy9hZ2VudC5qc1wiO1xuaW1wb3J0IHsgQnJlYWtGbG93Tm9kZSB9IGZyb20gXCIuL2Zsb3ctY29udHJvbC9icmVhay5qc1wiO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeUZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL2Vycm9yLWJvdW5kYXJ5LmpzXCI7XG5pbXBvcnQgeyBIdW1hbkFwcHJvdmFsRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvaHVtYW4tYXBwcm92YWwuanNcIjtcbmltcG9ydCB7IElmRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvaWYuanNcIjtcbmltcG9ydCB7IFBhcmFsbGVsRmxvd05vZGUgfSBmcm9tIFwiLi9mbG93LWNvbnRyb2wvcGFyYWxsZWwuanNcIjtcbmltcG9ydCB7IFN3aXRjaEZsb3dOb2RlIH0gZnJvbSBcIi4vZmxvdy1jb250cm9sL3N3aXRjaC5qc1wiO1xuaW1wb3J0IHsgQ29kZUZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9jb2RlLmpzXCI7XG5pbXBvcnQgeyBEZWxheUZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9kZWxheS5qc1wiO1xuaW1wb3J0IHsgTG9nRmxvd05vZGUgfSBmcm9tIFwiLi91dGlsaXR5L2xvZy5qc1wiO1xuaW1wb3J0IHsgTWFwRmxvd05vZGUgfSBmcm9tIFwiLi91dGlsaXR5L21hcC5qc1wiO1xuaW1wb3J0IHsgTWVyZ2VGbG93Tm9kZSB9IGZyb20gXCIuL3V0aWxpdHkvbWVyZ2UuanNcIjtcbmltcG9ydCB7IFJldHVybkZsb3dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS9yZXR1cm4uanNcIjtcbmltcG9ydCB7IFV0aWxpdHlMb2dOb2RlIH0gZnJvbSBcIi4vdXRpbGl0eS91dGlsaXR5LWxvZy5qc1wiO1xuaW1wb3J0IHsgQ2hhdFRyaWdnZXJOb2RlIH0gZnJvbSBcIi4vdHJpZ2dlcnMvY2hhdC5qc1wiO1xuaW1wb3J0IHsgRXZlbnRUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL2V2ZW50LmpzXCI7XG5pbXBvcnQgeyBGb3JtVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy9mb3JtLmpzXCI7XG5pbXBvcnQgeyBNYW51YWxUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL21hbnVhbC5qc1wiO1xuaW1wb3J0IHsgU2NoZWR1bGVUcmlnZ2VyTm9kZSB9IGZyb20gXCIuL3RyaWdnZXJzL3NjaGVkdWxlLmpzXCI7XG5pbXBvcnQgeyBXZWJob29rVHJpZ2dlck5vZGUgfSBmcm9tIFwiLi90cmlnZ2Vycy93ZWJob29rLmpzXCI7XG4vKipcbiAqIEJ1aWxkcyBhIHNpbmdsZSB7QGxpbmsgR3JhcGhQb3J0TWFuaWZlc3R9IGZyb20gaXRzIGlkLCBsYWJlbCwgZGlyZWN0aW9uLFxuICogYW5kIG9wdGlvbmFsIGV4dHJhIGZpZWxkcyDigJQgdGhlIHRlcnNlIGNvbnN0cnVjdG9yIHVzZWQgYnkgdGhlIGhhbmQtYXV0aG9yZWRcbiAqIGxvb3AgbWFuaWZlc3RzIGJlbG93LlxuICpcbiAqIEBwYXJhbSBpZCAtIFBvcnQgaWRlbnRpZmllciAobWF0Y2hlcyB0aGUgZGVjb3JhdGVkIHByb3BlcnR5IGhhbmRsZSkuXG4gKiBAcGFyYW0gbGFiZWwgLSBIdW1hbi1yZWFkYWJsZSBwb3J0IGxhYmVsLlxuICogQHBhcmFtIGRpcmVjdGlvbiAtIFBvcnQgZGlyZWN0aW9uIChgaW5wdXRgIG9yIGBvdXRwdXRgKS5cbiAqIEBwYXJhbSBleHRyYSAtIE9wdGlvbmFsIG1hbmlmZXN0IGZpZWxkcyBtZXJnZWQgb3ZlciB0aGUgZGVmYXVsdHMuXG4gKiBAcmV0dXJucyBUaGUgYXNzZW1ibGVkIHBvcnQgbWFuaWZlc3QuXG4gKi9cbmZ1bmN0aW9uIHBvcnQoaWQsIGxhYmVsLCBkaXJlY3Rpb24sIGV4dHJhID0ge30pIHtcbiAgICByZXR1cm4geyBpZCwgbGFiZWwsIGRpcmVjdGlvbiwgLi4uZXh0cmEgfTtcbn1cbi8qKlxuICogQ29tcGlsZXMgYSBgQG5vZGVgLWRlY29yYXRlZCBjbGFzcyBpbnRvIGl0cyBwdWJsaXNoZWRcbiAqIHtAbGluayBHcmFwaE5vZGVNYW5pZmVzdH0sIHNvIHRoZSBzZXJ2ZWQgc2hhcGUgbWF0Y2hlcyB3aGF0IHRoZSBBbmd1bGFyXG4gKiBwYWxldHRlIGNvbnN1bWVzLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGRlY29yYXRlZCBub2RlIGNsYXNzIGNvbnN0cnVjdG9yLlxuICogQHBhcmFtIG5hbWUgLSBEaXNwbGF5IG5hbWUgb3ZlcnJpZGUgZm9yIHRoZSBjb21waWxlZCBtYW5pZmVzdC5cbiAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBub2RlIG1hbmlmZXN0LlxuICovXG5mdW5jdGlvbiBjb21waWxlKG5vZGUsIG5hbWUpIHtcbiAgICByZXR1cm4gZ3JhcGhOb2RlTWFuaWZlc3Qobm9kZSwgeyBuYW1lIH0pO1xufVxuLyoqIE1hbmlmZXN0IGZvciB0aGUgYGNvcmUubG9vcC5mb3JlYWNoYCBub2RlOiBydW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3Igc2xpY2UpIG9mIHRoZSBpbnB1dCBhcnJheS4gKi9cbmV4cG9ydCBjb25zdCBGT1JFQUNIX0dSQVBIX05PREVfTUFOSUZFU1QgPSB7XG4gICAga2luZDogXCJjb3JlLmxvb3AuZm9yZWFjaFwiLFxuICAgIGNhcGFiaWxpdGllczogW1wibG9vcFwiXSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIG5hbWU6IFwiRm9yZWFjaFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJSdW5zIHRoZSBsb29wIGJvZHkgb25jZSBwZXIgaXRlbSAob3IgcGVyIHNsaWNlIG9mIGl0ZW1zKSBvZiB0aGUgaW5wdXQgYXJyYXksIGNvbGxlY3RpbmcgdGhlIHJlc3VsdHMgaW4gb3JkZXIuXCIsXG4gICAgICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgICAgICBjb2xvcjogXCIjOGI1Y2Y2XCIsXG4gICAgICAgIGljb246IHsgdHlwZTogXCJjYXRhbG9ndWVcIiwgbmFtZTogXCJ0aS1yZXBlYXRcIiB9LFxuICAgICAgICB3aWR0aDogMTIwLFxuICAgICAgICBoZWlnaHQ6IDE0MCxcbiAgICAgICAgbGFiZWxzOiBbXCJmbG93XCIsIFwibG9vcFwiLCBcImZvcmVhY2hcIiwgXCJpdGVyYXRpb25cIl0sXG4gICAgfSxcbiAgICBpbnB1dHM6IFtcbiAgICAgICAgcG9ydChcIml0ZW1zXCIsIFwiSXRlbXNcIiwgXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwiYW55XCIgfSB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcG9ydChcInNsaWNlXCIsIFwiU2xpY2Ugc2l6ZVwiLCBcImlucHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMSB9IH0pLFxuICAgICAgICBwb3J0KFwic3RhdGVcIiwgXCJJbml0aWFsIHN0YXRlXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pLFxuICAgIF0sXG4gICAgb3V0cHV0czogW1xuICAgICAgICBwb3J0KFwicmVzdWx0c1wiLCBcIlJlc3VsdHNcIiwgXCJvdXRwdXRcIiwge1xuICAgICAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwiYXJyYXlcIiwgaXRlbXM6IHsgdHlwZTogXCJhbnlcIiB9IH0sXG4gICAgICAgIH0pLFxuICAgICAgICBwb3J0KFwiY29tcGxldGVkXCIsIFwiQ29tcGxldGVkXCIsIFwib3V0cHV0XCIsIHtcbiAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwiYW55XCIgfSB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcG9ydChcIml0ZXJhdGlvbnNcIiwgXCJJdGVyYXRpb25zXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMCB9IH0pLFxuICAgICAgICBwb3J0KFwiYnJva2VuXCIsIFwiQnJva2VuXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0gfSksXG4gICAgICAgIHBvcnQoXCJzdGF0ZVwiLCBcIkZpbmFsIHN0YXRlXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgICBdLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGlkOiBcIm1heEl0ZXJhdGlvbnNcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIk1heCBpdGVyYXRpb25zXCIsXG4gICAgICAgICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgaWQ6IFwiY29uZGl0aW9uXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJDb25kaXRpb25cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcIml0ZW1Qb3J0XCIsXG4gICAgICAgICAgICBsYWJlbDogXCJJdGVtIHBvcnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcInJlc3VsdFBvcnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlJlc3VsdCBwb3J0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpZDogXCJzdGF0ZVBvcnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlN0YXRlIHBvcnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGlkOiBcInNsaWNlXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJTbGljZSBzaXplXCIsXG4gICAgICAgICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICB9LFxuICAgIF0sXG59O1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgYGNvcmUubG9vcC53aGlsZWAgbm9kZTogcmVwZWF0cyB0aGUgbG9vcCBib2R5IHdoaWxlIHRoZSBjb25kaXRpb24gaG9sZHMuICovXG5leHBvcnQgY29uc3QgV0hJTEVfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IHtcbiAgICBraW5kOiBcImNvcmUubG9vcC53aGlsZVwiLFxuICAgIGNhcGFiaWxpdGllczogW1wibG9vcFwiXSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIG5hbWU6IFwiV2hpbGVcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUnVucyB0aGUgbG9vcCBib2R5IHdoaWxlIHRoZSBjb25maWd1cmVkIGNvbmRpdGlvbiBldmFsdWF0ZXMgdG8gdHJ1ZSwgdGhyZWFkaW5nIHRoZSBzdGF0ZSBiZXR3ZWVuIGl0ZXJhdGlvbnMuXCIsXG4gICAgICAgIGNhdGVnb3J5OiBcIkZsb3cgQ29udHJvbFwiLFxuICAgICAgICBjb2xvcjogXCIjOGI1Y2Y2XCIsXG4gICAgICAgIGljb246IHsgdHlwZTogXCJjYXRhbG9ndWVcIiwgbmFtZTogXCJ0aS1yZXBlYXQtb25jZVwiIH0sXG4gICAgICAgIHdpZHRoOiAxMjAsXG4gICAgICAgIGhlaWdodDogMTQwLFxuICAgICAgICBsYWJlbHM6IFtcImZsb3dcIiwgXCJsb29wXCIsIFwid2hpbGVcIiwgXCJjb25kaXRpb25cIl0sXG4gICAgfSxcbiAgICBpbnB1dHM6IFtwb3J0KFwic3RhdGVcIiwgXCJJbml0aWFsIHN0YXRlXCIsIFwiaW5wdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pXSxcbiAgICBvdXRwdXRzOiBbXG4gICAgICAgIHBvcnQoXCJzdGF0ZVwiLCBcIkZpbmFsIHN0YXRlXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSB9KSxcbiAgICAgICAgcG9ydChcIml0ZXJhdGlvbnNcIiwgXCJJdGVyYXRpb25zXCIsIFwib3V0cHV0XCIsIHsgc2NoZW1hOiB7IHR5cGU6IFwibnVtYmVyXCIsIGludGVnZXI6IHRydWUsIG1pbjogMCB9IH0pLFxuICAgIF0sXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgaWQ6IFwibWF4SXRlcmF0aW9uc1wiLFxuICAgICAgICAgICAgbGFiZWw6IFwiTWF4IGl0ZXJhdGlvbnNcIixcbiAgICAgICAgICAgIGludGVnZXI6IHRydWUsXG4gICAgICAgICAgICBtaW46IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBpZDogXCJjb25kaXRpb25cIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkNvbmRpdGlvblwiLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpZDogXCJzdGF0ZVBvcnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlN0YXRlIHBvcnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcImlucHV0UG9ydFwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiSW5wdXQgcG9ydFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgaWQ6IFwib3V0cHV0UG9ydFwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiT3V0cHV0IHBvcnRcIixcbiAgICAgICAgfSxcbiAgICBdLFxufTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmxvb3AudW50aWxgIG5vZGU6IHJlcGVhdHMgdGhlIGxvb3AgYm9keSB1bnRpbCB0aGUgY29uZGl0aW9uIGhvbGRzLiAqL1xuZXhwb3J0IGNvbnN0IFVOVElMX0dSQVBIX05PREVfTUFOSUZFU1QgPSB7XG4gICAga2luZDogXCJjb3JlLmxvb3AudW50aWxcIixcbiAgICBjYXBhYmlsaXRpZXM6IFtcImxvb3BcIl0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBuYW1lOiBcIlVudGlsXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1bnMgdGhlIGxvb3AgYm9keSBhdCBsZWFzdCBvbmNlLCB0aGVuIHJlcGVhdHMgdW50aWwgdGhlIGNvbmZpZ3VyZWQgY29uZGl0aW9uIGV2YWx1YXRlcyB0byB0cnVlLlwiLFxuICAgICAgICBjYXRlZ29yeTogXCJGbG93IENvbnRyb2xcIixcbiAgICAgICAgY29sb3I6IFwiIzhiNWNmNlwiLFxuICAgICAgICBpY29uOiB7IHR5cGU6IFwiY2F0YWxvZ3VlXCIsIG5hbWU6IFwidGktcmVwZWF0XCIgfSxcbiAgICAgICAgd2lkdGg6IDEyMCxcbiAgICAgICAgaGVpZ2h0OiAxNDAsXG4gICAgICAgIGxhYmVsczogW1wiZmxvd1wiLCBcImxvb3BcIiwgXCJ1bnRpbFwiLCBcImNvbmRpdGlvblwiXSxcbiAgICB9LFxuICAgIGlucHV0czogW3BvcnQoXCJzdGF0ZVwiLCBcIkluaXRpYWwgc3RhdGVcIiwgXCJpbnB1dFwiLCB7IHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0gfSldLFxuICAgIG91dHB1dHM6IFtcbiAgICAgICAgcG9ydChcInN0YXRlXCIsIFwiRmluYWwgc3RhdGVcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJhbnlcIiB9IH0pLFxuICAgICAgICBwb3J0KFwiaXRlcmF0aW9uc1wiLCBcIkl0ZXJhdGlvbnNcIiwgXCJvdXRwdXRcIiwgeyBzY2hlbWE6IHsgdHlwZTogXCJudW1iZXJcIiwgaW50ZWdlcjogdHJ1ZSwgbWluOiAwIH0gfSksXG4gICAgXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBpZDogXCJtYXhJdGVyYXRpb25zXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJNYXggaXRlcmF0aW9uc1wiLFxuICAgICAgICAgICAgaW50ZWdlcjogdHJ1ZSxcbiAgICAgICAgICAgIG1pbjogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIGlkOiBcImNvbmRpdGlvblwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiQ29uZGl0aW9uXCIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGlkOiBcInN0YXRlUG9ydFwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiU3RhdGUgcG9ydFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgaWQ6IFwiaW5wdXRQb3J0XCIsXG4gICAgICAgICAgICBsYWJlbDogXCJJbnB1dCBwb3J0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpZDogXCJvdXRwdXRQb3J0XCIsXG4gICAgICAgICAgICBsYWJlbDogXCJPdXRwdXQgcG9ydFwiLFxuICAgICAgICB9LFxuICAgIF0sXG59O1xuY29uc3Qgc3dpdGNoQ29tcGlsZWQgPSBjb21waWxlKFN3aXRjaEZsb3dOb2RlLCBcIlN3aXRjaFwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGBjb3JlLmZsb3cuc3dpdGNoYCBub2RlOiByb3V0ZXMgZXhlY3V0aW9uIGJ5IHN3aXRjaC1jYXNlIGNvbmRpdGlvbnMgKGNhc2VzIGxpdmUgdW5kZXIgYHBhcmFtZXRlcnNbXCJzd2l0Y2hcIl1gKS4gKi9cbmV4cG9ydCBjb25zdCBTV0lUQ0hfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IHtcbiAgICAuLi5zd2l0Y2hDb21waWxlZCxcbiAgICBvdXRwdXRzOiBbXSxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgIC4uLnN3aXRjaENvbXBpbGVkLnBhcmFtZXRlcnMsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiLFxuICAgICAgICAgICAgaWQ6IFwiY2FzZXNcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkNhc2VzXCIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGl0ZW1JZFBhdGg6IFwib3V0cHV0UG9ydFwiLFxuICAgICAgICAgICAgaXRlbUxhYmVsUGF0aDogXCJsYWJlbFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGlkOiBcImhhc0RlZmF1bHRcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkhhcyBkZWZhdWx0XCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZHluYW1pY1BvcnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwicmVwZWF0RnJvbVBhcmFtZXRlclwiLFxuICAgICAgICAgICAgcGFyYW1ldGVyOiBcImNhc2VzXCIsXG4gICAgICAgICAgICBpdGVtSWRQYXRoOiBcIm91dHB1dFBvcnRcIixcbiAgICAgICAgICAgIGl0ZW1MYWJlbFBhdGg6IFwibGFiZWxcIixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogXCJvdXRwdXRcIixcbiAgICAgICAgICAgIHBvcnRJZFRlbXBsYXRlOiBcIiR7aWR9XCIsXG4gICAgICAgICAgICBkZWZhdWx0UG9ydDoge1xuICAgICAgICAgICAgICAgIGlkOiBcImNhc2VcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDYXNlXCIsXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBcIm91dHB1dFwiLFxuICAgICAgICAgICAgICAgIHNjaGVtYTogeyB0eXBlOiBcImFueVwiIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInRvZ2dsZVBvcnRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcjogXCJoYXNEZWZhdWx0XCIsXG4gICAgICAgICAgICBlcXVhbHM6IHRydWUsXG4gICAgICAgICAgICBwb3J0OiB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkRlZmF1bHRcIixcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwib3V0cHV0XCIsXG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwiYW55XCIgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgXSxcbn07XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBtYW51YWwtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gb24gZGVtYW5kKS4gKi9cbmV4cG9ydCBjb25zdCBNQU5VQUxfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShNYW51YWxUcmlnZ2VyTm9kZSwgXCJNYW51YWwgdHJpZ2dlclwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIHdlYmhvb2stdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gZnJvbSBhbiBpbmJvdW5kIHdlYmhvb2spLiAqL1xuZXhwb3J0IGNvbnN0IFdFQkhPT0tfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShXZWJob29rVHJpZ2dlck5vZGUsIFwiV2ViaG9vayB0cmlnZ2VyXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgc2NoZWR1bGUtdHJpZ2dlciBub2RlIChzdGFydHMgYSBydW4gb24gYSBzY2hlZHVsZSkuICovXG5leHBvcnQgY29uc3QgU0NIRURVTEVfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShTY2hlZHVsZVRyaWdnZXJOb2RlLCBcIlNjaGVkdWxlIHRyaWdnZXJcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBldmVudC10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBvbiBhbiBvYnNlcnZlZCBldmVudCkuICovXG5leHBvcnQgY29uc3QgRVZFTlRfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShFdmVudFRyaWdnZXJOb2RlLCBcIkV2ZW50IHRyaWdnZXJcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBmb3JtLXRyaWdnZXIgbm9kZSAoc3RhcnRzIGEgcnVuIGZyb20gYSBmb3JtIHN1Ym1pc3Npb24pLiAqL1xuZXhwb3J0IGNvbnN0IEZPUk1fVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShGb3JtVHJpZ2dlck5vZGUsIFwiRm9ybSB0cmlnZ2VyXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgY2hhdC10cmlnZ2VyIG5vZGUgKHN0YXJ0cyBhIHJ1biBmcm9tIGEgY2hhdCBtZXNzYWdlKS4gKi9cbmV4cG9ydCBjb25zdCBDSEFUX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoQ2hhdFRyaWdnZXJOb2RlLCBcIkNoYXQgdHJpZ2dlclwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGlmIG5vZGUgKGNvbmRpdGlvbmFsIGJyYW5jaCBvbiBhIGJvb2xlYW4gY29uZGl0aW9uKS4gKi9cbmV4cG9ydCBjb25zdCBJRl9HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShJZkZsb3dOb2RlLCBcIklmXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgcGFyYWxsZWwgbm9kZSAocnVucyBicmFuY2hlcyBjb25jdXJyZW50bHkpLiAqL1xuZXhwb3J0IGNvbnN0IFBBUkFMTEVMX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFBhcmFsbGVsRmxvd05vZGUsIFwiUGFyYWxsZWxcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBtZXJnZSBub2RlIChqb2lucyBwYXJhbGxlbCBicmFuY2hlcykuICovXG5leHBvcnQgY29uc3QgTUVSR0VfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoTWVyZ2VGbG93Tm9kZSwgXCJNZXJnZVwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIG1hcCBub2RlICh0cmFuc2Zvcm1zIGVhY2ggaW5wdXQgaXRlbSkuICovXG5leHBvcnQgY29uc3QgTUFQX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKE1hcEZsb3dOb2RlLCBcIk1hcFwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGRlbGF5IG5vZGUgKHBhdXNlcyBleGVjdXRpb24gZm9yIGEgZHVyYXRpb24pLiAqL1xuZXhwb3J0IGNvbnN0IERFTEFZX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKERlbGF5Rmxvd05vZGUsIFwiRGVsYXlcIik7XG4vKiogTWFuaWZlc3QgZm9yIHRoZSBlcnJvci1ib3VuZGFyeSBub2RlIChpc29sYXRlcyBicmFuY2ggZmFpbHVyZXMpLiAqL1xuZXhwb3J0IGNvbnN0IEVSUk9SX0JPVU5EQVJZX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEVycm9yQm91bmRhcnlGbG93Tm9kZSwgXCJFcnJvciBib3VuZGFyeVwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGh1bWFuLWFwcHJvdmFsIG5vZGUgKHdhaXRzIGZvciBhbiBhcHByb3ZhbCBkZWNpc2lvbikuICovXG5leHBvcnQgY29uc3QgSFVNQU5fQVBQUk9WQUxfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoSHVtYW5BcHByb3ZhbEZsb3dOb2RlLCBcIkh1bWFuIGFwcHJvdmFsXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgcmV0dXJuIG5vZGUgKHRlcm1pbmF0ZXMgdGhlIHdvcmtmbG93IHdpdGggb3V0cHV0IHZhbHVlcykuICovXG5leHBvcnQgY29uc3QgUkVUVVJOX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFJldHVybkZsb3dOb2RlLCBcIlJldHVyblwiKTtcbi8qKiBNYW5pZmVzdCBmb3IgdGhlIGNvZGUgbm9kZSAoZXhlY3V0ZXMgdXNlciBjb2RlKS4gKi9cbmV4cG9ydCBjb25zdCBDT0RFX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKENvZGVGbG93Tm9kZSwgXCJDb2RlXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgbG9nIG5vZGUgKGxvZ3MgaXRzIGlucHV0KS4gKi9cbmV4cG9ydCBjb25zdCBMT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCA9IGNvbXBpbGUoTG9nRmxvd05vZGUsIFwiTG9nXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgdXRpbGl0eS1sb2cgbm9kZSAobG9nLXNoYXBlZCB1dGlsaXR5IHNpbmspLiAqL1xuZXhwb3J0IGNvbnN0IFVUSUxJVFlfTE9HX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKFV0aWxpdHlMb2dOb2RlLCBcIlV0aWxpdHkgTG9nXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgYnJlYWsgbm9kZSAoZXhpdHMgdGhlIGVuY2xvc2luZyBsb29wKS4gKi9cbmV4cG9ydCBjb25zdCBCUkVBS19HUkFQSF9OT0RFX01BTklGRVNUID0gY29tcGlsZShCcmVha0Zsb3dOb2RlLCBcIkJyZWFrXCIpO1xuLyoqIE1hbmlmZXN0IGZvciB0aGUgYWdlbnQgbm9kZSAoZGVsZWdhdGVzIHdvcmsgdG8gYW4gYWdlbnQpLiAqL1xuZXhwb3J0IGNvbnN0IEFHRU5UX0dSQVBIX05PREVfTUFOSUZFU1QgPSBjb21waWxlKEFnZW50Tm9kZSwgXCJBZ2VudFwiKTtcbi8qKiBBbGwgYnVpbHQtaW4gbm9kZSBtYW5pZmVzdHMsIGluIGNhdGFsb2d1ZSBkaXNwbGF5IG9yZGVyLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0JVSUxUX0lOX05PREVfTUFOSUZFU1RTID0gW1xuICAgIE1BTlVBTF9UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgV0VCSE9PS19UUklHR0VSX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgU0NIRURVTEVfVFJJR0dFUl9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIEVWRU5UX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBGT1JNX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBDSEFUX1RSSUdHRVJfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBJRl9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIFNXSVRDSF9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIFBBUkFMTEVMX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgTUVSR0VfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBNQVBfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBERUxBWV9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIEVSUk9SX0JPVU5EQVJZX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgSFVNQU5fQVBQUk9WQUxfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBSRVRVUk5fR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBDT0RFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgTE9HX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgVVRJTElUWV9MT0dfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbiAgICBCUkVBS19HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIEFHRU5UX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgRk9SRUFDSF9HUkFQSF9OT0RFX01BTklGRVNULFxuICAgIFdISUxFX0dSQVBIX05PREVfTUFOSUZFU1QsXG4gICAgVU5USUxfR1JBUEhfTk9ERV9NQU5JRkVTVCxcbl07XG4vKiogQnVpbHQtaW4gbWFuaWZlc3RzIGluZGV4ZWQgYnkgbm9kZSBga2luZGAg4oCUIHRoZSBzb3VyY2UgZm9yIGJ1aWx0LWluIGNhdGFsb2d1ZSByZWdpc3RyYXRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0JVSUxUX0lOX05PREVfTUFOSUZFU1RTX0JZX0tJTkQgPSBPYmplY3QuZnJvbUVudHJpZXMoR1JBUEhfQlVJTFRfSU5fTk9ERV9NQU5JRkVTVFMubWFwKChtYW5pZmVzdCkgPT4gW21hbmlmZXN0LmtpbmQsIG1hbmlmZXN0XSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGdWFXWmxjM1J6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwyZHlZWEJvTDI1dlpHVnpMMjFoYm1sbVpYTjBjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGbFFTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzT0VKQlFXMUNPMEZCUlM5RExFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFVVXNNRUpCUVhWQ08wRkJRek5ETEU5QlFVOHNSVUZCUlN4aFFVRmhMRVZCUVVVc1owTkJRVFpDTzBGQlEzSkVMRTlCUVU4c1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4NVEwRkJjME03UVVGRGRFVXNUMEZCVHl4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEhsRFFVRnpRenRCUVVOMFJTeFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVRkZMRFpDUVVFd1FqdEJRVU12UXl4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNiVU5CUVdkRE8wRkJRek5FTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc2FVTkJRVGhDTzBGQlEzWkVMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzTUVKQlFYVkNPMEZCUXpsRExFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNNa0pCUVhkQ08wRkJRMmhFTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc2VVSkJRWE5DTzBGQlF6VkRMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzZVVKQlFYTkNPMEZCUXpWRExFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNNa0pCUVhkQ08wRkJRMmhFTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc05FSkJRWGxDTzBGQlEyeEVMRTlCUVU4c1JVRkJSU3hqUVVGakxFVkJRVVVzYVVOQlFUaENPMEZCUTNaRUxFOUJRVThzUlVGQlJTeGxRVUZsTEVWQlFVVXNNa0pCUVhkQ08wRkJRMnhFTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUlVGQlJTdzBRa0ZCZVVJN1FVRkRjRVFzVDBGQlR5eEZRVUZGTEdWQlFXVXNSVUZCUlN3eVFrRkJkMEk3UVVGRGJFUXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTERaQ1FVRXdRanRCUVVOMFJDeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzSzBKQlFUUkNPMEZCUXpGRUxFOUJRVThzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3c0UWtGQk1rSTdRVUZGZUVRN096czdPenM3T3pzN1IwRlZSenRCUVVOSUxGTkJRVk1zU1VGQlNTeERRVU5ZTEVWQlFWVXNSVUZEVml4TFFVRmhMRVZCUTJJc1UwRkJOa0lzUlVGRE4wSXNVVUZCYjBNc1JVRkJSVHRKUVVWMFF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hUUVVGVExFVkJRVVVzUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXp0QlFVTTFReXhEUVVGRE8wRkJSVVE3T3pzN096czdPMGRCVVVjN1FVRkRTQ3hUUVVGVExFOUJRVThzUTBGQlF5eEpRVUZoTEVWQlFVVXNTVUZCV1R0SlFVTXhReXhQUVVGUExHbENRVUZwUWl4RFFVRkRMRWxCUVcxQ0xFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeHBTRUZCYVVnN1FVRkRha2dzVFVGQlRTeERRVUZETEUxQlFVMHNNa0pCUVRKQ0xFZEJRWE5DTzBsQlF6VkVMRWxCUVVrc1JVRkJSU3h0UWtGQmJVSTdTVUZEZWtJc1dVRkJXU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEzUkNMRTlCUVU4c1JVRkJSVHRSUVVOUUxFbEJRVWtzUlVGQlJTeFRRVUZUTzFGQlEyWXNWMEZCVnl4RlFVTlVMQ3RIUVVFclJ6dFJRVU5xU0N4UlFVRlJMRVZCUVVVc1kwRkJZenRSUVVONFFpeExRVUZMTEVWQlFVVXNVMEZCVXp0UlFVTm9RaXhKUVVGSkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVU3VVVGRE9VTXNTMEZCU3l4RlFVRkZMRWRCUVVjN1VVRkRWaXhOUVVGTkxFVkJRVVVzUjBGQlJ6dFJRVU5ZTEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEZkQlFWY3NRMEZCUXp0TFFVTnFSRHRKUVVORUxFMUJRVTBzUlVGQlJUdFJRVU5PTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJUdFpRVU01UWl4UlFVRlJMRVZCUVVVc1NVRkJTVHRaUVVOa0xFMUJRVTBzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZPMU5CUTJ4RUxFTkJRVU03VVVGRFJpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3hQUVVGUExFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRE0wWXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzVDBGQlR5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTTdTMEZEY2tVN1NVRkRSQ3hQUVVGUExFVkJRVVU3VVVGRFVDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hSUVVGUkxFVkJRVVU3V1VGRGJrTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VTBGRGJFUXNRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzVjBGQlZ5eEZRVUZGTEZGQlFWRXNSVUZCUlR0WlFVTjJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0VFFVTnNSQ3hEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRMnBITEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyNUZMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRPMHRCUTNCRk8wbEJRMFFzVlVGQlZTeEZRVUZGTzFGQlExWTdXVUZEUlN4SlFVRkpMRVZCUVVVc1VVRkJVVHRaUVVOa0xFVkJRVVVzUlVGQlJTeGxRVUZsTzFsQlEyNUNMRXRCUVVzc1JVRkJSU3huUWtGQlowSTdXVUZEZGtJc1QwRkJUeXhGUVVGRkxFbEJRVWs3V1VGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXp0VFFVTlFPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4WFFVRlhPMWxCUTJZc1MwRkJTeXhGUVVGRkxGZEJRVmM3VTBGRGJrSTdVVUZEUkR0WlFVTkZMRWxCUVVrc1JVRkJSU3hSUVVGUk8xbEJRMlFzUlVGQlJTeEZRVUZGTEZWQlFWVTdXVUZEWkN4TFFVRkxMRVZCUVVVc1YwRkJWenRUUVVOdVFqdFJRVU5FTzFsQlEwVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1dVRkRaQ3hGUVVGRkxFVkJRVVVzV1VGQldUdFpRVU5vUWl4TFFVRkxMRVZCUVVVc1lVRkJZVHRUUVVOeVFqdFJRVU5FTzFsQlEwVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1dVRkRaQ3hGUVVGRkxFVkJRVVVzVjBGQlZ6dFpRVU5tTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ08xRkJRMFE3V1VGRFJTeEpRVUZKTEVWQlFVVXNVVUZCVVR0WlFVTmtMRVZCUVVVc1JVRkJSU3hQUVVGUE8xbEJRMWdzUzBGQlN5eEZRVUZGTEZsQlFWazdXVUZEYmtJc1QwRkJUeXhGUVVGRkxFbEJRVWs3V1VGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXp0VFFVTlFPMHRCUTBZN1EwRkRSaXhEUVVGRE8wRkJSVVlzWjBkQlFXZEhPMEZCUTJoSExFMUJRVTBzUTBGQlF5eE5RVUZOTEhsQ1FVRjVRaXhIUVVGelFqdEpRVU14UkN4SlFVRkpMRVZCUVVVc2FVSkJRV2xDTzBsQlEzWkNMRmxCUVZrc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU4wUWl4UFFVRlBMRVZCUVVVN1VVRkRVQ3hKUVVGSkxFVkJRVVVzVDBGQlR6dFJRVU5pTEZkQlFWY3NSVUZEVkN3NFIwRkJPRWM3VVVGRGFFZ3NVVUZCVVN4RlFVRkZMR05CUVdNN1VVRkRlRUlzUzBGQlN5eEZRVUZGTEZOQlFWTTdVVUZEYUVJc1NVRkJTU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZkQlFWY3NSVUZCUlN4SlFVRkpMRVZCUVVVc1owSkJRV2RDTEVWQlFVVTdVVUZEYmtRc1MwRkJTeXhGUVVGRkxFZEJRVWM3VVVGRFZpeE5RVUZOTEVWQlFVVXNSMEZCUnp0UlFVTllMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmRCUVZjc1EwRkJRenRMUVVNdlF6dEpRVU5FTEUxQlFVMHNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzWlVGQlpTeEZRVUZGTEU5QlFVOHNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRPVVVzVDBGQlR5eEZRVUZGTzFGQlExQXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTTdVVUZEYmtVc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRPMHRCUTJ4SE8wbEJRMFFzVlVGQlZTeEZRVUZGTzFGQlExWTdXVUZEUlN4SlFVRkpMRVZCUVVVc1VVRkJVVHRaUVVOa0xFVkJRVVVzUlVGQlJTeGxRVUZsTzFsQlEyNUNMRXRCUVVzc1JVRkJSU3huUWtGQlowSTdXVUZEZGtJc1QwRkJUeXhGUVVGRkxFbEJRVWs3V1VGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXp0VFFVTlFPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4WFFVRlhPMWxCUTJZc1MwRkJTeXhGUVVGRkxGZEJRVmM3V1VGRGJFSXNVVUZCVVN4RlFVRkZMRWxCUVVrN1UwRkRaanRSUVVORU8xbEJRMFVzU1VGQlNTeEZRVUZGTEZGQlFWRTdXVUZEWkN4RlFVRkZMRVZCUVVVc1YwRkJWenRaUVVObUxFdEJRVXNzUlVGQlJTeFpRVUZaTzFOQlEzQkNPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4WFFVRlhPMWxCUTJZc1MwRkJTeXhGUVVGRkxGbEJRVms3VTBGRGNFSTdVVUZEUkR0WlFVTkZMRWxCUVVrc1JVRkJSU3hSUVVGUk8xbEJRMlFzUlVGQlJTeEZRVUZGTEZsQlFWazdXVUZEYUVJc1MwRkJTeXhGUVVGRkxHRkJRV0U3VTBGRGNrSTdTMEZEUmp0RFFVTkdMRU5CUVVNN1FVRkZSaXhuUjBGQlowYzdRVUZEYUVjc1RVRkJUU3hEUVVGRExFMUJRVTBzZVVKQlFYbENMRWRCUVhOQ08wbEJRekZFTEVsQlFVa3NSVUZCUlN4cFFrRkJhVUk3U1VGRGRrSXNXVUZCV1N4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM1JDTEU5QlFVOHNSVUZCUlR0UlFVTlFMRWxCUVVrc1JVRkJSU3hQUVVGUE8xRkJRMklzVjBGQlZ5eEZRVU5VTEd0SFFVRnJSenRSUVVOd1J5eFJRVUZSTEVWQlFVVXNZMEZCWXp0UlFVTjRRaXhMUVVGTExFVkJRVVVzVTBGQlV6dFJRVU5vUWl4SlFVRkpMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVN1VVRkRPVU1zUzBGQlN5eEZRVUZGTEVkQlFVYzdVVUZEVml4TlFVRk5MRVZCUVVVc1IwRkJSenRSUVVOWUxFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxGZEJRVmNzUTBGQlF6dExRVU12UXp0SlFVTkVMRTFCUVUwc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNaVUZCWlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE9VVXNUMEZCVHl4RlFVRkZPMUZCUTFBc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNN1VVRkRia1VzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8wdEJRMnhITzBsQlEwUXNWVUZCVlN4RlFVRkZPMUZCUTFZN1dVRkRSU3hKUVVGSkxFVkJRVVVzVVVGQlVUdFpRVU5rTEVWQlFVVXNSVUZCUlN4bFFVRmxPMWxCUTI1Q0xFdEJRVXNzUlVGQlJTeG5Ra0ZCWjBJN1dVRkRka0lzVDBGQlR5eEZRVUZGTEVsQlFVazdXVUZEWWl4SFFVRkhMRVZCUVVVc1EwRkJRenRUUVVOUU8xRkJRMFE3V1VGRFJTeEpRVUZKTEVWQlFVVXNVVUZCVVR0WlFVTmtMRVZCUVVVc1JVRkJSU3hYUVVGWE8xbEJRMllzUzBGQlN5eEZRVUZGTEZkQlFWYzdXVUZEYkVJc1VVRkJVU3hGUVVGRkxFbEJRVWs3VTBGRFpqdFJRVU5FTzFsQlEwVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1dVRkRaQ3hGUVVGRkxFVkJRVVVzVjBGQlZ6dFpRVU5tTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ08xRkJRMFE3V1VGRFJTeEpRVUZKTEVWQlFVVXNVVUZCVVR0WlFVTmtMRVZCUVVVc1JVRkJSU3hYUVVGWE8xbEJRMllzUzBGQlN5eEZRVUZGTEZsQlFWazdVMEZEY0VJN1VVRkRSRHRaUVVORkxFbEJRVWtzUlVGQlJTeFJRVUZSTzFsQlEyUXNSVUZCUlN4RlFVRkZMRmxCUVZrN1dVRkRhRUlzUzBGQlN5eEZRVUZGTEdGQlFXRTdVMEZEY2tJN1MwRkRSanREUVVOR0xFTkJRVU03UVVGRlJpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1kwRkJZeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBGQlJYcEVMSE5KUVVGelNUdEJRVU4wU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3d3UWtGQk1FSXNSMEZCYzBJN1NVRkRNMFFzUjBGQlJ5eGpRVUZqTzBsQlEycENMRTlCUVU4c1JVRkJSU3hGUVVGRk8wbEJRMWdzVlVGQlZTeEZRVUZGTzFGQlExWXNSMEZCUnl4alFVRmpMRU5CUVVNc1ZVRkJWVHRSUVVNMVFqdFpRVU5GTEVsQlFVa3NSVUZCUlN4WlFVRlpPMWxCUTJ4Q0xFVkJRVVVzUlVGQlJTeFBRVUZQTzFsQlExZ3NTMEZCU3l4RlFVRkZMRTlCUVU4N1dVRkRaQ3hSUVVGUkxFVkJRVVVzU1VGQlNUdFpRVU5rTEZWQlFWVXNSVUZCUlN4WlFVRlpPMWxCUTNoQ0xHRkJRV0VzUlVGQlJTeFBRVUZQTzFOQlEzWkNPMUZCUTBRN1dVRkRSU3hKUVVGSkxFVkJRVVVzVTBGQlV6dFpRVU5tTEVWQlFVVXNSVUZCUlN4WlFVRlpPMWxCUTJoQ0xFdEJRVXNzUlVGQlJTeGhRVUZoTzFsQlEzQkNMRmxCUVZrc1JVRkJSU3hMUVVGTE8xTkJRM0JDTzB0QlEwWTdTVUZEUkN4WlFVRlpMRVZCUVVVN1VVRkRXanRaUVVORkxFbEJRVWtzUlVGQlJTeHhRa0ZCY1VJN1dVRkRNMElzVTBGQlV5eEZRVUZGTEU5QlFVODdXVUZEYkVJc1ZVRkJWU3hGUVVGRkxGbEJRVms3V1VGRGVFSXNZVUZCWVN4RlFVRkZMRTlCUVU4N1dVRkRkRUlzVTBGQlV5eEZRVUZGTEZGQlFWRTdXVUZEYmtJc1kwRkJZeXhGUVVGRkxFOUJRVTg3V1VGRGRrSXNWMEZCVnl4RlFVRkZPMmRDUVVOWUxFVkJRVVVzUlVGQlJTeE5RVUZOTzJkQ1FVTldMRXRCUVVzc1JVRkJSU3hOUVVGTk8yZENRVU5pTEZOQlFWTXNSVUZCUlN4UlFVRlJPMmRDUVVOdVFpeE5RVUZOTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRk8yRkJRM2hDTzFOQlEwWTdVVUZEUkR0WlFVTkZMRWxCUVVrc1JVRkJSU3haUVVGWk8xbEJRMnhDTEZOQlFWTXNSVUZCUlN4WlFVRlpPMWxCUTNaQ0xFMUJRVTBzUlVGQlJTeEpRVUZKTzFsQlExb3NTVUZCU1N4RlFVRkZPMmRDUVVOS0xFVkJRVVVzUlVGQlJTeFRRVUZUTzJkQ1FVTmlMRXRCUVVzc1JVRkJSU3hUUVVGVE8yZENRVU5vUWl4VFFVRlRMRVZCUVVVc1VVRkJVVHRuUWtGRGJrSXNUVUZCVFN4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdGhRVU40UWp0VFFVTkdPMHRCUTBZN1EwRkRSaXhEUVVGRE8wRkJSVVlzY1VWQlFYRkZPMEZCUTNKRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEd0RFFVRnJReXhIUVVGSExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4RFFVRkRPMEZCUlM5R0xHOUdRVUZ2Ump0QlFVTndSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeHRRMEZCYlVNc1IwRkJSeXhQUVVGUExFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0QlFVVnNSeXd5UlVGQk1rVTdRVUZETTBVc1RVRkJUU3hEUVVGRExFMUJRVTBzYjBOQlFXOURMRWRCUVVjc1QwRkJUeXhEUVVGRExHMUNRVUZ0UWl4RlFVRkZMR3RDUVVGclFpeERRVUZETEVOQlFVTTdRVUZGY2tjc0swVkJRU3RGTzBGQlF5OUZMRTFCUVUwc1EwRkJReXhOUVVGTkxHbERRVUZwUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNSVUZCUlN4bFFVRmxMRU5CUVVNc1EwRkJRenRCUVVVMVJpeG5Sa0ZCWjBZN1FVRkRhRVlzVFVGQlRTeERRVUZETEUxQlFVMHNaME5CUVdkRExFZEJRVWNzVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4alFVRmpMRU5CUVVNc1EwRkJRenRCUVVWNlJpdzJSVUZCTmtVN1FVRkROMFVzVFVGQlRTeERRVUZETEUxQlFVMHNaME5CUVdkRExFZEJRVWNzVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4alFVRmpMRU5CUVVNc1EwRkJRenRCUVVWNlJpdzBSVUZCTkVVN1FVRkROVVVzVFVGQlRTeERRVUZETEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzVDBGQlR5eERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVWb1JTeHRSVUZCYlVVN1FVRkRia1VzVFVGQlRTeERRVUZETEUxQlFVMHNORUpCUVRSQ0xFZEJRVWNzVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZETzBGQlJXeEdMRFpFUVVFMlJEdEJRVU0zUkN4TlFVRk5MRU5CUVVNc1RVRkJUU3g1UWtGQmVVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBGQlJYcEZMRGhFUVVFNFJEdEJRVU01UkN4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlJXNUZMSEZGUVVGeFJUdEJRVU55UlN4TlFVRk5MRU5CUVVNc1RVRkJUU3g1UWtGQmVVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBGQlJYcEZMSFZGUVVGMVJUdEJRVU4yUlN4TlFVRk5MRU5CUVVNc1RVRkJUU3hyUTBGQmEwTXNSMEZCUnl4UFFVRlBMRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dEJRVVZ1Unl3MlJVRkJOa1U3UVVGRE4wVXNUVUZCVFN4RFFVRkRMRTFCUVUwc2EwTkJRV3RETEVkQlFVY3NUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03UVVGRmJrY3NhVVpCUVdsR08wRkJRMnBHTEUxQlFVMHNRMEZCUXl4TlFVRk5MREJDUVVFd1FpeEhRVUZITEU5QlFVOHNRMEZCUXl4alFVRmpMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRk5VVXNkVVJCUVhWRU8wRkJRM1pFTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGRDUVVGM1FpeEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRmRFVXNhMFJCUVd0RU8wRkJRMnhFTEUxQlFVMHNRMEZCUXl4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRmJrVXNiVVZCUVcxRk8wRkJRMjVGTEUxQlFVMHNRMEZCUXl4TlFVRk5MQ3RDUVVFclFpeEhRVUZITEU5QlFVOHNRMEZCUXl4alFVRmpMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRmRFWXNPRVJCUVRoRU8wRkJRemxFTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEU5QlFVOHNRMEZCUXl4aFFVRmhMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRmVrVXNaMFZCUVdkRk8wRkJRMmhGTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRmNrVXNLMFJCUVN0RU8wRkJReTlFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRFpDUVVFMlFpeEhRVUYzUWp0SlFVTm9SU3hyUTBGQmEwTTdTVUZEYkVNc2JVTkJRVzFETzBsQlEyNURMRzlEUVVGdlF6dEpRVU53UXl4cFEwRkJhVU03U1VGRGFrTXNaME5CUVdkRE8wbEJRMmhETEdkRFFVRm5RenRKUVVOb1F5eHpRa0ZCYzBJN1NVRkRkRUlzTUVKQlFUQkNPMGxCUXpGQ0xEUkNRVUUwUWp0SlFVTTFRaXg1UWtGQmVVSTdTVUZEZWtJc2RVSkJRWFZDTzBsQlEzWkNMSGxDUVVGNVFqdEpRVU42UWl4clEwRkJhME03U1VGRGJFTXNhME5CUVd0RE8wbEJRMnhETERCQ1FVRXdRanRKUVVNeFFpeDNRa0ZCZDBJN1NVRkRlRUlzZFVKQlFYVkNPMGxCUTNaQ0xDdENRVUVyUWp0SlFVTXZRaXg1UWtGQmVVSTdTVUZEZWtJc2VVSkJRWGxDTzBsQlEzcENMREpDUVVFeVFqdEpRVU16UWl4NVFrRkJlVUk3U1VGRGVrSXNlVUpCUVhsQ08wTkJRekZDTEVOQlFVTTdRVUZGUml4dFIwRkJiVWM3UVVGRGJrY3NUVUZCVFN4RFFVRkRMRTFCUVUwc2NVTkJRWEZETEVkQlJ6bERMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRM0JDTERaQ1FVRTJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUXpORkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnZFdrdFpHVmpiM0poZEc5eWN5OW5jbUZ3YUM5dWIyUmxjeTl0WVc1cFptVnpkSE5jYmlBcUlFQnpkVzF0WVhKNUlFSjFhV3gwTFdsdUlHNXZaR1VnYldGdWFXWmxjM1J6SUNoRVJVTkJSaTAxTUNEQ3B6UXVNVElwTGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZSb1pTQmpZWFJoYkc5bmRXVXRjSFZpYkdsemFHVmtJRXBUVDA0Z2JXRnVhV1psYzNSeklHWnZjaUJsZG1WeWVTQnViMlJsSUd0cGJtUmNiaUFxSUhSb1pTQmlZV05yWlc1a0lITm9hWEJ6TGlCTWIyOXdJRzFoYm1sbVpYTjBjeUJoY21VZ2FHRnVaQzFoZFhSb2IzSmxaQ0FvZEdobGFYSWdiRzl2Y0MxaWIyUjVYRzRnS2lCemFHRndaWE1nWVhKbElITjBjblZqZEhWeVlXd3BPeUIwYUdVZ2NtVnpkQ0JoY21VZ1kyOXRjR2xzWldRZ1puSnZiU0IwYUdVZ2MyaGhjbVZrWEc0Z0tpQmdRRzV2WkdWZ0xXUmxZMjl5WVhSbFpDQmpiR0Z6YzJWeklIWnBZU0JnWjNKaGNHaE9iMlJsVFdGdWFXWmxjM1JnTENCemJ5QjBhR1VnYzJWeWRtVmtJSE5vWVhCbElHbHpYRzRnS2lCcFpHVnVkR2xqWVd3Z2RHOGdkMmhoZENCMGFHVWdRVzVuZFd4aGNpQndZV3hsZEhSbElHTnZibk4xYldWekxpQkJaMmR5WldkaGRHVmtJR2x1WEc0Z0tpQmdSMUpCVUVoZlFsVkpURlJmU1U1ZlRrOUVSVjlOUVU1SlJrVlRWRk5nSUdGdVpDQnBibVJsZUdWa0lHSjVJR3RwYm1RZ2FXNWNiaUFxSUdCSFVrRlFTRjlDVlVsTVZGOUpUbDlPVDBSRlgwMUJUa2xHUlZOVVUxOUNXVjlMU1U1RVlDNWNiaUFxTDF4dWFXMXdiM0owSUhSNWNHVWdlMXh1SUNCSGNtRndhRTV2WkdWTllXNXBabVZ6ZEN4Y2JpQWdSM0poY0doUWIzSjBUV0Z1YVdabGMzUXNYRzU5SUdaeWIyMGdYQ0l1TGk5allYUmhiRzluWENJN1hHNXBiWEJ2Y25RZ2V5Qm5jbUZ3YUU1dlpHVk5ZVzVwWm1WemRDQjlJR1p5YjIwZ1hDSXVMaTlqWVhSaGJHOW5YQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdJRU52Ym5OMGNuVmpkRzl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJCWjJWdWRFNXZaR1VnZlNCbWNtOXRJRndpTGk5aFoyVnVkSE12WVdkbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUVKeVpXRnJSbXh2ZDA1dlpHVWdmU0JtY205dElGd2lMaTltYkc5M0xXTnZiblJ5YjJ3dlluSmxZV3RjSWp0Y2JtbHRjRzl5ZENCN0lFVnljbTl5UW05MWJtUmhjbmxHYkc5M1RtOWtaU0I5SUdaeWIyMGdYQ0l1TDJac2IzY3RZMjl1ZEhKdmJDOWxjbkp2Y2kxaWIzVnVaR0Z5ZVZ3aU8xeHVhVzF3YjNKMElIc2dTSFZ0WVc1QmNIQnliM1poYkVac2IzZE9iMlJsSUgwZ1puSnZiU0JjSWk0dlpteHZkeTFqYjI1MGNtOXNMMmgxYldGdUxXRndjSEp2ZG1Gc1hDSTdYRzVwYlhCdmNuUWdleUJKWmtac2IzZE9iMlJsSUgwZ1puSnZiU0JjSWk0dlpteHZkeTFqYjI1MGNtOXNMMmxtWENJN1hHNXBiWEJ2Y25RZ2V5QlFZWEpoYkd4bGJFWnNiM2RPYjJSbElIMGdabkp2YlNCY0lpNHZabXh2ZHkxamIyNTBjbTlzTDNCaGNtRnNiR1ZzWENJN1hHNXBiWEJ2Y25RZ2V5QlRkMmwwWTJoR2JHOTNUbTlrWlNCOUlHWnliMjBnWENJdUwyWnNiM2N0WTI5dWRISnZiQzl6ZDJsMFkyaGNJanRjYm1sdGNHOXlkQ0I3SUVOdlpHVkdiRzkzVG05a1pTQjlJR1p5YjIwZ1hDSXVMM1YwYVd4cGRIa3ZZMjlrWlZ3aU8xeHVhVzF3YjNKMElIc2dSR1ZzWVhsR2JHOTNUbTlrWlNCOUlHWnliMjBnWENJdUwzVjBhV3hwZEhrdlpHVnNZWGxjSWp0Y2JtbHRjRzl5ZENCN0lFeHZaMFpzYjNkT2IyUmxJSDBnWm5KdmJTQmNJaTR2ZFhScGJHbDBlUzlzYjJkY0lqdGNibWx0Y0c5eWRDQjdJRTFoY0Vac2IzZE9iMlJsSUgwZ1puSnZiU0JjSWk0dmRYUnBiR2wwZVM5dFlYQmNJanRjYm1sdGNHOXlkQ0I3SUUxbGNtZGxSbXh2ZDA1dlpHVWdmU0JtY205dElGd2lMaTkxZEdsc2FYUjVMMjFsY21kbFhDSTdYRzVwYlhCdmNuUWdleUJTWlhSMWNtNUdiRzkzVG05a1pTQjlJR1p5YjIwZ1hDSXVMM1YwYVd4cGRIa3ZjbVYwZFhKdVhDSTdYRzVwYlhCdmNuUWdleUJWZEdsc2FYUjVURzluVG05a1pTQjlJR1p5YjIwZ1hDSXVMM1YwYVd4cGRIa3ZkWFJwYkdsMGVTMXNiMmRjSWp0Y2JtbHRjRzl5ZENCN0lFTm9ZWFJVY21sbloyVnlUbTlrWlNCOUlHWnliMjBnWENJdUwzUnlhV2RuWlhKekwyTm9ZWFJjSWp0Y2JtbHRjRzl5ZENCN0lFVjJaVzUwVkhKcFoyZGxjazV2WkdVZ2ZTQm1jbTl0SUZ3aUxpOTBjbWxuWjJWeWN5OWxkbVZ1ZEZ3aU8xeHVhVzF3YjNKMElIc2dSbTl5YlZSeWFXZG5aWEpPYjJSbElIMGdabkp2YlNCY0lpNHZkSEpwWjJkbGNuTXZabTl5YlZ3aU8xeHVhVzF3YjNKMElIc2dUV0Z1ZFdGc1ZISnBaMmRsY2s1dlpHVWdmU0JtY205dElGd2lMaTkwY21sbloyVnljeTl0WVc1MVlXeGNJanRjYm1sdGNHOXlkQ0I3SUZOamFHVmtkV3hsVkhKcFoyZGxjazV2WkdVZ2ZTQm1jbTl0SUZ3aUxpOTBjbWxuWjJWeWN5OXpZMmhsWkhWc1pWd2lPMXh1YVcxd2IzSjBJSHNnVjJWaWFHOXZhMVJ5YVdkblpYSk9iMlJsSUgwZ1puSnZiU0JjSWk0dmRISnBaMmRsY25NdmQyVmlhRzl2YTF3aU8xeHVYRzR2S2lwY2JpQXFJRUoxYVd4a2N5QmhJSE5wYm1kc1pTQjdRR3hwYm1zZ1IzSmhjR2hRYjNKMFRXRnVhV1psYzNSOUlHWnliMjBnYVhSeklHbGtMQ0JzWVdKbGJDd2daR2x5WldOMGFXOXVMRnh1SUNvZ1lXNWtJRzl3ZEdsdmJtRnNJR1Y0ZEhKaElHWnBaV3hrY3lEaWdKUWdkR2hsSUhSbGNuTmxJR052Ym5OMGNuVmpkRzl5SUhWelpXUWdZbmtnZEdobElHaGhibVF0WVhWMGFHOXlaV1JjYmlBcUlHeHZiM0FnYldGdWFXWmxjM1J6SUdKbGJHOTNMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQnBaQ0F0SUZCdmNuUWdhV1JsYm5ScFptbGxjaUFvYldGMFkyaGxjeUIwYUdVZ1pHVmpiM0poZEdWa0lIQnliM0JsY25SNUlHaGhibVJzWlNrdVhHNGdLaUJBY0dGeVlXMGdiR0ZpWld3Z0xTQklkVzFoYmkxeVpXRmtZV0pzWlNCd2IzSjBJR3hoWW1Wc0xseHVJQ29nUUhCaGNtRnRJR1JwY21WamRHbHZiaUF0SUZCdmNuUWdaR2x5WldOMGFXOXVJQ2hnYVc1d2RYUmdJRzl5SUdCdmRYUndkWFJnS1M1Y2JpQXFJRUJ3WVhKaGJTQmxlSFJ5WVNBdElFOXdkR2x2Ym1Gc0lHMWhibWxtWlhOMElHWnBaV3hrY3lCdFpYSm5aV1FnYjNabGNpQjBhR1VnWkdWbVlYVnNkSE11WEc0Z0tpQkFjbVYwZFhKdWN5QlVhR1VnWVhOelpXMWliR1ZrSUhCdmNuUWdiV0Z1YVdabGMzUXVYRzRnS2k5Y2JtWjFibU4wYVc5dUlIQnZjblFvWEc0Z0lHbGtPaUJ6ZEhKcGJtY3NYRzRnSUd4aFltVnNPaUJ6ZEhKcGJtY3NYRzRnSUdScGNtVmpkR2x2YmpvZ1hDSnBibkIxZEZ3aUlId2dYQ0p2ZFhSd2RYUmNJaXhjYmlBZ1pYaDBjbUU2SUZCaGNuUnBZV3c4UjNKaGNHaFFiM0owVFdGdWFXWmxjM1ErSUQwZ2UzMWNiaWs2SUVkeVlYQm9VRzl5ZEUxaGJtbG1aWE4wSUh0Y2JpQWdjbVYwZFhKdUlIc2dhV1FzSUd4aFltVnNMQ0JrYVhKbFkzUnBiMjRzSUM0dUxtVjRkSEpoSUgwN1hHNTlYRzVjYmk4cUtseHVJQ29nUTI5dGNHbHNaWE1nWVNCZ1FHNXZaR1ZnTFdSbFkyOXlZWFJsWkNCamJHRnpjeUJwYm5SdklHbDBjeUJ3ZFdKc2FYTm9aV1JjYmlBcUlIdEFiR2x1YXlCSGNtRndhRTV2WkdWTllXNXBabVZ6ZEgwc0lITnZJSFJvWlNCelpYSjJaV1FnYzJoaGNHVWdiV0YwWTJobGN5QjNhR0YwSUhSb1pTQkJibWQxYkdGeVhHNGdLaUJ3WVd4bGRIUmxJR052Ym5OMWJXVnpMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQnViMlJsSUMwZ1ZHaGxJR1JsWTI5eVlYUmxaQ0J1YjJSbElHTnNZWE56SUdOdmJuTjBjblZqZEc5eUxseHVJQ29nUUhCaGNtRnRJRzVoYldVZ0xTQkVhWE53YkdGNUlHNWhiV1VnYjNabGNuSnBaR1VnWm05eUlIUm9aU0JqYjIxd2FXeGxaQ0J0WVc1cFptVnpkQzVjYmlBcUlFQnlaWFIxY201eklGUm9aU0JqYjIxd2FXeGxaQ0J1YjJSbElHMWhibWxtWlhOMExseHVJQ292WEc1bWRXNWpkR2x2YmlCamIyMXdhV3hsS0c1dlpHVTZJSFZ1YTI1dmQyNHNJRzVoYldVNklITjBjbWx1WnlrNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMElIdGNiaUFnY21WMGRYSnVJR2R5WVhCb1RtOWtaVTFoYm1sbVpYTjBLRzV2WkdVZ1lYTWdRMjl1YzNSeWRXTjBiM0lzSUhzZ2JtRnRaU0I5S1R0Y2JuMWNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ1lHTnZjbVV1Ykc5dmNDNW1iM0psWVdOb1lDQnViMlJsT2lCeWRXNXpJSFJvWlNCc2IyOXdJR0p2WkhrZ2IyNWpaU0J3WlhJZ2FYUmxiU0FvYjNJZ2MyeHBZMlVwSUc5bUlIUm9aU0JwYm5CMWRDQmhjbkpoZVM0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCR1QxSkZRVU5JWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMElEMGdlMXh1SUNCcmFXNWtPaUJjSW1OdmNtVXViRzl2Y0M1bWIzSmxZV05vWENJc1hHNGdJR05oY0dGaWFXeHBkR2xsY3pvZ1cxd2liRzl2Y0Z3aVhTeGNiaUFnWkdsemNHeGhlVG9nZTF4dUlDQWdJRzVoYldVNklGd2lSbTl5WldGamFGd2lMRnh1SUNBZ0lHUmxjMk55YVhCMGFXOXVPbHh1SUNBZ0lDQWdYQ0pTZFc1eklIUm9aU0JzYjI5d0lHSnZaSGtnYjI1alpTQndaWElnYVhSbGJTQW9iM0lnY0dWeUlITnNhV05sSUc5bUlHbDBaVzF6S1NCdlppQjBhR1VnYVc1d2RYUWdZWEp5WVhrc0lHTnZiR3hsWTNScGJtY2dkR2hsSUhKbGMzVnNkSE1nYVc0Z2IzSmtaWEl1WENJc1hHNGdJQ0FnWTJGMFpXZHZjbms2SUZ3aVJteHZkeUJEYjI1MGNtOXNYQ0lzWEc0Z0lDQWdZMjlzYjNJNklGd2lJemhpTldObU5sd2lMRnh1SUNBZ0lHbGpiMjQ2SUhzZ2RIbHdaVG9nWENKallYUmhiRzluZFdWY0lpd2dibUZ0WlRvZ1hDSjBhUzF5WlhCbFlYUmNJaUI5TEZ4dUlDQWdJSGRwWkhSb09pQXhNakFzWEc0Z0lDQWdhR1ZwWjJoME9pQXhOREFzWEc0Z0lDQWdiR0ZpWld4ek9pQmJYQ0ptYkc5M1hDSXNJRndpYkc5dmNGd2lMQ0JjSW1admNtVmhZMmhjSWl3Z1hDSnBkR1Z5WVhScGIyNWNJbDBzWEc0Z0lIMHNYRzRnSUdsdWNIVjBjem9nVzF4dUlDQWdJSEJ2Y25Rb1hDSnBkR1Z0YzF3aUxDQmNJa2wwWlcxelhDSXNJRndpYVc1d2RYUmNJaXdnZTF4dUlDQWdJQ0FnY21WeGRXbHlaV1E2SUhSeWRXVXNYRzRnSUNBZ0lDQnpZMmhsYldFNklIc2dkSGx3WlRvZ1hDSmhjbkpoZVZ3aUxDQnBkR1Z0Y3pvZ2V5QjBlWEJsT2lCY0ltRnVlVndpSUgwZ2ZTeGNiaUFnSUNCOUtTeGNiaUFnSUNCd2IzSjBLRndpYzJ4cFkyVmNJaXdnWENKVGJHbGpaU0J6YVhwbFhDSXNJRndpYVc1d2RYUmNJaXdnZXlCelkyaGxiV0U2SUhzZ2RIbHdaVG9nWENKdWRXMWlaWEpjSWl3Z2FXNTBaV2RsY2pvZ2RISjFaU3dnYldsdU9pQXhJSDBnZlNrc1hHNGdJQ0FnY0c5eWRDaGNJbk4wWVhSbFhDSXNJRndpU1c1cGRHbGhiQ0J6ZEdGMFpWd2lMQ0JjSW1sdWNIVjBYQ0lzSUhzZ2MyTm9aVzFoT2lCN0lIUjVjR1U2SUZ3aVlXNTVYQ0lnZlNCOUtTeGNiaUFnWFN4Y2JpQWdiM1YwY0hWMGN6b2dXMXh1SUNBZ0lIQnZjblFvWENKeVpYTjFiSFJ6WENJc0lGd2lVbVZ6ZFd4MGMxd2lMQ0JjSW05MWRIQjFkRndpTENCN1hHNGdJQ0FnSUNCelkyaGxiV0U2SUhzZ2RIbHdaVG9nWENKaGNuSmhlVndpTENCcGRHVnRjem9nZXlCMGVYQmxPaUJjSW1GdWVWd2lJSDBnZlN4Y2JpQWdJQ0I5S1N4Y2JpQWdJQ0J3YjNKMEtGd2lZMjl0Y0d4bGRHVmtYQ0lzSUZ3aVEyOXRjR3hsZEdWa1hDSXNJRndpYjNWMGNIVjBYQ0lzSUh0Y2JpQWdJQ0FnSUhOamFHVnRZVG9nZXlCMGVYQmxPaUJjSW1GeWNtRjVYQ0lzSUdsMFpXMXpPaUI3SUhSNWNHVTZJRndpWVc1NVhDSWdmU0I5TEZ4dUlDQWdJSDBwTEZ4dUlDQWdJSEJ2Y25Rb1hDSnBkR1Z5WVhScGIyNXpYQ0lzSUZ3aVNYUmxjbUYwYVc5dWMxd2lMQ0JjSW05MWRIQjFkRndpTENCN0lITmphR1Z0WVRvZ2V5QjBlWEJsT2lCY0ltNTFiV0psY2x3aUxDQnBiblJsWjJWeU9pQjBjblZsTENCdGFXNDZJREFnZlNCOUtTeGNiaUFnSUNCd2IzSjBLRndpWW5KdmEyVnVYQ0lzSUZ3aVFuSnZhMlZ1WENJc0lGd2liM1YwY0hWMFhDSXNJSHNnYzJOb1pXMWhPaUI3SUhSNWNHVTZJRndpWW05dmJHVmhibHdpSUgwZ2ZTa3NYRzRnSUNBZ2NHOXlkQ2hjSW5OMFlYUmxYQ0lzSUZ3aVJtbHVZV3dnYzNSaGRHVmNJaXdnWENKdmRYUndkWFJjSWl3Z2V5QnpZMmhsYldFNklIc2dkSGx3WlRvZ1hDSmhibmxjSWlCOUlIMHBMRnh1SUNCZExGeHVJQ0J3WVhKaGJXVjBaWEp6T2lCYlhHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXhjYmlBZ0lDQWdJR2xrT2lCY0ltMWhlRWwwWlhKaGRHbHZibk5jSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWsxaGVDQnBkR1Z5WVhScGIyNXpYQ0lzWEc0Z0lDQWdJQ0JwYm5SbFoyVnlPaUIwY25WbExGeHVJQ0FnSUNBZ2JXbHVPaUF4TEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnZZbXBsWTNSY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW1OdmJtUnBkR2x2Ymx3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVEyOXVaR2wwYVc5dVhDSXNYRzRnSUNBZ2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW5OMGNtbHVaMXdpTEZ4dUlDQWdJQ0FnYVdRNklGd2lhWFJsYlZCdmNuUmNJaXhjYmlBZ0lDQWdJR3hoWW1Wc09pQmNJa2wwWlcwZ2NHOXlkRndpTEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnpkSEpwYm1kY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW5KbGMzVnNkRkJ2Y25SY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lsSmxjM1ZzZENCd2IzSjBYQ0lzWEc0Z0lDQWdmU3hjYmlBZ0lDQjdYRzRnSUNBZ0lDQjBlWEJsT2lCY0luTjBjbWx1WjF3aUxGeHVJQ0FnSUNBZ2FXUTZJRndpYzNSaGRHVlFiM0owWENJc1hHNGdJQ0FnSUNCc1lXSmxiRG9nWENKVGRHRjBaU0J3YjNKMFhDSXNYRzRnSUNBZ2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW01MWJXSmxjbHdpTEZ4dUlDQWdJQ0FnYVdRNklGd2ljMnhwWTJWY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lsTnNhV05sSUhOcGVtVmNJaXhjYmlBZ0lDQWdJR2x1ZEdWblpYSTZJSFJ5ZFdVc1hHNGdJQ0FnSUNCdGFXNDZJREVzWEc0Z0lDQWdmU3hjYmlBZ1hTeGNibjA3WEc1Y2JpOHFLaUJOWVc1cFptVnpkQ0JtYjNJZ2RHaGxJR0JqYjNKbExteHZiM0F1ZDJocGJHVmdJRzV2WkdVNklISmxjR1ZoZEhNZ2RHaGxJR3h2YjNBZ1ltOWtlU0IzYUdsc1pTQjBhR1VnWTI5dVpHbDBhVzl1SUdodmJHUnpMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRmRJU1V4RlgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUTZJRWR5WVhCb1RtOWtaVTFoYm1sbVpYTjBJRDBnZTF4dUlDQnJhVzVrT2lCY0ltTnZjbVV1Ykc5dmNDNTNhR2xzWlZ3aUxGeHVJQ0JqWVhCaFltbHNhWFJwWlhNNklGdGNJbXh2YjNCY0lsMHNYRzRnSUdScGMzQnNZWGs2SUh0Y2JpQWdJQ0J1WVcxbE9pQmNJbGRvYVd4bFhDSXNYRzRnSUNBZ1pHVnpZM0pwY0hScGIyNDZYRzRnSUNBZ0lDQmNJbEoxYm5NZ2RHaGxJR3h2YjNBZ1ltOWtlU0IzYUdsc1pTQjBhR1VnWTI5dVptbG5kWEpsWkNCamIyNWthWFJwYjI0Z1pYWmhiSFZoZEdWeklIUnZJSFJ5ZFdVc0lIUm9jbVZoWkdsdVp5QjBhR1VnYzNSaGRHVWdZbVYwZDJWbGJpQnBkR1Z5WVhScGIyNXpMbHdpTEZ4dUlDQWdJR05oZEdWbmIzSjVPaUJjSWtac2IzY2dRMjl1ZEhKdmJGd2lMRnh1SUNBZ0lHTnZiRzl5T2lCY0lpTTRZalZqWmpaY0lpeGNiaUFnSUNCcFkyOXVPaUI3SUhSNWNHVTZJRndpWTJGMFlXeHZaM1ZsWENJc0lHNWhiV1U2SUZ3aWRHa3RjbVZ3WldGMExXOXVZMlZjSWlCOUxGeHVJQ0FnSUhkcFpIUm9PaUF4TWpBc1hHNGdJQ0FnYUdWcFoyaDBPaUF4TkRBc1hHNGdJQ0FnYkdGaVpXeHpPaUJiWENKbWJHOTNYQ0lzSUZ3aWJHOXZjRndpTENCY0luZG9hV3hsWENJc0lGd2lZMjl1WkdsMGFXOXVYQ0pkTEZ4dUlDQjlMRnh1SUNCcGJuQjFkSE02SUZ0d2IzSjBLRndpYzNSaGRHVmNJaXdnWENKSmJtbDBhV0ZzSUhOMFlYUmxYQ0lzSUZ3aWFXNXdkWFJjSWl3Z2V5QnpZMmhsYldFNklIc2dkSGx3WlRvZ1hDSmhibmxjSWlCOUlIMHBYU3hjYmlBZ2IzVjBjSFYwY3pvZ1cxeHVJQ0FnSUhCdmNuUW9YQ0p6ZEdGMFpWd2lMQ0JjSWtacGJtRnNJSE4wWVhSbFhDSXNJRndpYjNWMGNIVjBYQ0lzSUhzZ2MyTm9aVzFoT2lCN0lIUjVjR1U2SUZ3aVlXNTVYQ0lnZlNCOUtTeGNiaUFnSUNCd2IzSjBLRndpYVhSbGNtRjBhVzl1YzF3aUxDQmNJa2wwWlhKaGRHbHZibk5jSWl3Z1hDSnZkWFJ3ZFhSY0lpd2dleUJ6WTJobGJXRTZJSHNnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXdnYVc1MFpXZGxjam9nZEhKMVpTd2diV2x1T2lBd0lIMGdmU2tzWEc0Z0lGMHNYRzRnSUhCaGNtRnRaWFJsY25NNklGdGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW01MWJXSmxjbHdpTEZ4dUlDQWdJQ0FnYVdRNklGd2liV0Y0U1hSbGNtRjBhVzl1YzF3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVRXRjRJR2wwWlhKaGRHbHZibk5jSWl4Y2JpQWdJQ0FnSUdsdWRHVm5aWEk2SUhSeWRXVXNYRzRnSUNBZ0lDQnRhVzQ2SURFc1hHNGdJQ0FnZlN4Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0IwZVhCbE9pQmNJbTlpYW1WamRGd2lMRnh1SUNBZ0lDQWdhV1E2SUZ3aVkyOXVaR2wwYVc5dVhDSXNYRzRnSUNBZ0lDQnNZV0psYkRvZ1hDSkRiMjVrYVhScGIyNWNJaXhjYmlBZ0lDQWdJSEpsY1hWcGNtVmtPaUIwY25WbExGeHVJQ0FnSUgwc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p6ZEhKcGJtZGNJaXhjYmlBZ0lDQWdJR2xrT2lCY0luTjBZWFJsVUc5eWRGd2lMRnh1SUNBZ0lDQWdiR0ZpWld3NklGd2lVM1JoZEdVZ2NHOXlkRndpTEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnpkSEpwYm1kY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW1sdWNIVjBVRzl5ZEZ3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVNXNXdkWFFnY0c5eWRGd2lMRnh1SUNBZ0lIMHNYRzRnSUNBZ2UxeHVJQ0FnSUNBZ2RIbHdaVG9nWENKemRISnBibWRjSWl4Y2JpQWdJQ0FnSUdsa09pQmNJbTkxZEhCMWRGQnZjblJjSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWs5MWRIQjFkQ0J3YjNKMFhDSXNYRzRnSUNBZ2ZTeGNiaUFnWFN4Y2JuMDdYRzVjYmk4cUtpQk5ZVzVwWm1WemRDQm1iM0lnZEdobElHQmpiM0psTG14dmIzQXVkVzUwYVd4Z0lHNXZaR1U2SUhKbGNHVmhkSE1nZEdobElHeHZiM0FnWW05a2VTQjFiblJwYkNCMGFHVWdZMjl1WkdsMGFXOXVJR2h2YkdSekxpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElGVk9WRWxNWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMElEMGdlMXh1SUNCcmFXNWtPaUJjSW1OdmNtVXViRzl2Y0M1MWJuUnBiRndpTEZ4dUlDQmpZWEJoWW1sc2FYUnBaWE02SUZ0Y0lteHZiM0JjSWwwc1hHNGdJR1JwYzNCc1lYazZJSHRjYmlBZ0lDQnVZVzFsT2lCY0lsVnVkR2xzWENJc1hHNGdJQ0FnWkdWelkzSnBjSFJwYjI0NlhHNGdJQ0FnSUNCY0lsSjFibk1nZEdobElHeHZiM0FnWW05a2VTQmhkQ0JzWldGemRDQnZibU5sTENCMGFHVnVJSEpsY0dWaGRITWdkVzUwYVd3Z2RHaGxJR052Ym1acFozVnlaV1FnWTI5dVpHbDBhVzl1SUdWMllXeDFZWFJsY3lCMGJ5QjBjblZsTGx3aUxGeHVJQ0FnSUdOaGRHVm5iM0o1T2lCY0lrWnNiM2NnUTI5dWRISnZiRndpTEZ4dUlDQWdJR052Ykc5eU9pQmNJaU00WWpWalpqWmNJaXhjYmlBZ0lDQnBZMjl1T2lCN0lIUjVjR1U2SUZ3aVkyRjBZV3h2WjNWbFhDSXNJRzVoYldVNklGd2lkR2t0Y21Wd1pXRjBYQ0lnZlN4Y2JpQWdJQ0IzYVdSMGFEb2dNVEl3TEZ4dUlDQWdJR2hsYVdkb2REb2dNVFF3TEZ4dUlDQWdJR3hoWW1Wc2N6b2dXMXdpWm14dmQxd2lMQ0JjSW14dmIzQmNJaXdnWENKMWJuUnBiRndpTENCY0ltTnZibVJwZEdsdmJsd2lYU3hjYmlBZ2ZTeGNiaUFnYVc1d2RYUnpPaUJiY0c5eWRDaGNJbk4wWVhSbFhDSXNJRndpU1c1cGRHbGhiQ0J6ZEdGMFpWd2lMQ0JjSW1sdWNIVjBYQ0lzSUhzZ2MyTm9aVzFoT2lCN0lIUjVjR1U2SUZ3aVlXNTVYQ0lnZlNCOUtWMHNYRzRnSUc5MWRIQjFkSE02SUZ0Y2JpQWdJQ0J3YjNKMEtGd2ljM1JoZEdWY0lpd2dYQ0pHYVc1aGJDQnpkR0YwWlZ3aUxDQmNJbTkxZEhCMWRGd2lMQ0I3SUhOamFHVnRZVG9nZXlCMGVYQmxPaUJjSW1GdWVWd2lJSDBnZlNrc1hHNGdJQ0FnY0c5eWRDaGNJbWwwWlhKaGRHbHZibk5jSWl3Z1hDSkpkR1Z5WVhScGIyNXpYQ0lzSUZ3aWIzVjBjSFYwWENJc0lIc2djMk5vWlcxaE9pQjdJSFI1Y0dVNklGd2liblZ0WW1WeVhDSXNJR2x1ZEdWblpYSTZJSFJ5ZFdVc0lHMXBiam9nTUNCOUlIMHBMRnh1SUNCZExGeHVJQ0J3WVhKaGJXVjBaWEp6T2lCYlhHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p1ZFcxaVpYSmNJaXhjYmlBZ0lDQWdJR2xrT2lCY0ltMWhlRWwwWlhKaGRHbHZibk5jSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWsxaGVDQnBkR1Z5WVhScGIyNXpYQ0lzWEc0Z0lDQWdJQ0JwYm5SbFoyVnlPaUIwY25WbExGeHVJQ0FnSUNBZ2JXbHVPaUF4TEZ4dUlDQWdJSDBzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnZZbXBsWTNSY0lpeGNiaUFnSUNBZ0lHbGtPaUJjSW1OdmJtUnBkR2x2Ymx3aUxGeHVJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVEyOXVaR2wwYVc5dVhDSXNYRzRnSUNBZ0lDQnlaWEYxYVhKbFpEb2dkSEoxWlN4Y2JpQWdJQ0I5TEZ4dUlDQWdJSHRjYmlBZ0lDQWdJSFI1Y0dVNklGd2ljM1J5YVc1blhDSXNYRzRnSUNBZ0lDQnBaRG9nWENKemRHRjBaVkJ2Y25SY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lsTjBZWFJsSUhCdmNuUmNJaXhjYmlBZ0lDQjlMRnh1SUNBZ0lIdGNiaUFnSUNBZ0lIUjVjR1U2SUZ3aWMzUnlhVzVuWENJc1hHNGdJQ0FnSUNCcFpEb2dYQ0pwYm5CMWRGQnZjblJjSWl4Y2JpQWdJQ0FnSUd4aFltVnNPaUJjSWtsdWNIVjBJSEJ2Y25SY0lpeGNiaUFnSUNCOUxGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUhSNWNHVTZJRndpYzNSeWFXNW5YQ0lzWEc0Z0lDQWdJQ0JwWkRvZ1hDSnZkWFJ3ZFhSUWIzSjBYQ0lzWEc0Z0lDQWdJQ0JzWVdKbGJEb2dYQ0pQZFhSd2RYUWdjRzl5ZEZ3aUxGeHVJQ0FnSUgwc1hHNGdJRjBzWEc1OU8xeHVYRzVqYjI1emRDQnpkMmwwWTJoRGIyMXdhV3hsWkNBOUlHTnZiWEJwYkdVb1UzZHBkR05vUm14dmQwNXZaR1VzSUZ3aVUzZHBkR05vWENJcE8xeHVYRzR2S2lvZ1RXRnVhV1psYzNRZ1ptOXlJSFJvWlNCZ1kyOXlaUzVtYkc5M0xuTjNhWFJqYUdBZ2JtOWtaVG9nY205MWRHVnpJR1Y0WldOMWRHbHZiaUJpZVNCemQybDBZMmd0WTJGelpTQmpiMjVrYVhScGIyNXpJQ2hqWVhObGN5QnNhWFpsSUhWdVpHVnlJR0J3WVhKaGJXVjBaWEp6VzF3aWMzZHBkR05vWENKZFlDa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdVMWRKVkVOSVgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUTZJRWR5WVhCb1RtOWtaVTFoYm1sbVpYTjBJRDBnZTF4dUlDQXVMaTV6ZDJsMFkyaERiMjF3YVd4bFpDeGNiaUFnYjNWMGNIVjBjem9nVzEwc1hHNGdJSEJoY21GdFpYUmxjbk02SUZ0Y2JpQWdJQ0F1TGk1emQybDBZMmhEYjIxd2FXeGxaQzV3WVhKaGJXVjBaWEp6TEZ4dUlDQWdJSHRjYmlBZ0lDQWdJSFI1Y0dVNklGd2lZMjlzYkdWamRHbHZibHdpTEZ4dUlDQWdJQ0FnYVdRNklGd2lZMkZ6WlhOY0lpeGNiaUFnSUNBZ0lHeGhZbVZzT2lCY0lrTmhjMlZ6WENJc1hHNGdJQ0FnSUNCeVpYRjFhWEpsWkRvZ2RISjFaU3hjYmlBZ0lDQWdJR2wwWlcxSlpGQmhkR2c2SUZ3aWIzVjBjSFYwVUc5eWRGd2lMRnh1SUNBZ0lDQWdhWFJsYlV4aFltVnNVR0YwYURvZ1hDSnNZV0psYkZ3aUxGeHVJQ0FnSUgwc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0ppYjI5c1pXRnVYQ0lzWEc0Z0lDQWdJQ0JwWkRvZ1hDSm9ZWE5FWldaaGRXeDBYQ0lzWEc0Z0lDQWdJQ0JzWVdKbGJEb2dYQ0pJWVhNZ1pHVm1ZWFZzZEZ3aUxGeHVJQ0FnSUNBZ1pHVm1ZWFZzZEZaaGJIVmxPaUJtWVd4elpTeGNiaUFnSUNCOUxGeHVJQ0JkTEZ4dUlDQmtlVzVoYldsalVHOXlkSE02SUZ0Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0IwZVhCbE9pQmNJbkpsY0dWaGRFWnliMjFRWVhKaGJXVjBaWEpjSWl4Y2JpQWdJQ0FnSUhCaGNtRnRaWFJsY2pvZ1hDSmpZWE5sYzF3aUxGeHVJQ0FnSUNBZ2FYUmxiVWxrVUdGMGFEb2dYQ0p2ZFhSd2RYUlFiM0owWENJc1hHNGdJQ0FnSUNCcGRHVnRUR0ZpWld4UVlYUm9PaUJjSW14aFltVnNYQ0lzWEc0Z0lDQWdJQ0JrYVhKbFkzUnBiMjQ2SUZ3aWIzVjBjSFYwWENJc1hHNGdJQ0FnSUNCd2IzSjBTV1JVWlcxd2JHRjBaVG9nWENJa2UybGtmVndpTEZ4dUlDQWdJQ0FnWkdWbVlYVnNkRkJ2Y25RNklIdGNiaUFnSUNBZ0lDQWdhV1E2SUZ3aVkyRnpaVndpTEZ4dUlDQWdJQ0FnSUNCc1lXSmxiRG9nWENKRFlYTmxYQ0lzWEc0Z0lDQWdJQ0FnSUdScGNtVmpkR2x2YmpvZ1hDSnZkWFJ3ZFhSY0lpeGNiaUFnSUNBZ0lDQWdjMk5vWlcxaE9pQjdJSFI1Y0dVNklGd2lZVzU1WENJZ2ZTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCMGVYQmxPaUJjSW5SdloyZHNaVkJ2Y25SY0lpeGNiaUFnSUNBZ0lIQmhjbUZ0WlhSbGNqb2dYQ0pvWVhORVpXWmhkV3gwWENJc1hHNGdJQ0FnSUNCbGNYVmhiSE02SUhSeWRXVXNYRzRnSUNBZ0lDQndiM0owT2lCN1hHNGdJQ0FnSUNBZ0lHbGtPaUJjSW1SbFptRjFiSFJjSWl4Y2JpQWdJQ0FnSUNBZ2JHRmlaV3c2SUZ3aVJHVm1ZWFZzZEZ3aUxGeHVJQ0FnSUNBZ0lDQmthWEpsWTNScGIyNDZJRndpYjNWMGNIVjBYQ0lzWEc0Z0lDQWdJQ0FnSUhOamFHVnRZVG9nZXlCMGVYQmxPaUJjSW1GdWVWd2lJSDBzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDBzWEc0Z0lGMHNYRzU5TzF4dVhHNHZLaW9nVFdGdWFXWmxjM1FnWm05eUlIUm9aU0J0WVc1MVlXd3RkSEpwWjJkbGNpQnViMlJsSUNoemRHRnlkSE1nWVNCeWRXNGdiMjRnWkdWdFlXNWtLUzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JOUVU1VlFVeGZWRkpKUjBkRlVsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVJRDBnWTI5dGNHbHNaU2hOWVc1MVlXeFVjbWxuWjJWeVRtOWtaU3dnWENKTllXNTFZV3dnZEhKcFoyZGxjbHdpS1R0Y2JseHVMeW9xSUUxaGJtbG1aWE4wSUdadmNpQjBhR1VnZDJWaWFHOXZheTEwY21sbloyVnlJRzV2WkdVZ0tITjBZWEowY3lCaElISjFiaUJtY205dElHRnVJR2x1WW05MWJtUWdkMlZpYUc5dmF5a3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdWMFZDU0U5UFMxOVVVa2xIUjBWU1gwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUWdQU0JqYjIxd2FXeGxLRmRsWW1odmIydFVjbWxuWjJWeVRtOWtaU3dnWENKWFpXSm9iMjlySUhSeWFXZG5aWEpjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUhOamFHVmtkV3hsTFhSeWFXZG5aWElnYm05a1pTQW9jM1JoY25SeklHRWdjblZ1SUc5dUlHRWdjMk5vWldSMWJHVXBMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRk5EU0VWRVZVeEZYMVJTU1VkSFJWSmZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ0E5SUdOdmJYQnBiR1VvVTJOb1pXUjFiR1ZVY21sbloyVnlUbTlrWlN3Z1hDSlRZMmhsWkhWc1pTQjBjbWxuWjJWeVhDSXBPMXh1WEc0dktpb2dUV0Z1YVdabGMzUWdabTl5SUhSb1pTQmxkbVZ1ZEMxMGNtbG5aMlZ5SUc1dlpHVWdLSE4wWVhKMGN5QmhJSEoxYmlCdmJpQmhiaUJ2WW5ObGNuWmxaQ0JsZG1WdWRDa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSVlpGVGxSZlZGSkpSMGRGVWw5SFVrRlFTRjlPVDBSRlgwMUJUa2xHUlZOVUlEMGdZMjl0Y0dsc1pTaEZkbVZ1ZEZSeWFXZG5aWEpPYjJSbExDQmNJa1YyWlc1MElIUnlhV2RuWlhKY0lpazdYRzVjYmk4cUtpQk5ZVzVwWm1WemRDQm1iM0lnZEdobElHWnZjbTB0ZEhKcFoyZGxjaUJ1YjJSbElDaHpkR0Z5ZEhNZ1lTQnlkVzRnWm5KdmJTQmhJR1p2Y20wZ2MzVmliV2x6YzJsdmJpa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdSazlTVFY5VVVrbEhSMFZTWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRZ1BTQmpiMjF3YVd4bEtFWnZjbTFVY21sbloyVnlUbTlrWlN3Z1hDSkdiM0p0SUhSeWFXZG5aWEpjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUdOb1lYUXRkSEpwWjJkbGNpQnViMlJsSUNoemRHRnlkSE1nWVNCeWRXNGdabkp2YlNCaElHTm9ZWFFnYldWemMyRm5aU2t1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUTBoQlZGOVVVa2xIUjBWU1gwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUWdQU0JqYjIxd2FXeGxLRU5vWVhSVWNtbG5aMlZ5VG05a1pTd2dYQ0pEYUdGMElIUnlhV2RuWlhKY0lpazdYRzVjYmk4cUtpQk5ZVzVwWm1WemRDQm1iM0lnZEdobElHbG1JRzV2WkdVZ0tHTnZibVJwZEdsdmJtRnNJR0p5WVc1amFDQnZiaUJoSUdKdmIyeGxZVzRnWTI5dVpHbDBhVzl1S1M0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCSlJsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVJRDBnWTI5dGNHbHNaU2hKWmtac2IzZE9iMlJsTENCY0lrbG1YQ0lwTzF4dVhHNHZLaW9nVFdGdWFXWmxjM1FnWm05eUlIUm9aU0J3WVhKaGJHeGxiQ0J1YjJSbElDaHlkVzV6SUdKeVlXNWphR1Z6SUdOdmJtTjFjbkpsYm5Sc2VTa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdVRUZTUVV4TVJVeGZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ0E5SUdOdmJYQnBiR1VvVUdGeVlXeHNaV3hHYkc5M1RtOWtaU3dnWENKUVlYSmhiR3hsYkZ3aUtUdGNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ2JXVnlaMlVnYm05a1pTQW9hbTlwYm5NZ2NHRnlZV3hzWld3Z1luSmhibU5vWlhNcExpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFMUZVa2RGWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRZ1BTQmpiMjF3YVd4bEtFMWxjbWRsUm14dmQwNXZaR1VzSUZ3aVRXVnlaMlZjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUcxaGNDQnViMlJsSUNoMGNtRnVjMlp2Y20xeklHVmhZMmdnYVc1d2RYUWdhWFJsYlNrdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1RVRlFYMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFnUFNCamIyMXdhV3hsS0UxaGNFWnNiM2RPYjJSbExDQmNJazFoY0Z3aUtUdGNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ1pHVnNZWGtnYm05a1pTQW9jR0YxYzJWeklHVjRaV04xZEdsdmJpQm1iM0lnWVNCa2RYSmhkR2x2YmlrdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFVk1RVmxmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkNBOUlHTnZiWEJwYkdVb1JHVnNZWGxHYkc5M1RtOWtaU3dnWENKRVpXeGhlVndpS1R0Y2JseHVMeW9xSUUxaGJtbG1aWE4wSUdadmNpQjBhR1VnWlhKeWIzSXRZbTkxYm1SaGNua2dibTlrWlNBb2FYTnZiR0YwWlhNZ1luSmhibU5vSUdaaGFXeDFjbVZ6S1M0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCRlVsSlBVbDlDVDFWT1JFRlNXVjlIVWtGUVNGOU9UMFJGWDAxQlRrbEdSVk5VSUQwZ1kyOXRjR2xzWlNoRmNuSnZja0p2ZFc1a1lYSjVSbXh2ZDA1dlpHVXNJRndpUlhKeWIzSWdZbTkxYm1SaGNubGNJaWs3WEc1Y2JpOHFLaUJOWVc1cFptVnpkQ0JtYjNJZ2RHaGxJR2gxYldGdUxXRndjSEp2ZG1Gc0lHNXZaR1VnS0hkaGFYUnpJR1p2Y2lCaGJpQmhjSEJ5YjNaaGJDQmtaV05wYzJsdmJpa3VJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdTRlZOUVU1ZlFWQlFVazlXUVV4ZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDQTlJR052YlhCcGJHVW9TSFZ0WVc1QmNIQnliM1poYkVac2IzZE9iMlJsTENCY0lraDFiV0Z1SUdGd2NISnZkbUZzWENJcE8xeHVYRzR2S2lvZ1RXRnVhV1psYzNRZ1ptOXlJSFJvWlNCeVpYUjFjbTRnYm05a1pTQW9kR1Z5YldsdVlYUmxjeUIwYUdVZ2QyOXlhMlpzYjNjZ2QybDBhQ0J2ZFhSd2RYUWdkbUZzZFdWektTNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQlNSVlJWVWs1ZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDQTlJR052YlhCcGJHVW9VbVYwZFhKdVJteHZkMDV2WkdVc0lGd2lVbVYwZFhKdVhDSXBPMXh1WEc0dktpb2dUV0Z1YVdabGMzUWdabTl5SUhSb1pTQmpiMlJsSUc1dlpHVWdLR1Y0WldOMWRHVnpJSFZ6WlhJZ1kyOWtaU2t1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUTA5RVJWOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVJRDBnWTI5dGNHbHNaU2hEYjJSbFJteHZkMDV2WkdVc0lGd2lRMjlrWlZ3aUtUdGNibHh1THlvcUlFMWhibWxtWlhOMElHWnZjaUIwYUdVZ2JHOW5JRzV2WkdVZ0tHeHZaM01nYVhSeklHbHVjSFYwS1M0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCTVQwZGZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ0E5SUdOdmJYQnBiR1VvVEc5blJteHZkMDV2WkdVc0lGd2lURzluWENJcE8xeHVYRzR2S2lvZ1RXRnVhV1psYzNRZ1ptOXlJSFJvWlNCMWRHbHNhWFI1TFd4dlp5QnViMlJsSUNoc2IyY3RjMmhoY0dWa0lIVjBhV3hwZEhrZ2MybHVheWt1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnVlZSSlRFbFVXVjlNVDBkZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDQTlJR052YlhCcGJHVW9WWFJwYkdsMGVVeHZaMDV2WkdVc0lGd2lWWFJwYkdsMGVTQk1iMmRjSWlrN1hHNWNiaThxS2lCTllXNXBabVZ6ZENCbWIzSWdkR2hsSUdKeVpXRnJJRzV2WkdVZ0tHVjRhWFJ6SUhSb1pTQmxibU5zYjNOcGJtY2diRzl2Y0NrdUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1FsSkZRVXRmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkNBOUlHTnZiWEJwYkdVb1FuSmxZV3RHYkc5M1RtOWtaU3dnWENKQ2NtVmhhMXdpS1R0Y2JseHVMeW9xSUUxaGJtbG1aWE4wSUdadmNpQjBhR1VnWVdkbGJuUWdibTlrWlNBb1pHVnNaV2RoZEdWeklIZHZjbXNnZEc4Z1lXNGdZV2RsYm5RcExpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFRkhSVTVVWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRZ1BTQmpiMjF3YVd4bEtFRm5aVzUwVG05a1pTd2dYQ0pCWjJWdWRGd2lLVHRjYmx4dUx5b3FJRUZzYkNCaWRXbHNkQzFwYmlCdWIyUmxJRzFoYm1sbVpYTjBjeXdnYVc0Z1kyRjBZV3h2WjNWbElHUnBjM0JzWVhrZ2IzSmtaWEl1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnUjFKQlVFaGZRbFZKVEZSZlNVNWZUazlFUlY5TlFVNUpSa1ZUVkZNNklFZHlZWEJvVG05a1pVMWhibWxtWlhOMFcxMGdQU0JiWEc0Z0lFMUJUbFZCVEY5VVVrbEhSMFZTWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRmRGUWtoUFQwdGZWRkpKUjBkRlVsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCVFEwaEZSRlZNUlY5VVVrbEhSMFZTWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRVZXUlU1VVgxUlNTVWRIUlZKZlIxSkJVRWhmVGs5RVJWOU5RVTVKUmtWVFZDeGNiaUFnUms5U1RWOVVVa2xIUjBWU1gwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUXNYRzRnSUVOSVFWUmZWRkpKUjBkRlVsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCSlJsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCVFYwbFVRMGhmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkN4Y2JpQWdVRUZTUVV4TVJVeGZSMUpCVUVoZlRrOUVSVjlOUVU1SlJrVlRWQ3hjYmlBZ1RVVlNSMFZmUjFKQlVFaGZUazlFUlY5TlFVNUpSa1ZUVkN4Y2JpQWdUVUZRWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRVJGVEVGWlgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUXNYRzRnSUVWU1VrOVNYMEpQVlU1RVFWSlpYMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFzWEc0Z0lFaFZUVUZPWDBGUVVGSlBWa0ZNWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRkpGVkZWU1RsOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCRFQwUkZYMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFzWEc0Z0lFeFBSMTlIVWtGUVNGOU9UMFJGWDAxQlRrbEdSVk5VTEZ4dUlDQlZWRWxNU1ZSWlgweFBSMTlIVWtGUVNGOU9UMFJGWDAxQlRrbEdSVk5VTEZ4dUlDQkNVa1ZCUzE5SFVrRlFTRjlPVDBSRlgwMUJUa2xHUlZOVUxGeHVJQ0JCUjBWT1ZGOUhVa0ZRU0Y5T1QwUkZYMDFCVGtsR1JWTlVMRnh1SUNCR1QxSkZRVU5JWDBkU1FWQklYMDVQUkVWZlRVRk9TVVpGVTFRc1hHNGdJRmRJU1V4RlgwZFNRVkJJWDA1UFJFVmZUVUZPU1VaRlUxUXNYRzRnSUZWT1ZFbE1YMGRTUVZCSVgwNVBSRVZmVFVGT1NVWkZVMVFzWEc1ZE8xeHVYRzR2S2lvZ1FuVnBiSFF0YVc0Z2JXRnVhV1psYzNSeklHbHVaR1Y0WldRZ1lua2dibTlrWlNCZ2EybHVaR0FnNG9DVUlIUm9aU0J6YjNWeVkyVWdabTl5SUdKMWFXeDBMV2x1SUdOaGRHRnNiMmQxWlNCeVpXZHBjM1J5WVhScGIyNXpMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRWRTUVZCSVgwSlZTVXhVWDBsT1gwNVBSRVZmVFVGT1NVWkZVMVJUWDBKWlgwdEpUa1E2SUZKbFkyOXlaRHhjYmlBZ2MzUnlhVzVuTEZ4dUlDQkhjbUZ3YUU1dlpHVk5ZVzVwWm1WemRGeHVQaUE5SUU5aWFtVmpkQzVtY205dFJXNTBjbWxsY3loY2JpQWdSMUpCVUVoZlFsVkpURlJmU1U1ZlRrOUVSVjlOUVU1SlJrVlRWRk11YldGd0tDaHRZVzVwWm1WemRDa2dQVDRnVzIxaGJtbG1aWE4wTG10cGJtUXNJRzFoYm1sbVpYTjBYU2xjYmlrN1hHNGlYWDA9Il19
|