@decaf-ts/integrations 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integrations.cjs +2 -2087
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -2356
- package/dist/integrations.js.map +1 -0
- package/docker/keycloak-broker-compose.yml +128 -0
- package/docker/traefik-broker.yml +51 -0
- package/eslint.config.js +1 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs.map +1 -0
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs.map +1 -0
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs.map +1 -0
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs.map +1 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/constants.cjs.map +1 -0
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +5 -3
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -3
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs.map +1 -0
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs.map +1 -0
- package/lib/cjs/index.cjs +4 -4
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +22 -0
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +3 -2
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +71 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +6 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/families.cjs.map +1 -0
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/index.cjs.map +1 -0
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/loader/types.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs.map +1 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs.map +1 -0
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs.map +1 -0
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -0
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs.map +1 -0
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/logging.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs.map +1 -0
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs.map +1 -0
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs.map +1 -0
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/ipfs/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/constants.js.map +1 -0
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/decorators.js.map +1 -0
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/environment.js.map +1 -0
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/readers/index.js.map +1 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/types.js.map +1 -0
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/feature-flags/utils.js.map +1 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/constants.js.map +1 -0
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/decorators.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js +1 -1
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/errors/index.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/events/index.js.map +1 -0
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +4 -2
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/execution/index.js.map +1 -0
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/index.js.map +1 -0
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -2
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/loops/index.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/planning/index.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/registry/index.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/store/index.js.map +1 -0
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/types.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/engine/validation/index.js.map +1 -0
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/index.js.map +1 -0
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/constants.js.map +1 -0
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js.map +1 -0
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/graph/shared/types.js.map +1 -0
- package/lib/esm/index.js +3 -3
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +17 -0
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +2 -1
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +69 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +5 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/services/runtime.js.map +1 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/builders/index.js.map +1 -0
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/services/runtime.js.map +1 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/ObjectLoader.js.map +1 -0
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/families.js.map +1 -0
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/index.js.map +1 -0
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/loader/types.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/index.js.map +1 -0
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js.map +1 -0
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/index.js.map +1 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js.map +1 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js.map +1 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js.map +1 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/index.js.map +1 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js.map +1 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js.map +1 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js.map +1 -0
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/types.js.map +1 -0
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/namespaces/utils.js.map +1 -0
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/decorators.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -0
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/index.js.map +1 -0
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/graph/main.js.map +1 -0
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/logging.js.map +1 -0
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/contract.js.map +1 -0
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/index.js.map +1 -0
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/host.js.map +1 -0
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/index.js.map +1 -0
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/installer.js.map +1 -0
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js.map +1 -0
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/templates.js.map +1 -0
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/kibana/types.js.map +1 -0
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/host.js.map +1 -0
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/index.js.map +1 -0
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/installer.js.map +1 -0
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/manifest.js.map +1 -0
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/templates.js.map +1 -0
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/plugins/superset/types.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/shared/runtime.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/broker.d.cts +6 -0
- package/lib/types/keycloak/broker.d.mts +6 -0
- package/lib/types/keycloak/index.d.cts +1 -0
- package/lib/types/keycloak/index.d.mts +1 -0
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +4 -1
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +4 -1
- package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
- package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
- package/lib/types/keycloak/types.d.cts +52 -0
- package/lib/types/keycloak/types.d.mts +52 -0
- package/package.json +1 -1
|
@@ -477,5 +477,5 @@ class IsolatedVmCodeSandboxEvaluator {
|
|
|
477
477
|
}
|
|
478
478
|
}
|
|
479
479
|
exports.IsolatedVmCodeSandboxEvaluator = IsolatedVmCodeSandboxEvaluator;
|
|
480
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2dyYXBoL2VuZ2luZS9leGVjdXRpb24vSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDJDQUFzQztBQUVwRTs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFN0I7O0dBRUc7QUFDSCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFFaEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxtQkFBbUIsR0FBd0IsSUFBSSxHQUFHLENBQUM7SUFDdkQsU0FBUztJQUNULFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixZQUFZO0lBQ1osVUFBVTtJQUNWLE1BQU07SUFDTixPQUFPO0lBQ1AsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxRQUFRO0lBQ1IsTUFBTTtJQUNOLEtBQUs7SUFDTCxZQUFZO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLElBQVksRUFDWixRQUFxQztJQUVyQyxJQUFJLFFBQVEsS0FBSyxZQUFZO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFM0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FB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QUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9DaEIsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uL0lzb2xhdGVkVm1Db2RlU2FuZGJveEV2YWx1YXRvclxuICogQHN1bW1hcnkge0BsaW5rIENvZGVTYW5kYm94RXZhbHVhdG9yfSBiYWNrZWQgYnkgYGlzb2xhdGVkLXZtYCAoQUxGUkVELTUgwqc3KS5cbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBhIGZ1bGx5IGlzb2xhdGVkIFY4IHNhbmRib3ggZm9yIHRoZSBDb2RlIE5vZGVcbiAqIChERUNBRi0zMiDCpzIyLjQpIGFuZCBjb2RlLWJhc2VkIGNvbmRpdGlvbnMuIFVzZXMgYGlzb2xhdGVkLXZtYCBmb3IgdHJ1ZVxuICogaGVhcCBpc29sYXRpb24gKHVubGlrZSBOb2RlJ3MgYHZtYCBtb2R1bGUgd2hpY2ggc2hhcmVzIHRoZSBob3N0IGhlYXApLFxuICogYGFjb3JuYCArIGBhY29ybi13YWxrYCBmb3IgQVNULWJhc2VkIHN0YXRpYyB2YWxpZGF0aW9uLCBhbmQgYHR5cGVzY3JpcHRgXG4gKiBmb3IgVFMgdHJhbnNwaWxhdGlvbi5cbiAqXG4gKiBSZXN0cmljdGlvbnMgZW5mb3JjZWQgKEFMRlJFRC01IMKnNy4xMOKAkzcuMTIsIERFQ0FGLTM0IMKnNy41KTpcbiAqXG4gKiAtICoqTm8gaW1wb3J0cyoqIOKAlCBgaW1wb3J0YCBkZWNsYXJhdGlvbnMgYXJlIHJlamVjdGVkIGJ5IEFTVCB2YWxpZGF0aW9uLlxuICogLSAqKk5vIHJlcXVpcmVzKiog4oCUIGByZXF1aXJlYCBpcyBpbiB0aGUgYmxvY2tlZC1pZGVudGlmaWVyIHNldCBhbmQgaXMgbm90XG4gKiAgIGV4cG9zZWQgaW4gdGhlIHNhbmRib3ggY29udGV4dC5cbiAqIC0gKipObyBleHBvcnRzKiog4oCUIGBleHBvcnRgIGRlY2xhcmF0aW9ucyBhcmUgcmVqZWN0ZWQgYnkgQVNUIHZhbGlkYXRpb24uXG4gKiAtICoqUHVyZSBmdW5jdGlvbnMgb25seSoqIOKAlCBubyBzeXN0ZW0gQVBJIGFjY2Vzcy4gQmxvY2tlZCBpZGVudGlmaWVyc1xuICogICBpbmNsdWRlIGBwcm9jZXNzYCwgYGdsb2JhbGAsIGBnbG9iYWxUaGlzYCwgYEZ1bmN0aW9uYCwgYGV2YWxgLCBgZmV0Y2hgLFxuICogICBgWE1MSHR0cFJlcXVlc3RgLCBgV2ViU29ja2V0YCwgYFdvcmtlcmAsIGBEZW5vYCwgYEJ1bmAsIGBtb2R1bGVgLFxuICogICBgZXhwb3J0c2AuIFRoZSBzYW5kYm94IGNvbnRleHQgZXhwb3NlcyBvbmx5IHRoZSBkYXRhIHZhcmlhYmxlc1xuICogICAoYCRpbnB1dGAsIGAkdmFyc2AsIGAkaXRlbWAsIGAkaW5kZXhgLCBgJG5vZGVgLCBgJG91dHB1dGApLlxuICogLSAqKk5vIGBldmFsKClgIC8gYG5ldyBGdW5jdGlvbigpYCoqIOKAlCByZWplY3RlZCBieSBBU1QgdmFsaWRhdGlvbi5cbiAqXG4gKiBUaGUgdXNlciBjb2RlIGlzIHRyYW5zcGlsZWQgKFRTIOKGkiBKUykgaWYgbmVlZGVkLCBzdGF0aWNhbGx5IHZhbGlkYXRlZCxcbiAqIHdyYXBwZWQgaW4gYSBzdHJpY3QtbW9kZSBhc3luYyBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSBkYXRhIHZhcmlhYmxlcyBhc1xuICogcGFyYW1ldGVycywgY29tcGlsZWQgaW4gYW4gaXNvbGF0ZWQgVjggaW5zdGFuY2UsIGFuZCBleGVjdXRlZCB3aXRoIGFcbiAqIHRpbWVvdXQgYW5kIG1lbW9yeSBsaW1pdC4gVGhlIHJlc3VsdCBpcyBjb3BpZWQgYmFjayB0byB0aGUgaG9zdCBoZWFwLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgZXZhbHVhdG9yID0gbmV3IElzb2xhdGVkVm1Db2RlU2FuZGJveEV2YWx1YXRvcigpO1xuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdG9yLmV2YWx1YXRlKHtcbiAqICAgY29kZTogXCJyZXR1cm4gJGlucHV0LmEgKyAkaW5wdXQuYjtcIixcbiAqICAgaW5wdXQ6IHsgYTogMiwgYjogMyB9LFxuICogfSk7XG4gKiAvLyByZXN1bHQgPT09IDVcbiAqIGBgYFxuICovXG5pbXBvcnQgaXZtIGZyb20gXCJpc29sYXRlZC12bVwiO1xuaW1wb3J0ICogYXMgYWNvcm4gZnJvbSBcImFjb3JuXCI7XG5pbXBvcnQgKiBhcyB3YWxrIGZyb20gXCJhY29ybi13YWxrXCI7XG5pbXBvcnQgKiBhcyB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuaW1wb3J0IHR5cGUge1xuICBDb2RlU2FuZGJveEV2YWx1YXRvcixcbiAgQ29kZVNhbmRib3hDb250ZXh0LFxuICBTYW5kYm94TG9nZ2VyLFxufSBmcm9tIFwiLi9Db2RlU2FuZGJveEV2YWx1YXRvclwiO1xuaW1wb3J0IHsgR3JhcGhFeGVjdXRpb25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMvR3JhcGhFeGVjdXRpb25FcnJvclwiO1xuXG4vKipcbiAqIERlZmF1bHQgc2FuZGJveCBleGVjdXRpb24gdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gKi9cbmNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDEwMDA7XG5cbi8qKlxuICogRGVmYXVsdCBtZW1vcnkgbGltaXQgZm9yIHRoZSBpc29sYXRlZCBWOCBoZWFwIGluIE1CLlxuICovXG5jb25zdCBERUZBVUxUX01FTU9SWV9NQiA9IDMyO1xuXG4vKipcbiAqIE1heGltdW0gY29kZSBsZW5ndGggKGNoYXJhY3RlcnMpIGFjY2VwdGVkIGJ5IHRoZSBldmFsdWF0b3IuXG4gKi9cbmNvbnN0IE1BWF9DT0RFX0xFTkdUSCA9IDEwMF8wMDA7XG5cbi8qKlxuICogSWRlbnRpZmllcnMgdGhhdCBhcmUgZm9yYmlkZGVuIGluIHNhbmRib3hlZCBjb2RlIChBTEZSRUQtNSDCpzcuMTApLlxuICpcbiAqIEFueSBBU1Qgbm9kZSBvZiB0eXBlIGBJZGVudGlmaWVyYCB3aG9zZSBgbmFtZWAgaXMgaW4gdGhpcyBzZXQgY2F1c2VzIHRoZVxuICogdmFsaWRhdG9yIHRvIHJlamVjdCB0aGUgY29kZS4gVGhpcyBjb3ZlcnMgYm90aCBmcmVlLXN0YW5kaW5nIHJlZmVyZW5jZXNcbiAqIChgcHJvY2Vzcy5lbnZgKSBhbmQgY2FsbCB0YXJnZXRzIChgcmVxdWlyZSguLi4pYCkuXG4gKi9cbmNvbnN0IEJMT0NLRURfSURFTlRJRklFUlM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgXCJwcm9jZXNzXCIsXG4gIFwicmVxdWlyZVwiLFxuICBcIm1vZHVsZVwiLFxuICBcImV4cG9ydHNcIixcbiAgXCJnbG9iYWxcIixcbiAgXCJnbG9iYWxUaGlzXCIsXG4gIFwiRnVuY3Rpb25cIixcbiAgXCJldmFsXCIsXG4gIFwiZmV0Y2hcIixcbiAgXCJYTUxIdHRwUmVxdWVzdFwiLFxuICBcIldlYlNvY2tldFwiLFxuICBcIldvcmtlclwiLFxuICBcIkRlbm9cIixcbiAgXCJCdW5cIixcbiAgXCJfX2Rpc3BhdGNoXCIsXG5dKTtcblxuLyoqXG4gKiBUcmFuc3BpbGVzIFR5cGVTY3JpcHQgY29kZSB0byBKYXZhU2NyaXB0IChBTEZSRUQtNSDCpzcuNCkuXG4gKlxuICogV2hlbiB0aGUgbGFuZ3VhZ2UgaXMgYCdqYXZhc2NyaXB0J2AgdGhlIGNvZGUgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLiBGb3JcbiAqIGAndHlwZXNjcmlwdCdgIHRoZSBjb2RlIGlzIHRyYW5zcGlsZWQgdXNpbmcgdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIgd2l0aFxuICogbW9kdWxlIGtpbmQgYE5vbmVgIChubyBpbXBvcnQvZXhwb3J0IGVtaXR0ZWQpIGFuZCB0YXJnZXQgYEVTMjAyMmAuXG4gKlxuICogQHBhcmFtIGNvZGUgLSBUaGUgdXNlci1hdXRob3JlZCBjb2RlLlxuICogQHBhcmFtIGxhbmd1YWdlIC0gVGhlIGNvZGUgbGFuZ3VhZ2UgKGAnamF2YXNjcmlwdCdgIG9yIGAndHlwZXNjcmlwdCdgKS5cbiAqIEByZXR1cm5zIFRyYW5zcGlsZWQgSmF2YVNjcmlwdCBjb2RlLlxuICovXG5mdW5jdGlvbiB0cmFuc3BpbGVUeXBlU2NyaXB0KFxuICBjb2RlOiBzdHJpbmcsXG4gIGxhbmd1YWdlOiBcImphdmFzY3JpcHRcIiB8IFwidHlwZXNjcmlwdFwiXG4pOiBzdHJpbmcge1xuICBpZiAobGFuZ3VhZ2UgPT09IFwiamF2YXNjcmlwdFwiKSByZXR1cm4gY29kZTtcblxuICBjb25zdCByZXN1bHQgPSB0cy50cmFuc3BpbGVNb2R1bGUoY29kZSwge1xuICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgdGFyZ2V0OiB0cy5TY3JpcHRUYXJnZXQuRVMyMDIyLFxuICAgICAgbW9kdWxlOiB0cy5Nb2R1bGVLaW5kLk5vbmUsXG4gICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICBub0VtaXRIZWxwZXJzOiB0cnVlLFxuICAgICAgaW1wb3J0SGVscGVyczogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gU3RyaXAgdGhlIFwidXNlIHN0cmljdFwiOyBkaXJlY3RpdmUgdGhhdCB0cy50cmFuc3BpbGVNb2R1bGUgYWRkcyDigJQgdGhlXG4gIC8vIHNhbmRib3ggd3JhcHBlciBhbHJlYWR5IGVuZm9yY2VzIHN0cmljdCBtb2RlLCBhbmQgdGhlIGRpcmVjdGl2ZSBicmVha3NcbiAgLy8gZXhwcmVzc2lvbi1tb2RlIHdyYXBwaW5nIChyZXR1cm4gKC4uLikpLlxuICByZXR1cm4gcmVzdWx0Lm91dHB1dFRleHQucmVwbGFjZSgvXlwidXNlIHN0cmljdFwiO1xccyovLCBcIlwiKTtcbn1cblxuLyoqXG4gKiBTdGF0aWNhbGx5IHZhbGlkYXRlcyB1c2VyIGNvZGUgdXNpbmcgYW4gQVNUIHdhbGsgKEFMRlJFRC01IMKnNy4xMSkuXG4gKlxuICogUmVqZWN0czpcbiAqIC0gYEltcG9ydERlY2xhcmF0aW9uYCDigJQgbm8gaW1wb3J0cyBhbGxvd2VkLlxuICogLSBgRXhwb3J0TmFtZWREZWNsYXJhdGlvbmAgLyBgRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uYCDigJQgbm8gZXhwb3J0cy5cbiAqIC0gYElkZW50aWZpZXJgIHdob3NlIG5hbWUgaXMgaW4ge0BsaW5rIEJMT0NLRURfSURFTlRJRklFUlN9LlxuICogLSBgTmV3RXhwcmVzc2lvbmAgd2l0aCBjYWxsZWUgYEZ1bmN0aW9uYCDigJQgbm8gYG5ldyBGdW5jdGlvbigpYC5cbiAqIC0gYENhbGxFeHByZXNzaW9uYCB3aXRoIGNhbGxlZSBgZXZhbGAg4oCUIG5vIGBldmFsKClgLlxuICpcbiAqIEBwYXJhbSBjb2RlIC0gSmF2YVNjcmlwdCBjb2RlIHRvIHZhbGlkYXRlIChhZnRlciBUUyB0cmFuc3BpbGF0aW9uKS5cbiAqIEB0aHJvd3Mge0dyYXBoRXhlY3V0aW9uRXJyb3J9IHdoZW4gYSBmb3JiaWRkZW4gY29uc3RydWN0IGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVNhZmVDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoY29kZS5sZW5ndGggPiBNQVhfQ09ERV9MRU5HVEgpIHtcbiAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgIGBDb2RlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mICR7TUFYX0NPREVfTEVOR1RIfSBjaGFyYWN0ZXJzYCxcbiAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0NPREVfVE9PX0xPTkdcIixcbiAgICAgIHsgbGVuZ3RoOiBjb2RlLmxlbmd0aCB9XG4gICAgKTtcbiAgfVxuXG4gIGxldCBhc3Q6IGFjb3JuLkFueU5vZGU7XG4gIHRyeSB7XG4gICAgLy8gRmlyc3QsIHRyeSBwYXJzaW5nIHRoZSBjb2RlIHdyYXBwZWQgaW4gYSBmdW5jdGlvbiB3aXRoIHNvdXJjZVR5cGVcbiAgICAvLyBcInNjcmlwdFwiLiBUaGlzIGhhbmRsZXMgYHJldHVybmAgc3RhdGVtZW50cyAod2hpY2ggYXJlIHZhbGlkIGluc2lkZSBhXG4gICAgLy8gZnVuY3Rpb24pIGFuZCBsZXRzIHVzIGRldGVjdCBibG9ja2VkIGlkZW50aWZpZXJzLCBldmFsKCksIGFuZFxuICAgIC8vIG5ldyBGdW5jdGlvbigpIHZpYSB0aGUgQVNUIHdhbGsuXG4gICAgYXN0ID0gYWNvcm4ucGFyc2UoYGFzeW5jIGZ1bmN0aW9uIF9fdmFsaWRhdGUoKSB7XFxuJHtjb2RlfVxcbn1gLCB7XG4gICAgICBlY21hVmVyc2lvbjogXCJsYXRlc3RcIixcbiAgICAgIHNvdXJjZVR5cGU6IFwic2NyaXB0XCIsXG4gICAgfSkgYXMgYWNvcm4uQW55Tm9kZTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gSWYgdGhlIGZ1bmN0aW9uLXdyYXBwZWQgcGFyc2UgZmFpbHMgKGUuZy4gYmVjYXVzZSB0aGUgY29kZSBoYXNcbiAgICAvLyB0b3AtbGV2ZWwgYGltcG9ydGAgb3IgYGV4cG9ydGAgZGVjbGFyYXRpb25zIHdoaWNoIGFyZSBpbnZhbGlkIGluc2lkZVxuICAgIC8vIGEgZnVuY3Rpb24pLCB0cnkgcGFyc2luZyB0aGUgcmF3IGNvZGUgd2l0aCBzb3VyY2VUeXBlIFwibW9kdWxlXCIgc29cbiAgICAvLyBpbXBvcnQvZXhwb3J0IGRlY2xhcmF0aW9ucyBhcmUgcmVjb2duaXNlZCBhcyBBU1Qgbm9kZXMuXG4gICAgdHJ5IHtcbiAgICAgIGFzdCA9IGFjb3JuLnBhcnNlKGNvZGUsIHtcbiAgICAgICAgZWNtYVZlcnNpb246IFwibGF0ZXN0XCIsXG4gICAgICAgIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gICAgICB9KSBhcyBhY29ybi5BbnlOb2RlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIGBDb2RlIGZhaWxlZCB0byBwYXJzZTogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1BBUlNFX0VSUk9SXCIsXG4gICAgICAgIHsgY29kZSwgZXJyb3I6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB3YWxrLmZ1bGwoYXN0IGFzIG5ldmVyLCAobm9kZTogYWNvcm4uQW55Tm9kZSkgPT4ge1xuICAgIGNvbnN0IG4gPSBub2RlIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgICBpZiAobltcInR5cGVcIl0gPT09IFwiSW1wb3J0RGVjbGFyYXRpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIFwiSW1wb3J0cyBhcmUgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5cIixcbiAgICAgICAgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRk9SQklEREVOX1RPS0VOXCIsXG4gICAgICAgIHsgdG9rZW46IFwiaW1wb3J0XCIgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBuW1widHlwZVwiXSA9PT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIgfHxcbiAgICAgIG5bXCJ0eXBlXCJdID09PSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgXCJFeHBvcnRzIGFyZSBub3QgYWxsb3dlZCBpbiBDb2RlIG5vZGVzLlwiLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9GT1JCSURERU5fVE9LRU5cIixcbiAgICAgICAgeyB0b2tlbjogXCJleHBvcnRcIiB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIG5bXCJ0eXBlXCJdID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgdHlwZW9mIG5bXCJuYW1lXCJdID09PSBcInN0cmluZ1wiICYmXG4gICAgICBCTE9DS0VEX0lERU5USUZJRVJTLmhhcyhuW1wibmFtZVwiXSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFxuICAgICAgICBgSWRlbnRpZmllciBcIiR7bltcIm5hbWVcIl19XCIgaXMgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5gLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9GT1JCSURERU5fVE9LRU5cIixcbiAgICAgICAgeyB0b2tlbjogbltcIm5hbWVcIl0gfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBuW1widHlwZVwiXSA9PT0gXCJOZXdFeHByZXNzaW9uXCIgJiZcbiAgICAgIChuW1wiY2FsbGVlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8uW1wibmFtZVwiXSA9PT0gXCJGdW5jdGlvblwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgXCJuZXcgRnVuY3Rpb24oKSBpcyBub3QgYWxsb3dlZCBpbiBDb2RlIG5vZGVzLlwiLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9GT1JCSURERU5fVE9LRU5cIixcbiAgICAgICAgeyB0b2tlbjogXCJGdW5jdGlvblwiIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbltcInR5cGVcIl0gPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxuICAgICAgKG5bXCJjYWxsZWVcIl0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5bXCJuYW1lXCJdID09PSBcImV2YWxcIlxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIFwiZXZhbCgpIGlzIG5vdCBhbGxvd2VkIGluIENvZGUgbm9kZXMuXCIsXG4gICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0ZPUkJJRERFTl9UT0tFTlwiLFxuICAgICAgICB7IHRva2VuOiBcImV2YWxcIiB9XG4gICAgICApO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBnaXZlbiBjb2RlIGNvbnRhaW5zIGEgdG9wLWxldmVsIGByZXR1cm5gIHN0YXRlbWVudC5cbiAqXG4gKiBXaGVuIHRoZSBjb2RlIGhhcyBubyBgcmV0dXJuYCwgaXQgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZSBleHByZXNzaW9uIGFuZFxuICogd3JhcHBlZCBpbiBgcmV0dXJuICguLi4pYCBzbyB0aGUgdXNlciBjYW4gd3JpdGUgYCgkaW5wdXQuYSArICRpbnB1dC5iKWBcbiAqIGluc3RlYWQgb2YgYHJldHVybiAkaW5wdXQuYSArICRpbnB1dC5iYC5cbiAqL1xuZnVuY3Rpb24gaGFzUmV0dXJuU3RhdGVtZW50KGNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL1xcYnJldHVyblxcYltcXHM7XS8udGVzdChjb2RlKTtcbn1cblxuLyoqXG4gKiBgaXNvbGF0ZWQtdm1gLWJhY2tlZCB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9IChBTEZSRUQtNSDCpzcuMTgpLlxuICpcbiAqIFRoaXMgZXZhbHVhdG9yIHByb3ZpZGVzIGEgdHJ1bHkgaXNvbGF0ZWQgVjggc2FuZGJveCDigJQgdGhlIGNvZGUgcnVucyBpbiBhXG4gKiBzZXBhcmF0ZSBpc29sYXRlIHdpdGggaXRzIG93biBoZWFwLCBzZXBhcmF0ZSBmcm9tIHRoZSBob3N0IHByb2Nlc3MuIFRoZVxuICogc2FuZGJveCBjb250ZXh0IGV4cG9zZXMgb25seSB0aGUgZGF0YSB2YXJpYWJsZXMgKGAkaW5wdXRgLCBgJHZhcnNgLCBgJGl0ZW1gLFxuICogYCRpbmRleGAsIGAkbm9kZWAsIGAkb3V0cHV0YCk7IG5vIGhvc3QgZ2xvYmFscyBhcmUgYXZhaWxhYmxlLlxuICpcbiAqIEV4ZWN1dGlvbiBwaXBlbGluZTpcbiAqIDEuICoqVHJhbnNwaWxlKiog4oCUIFR5cGVTY3JpcHQgY29kZSBpcyB0cmFuc3BpbGVkIHRvIEphdmFTY3JpcHQgdmlhXG4gKiAgICBgdHlwZXNjcmlwdC50cmFuc3BpbGVNb2R1bGVgIChBTEZSRUQtNSDCpzcuNCkuXG4gKiAyLiAqKlZhbGlkYXRlKiog4oCUIHRoZSBKYXZhU2NyaXB0IGNvZGUgaXMgcGFyc2VkIHdpdGggYGFjb3JuYCBhbmQgd2Fsa2VkIHdpdGhcbiAqICAgIGBhY29ybi13YWxrYCB0byByZWplY3QgaW1wb3J0cywgZXhwb3J0cywgYmxvY2tlZCBpZGVudGlmaWVycywgYGV2YWwoKWAsXG4gKiAgICBhbmQgYG5ldyBGdW5jdGlvbigpYCAoQUxGUkVELTUgwqc3LjExKS5cbiAqIDMuICoqSXNvbGF0ZSoqIOKAlCBhIG5ldyBgaXNvbGF0ZWQtdm1gIGBJc29sYXRlYCBpcyBjcmVhdGVkIHdpdGggYSBtZW1vcnlcbiAqICAgIGxpbWl0LiBBIGNvbnRleHQgaXMgY3JlYXRlZCBhbmQgdGhlIGRhdGEgdmFyaWFibGVzIGFyZSBjb3BpZWQgaW50byB0aGVcbiAqICAgIGlzb2xhdGUncyBoZWFwIHZpYSBgRXh0ZXJuYWxDb3B5YC5cbiAqIDQuICoqQ29tcGlsZSAmIHJ1bioqIOKAlCB0aGUgd3JhcHBlZCBjb2RlIGlzIGNvbXBpbGVkIGFuZCBleGVjdXRlZCB3aXRoIGFcbiAqICAgIHRpbWVvdXQuIFRoZSByZXN1bHQgaXMgY29waWVkIGJhY2sgdG8gdGhlIGhvc3QgaGVhcC5cbiAqIDUuICoqRGlzcG9zZSoqIOKAlCB0aGUgaXNvbGF0ZSBpcyBhbHdheXMgZGlzcG9zZWQgaW4gYSBgZmluYWxseWAgYmxvY2suXG4gKlxuICogVGhlIHVzZXIgY29kZSBpcyB3cmFwcGVkIGluIGEgc3RyaWN0LW1vZGUgYXN5bmMgZnVuY3Rpb246XG4gKlxuICogYGBganNcbiAqIFwidXNlIHN0cmljdFwiO1xuICogYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJGlucHV0LCAkdmFycywgJGl0ZW0sICRpbmRleCwgJG5vZGUsICRvdXRwdXQpIHtcbiAqICAgPHVzZXIgY29kZT5cbiAqIH1cbiAqIF9fdXNlckZ1bmN0aW9uKCRpbnB1dCwgJHZhcnMsICRpdGVtLCAkaW5kZXgsICRub2RlLCAkb3V0cHV0KTtcbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGNvZGUgaGFzIG5vIGByZXR1cm5gIHN0YXRlbWVudCBpdCBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIGV4cHJlc3Npb25cbiAqIGFuZCB3cmFwcGVkIGluIGByZXR1cm4gKC4uLilgLlxuICovXG5leHBvcnQgY2xhc3MgSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yIGltcGxlbWVudHMgQ29kZVNhbmRib3hFdmFsdWF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRUaW1lb3V0TXM6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TWVtb3J5TWI6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGRlZmF1bHRUaW1lb3V0TXMgLSBEZWZhdWx0IGV4ZWN1dGlvbiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICogQHBhcmFtIGRlZmF1bHRNZW1vcnlNYiAtIERlZmF1bHQgaXNvbGF0ZSBtZW1vcnkgbGltaXQgaW4gTUIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBkZWZhdWx0VGltZW91dE1zOiBudW1iZXIgPSBERUZBVUxUX1RJTUVPVVRfTVMsXG4gICAgZGVmYXVsdE1lbW9yeU1iOiBudW1iZXIgPSBERUZBVUxUX01FTU9SWV9NQlxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRUaW1lb3V0TXMgPSBkZWZhdWx0VGltZW91dE1zO1xuICAgIHRoaXMuZGVmYXVsdE1lbW9yeU1iID0gZGVmYXVsdE1lbW9yeU1iO1xuICB9XG5cbiAgYXN5bmMgZXZhbHVhdGUoY3R4OiBDb2RlU2FuZGJveENvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBjb2RlID0gY3R4LmNvZGU7XG4gICAgaWYgKCFjb2RlIHx8IHR5cGVvZiBjb2RlICE9PSBcInN0cmluZ1wiIHx8IGNvZGUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIFwiQ29kZSBzYW5kYm94IHJlY2VpdmVkIGVtcHR5IGNvZGVcIixcbiAgICAgICAgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRU1QVFlfQ09ERVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxhbmd1YWdlID0gY3R4Lmxhbmd1YWdlID8/IFwiamF2YXNjcmlwdFwiO1xuICAgIGNvbnN0IGpzQ29kZSA9IHRyYW5zcGlsZVR5cGVTY3JpcHQoY29kZSwgbGFuZ3VhZ2UpO1xuXG4gICAgdmFsaWRhdGVTYWZlQ29kZShqc0NvZGUpO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvbk1vZGUgPSAhaGFzUmV0dXJuU3RhdGVtZW50KGpzQ29kZSk7XG4gICAgY29uc3QgY29kZUZvck1vZGUgPSBleHByZXNzaW9uTW9kZVxuICAgICAgPyBqc0NvZGUucmVwbGFjZSgvW1xccztdKyQvLCBcIlwiKVxuICAgICAgOiBqc0NvZGU7XG5cbiAgICBjb25zdCBzYW5kYm94VmFyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICAkaW5wdXQ6IGN0eC5pbnB1dCA/PyB7fSxcbiAgICAgICR2YXJzOiBjdHgudmFycyA/PyB7fSxcbiAgICAgICRpdGVtOiBjdHguaXRlbSxcbiAgICAgICRpbmRleDogY3R4LmluZGV4LFxuICAgICAgJG5vZGU6IGN0eC5ub2RlcyA/PyB7fSxcbiAgICAgICRvdXRwdXQ6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1OYW1lcyA9IE9iamVjdC5rZXlzKHNhbmRib3hWYXJzKTtcbiAgICAvLyBjb25zdCBwYXJhbVZhbHVlcyA9IE9iamVjdC52YWx1ZXMoc2FuZGJveFZhcnMpO1xuXG4gICAgLy8gQnVpbGQgdGhlIHdyYXBwZWQgc2NyaXB0LiBUaGUgdXNlciBjb2RlIHJ1bnMgaW5zaWRlIGFuIGFzeW5jIGZ1bmN0aW9uXG4gICAgLy8gd2l0aCBuYW1lZCBwYXJhbWV0ZXJzLiBUaGUgcmVzdWx0IGlzIEpTT04tc3RyaW5naWZpZWQgaW5zaWRlIHRoZSBpc29sYXRlXG4gICAgLy8gc28gaXQgY2FuIGJlIHRyYW5zZmVycmVkIGJhY2sgYXMgYSBwbGFpbiBzdHJpbmcgKGlzb2xhdGVkLXZtIGNhbm5vdFxuICAgIC8vIGRlZXAtY29weSBhcmJpdHJhcnkgb2JqZWN0cyB2aWEgYHNjcmlwdC5ydW4oKWAgd2l0aCBgcHJvbWlzZTogdHJ1ZWApLlxuICAgIC8vIFRoZSBzcGVjIHJlcXVpcmVzIEpTT04tc2VyaWFsaXphYmxlIG91dHB1dCwgc28gdGhpcyBpcyBzYWZlLlxuICAgIGNvbnN0IHVzZXJCb2R5ID0gZXhwcmVzc2lvbk1vZGUgPyBgcmV0dXJuICgke2NvZGVGb3JNb2RlfSk7YCA6IGNvZGVGb3JNb2RlO1xuICAgIGNvbnN0IHdyYXBwZWQgPSBgXCJ1c2Ugc3RyaWN0XCI7XFxuYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pIHtcXG4ke3VzZXJCb2R5fVxcbn1cXG5fX3VzZXJGdW5jdGlvbigke3BhcmFtTmFtZXMuam9pbihcIiwgXCIpfSkudGhlbihmdW5jdGlvbihfX3IpIHsgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdjogX19yIH0pOyB9KTtgO1xuXG4gICAgY29uc3QgaXNvbGF0ZSA9IG5ldyBpdm0uSXNvbGF0ZSh7IG1lbW9yeUxpbWl0OiB0aGlzLmRlZmF1bHRNZW1vcnlNYiB9KTtcbiAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgaXNvbGF0ZS5jcmVhdGVDb250ZXh0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgamFpbCA9IGNvbnRleHQuZ2xvYmFsO1xuXG4gICAgICAvLyBJbmplY3QgYSBgY29uc29sZWAgb2JqZWN0IGludG8gdGhlIGlzb2xhdGUgd2hvc2UgbWV0aG9kcyBmb3J3YXJkIHRvXG4gICAgICAvLyB0aGUgQ29udGV4dCBsb2dnZXIgKGJvdW5kIHRvIHJ1bklkKS4gVGhlIGxvZ2dlciBpcyBjYWxsZWQgdmlhXG4gICAgICAvLyBgaXZtLlJlZmVyZW5jZWAgc28gdGhlIGlzb2xhdGUgY2FuIGludm9rZSBob3N0IGZ1bmN0aW9ucyB3aXRob3V0XG4gICAgICAvLyBsZWFraW5nIHRoZSBob3N0IGhlYXAuXG4gICAgICBpZiAoY3R4LmxvZ2dlcikge1xuICAgICAgICBhd2FpdCB0aGlzLmluamVjdENvbnNvbGUoamFpbCwgY3R4LmxvZ2dlciwgY29udGV4dCk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhzYW5kYm94VmFycykpIHtcbiAgICAgICAgYXdhaXQgamFpbC5zZXQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgaXZtLkV4dGVybmFsQ29weSh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHZhbHVlKS5jb3B5SW50bygpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzY3JpcHQ6IGl2bS5TY3JpcHQ7XG4gICAgICB0cnkge1xuICAgICAgICBzY3JpcHQgPSBhd2FpdCBpc29sYXRlLmNvbXBpbGVTY3JpcHQod3JhcHBlZCwge1xuICAgICAgICAgIGZpbGVuYW1lOiBcImdyYXBoLWNvZGUtbm9kZS5qc1wiLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXhwcmVzc2lvbk1vZGUpIHtcbiAgICAgICAgICBjb25zdCBmYWxsYmFja0JvZHkgPSBjb2RlRm9yTW9kZTtcbiAgICAgICAgICBjb25zdCBmYWxsYmFja1dyYXBwZWQgPSBgXCJ1c2Ugc3RyaWN0XCI7XFxuYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pIHtcXG4ke2ZhbGxiYWNrQm9keX1cXG59XFxuX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pLnRoZW4oZnVuY3Rpb24oX19yKSB7IHJldHVybiBKU09OLnN0cmluZ2lmeSh7IHY6IF9fciB9KTsgfSk7YDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2NyaXB0ID0gYXdhaXQgaXNvbGF0ZS5jb21waWxlU2NyaXB0KGZhbGxiYWNrV3JhcHBlZCwge1xuICAgICAgICAgICAgICBmaWxlbmFtZTogXCJncmFwaC1jb2RlLW5vZGUuanNcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGZhbGxiYWNrRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgICAgICAgYENvZGUgZmFpbGVkIHRvIGNvbXBpbGU6ICR7KGZhbGxiYWNrRXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0NPTVBJTEVfRVJST1JcIixcbiAgICAgICAgICAgICAgeyBjb2RlOiBqc0NvZGUsIGVycm9yOiAoZmFsbGJhY2tFcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgICBgQ29kZSBmYWlsZWQgdG8gY29tcGlsZTogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9DT01QSUxFX0VSUk9SXCIsXG4gICAgICAgICAgICB7IGNvZGU6IGpzQ29kZSwgZXJyb3I6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IHJhd1Jlc3VsdDogdW5rbm93bjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJhd1Jlc3VsdCA9IGF3YWl0IHNjcmlwdC5ydW4oY29udGV4dCwge1xuICAgICAgICAgIHRpbWVvdXQ6IHRoaXMuZGVmYXVsdFRpbWVvdXRNcyxcbiAgICAgICAgICBwcm9taXNlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBtc2cgPSAoZXJyIGFzIEVycm9yKS5tZXNzYWdlO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFwidGltZWQgb3V0XCIpIHx8IG1zZy5pbmNsdWRlcyhcInRpbWVvdXRcIikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgICAgIGBDb2RlIGV4ZWN1dGlvbiB0aW1lZCBvdXQgYWZ0ZXIgJHt0aGlzLmRlZmF1bHRUaW1lb3V0TXN9IG1zYCxcbiAgICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1RJTUVPVVRcIixcbiAgICAgICAgICAgIHsgdGltZW91dE1zOiB0aGlzLmRlZmF1bHRUaW1lb3V0TXMgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhcIm1lbW9yeVwiKSB8fCBtc2cuaW5jbHVkZXMoXCJoZWFwXCIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgICBgQ29kZSBleGNlZWRlZCB0aGUgbWVtb3J5IGxpbWl0IG9mICR7dGhpcy5kZWZhdWx0TWVtb3J5TWJ9IE1CYCxcbiAgICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX01FTU9SWV9MSU1JVFwiLFxuICAgICAgICAgICAgeyBtZW1vcnlNYjogdGhpcy5kZWZhdWx0TWVtb3J5TWIgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgYENvZGUgZXhlY3V0aW9uIGZhaWxlZDogJHttc2d9YCxcbiAgICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9SVU5USU1FX0VSUk9SXCIsXG4gICAgICAgICAgeyBjb2RlOiBqc0NvZGUsIGVycm9yOiBtc2cgfVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGUgc2NyaXB0IHJldHVybnMgYSBKU09OIHN0cmluZyBge1widlwiOiA8cmVzdWx0Pn1gLiBQYXJzZSBpdCBiYWNrLlxuICAgICAgaWYgKHR5cGVvZiByYXdSZXN1bHQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgXCJDb2RlIHNhbmRib3ggcmV0dXJuZWQgYW4gdW5leHBlY3RlZCBub24tc3RyaW5nIHJlc3VsdFwiLFxuICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1VORVhQRUNURURfUkVTVUxUXCIsXG4gICAgICAgICAgeyByZXN1bHQ6IHJhd1Jlc3VsdCB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyYXdSZXN1bHQpLnY7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNvbnRleHQucmVsZWFzZSgpO1xuICAgICAgaXNvbGF0ZS5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdHMgYSBgY29uc29sZWAgb2JqZWN0IGludG8gdGhlIGlzb2xhdGUgd2hvc2UgbWV0aG9kcyBmb3J3YXJkIHRvIHRoZVxuICAgKiBDb250ZXh0IGxvZ2dlciAoYm91bmQgdG8gYHJ1bklkYCkuXG4gICAqXG4gICAqIEV2ZXJ5IHN0YW5kYXJkIGBjb25zb2xlLipgIG1ldGhvZCBpcyBzdXBwb3J0ZWQ6XG4gICAqIGBsb2dgLCBgaW5mb2AsIGB3YXJuYCwgYGVycm9yYCwgYGRlYnVnYCwgYHRyYWNlYCwgYGRpcmAsIGBkaXJ4bWxgLFxuICAgKiBgdGFibGVgLCBgZ3JvdXBgLCBgZ3JvdXBDb2xsYXBzZWRgLCBgZ3JvdXBFbmRgLCBgdGltZWAsIGB0aW1lRW5kYCxcbiAgICogYHRpbWVMb2dgLCBgYXNzZXJ0YCwgYGNvdW50YCwgYGNvdW50UmVzZXRgLCBgY2xlYXJgLlxuICAgKlxuICAgKiBBcmd1bWVudHMgYXJlIHNlcmlhbGlzZWQgaW5zaWRlIHRoZSBpc29sYXRlICh2aWEgYEpTT04uc3RyaW5naWZ5YCB3aXRoIGFcbiAgICogc2FmZSBmYWxsYmFjaykgYmVmb3JlIGJlaW5nIHBhc3NlZCBhY3Jvc3MgdGhlIGlzb2xhdGUgYm91bmRhcnksIGJlY2F1c2VcbiAgICogYGlzb2xhdGVkLXZtYCBjYW5ub3QgY29weSBhcmJpdHJhcnkgaG9zdCBvYmplY3RzLlxuICAgKlxuICAgKiBAcGFyYW0gamFpbCAtIFRoZSBpc29sYXRlJ3MgZ2xvYmFsIG9iamVjdC5cbiAgICogQHBhcmFtIGxvZ2dlciAtIFRoZSBDb250ZXh0IGxvZ2dlciB0aGF0IHJlY2VpdmVzIHRoZSBmb3J3YXJkZWQgY2FsbHMuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGlzb2xhdGUgY29udGV4dCAoZm9yIHJ1bm5pbmcgdGhlIGluaXQgc2NyaXB0KS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5qZWN0Q29uc29sZShcbiAgICBqYWlsOiBpdm0uQ29udGV4dFtcImdsb2JhbFwiXSxcbiAgICBsb2dnZXI6IFNhbmRib3hMb2dnZXIsXG4gICAgY29udGV4dDogaXZtLkNvbnRleHRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSBuZXcgaXZtLlJlZmVyZW5jZShmdW5jdGlvbiAobGV2ZWw6IHN0cmluZywgYXJnc0pzb246IHN0cmluZykge1xuICAgICAgbGV0IHBhcnNlZDogdW5rbm93bltdO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gSlNPTi5wYXJzZShhcmdzSnNvbikgYXMgdW5rbm93bltdO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHBhcnNlZCA9IFthcmdzSnNvbl07XG4gICAgICB9XG4gICAgICBjb25zdCBtc2cgPSBwYXJzZWRcbiAgICAgICAgLm1hcCgoYSkgPT4gKHR5cGVvZiBhID09PSBcInN0cmluZ1wiID8gYSA6IEpTT04uc3RyaW5naWZ5KGEpKSlcbiAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgY29uc3QgbWV0YSA9IHBhcnNlZC5sZW5ndGggPT09IDEgPyBwYXJzZWRbMF0gOiBwYXJzZWQ7XG4gICAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICAgIGNhc2UgXCJsb2dcIjpcbiAgICAgICAgY2FzZSBcImluZm9cIjpcbiAgICAgICAgICBsb2dnZXIuaW5mbyhtc2csIG1ldGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwid2FyblwiOlxuICAgICAgICAgIGxvZ2dlci53YXJuKG1zZywgbWV0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlcnJvclwiOlxuICAgICAgICAgIGxvZ2dlci5lcnJvcihtc2csIG1ldGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGVidWdcIjpcbiAgICAgICAgICBsb2dnZXIuZGVidWcobXNnLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRyYWNlXCI6XG4gICAgICAgICAgbG9nZ2VyLnRyYWNlKG1zZywgbWV0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkaXJcIjpcbiAgICAgICAgY2FzZSBcImRpcnhtbFwiOlxuICAgICAgICBjYXNlIFwidGFibGVcIjpcbiAgICAgICAgICBsb2dnZXIuZGVidWcobXNnLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImdyb3VwXCI6XG4gICAgICAgIGNhc2UgXCJncm91cENvbGxhcHNlZFwiOlxuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgW2dyb3VwXSAke21zZ31gLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImdyb3VwRW5kXCI6XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiW2dyb3VwRW5kXVwiLCB1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidGltZVwiOlxuICAgICAgICBjYXNlIFwidGltZUVuZFwiOlxuICAgICAgICBjYXNlIFwidGltZUxvZ1wiOlxuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgWyR7bGV2ZWx9XSAke21zZ31gLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImFzc2VydFwiOlxuICAgICAgICAgIGlmICghcGFyc2VkWzBdKSBsb2dnZXIuZXJyb3IoYEFzc2VydGlvbiBmYWlsZWQ6ICR7bXNnfWAsIG1ldGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY291bnRcIjpcbiAgICAgICAgY2FzZSBcImNvdW50UmVzZXRcIjpcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFske2xldmVsfV0gJHttc2d9YCwgbWV0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjbGVhclwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxvZ2dlci5pbmZvKG1zZywgbWV0YSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhd2FpdCBqYWlsLnNldChcIl9fZGlzcGF0Y2hcIiwgZGlzcGF0Y2gpO1xuXG4gICAgY29udGV4dC5ldmFsU3luYyhgXG4gICAgICBmdW5jdGlvbiBfX3NlcigpIHtcbiAgICAgICAgdmFyIG91dCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBhID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgIHRyeSB7IG91dC5wdXNoKHR5cGVvZiBhID09PSAnb2JqZWN0JyA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpIDogYSk7IH1cbiAgICAgICAgICBjYXRjaCAoZSkgeyBvdXQucHVzaChTdHJpbmcoYSkpOyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG91dCk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfX2NhbGwobGV2ZWwpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIF9fZGlzcGF0Y2guYXBwbHlTeW5jKHVuZGVmaW5lZCwgW2xldmVsLCBfX3Nlci5hcHBseShudWxsLCBhcmd1bWVudHMpXSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBnbG9iYWxUaGlzLmNvbnNvbGUgPSB7XG4gICAgICAgIGxvZzogX19jYWxsKCdsb2cnKSxcbiAgICAgICAgaW5mbzogX19jYWxsKCdpbmZvJyksXG4gICAgICAgIHdhcm46IF9fY2FsbCgnd2FybicpLFxuICAgICAgICBlcnJvcjogX19jYWxsKCdlcnJvcicpLFxuICAgICAgICBkZWJ1ZzogX19jYWxsKCdkZWJ1ZycpLFxuICAgICAgICB0cmFjZTogX19jYWxsKCd0cmFjZScpLFxuICAgICAgICBkaXI6IF9fY2FsbCgnZGlyJyksXG4gICAgICAgIGRpcnhtbDogX19jYWxsKCdkaXJ4bWwnKSxcbiAgICAgICAgdGFibGU6IF9fY2FsbCgndGFibGUnKSxcbiAgICAgICAgZ3JvdXA6IF9fY2FsbCgnZ3JvdXAnKSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IF9fY2FsbCgnZ3JvdXBDb2xsYXBzZWQnKSxcbiAgICAgICAgZ3JvdXBFbmQ6IF9fY2FsbCgnZ3JvdXBFbmQnKSxcbiAgICAgICAgdGltZTogX19jYWxsKCd0aW1lJyksXG4gICAgICAgIHRpbWVFbmQ6IF9fY2FsbCgndGltZUVuZCcpLFxuICAgICAgICB0aW1lTG9nOiBfX2NhbGwoJ3RpbWVMb2cnKSxcbiAgICAgICAgYXNzZXJ0OiBfX2NhbGwoJ2Fzc2VydCcpLFxuICAgICAgICBjb3VudDogX19jYWxsKCdjb3VudCcpLFxuICAgICAgICBjb3VudFJlc2V0OiBfX2NhbGwoJ2NvdW50UmVzZXQnKSxcbiAgICAgICAgY2xlYXI6IF9fY2FsbCgnY2xlYXInKVxuICAgICAgfTtcbiAgICBgKTtcblxuICAgIGRpc3BhdGNoLnJlbGVhc2UoKTtcbiAgfVxufVxuIl19
|
|
481
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCw4REFBOEI7QUFDOUIsNkNBQStCO0FBQy9CLGlEQUFtQztBQUNuQywrQ0FBaUM7QUFDakMsK0VBQXlFO0FBQ3pFOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDaEM7O0dBRUc7QUFDSCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUM3Qjs7R0FFRztBQUNILE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2hDLFNBQVM7SUFDVCxTQUFTO0lBQ1QsUUFBUTtJQUNSLFNBQVM7SUFDVCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFVBQVU7SUFDVixNQUFNO0lBQ04sT0FBTztJQUNQLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsUUFBUTtJQUNSLE1BQU07SUFDTixLQUFLO0lBQ0wsWUFBWTtDQUNmLENBQUMsQ0FBQztBQUNIOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRO0lBQ3ZDLElBQUksUUFBUSxLQUFLLFlBQVk7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7UUFDcEMsZUFBZSxFQUFFO1lBQ2IsTUFBTSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUM5QixNQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQzFCLE1BQU0sRUFBRSxJQUFJO1lBQ1osYUFBYSxFQUFFLElBQUk7WUFDbkIsYUFBYSxFQUFFLEtBQUs7U0FDdkI7S0FDSixDQUFDLENBQUM7SUFDSCx1RUFBdUU7SUFDdkUseUVBQXlFO0lBQ3pFLDJDQUEyQztJQUMzQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFDRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLElBQUk7SUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSw0Q0FBbUIsQ0FBQyxzQ0FBc0MsZUFBZSxhQUFhLEVBQUUsa0NBQWtDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbkssQ0FBQztJQUNELElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxDQUFDO1FBQ0Qsb0VBQW9FO1FBQ3BFLHVFQUF1RTtRQUN2RSxnRUFBZ0U7UUFDaEUsbUNBQW1DO1FBQ25DLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxJQUFJLEtBQUssRUFBRTtZQUMzRCxXQUFXLEVBQUUsUUFBUTtZQUNyQixVQUFVLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsTUFBTSxDQUFDO1FBQ0gsaUVBQWlFO1FBQ2pFLHVFQUF1RTtRQUN2RSxvRUFBb0U7UUFDcEUsMERBQTBEO1FBQzFELElBQUksQ0FBQztZQUNELEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDcEIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLFVBQVUsRUFBRSxRQUFRO2FBQ3ZCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLDRDQUFtQixDQUFDLHlCQUF5QixHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsZ0NBQWdDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFJLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSw0Q0FBbUIsQ0FBQyx3Q0FBd0MsRUFBRSxvQ0FBb0MsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZJLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyx3QkFBd0I7WUFDdEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLDBCQUEwQixFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLDRDQUFtQixDQUFDLHdDQUF3QyxFQUFFLG9DQUFvQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkksQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFlBQVk7WUFDMUIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUTtZQUM3QixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksNENBQW1CLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLG9DQUFvQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekosQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLGVBQWU7WUFDN0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLDRDQUFtQixDQUFDLDhDQUE4QyxFQUFFLG9DQUFvQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDL0ksQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLGdCQUFnQjtZQUM5QixDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksNENBQW1CLENBQUMsc0NBQXNDLEVBQUUsb0NBQW9DLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuSSxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0Q7Ozs7OztHQU1HO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJO0lBQzVCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsTUFBYSw4QkFBOEI7SUFDdkM7OztPQUdHO0lBQ0gsWUFBWSxnQkFBZ0IsR0FBRyxrQkFBa0IsRUFBRSxlQUFlLEdBQUcsaUJBQWlCO1FBQ2xGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHO1FBQ2QsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sSUFBSSw0Q0FBbUIsQ0FBQyxrQ0FBa0MsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxjQUFjO1lBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNiLE1BQU0sV0FBVyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNyQixLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDakIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QixPQUFPLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxrREFBa0Q7UUFDbEQsd0VBQXdFO1FBQ3hFLDJFQUEyRTtRQUMzRSxzRUFBc0U7UUFDdEUsd0VBQXdFO1FBQ3hFLCtEQUErRDtRQUMvRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsV0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUMzRSxNQUFNLE9BQU8sR0FBRyxnREFBZ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxRQUFRLHVCQUF1QixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQztRQUNqTixNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDNUIsc0VBQXNFO1lBQ3RFLGdFQUFnRTtZQUNoRSxtRUFBbUU7WUFDbkUseUJBQXlCO1lBQ3pCLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLHFCQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5RixDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUM7WUFDWCxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7b0JBQzFDLFFBQVEsRUFBRSxvQkFBb0I7aUJBQ2pDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNULElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ2pCLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQztvQkFDakMsTUFBTSxlQUFlLEdBQUcsZ0RBQWdELFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsWUFBWSx1QkFBdUIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsK0RBQStELENBQUM7b0JBQzdOLElBQUksQ0FBQzt3QkFDRCxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRTs0QkFDbEQsUUFBUSxFQUFFLG9CQUFvQjt5QkFDakMsQ0FBQyxDQUFDO29CQUNQLENBQUM7b0JBQ0QsT0FBTyxXQUFXLEVBQUUsQ0FBQzt3QkFDakIsTUFBTSxJQUFJLDRDQUFtQixDQUFDLDJCQUEyQixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFDdEssQ0FBQztnQkFDTCxDQUFDO3FCQUNJLENBQUM7b0JBQ0YsTUFBTSxJQUFJLDRDQUFtQixDQUFDLDJCQUEyQixHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDdEosQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLFNBQVMsQ0FBQztZQUNkLElBQUksQ0FBQztnQkFDRCxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtvQkFDbEMsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7b0JBQzlCLE9BQU8sRUFBRSxJQUFJO2lCQUNoQixDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUN4QixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUN2RCxNQUFNLElBQUksNENBQW1CLENBQUMsa0NBQWtDLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxFQUFFLDRCQUE0QixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7Z0JBQ3BLLENBQUM7Z0JBQ0QsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDakQsTUFBTSxJQUFJLDRDQUFtQixDQUFDLHFDQUFxQyxJQUFJLENBQUMsZUFBZSxLQUFLLEVBQUUsaUNBQWlDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pLLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLDRDQUFtQixDQUFDLDBCQUEwQixHQUFHLEVBQUUsRUFBRSxrQ0FBa0MsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckksQ0FBQztZQUNELHFFQUFxRTtZQUNyRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksNENBQW1CLENBQUMsdURBQXVELEVBQUUsc0NBQXNDLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUMxSixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO2dCQUNPLENBQUM7WUFDTCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsS0FBSyxFQUFFLFFBQVE7WUFDeEQsSUFBSSxNQUFNLENBQUM7WUFDWCxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELE1BQU0sQ0FBQztnQkFDSCxNQUFNLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTTtpQkFDYixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3RELFFBQVEsS0FBSyxFQUFFLENBQUM7Z0JBQ1osS0FBSyxLQUFLLENBQUM7Z0JBQ1gsS0FBSyxNQUFNO29CQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN2QixNQUFNO2dCQUNWLEtBQUssTUFBTTtvQkFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDdkIsTUFBTTtnQkFDVixLQUFLLE9BQU87b0JBQ1IsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3hCLE1BQU07Z0JBQ1YsS0FBSyxPQUFPO29CQUNSLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN4QixNQUFNO2dCQUNWLEtBQUssT0FBTztvQkFDUixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDeEIsTUFBTTtnQkFDVixLQUFLLEtBQUssQ0FBQztnQkFDWCxLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLE9BQU87b0JBQ1IsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3hCLE1BQU07Z0JBQ1YsS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxnQkFBZ0I7b0JBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDckMsTUFBTTtnQkFDVixLQUFLLFVBQVU7b0JBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3RDLE1BQU07Z0JBQ1YsS0FBSyxNQUFNLENBQUM7Z0JBQ1osS0FBSyxTQUFTLENBQUM7Z0JBQ2YsS0FBSyxTQUFTO29CQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3hDLE1BQU07Z0JBQ1YsS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3dCQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNuRCxNQUFNO2dCQUNWLEtBQUssT0FBTyxDQUFDO2dCQUNiLEtBQUssWUFBWTtvQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN4QyxNQUFNO2dCQUNWLEtBQUssT0FBTztvQkFDUixNQUFNO2dCQUNWO29CQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0NwQixDQUFDLENBQUM7UUFDQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNKO0FBN05ELHdFQTZOQztBQUNELDBqckNBQTBqckMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2V4ZWN1dGlvbi9Jc29sYXRlZFZtQ29kZVNhbmRib3hFdmFsdWF0b3JcbiAqIEBzdW1tYXJ5IHtAbGluayBDb2RlU2FuZGJveEV2YWx1YXRvcn0gYmFja2VkIGJ5IGBpc29sYXRlZC12bWAgKEFMRlJFRC01IMKnNykuXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgYSBmdWxseSBpc29sYXRlZCBWOCBzYW5kYm94IGZvciB0aGUgQ29kZSBOb2RlXG4gKiAoREVDQUYtMzIgwqcyMi40KSBhbmQgY29kZS1iYXNlZCBjb25kaXRpb25zLiBVc2VzIGBpc29sYXRlZC12bWAgZm9yIHRydWVcbiAqIGhlYXAgaXNvbGF0aW9uICh1bmxpa2UgTm9kZSdzIGB2bWAgbW9kdWxlIHdoaWNoIHNoYXJlcyB0aGUgaG9zdCBoZWFwKSxcbiAqIGBhY29ybmAgKyBgYWNvcm4td2Fsa2AgZm9yIEFTVC1iYXNlZCBzdGF0aWMgdmFsaWRhdGlvbiwgYW5kIGB0eXBlc2NyaXB0YFxuICogZm9yIFRTIHRyYW5zcGlsYXRpb24uXG4gKlxuICogUmVzdHJpY3Rpb25zIGVuZm9yY2VkIChBTEZSRUQtNSDCpzcuMTDigJM3LjEyLCBERUNBRi0zNCDCpzcuNSk6XG4gKlxuICogLSAqKk5vIGltcG9ydHMqKiDigJQgYGltcG9ydGAgZGVjbGFyYXRpb25zIGFyZSByZWplY3RlZCBieSBBU1QgdmFsaWRhdGlvbi5cbiAqIC0gKipObyByZXF1aXJlcyoqIOKAlCBgcmVxdWlyZWAgaXMgaW4gdGhlIGJsb2NrZWQtaWRlbnRpZmllciBzZXQgYW5kIGlzIG5vdFxuICogICBleHBvc2VkIGluIHRoZSBzYW5kYm94IGNvbnRleHQuXG4gKiAtICoqTm8gZXhwb3J0cyoqIOKAlCBgZXhwb3J0YCBkZWNsYXJhdGlvbnMgYXJlIHJlamVjdGVkIGJ5IEFTVCB2YWxpZGF0aW9uLlxuICogLSAqKlB1cmUgZnVuY3Rpb25zIG9ubHkqKiDigJQgbm8gc3lzdGVtIEFQSSBhY2Nlc3MuIEJsb2NrZWQgaWRlbnRpZmllcnNcbiAqICAgaW5jbHVkZSBgcHJvY2Vzc2AsIGBnbG9iYWxgLCBgZ2xvYmFsVGhpc2AsIGBGdW5jdGlvbmAsIGBldmFsYCwgYGZldGNoYCxcbiAqICAgYFhNTEh0dHBSZXF1ZXN0YCwgYFdlYlNvY2tldGAsIGBXb3JrZXJgLCBgRGVub2AsIGBCdW5gLCBgbW9kdWxlYCxcbiAqICAgYGV4cG9ydHNgLiBUaGUgc2FuZGJveCBjb250ZXh0IGV4cG9zZXMgb25seSB0aGUgZGF0YSB2YXJpYWJsZXNcbiAqICAgKGAkaW5wdXRgLCBgJHZhcnNgLCBgJGl0ZW1gLCBgJGluZGV4YCwgYCRub2RlYCwgYCRvdXRwdXRgKS5cbiAqIC0gKipObyBgZXZhbCgpYCAvIGBuZXcgRnVuY3Rpb24oKWAqKiDigJQgcmVqZWN0ZWQgYnkgQVNUIHZhbGlkYXRpb24uXG4gKlxuICogVGhlIHVzZXIgY29kZSBpcyB0cmFuc3BpbGVkIChUUyDihpIgSlMpIGlmIG5lZWRlZCwgc3RhdGljYWxseSB2YWxpZGF0ZWQsXG4gKiB3cmFwcGVkIGluIGEgc3RyaWN0LW1vZGUgYXN5bmMgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyB0aGUgZGF0YSB2YXJpYWJsZXMgYXNcbiAqIHBhcmFtZXRlcnMsIGNvbXBpbGVkIGluIGFuIGlzb2xhdGVkIFY4IGluc3RhbmNlLCBhbmQgZXhlY3V0ZWQgd2l0aCBhXG4gKiB0aW1lb3V0IGFuZCBtZW1vcnkgbGltaXQuIFRoZSByZXN1bHQgaXMgY29waWVkIGJhY2sgdG8gdGhlIGhvc3QgaGVhcC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGV2YWx1YXRvciA9IG5ldyBJc29sYXRlZFZtQ29kZVNhbmRib3hFdmFsdWF0b3IoKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRvci5ldmFsdWF0ZSh7XG4gKiAgIGNvZGU6IFwicmV0dXJuICRpbnB1dC5hICsgJGlucHV0LmI7XCIsXG4gKiAgIGlucHV0OiB7IGE6IDIsIGI6IDMgfSxcbiAqIH0pO1xuICogLy8gcmVzdWx0ID09PSA1XG4gKiBgYGBcbiAqL1xuaW1wb3J0IGl2bSBmcm9tIFwiaXNvbGF0ZWQtdm1cIjtcbmltcG9ydCAqIGFzIGFjb3JuIGZyb20gXCJhY29yblwiO1xuaW1wb3J0ICogYXMgd2FsayBmcm9tIFwiYWNvcm4td2Fsa1wiO1xuaW1wb3J0ICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRXJyb3IgfSBmcm9tIFwiLi8uLi9lcnJvcnMvR3JhcGhFeGVjdXRpb25FcnJvci5qc1wiO1xuLyoqXG4gKiBEZWZhdWx0IHNhbmRib3ggZXhlY3V0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICovXG5jb25zdCBERUZBVUxUX1RJTUVPVVRfTVMgPSAxMDAwO1xuLyoqXG4gKiBEZWZhdWx0IG1lbW9yeSBsaW1pdCBmb3IgdGhlIGlzb2xhdGVkIFY4IGhlYXAgaW4gTUIuXG4gKi9cbmNvbnN0IERFRkFVTFRfTUVNT1JZX01CID0gMzI7XG4vKipcbiAqIE1heGltdW0gY29kZSBsZW5ndGggKGNoYXJhY3RlcnMpIGFjY2VwdGVkIGJ5IHRoZSBldmFsdWF0b3IuXG4gKi9cbmNvbnN0IE1BWF9DT0RFX0xFTkdUSCA9IDEwMF8wMDA7XG4vKipcbiAqIElkZW50aWZpZXJzIHRoYXQgYXJlIGZvcmJpZGRlbiBpbiBzYW5kYm94ZWQgY29kZSAoQUxGUkVELTUgwqc3LjEwKS5cbiAqXG4gKiBBbnkgQVNUIG5vZGUgb2YgdHlwZSBgSWRlbnRpZmllcmAgd2hvc2UgYG5hbWVgIGlzIGluIHRoaXMgc2V0IGNhdXNlcyB0aGVcbiAqIHZhbGlkYXRvciB0byByZWplY3QgdGhlIGNvZGUuIFRoaXMgY292ZXJzIGJvdGggZnJlZS1zdGFuZGluZyByZWZlcmVuY2VzXG4gKiAoYHByb2Nlc3MuZW52YCkgYW5kIGNhbGwgdGFyZ2V0cyAoYHJlcXVpcmUoLi4uKWApLlxuICovXG5jb25zdCBCTE9DS0VEX0lERU5USUZJRVJTID0gbmV3IFNldChbXG4gICAgXCJwcm9jZXNzXCIsXG4gICAgXCJyZXF1aXJlXCIsXG4gICAgXCJtb2R1bGVcIixcbiAgICBcImV4cG9ydHNcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ2xvYmFsVGhpc1wiLFxuICAgIFwiRnVuY3Rpb25cIixcbiAgICBcImV2YWxcIixcbiAgICBcImZldGNoXCIsXG4gICAgXCJYTUxIdHRwUmVxdWVzdFwiLFxuICAgIFwiV2ViU29ja2V0XCIsXG4gICAgXCJXb3JrZXJcIixcbiAgICBcIkRlbm9cIixcbiAgICBcIkJ1blwiLFxuICAgIFwiX19kaXNwYXRjaFwiLFxuXSk7XG4vKipcbiAqIFRyYW5zcGlsZXMgVHlwZVNjcmlwdCBjb2RlIHRvIEphdmFTY3JpcHQgKEFMRlJFRC01IMKnNy40KS5cbiAqXG4gKiBXaGVuIHRoZSBsYW5ndWFnZSBpcyBgJ2phdmFzY3JpcHQnYCB0aGUgY29kZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuIEZvclxuICogYCd0eXBlc2NyaXB0J2AgdGhlIGNvZGUgaXMgdHJhbnNwaWxlZCB1c2luZyB0aGUgVHlwZVNjcmlwdCBjb21waWxlciB3aXRoXG4gKiBtb2R1bGUga2luZCBgTm9uZWAgKG5vIGltcG9ydC9leHBvcnQgZW1pdHRlZCkgYW5kIHRhcmdldCBgRVMyMDIyYC5cbiAqXG4gKiBAcGFyYW0gY29kZSAtIFRoZSB1c2VyLWF1dGhvcmVkIGNvZGUuXG4gKiBAcGFyYW0gbGFuZ3VhZ2UgLSBUaGUgY29kZSBsYW5ndWFnZSAoYCdqYXZhc2NyaXB0J2Agb3IgYCd0eXBlc2NyaXB0J2ApLlxuICogQHJldHVybnMgVHJhbnNwaWxlZCBKYXZhU2NyaXB0IGNvZGUuXG4gKi9cbmZ1bmN0aW9uIHRyYW5zcGlsZVR5cGVTY3JpcHQoY29kZSwgbGFuZ3VhZ2UpIHtcbiAgICBpZiAobGFuZ3VhZ2UgPT09IFwiamF2YXNjcmlwdFwiKVxuICAgICAgICByZXR1cm4gY29kZTtcbiAgICBjb25zdCByZXN1bHQgPSB0cy50cmFuc3BpbGVNb2R1bGUoY29kZSwge1xuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICAgIHRhcmdldDogdHMuU2NyaXB0VGFyZ2V0LkVTMjAyMixcbiAgICAgICAgICAgIG1vZHVsZTogdHMuTW9kdWxlS2luZC5Ob25lLFxuICAgICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgICAgbm9FbWl0SGVscGVyczogdHJ1ZSxcbiAgICAgICAgICAgIGltcG9ydEhlbHBlcnM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0pO1xuICAgIC8vIFN0cmlwIHRoZSBcInVzZSBzdHJpY3RcIjsgZGlyZWN0aXZlIHRoYXQgdHMudHJhbnNwaWxlTW9kdWxlIGFkZHMg4oCUIHRoZVxuICAgIC8vIHNhbmRib3ggd3JhcHBlciBhbHJlYWR5IGVuZm9yY2VzIHN0cmljdCBtb2RlLCBhbmQgdGhlIGRpcmVjdGl2ZSBicmVha3NcbiAgICAvLyBleHByZXNzaW9uLW1vZGUgd3JhcHBpbmcgKHJldHVybiAoLi4uKSkuXG4gICAgcmV0dXJuIHJlc3VsdC5vdXRwdXRUZXh0LnJlcGxhY2UoL15cInVzZSBzdHJpY3RcIjtcXHMqLywgXCJcIik7XG59XG4vKipcbiAqIFN0YXRpY2FsbHkgdmFsaWRhdGVzIHVzZXIgY29kZSB1c2luZyBhbiBBU1Qgd2FsayAoQUxGUkVELTUgwqc3LjExKS5cbiAqXG4gKiBSZWplY3RzOlxuICogLSBgSW1wb3J0RGVjbGFyYXRpb25gIOKAlCBubyBpbXBvcnRzIGFsbG93ZWQuXG4gKiAtIGBFeHBvcnROYW1lZERlY2xhcmF0aW9uYCAvIGBFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25gIOKAlCBubyBleHBvcnRzLlxuICogLSBgSWRlbnRpZmllcmAgd2hvc2UgbmFtZSBpcyBpbiB7QGxpbmsgQkxPQ0tFRF9JREVOVElGSUVSU30uXG4gKiAtIGBOZXdFeHByZXNzaW9uYCB3aXRoIGNhbGxlZSBgRnVuY3Rpb25gIOKAlCBubyBgbmV3IEZ1bmN0aW9uKClgLlxuICogLSBgQ2FsbEV4cHJlc3Npb25gIHdpdGggY2FsbGVlIGBldmFsYCDigJQgbm8gYGV2YWwoKWAuXG4gKlxuICogQHBhcmFtIGNvZGUgLSBKYXZhU2NyaXB0IGNvZGUgdG8gdmFsaWRhdGUgKGFmdGVyIFRTIHRyYW5zcGlsYXRpb24pLlxuICogQHRocm93cyB7R3JhcGhFeGVjdXRpb25FcnJvcn0gd2hlbiBhIGZvcmJpZGRlbiBjb25zdHJ1Y3QgaXMgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU2FmZUNvZGUoY29kZSkge1xuICAgIGlmIChjb2RlLmxlbmd0aCA+IE1BWF9DT0RFX0xFTkdUSCkge1xuICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihgQ29kZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiAke01BWF9DT0RFX0xFTkdUSH0gY2hhcmFjdGVyc2AsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0NPREVfVE9PX0xPTkdcIiwgeyBsZW5ndGg6IGNvZGUubGVuZ3RoIH0pO1xuICAgIH1cbiAgICBsZXQgYXN0O1xuICAgIHRyeSB7XG4gICAgICAgIC8vIEZpcnN0LCB0cnkgcGFyc2luZyB0aGUgY29kZSB3cmFwcGVkIGluIGEgZnVuY3Rpb24gd2l0aCBzb3VyY2VUeXBlXG4gICAgICAgIC8vIFwic2NyaXB0XCIuIFRoaXMgaGFuZGxlcyBgcmV0dXJuYCBzdGF0ZW1lbnRzICh3aGljaCBhcmUgdmFsaWQgaW5zaWRlIGFcbiAgICAgICAgLy8gZnVuY3Rpb24pIGFuZCBsZXRzIHVzIGRldGVjdCBibG9ja2VkIGlkZW50aWZpZXJzLCBldmFsKCksIGFuZFxuICAgICAgICAvLyBuZXcgRnVuY3Rpb24oKSB2aWEgdGhlIEFTVCB3YWxrLlxuICAgICAgICBhc3QgPSBhY29ybi5wYXJzZShgYXN5bmMgZnVuY3Rpb24gX192YWxpZGF0ZSgpIHtcXG4ke2NvZGV9XFxufWAsIHtcbiAgICAgICAgICAgIGVjbWFWZXJzaW9uOiBcImxhdGVzdFwiLFxuICAgICAgICAgICAgc291cmNlVHlwZTogXCJzY3JpcHRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgLy8gSWYgdGhlIGZ1bmN0aW9uLXdyYXBwZWQgcGFyc2UgZmFpbHMgKGUuZy4gYmVjYXVzZSB0aGUgY29kZSBoYXNcbiAgICAgICAgLy8gdG9wLWxldmVsIGBpbXBvcnRgIG9yIGBleHBvcnRgIGRlY2xhcmF0aW9ucyB3aGljaCBhcmUgaW52YWxpZCBpbnNpZGVcbiAgICAgICAgLy8gYSBmdW5jdGlvbiksIHRyeSBwYXJzaW5nIHRoZSByYXcgY29kZSB3aXRoIHNvdXJjZVR5cGUgXCJtb2R1bGVcIiBzb1xuICAgICAgICAvLyBpbXBvcnQvZXhwb3J0IGRlY2xhcmF0aW9ucyBhcmUgcmVjb2duaXNlZCBhcyBBU1Qgbm9kZXMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhc3QgPSBhY29ybi5wYXJzZShjb2RlLCB7XG4gICAgICAgICAgICAgICAgZWNtYVZlcnNpb246IFwibGF0ZXN0XCIsXG4gICAgICAgICAgICAgICAgc291cmNlVHlwZTogXCJtb2R1bGVcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKGBDb2RlIGZhaWxlZCB0byBwYXJzZTogJHtlcnIubWVzc2FnZX1gLCBcIkdSQVBIX0NPREVfU0FOREJPWF9QQVJTRV9FUlJPUlwiLCB7IGNvZGUsIGVycm9yOiBlcnIubWVzc2FnZSB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3YWxrLmZ1bGwoYXN0LCAobm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBuID0gbm9kZTtcbiAgICAgICAgaWYgKG5bXCJ0eXBlXCJdID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFwiSW1wb3J0cyBhcmUgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5cIiwgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRk9SQklEREVOX1RPS0VOXCIsIHsgdG9rZW46IFwiaW1wb3J0XCIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5bXCJ0eXBlXCJdID09PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIiB8fFxuICAgICAgICAgICAgbltcInR5cGVcIl0gPT09IFwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFwiRXhwb3J0cyBhcmUgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5cIiwgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRk9SQklEREVOX1RPS0VOXCIsIHsgdG9rZW46IFwiZXhwb3J0XCIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5bXCJ0eXBlXCJdID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgICAgICAgdHlwZW9mIG5bXCJuYW1lXCJdID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICBCTE9DS0VEX0lERU5USUZJRVJTLmhhcyhuW1wibmFtZVwiXSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKGBJZGVudGlmaWVyIFwiJHtuW1wibmFtZVwiXX1cIiBpcyBub3QgYWxsb3dlZCBpbiBDb2RlIG5vZGVzLmAsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0ZPUkJJRERFTl9UT0tFTlwiLCB7IHRva2VuOiBuW1wibmFtZVwiXSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobltcInR5cGVcIl0gPT09IFwiTmV3RXhwcmVzc2lvblwiICYmXG4gICAgICAgICAgICBuW1wiY2FsbGVlXCJdPy5bXCJuYW1lXCJdID09PSBcIkZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFwibmV3IEZ1bmN0aW9uKCkgaXMgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5cIiwgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRk9SQklEREVOX1RPS0VOXCIsIHsgdG9rZW46IFwiRnVuY3Rpb25cIiB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobltcInR5cGVcIl0gPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxuICAgICAgICAgICAgbltcImNhbGxlZVwiXT8uW1wibmFtZVwiXSA9PT0gXCJldmFsXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFwiZXZhbCgpIGlzIG5vdCBhbGxvd2VkIGluIENvZGUgbm9kZXMuXCIsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0ZPUkJJRERFTl9UT0tFTlwiLCB7IHRva2VuOiBcImV2YWxcIiB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGdpdmVuIGNvZGUgY29udGFpbnMgYSB0b3AtbGV2ZWwgYHJldHVybmAgc3RhdGVtZW50LlxuICpcbiAqIFdoZW4gdGhlIGNvZGUgaGFzIG5vIGByZXR1cm5gLCBpdCBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIGV4cHJlc3Npb24gYW5kXG4gKiB3cmFwcGVkIGluIGByZXR1cm4gKC4uLilgIHNvIHRoZSB1c2VyIGNhbiB3cml0ZSBgKCRpbnB1dC5hICsgJGlucHV0LmIpYFxuICogaW5zdGVhZCBvZiBgcmV0dXJuICRpbnB1dC5hICsgJGlucHV0LmJgLlxuICovXG5mdW5jdGlvbiBoYXNSZXR1cm5TdGF0ZW1lbnQoY29kZSkge1xuICAgIHJldHVybiAvXFxicmV0dXJuXFxiW1xccztdLy50ZXN0KGNvZGUpO1xufVxuLyoqXG4gKiBgaXNvbGF0ZWQtdm1gLWJhY2tlZCB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9IChBTEZSRUQtNSDCpzcuMTgpLlxuICpcbiAqIFRoaXMgZXZhbHVhdG9yIHByb3ZpZGVzIGEgdHJ1bHkgaXNvbGF0ZWQgVjggc2FuZGJveCDigJQgdGhlIGNvZGUgcnVucyBpbiBhXG4gKiBzZXBhcmF0ZSBpc29sYXRlIHdpdGggaXRzIG93biBoZWFwLCBzZXBhcmF0ZSBmcm9tIHRoZSBob3N0IHByb2Nlc3MuIFRoZVxuICogc2FuZGJveCBjb250ZXh0IGV4cG9zZXMgb25seSB0aGUgZGF0YSB2YXJpYWJsZXMgKGAkaW5wdXRgLCBgJHZhcnNgLCBgJGl0ZW1gLFxuICogYCRpbmRleGAsIGAkbm9kZWAsIGAkb3V0cHV0YCk7IG5vIGhvc3QgZ2xvYmFscyBhcmUgYXZhaWxhYmxlLlxuICpcbiAqIEV4ZWN1dGlvbiBwaXBlbGluZTpcbiAqIDEuICoqVHJhbnNwaWxlKiog4oCUIFR5cGVTY3JpcHQgY29kZSBpcyB0cmFuc3BpbGVkIHRvIEphdmFTY3JpcHQgdmlhXG4gKiAgICBgdHlwZXNjcmlwdC50cmFuc3BpbGVNb2R1bGVgIChBTEZSRUQtNSDCpzcuNCkuXG4gKiAyLiAqKlZhbGlkYXRlKiog4oCUIHRoZSBKYXZhU2NyaXB0IGNvZGUgaXMgcGFyc2VkIHdpdGggYGFjb3JuYCBhbmQgd2Fsa2VkIHdpdGhcbiAqICAgIGBhY29ybi13YWxrYCB0byByZWplY3QgaW1wb3J0cywgZXhwb3J0cywgYmxvY2tlZCBpZGVudGlmaWVycywgYGV2YWwoKWAsXG4gKiAgICBhbmQgYG5ldyBGdW5jdGlvbigpYCAoQUxGUkVELTUgwqc3LjExKS5cbiAqIDMuICoqSXNvbGF0ZSoqIOKAlCBhIG5ldyBgaXNvbGF0ZWQtdm1gIGBJc29sYXRlYCBpcyBjcmVhdGVkIHdpdGggYSBtZW1vcnlcbiAqICAgIGxpbWl0LiBBIGNvbnRleHQgaXMgY3JlYXRlZCBhbmQgdGhlIGRhdGEgdmFyaWFibGVzIGFyZSBjb3BpZWQgaW50byB0aGVcbiAqICAgIGlzb2xhdGUncyBoZWFwIHZpYSBgRXh0ZXJuYWxDb3B5YC5cbiAqIDQuICoqQ29tcGlsZSAmIHJ1bioqIOKAlCB0aGUgd3JhcHBlZCBjb2RlIGlzIGNvbXBpbGVkIGFuZCBleGVjdXRlZCB3aXRoIGFcbiAqICAgIHRpbWVvdXQuIFRoZSByZXN1bHQgaXMgY29waWVkIGJhY2sgdG8gdGhlIGhvc3QgaGVhcC5cbiAqIDUuICoqRGlzcG9zZSoqIOKAlCB0aGUgaXNvbGF0ZSBpcyBhbHdheXMgZGlzcG9zZWQgaW4gYSBgZmluYWxseWAgYmxvY2suXG4gKlxuICogVGhlIHVzZXIgY29kZSBpcyB3cmFwcGVkIGluIGEgc3RyaWN0LW1vZGUgYXN5bmMgZnVuY3Rpb246XG4gKlxuICogYGBganNcbiAqIFwidXNlIHN0cmljdFwiO1xuICogYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJGlucHV0LCAkdmFycywgJGl0ZW0sICRpbmRleCwgJG5vZGUsICRvdXRwdXQpIHtcbiAqICAgPHVzZXIgY29kZT5cbiAqIH1cbiAqIF9fdXNlckZ1bmN0aW9uKCRpbnB1dCwgJHZhcnMsICRpdGVtLCAkaW5kZXgsICRub2RlLCAkb3V0cHV0KTtcbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGNvZGUgaGFzIG5vIGByZXR1cm5gIHN0YXRlbWVudCBpdCBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIGV4cHJlc3Npb25cbiAqIGFuZCB3cmFwcGVkIGluIGByZXR1cm4gKC4uLilgLlxuICovXG5leHBvcnQgY2xhc3MgSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFRpbWVvdXRNcyAtIERlZmF1bHQgZXhlY3V0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgICAqIEBwYXJhbSBkZWZhdWx0TWVtb3J5TWIgLSBEZWZhdWx0IGlzb2xhdGUgbWVtb3J5IGxpbWl0IGluIE1CLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGRlZmF1bHRUaW1lb3V0TXMgPSBERUZBVUxUX1RJTUVPVVRfTVMsIGRlZmF1bHRNZW1vcnlNYiA9IERFRkFVTFRfTUVNT1JZX01CKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFRpbWVvdXRNcyA9IGRlZmF1bHRUaW1lb3V0TXM7XG4gICAgICAgIHRoaXMuZGVmYXVsdE1lbW9yeU1iID0gZGVmYXVsdE1lbW9yeU1iO1xuICAgIH1cbiAgICBhc3luYyBldmFsdWF0ZShjdHgpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IGN0eC5jb2RlO1xuICAgICAgICBpZiAoIWNvZGUgfHwgdHlwZW9mIGNvZGUgIT09IFwic3RyaW5nXCIgfHwgY29kZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcIkNvZGUgc2FuZGJveCByZWNlaXZlZCBlbXB0eSBjb2RlXCIsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0VNUFRZX0NPREVcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBjdHgubGFuZ3VhZ2UgPz8gXCJqYXZhc2NyaXB0XCI7XG4gICAgICAgIGNvbnN0IGpzQ29kZSA9IHRyYW5zcGlsZVR5cGVTY3JpcHQoY29kZSwgbGFuZ3VhZ2UpO1xuICAgICAgICB2YWxpZGF0ZVNhZmVDb2RlKGpzQ29kZSk7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25Nb2RlID0gIWhhc1JldHVyblN0YXRlbWVudChqc0NvZGUpO1xuICAgICAgICBjb25zdCBjb2RlRm9yTW9kZSA9IGV4cHJlc3Npb25Nb2RlXG4gICAgICAgICAgICA/IGpzQ29kZS5yZXBsYWNlKC9bXFxzO10rJC8sIFwiXCIpXG4gICAgICAgICAgICA6IGpzQ29kZTtcbiAgICAgICAgY29uc3Qgc2FuZGJveFZhcnMgPSB7XG4gICAgICAgICAgICAkaW5wdXQ6IGN0eC5pbnB1dCA/PyB7fSxcbiAgICAgICAgICAgICR2YXJzOiBjdHgudmFycyA/PyB7fSxcbiAgICAgICAgICAgICRpdGVtOiBjdHguaXRlbSxcbiAgICAgICAgICAgICRpbmRleDogY3R4LmluZGV4LFxuICAgICAgICAgICAgJG5vZGU6IGN0eC5ub2RlcyA/PyB7fSxcbiAgICAgICAgICAgICRvdXRwdXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcGFyYW1OYW1lcyA9IE9iamVjdC5rZXlzKHNhbmRib3hWYXJzKTtcbiAgICAgICAgLy8gY29uc3QgcGFyYW1WYWx1ZXMgPSBPYmplY3QudmFsdWVzKHNhbmRib3hWYXJzKTtcbiAgICAgICAgLy8gQnVpbGQgdGhlIHdyYXBwZWQgc2NyaXB0LiBUaGUgdXNlciBjb2RlIHJ1bnMgaW5zaWRlIGFuIGFzeW5jIGZ1bmN0aW9uXG4gICAgICAgIC8vIHdpdGggbmFtZWQgcGFyYW1ldGVycy4gVGhlIHJlc3VsdCBpcyBKU09OLXN0cmluZ2lmaWVkIGluc2lkZSB0aGUgaXNvbGF0ZVxuICAgICAgICAvLyBzbyBpdCBjYW4gYmUgdHJhbnNmZXJyZWQgYmFjayBhcyBhIHBsYWluIHN0cmluZyAoaXNvbGF0ZWQtdm0gY2Fubm90XG4gICAgICAgIC8vIGRlZXAtY29weSBhcmJpdHJhcnkgb2JqZWN0cyB2aWEgYHNjcmlwdC5ydW4oKWAgd2l0aCBgcHJvbWlzZTogdHJ1ZWApLlxuICAgICAgICAvLyBUaGUgc3BlYyByZXF1aXJlcyBKU09OLXNlcmlhbGl6YWJsZSBvdXRwdXQsIHNvIHRoaXMgaXMgc2FmZS5cbiAgICAgICAgY29uc3QgdXNlckJvZHkgPSBleHByZXNzaW9uTW9kZSA/IGByZXR1cm4gKCR7Y29kZUZvck1vZGV9KTtgIDogY29kZUZvck1vZGU7XG4gICAgICAgIGNvbnN0IHdyYXBwZWQgPSBgXCJ1c2Ugc3RyaWN0XCI7XFxuYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pIHtcXG4ke3VzZXJCb2R5fVxcbn1cXG5fX3VzZXJGdW5jdGlvbigke3BhcmFtTmFtZXMuam9pbihcIiwgXCIpfSkudGhlbihmdW5jdGlvbihfX3IpIHsgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdjogX19yIH0pOyB9KTtgO1xuICAgICAgICBjb25zdCBpc29sYXRlID0gbmV3IGl2bS5Jc29sYXRlKHsgbWVtb3J5TGltaXQ6IHRoaXMuZGVmYXVsdE1lbW9yeU1iIH0pO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgaXNvbGF0ZS5jcmVhdGVDb250ZXh0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBqYWlsID0gY29udGV4dC5nbG9iYWw7XG4gICAgICAgICAgICAvLyBJbmplY3QgYSBgY29uc29sZWAgb2JqZWN0IGludG8gdGhlIGlzb2xhdGUgd2hvc2UgbWV0aG9kcyBmb3J3YXJkIHRvXG4gICAgICAgICAgICAvLyB0aGUgQ29udGV4dCBsb2dnZXIgKGJvdW5kIHRvIHJ1bklkKS4gVGhlIGxvZ2dlciBpcyBjYWxsZWQgdmlhXG4gICAgICAgICAgICAvLyBgaXZtLlJlZmVyZW5jZWAgc28gdGhlIGlzb2xhdGUgY2FuIGludm9rZSBob3N0IGZ1bmN0aW9ucyB3aXRob3V0XG4gICAgICAgICAgICAvLyBsZWFraW5nIHRoZSBob3N0IGhlYXAuXG4gICAgICAgICAgICBpZiAoY3R4LmxvZ2dlcikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5qZWN0Q29uc29sZShqYWlsLCBjdHgubG9nZ2VyLCBjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhzYW5kYm94VmFycykpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBqYWlsLnNldChuYW1lLCBuZXcgaXZtLkV4dGVybmFsQ29weSh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHZhbHVlKS5jb3B5SW50bygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBzY3JpcHQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHNjcmlwdCA9IGF3YWl0IGlzb2xhdGUuY29tcGlsZVNjcmlwdCh3cmFwcGVkLCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lOiBcImdyYXBoLWNvZGUtbm9kZS5qc1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChleHByZXNzaW9uTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja0JvZHkgPSBjb2RlRm9yTW9kZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tXcmFwcGVkID0gYFwidXNlIHN0cmljdFwiO1xcbmFzeW5jIGZ1bmN0aW9uIF9fdXNlckZ1bmN0aW9uKCR7cGFyYW1OYW1lcy5qb2luKFwiLCBcIil9KSB7XFxuJHtmYWxsYmFja0JvZHl9XFxufVxcbl9fdXNlckZ1bmN0aW9uKCR7cGFyYW1OYW1lcy5qb2luKFwiLCBcIil9KS50aGVuKGZ1bmN0aW9uKF9fcikgeyByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyB2OiBfX3IgfSk7IH0pO2A7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQgPSBhd2FpdCBpc29sYXRlLmNvbXBpbGVTY3JpcHQoZmFsbGJhY2tXcmFwcGVkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IFwiZ3JhcGgtY29kZS1ub2RlLmpzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZmFsbGJhY2tFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKGBDb2RlIGZhaWxlZCB0byBjb21waWxlOiAke2ZhbGxiYWNrRXJyLm1lc3NhZ2V9YCwgXCJHUkFQSF9DT0RFX1NBTkRCT1hfQ09NUElMRV9FUlJPUlwiLCB7IGNvZGU6IGpzQ29kZSwgZXJyb3I6IGZhbGxiYWNrRXJyLm1lc3NhZ2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKGBDb2RlIGZhaWxlZCB0byBjb21waWxlOiAke2Vyci5tZXNzYWdlfWAsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0NPTVBJTEVfRVJST1JcIiwgeyBjb2RlOiBqc0NvZGUsIGVycm9yOiBlcnIubWVzc2FnZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcmF3UmVzdWx0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByYXdSZXN1bHQgPSBhd2FpdCBzY3JpcHQucnVuKGNvbnRleHQsIHtcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogdGhpcy5kZWZhdWx0VGltZW91dE1zLFxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGlmIChtc2cuaW5jbHVkZXMoXCJ0aW1lZCBvdXRcIikgfHwgbXNnLmluY2x1ZGVzKFwidGltZW91dFwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihgQ29kZSBleGVjdXRpb24gdGltZWQgb3V0IGFmdGVyICR7dGhpcy5kZWZhdWx0VGltZW91dE1zfSBtc2AsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1RJTUVPVVRcIiwgeyB0aW1lb3V0TXM6IHRoaXMuZGVmYXVsdFRpbWVvdXRNcyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhcIm1lbW9yeVwiKSB8fCBtc2cuaW5jbHVkZXMoXCJoZWFwXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKGBDb2RlIGV4Y2VlZGVkIHRoZSBtZW1vcnkgbGltaXQgb2YgJHt0aGlzLmRlZmF1bHRNZW1vcnlNYn0gTUJgLCBcIkdSQVBIX0NPREVfU0FOREJPWF9NRU1PUllfTElNSVRcIiwgeyBtZW1vcnlNYjogdGhpcy5kZWZhdWx0TWVtb3J5TWIgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKGBDb2RlIGV4ZWN1dGlvbiBmYWlsZWQ6ICR7bXNnfWAsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1JVTlRJTUVfRVJST1JcIiwgeyBjb2RlOiBqc0NvZGUsIGVycm9yOiBtc2cgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUaGUgc2NyaXB0IHJldHVybnMgYSBKU09OIHN0cmluZyBge1widlwiOiA8cmVzdWx0Pn1gLiBQYXJzZSBpdCBiYWNrLlxuICAgICAgICAgICAgaWYgKHR5cGVvZiByYXdSZXN1bHQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcIkNvZGUgc2FuZGJveCByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIG5vbi1zdHJpbmcgcmVzdWx0XCIsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1VORVhQRUNURURfUkVTVUxUXCIsIHsgcmVzdWx0OiByYXdSZXN1bHQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyYXdSZXN1bHQpLnY7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlbGVhc2UoKTtcbiAgICAgICAgICAgIGlzb2xhdGUuZGlzcG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluamVjdHMgYSBgY29uc29sZWAgb2JqZWN0IGludG8gdGhlIGlzb2xhdGUgd2hvc2UgbWV0aG9kcyBmb3J3YXJkIHRvIHRoZVxuICAgICAqIENvbnRleHQgbG9nZ2VyIChib3VuZCB0byBgcnVuSWRgKS5cbiAgICAgKlxuICAgICAqIEV2ZXJ5IHN0YW5kYXJkIGBjb25zb2xlLipgIG1ldGhvZCBpcyBzdXBwb3J0ZWQ6XG4gICAgICogYGxvZ2AsIGBpbmZvYCwgYHdhcm5gLCBgZXJyb3JgLCBgZGVidWdgLCBgdHJhY2VgLCBgZGlyYCwgYGRpcnhtbGAsXG4gICAgICogYHRhYmxlYCwgYGdyb3VwYCwgYGdyb3VwQ29sbGFwc2VkYCwgYGdyb3VwRW5kYCwgYHRpbWVgLCBgdGltZUVuZGAsXG4gICAgICogYHRpbWVMb2dgLCBgYXNzZXJ0YCwgYGNvdW50YCwgYGNvdW50UmVzZXRgLCBgY2xlYXJgLlxuICAgICAqXG4gICAgICogQXJndW1lbnRzIGFyZSBzZXJpYWxpc2VkIGluc2lkZSB0aGUgaXNvbGF0ZSAodmlhIGBKU09OLnN0cmluZ2lmeWAgd2l0aCBhXG4gICAgICogc2FmZSBmYWxsYmFjaykgYmVmb3JlIGJlaW5nIHBhc3NlZCBhY3Jvc3MgdGhlIGlzb2xhdGUgYm91bmRhcnksIGJlY2F1c2VcbiAgICAgKiBgaXNvbGF0ZWQtdm1gIGNhbm5vdCBjb3B5IGFyYml0cmFyeSBob3N0IG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gamFpbCAtIFRoZSBpc29sYXRlJ3MgZ2xvYmFsIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gbG9nZ2VyIC0gVGhlIENvbnRleHQgbG9nZ2VyIHRoYXQgcmVjZWl2ZXMgdGhlIGZvcndhcmRlZCBjYWxscy5cbiAgICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBpc29sYXRlIGNvbnRleHQgKGZvciBydW5uaW5nIHRoZSBpbml0IHNjcmlwdCkuXG4gICAgICovXG4gICAgYXN5bmMgaW5qZWN0Q29uc29sZShqYWlsLCBsb2dnZXIsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2ggPSBuZXcgaXZtLlJlZmVyZW5jZShmdW5jdGlvbiAobGV2ZWwsIGFyZ3NKc29uKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGFyZ3NKc29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICBwYXJzZWQgPSBbYXJnc0pzb25dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbXNnID0gcGFyc2VkXG4gICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gKHR5cGVvZiBhID09PSBcInN0cmluZ1wiID8gYSA6IEpTT04uc3RyaW5naWZ5KGEpKSlcbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIik7XG4gICAgICAgICAgICBjb25zdCBtZXRhID0gcGFyc2VkLmxlbmd0aCA9PT0gMSA/IHBhcnNlZFswXSA6IHBhcnNlZDtcbiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwibG9nXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImluZm9cIjpcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8obXNnLCBtZXRhKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIndhcm5cIjpcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm4obXNnLCBtZXRhKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImVycm9yXCI6XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihtc2csIG1ldGEpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVidWdcIjpcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKG1zZywgbWV0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ0cmFjZVwiOlxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIudHJhY2UobXNnLCBtZXRhKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpclwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkaXJ4bWxcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwidGFibGVcIjpcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKG1zZywgbWV0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJncm91cFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJncm91cENvbGxhcHNlZFwiOlxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFtncm91cF0gJHttc2d9YCwgbWV0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJncm91cEVuZFwiOlxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoXCJbZ3JvdXBFbmRdXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ0aW1lXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInRpbWVFbmRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwidGltZUxvZ1wiOlxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFske2xldmVsfV0gJHttc2d9YCwgbWV0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJhc3NlcnRcIjpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRbMF0pXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEFzc2VydGlvbiBmYWlsZWQ6ICR7bXNnfWAsIG1ldGEpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiY291bnRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiY291bnRSZXNldFwiOlxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFske2xldmVsfV0gJHttc2d9YCwgbWV0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjbGVhclwiOlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhtc2csIG1ldGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgamFpbC5zZXQoXCJfX2Rpc3BhdGNoXCIsIGRpc3BhdGNoKTtcbiAgICAgICAgY29udGV4dC5ldmFsU3luYyhgXG4gICAgICBmdW5jdGlvbiBfX3NlcigpIHtcbiAgICAgICAgdmFyIG91dCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBhID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgIHRyeSB7IG91dC5wdXNoKHR5cGVvZiBhID09PSAnb2JqZWN0JyA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpIDogYSk7IH1cbiAgICAgICAgICBjYXRjaCAoZSkgeyBvdXQucHVzaChTdHJpbmcoYSkpOyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG91dCk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfX2NhbGwobGV2ZWwpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIF9fZGlzcGF0Y2guYXBwbHlTeW5jKHVuZGVmaW5lZCwgW2xldmVsLCBfX3Nlci5hcHBseShudWxsLCBhcmd1bWVudHMpXSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBnbG9iYWxUaGlzLmNvbnNvbGUgPSB7XG4gICAgICAgIGxvZzogX19jYWxsKCdsb2cnKSxcbiAgICAgICAgaW5mbzogX19jYWxsKCdpbmZvJyksXG4gICAgICAgIHdhcm46IF9fY2FsbCgnd2FybicpLFxuICAgICAgICBlcnJvcjogX19jYWxsKCdlcnJvcicpLFxuICAgICAgICBkZWJ1ZzogX19jYWxsKCdkZWJ1ZycpLFxuICAgICAgICB0cmFjZTogX19jYWxsKCd0cmFjZScpLFxuICAgICAgICBkaXI6IF9fY2FsbCgnZGlyJyksXG4gICAgICAgIGRpcnhtbDogX19jYWxsKCdkaXJ4bWwnKSxcbiAgICAgICAgdGFibGU6IF9fY2FsbCgndGFibGUnKSxcbiAgICAgICAgZ3JvdXA6IF9fY2FsbCgnZ3JvdXAnKSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IF9fY2FsbCgnZ3JvdXBDb2xsYXBzZWQnKSxcbiAgICAgICAgZ3JvdXBFbmQ6IF9fY2FsbCgnZ3JvdXBFbmQnKSxcbiAgICAgICAgdGltZTogX19jYWxsKCd0aW1lJyksXG4gICAgICAgIHRpbWVFbmQ6IF9fY2FsbCgndGltZUVuZCcpLFxuICAgICAgICB0aW1lTG9nOiBfX2NhbGwoJ3RpbWVMb2cnKSxcbiAgICAgICAgYXNzZXJ0OiBfX2NhbGwoJ2Fzc2VydCcpLFxuICAgICAgICBjb3VudDogX19jYWxsKCdjb3VudCcpLFxuICAgICAgICBjb3VudFJlc2V0OiBfX2NhbGwoJ2NvdW50UmVzZXQnKSxcbiAgICAgICAgY2xlYXI6IF9fY2FsbCgnY2xlYXInKVxuICAgICAgfTtcbiAgICBgKTtcbiAgICAgICAgZGlzcGF0Y2gucmVsZWFzZSgpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVNYTnZiR0YwWldSV2JVTnZaR1ZUWVc1a1ltOTRSWFpoYkhWaGRHOXlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZMaTR2YzNKakwyZHlZWEJvTDJWdVoybHVaUzlsZUdWamRYUnBiMjR2U1hOdmJHRjBaV1JXYlVOdlpHVlRZVzVrWW05NFJYWmhiSFZoZEc5eUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBGdlEwYzdRVUZEU0N4UFFVRlBMRWRCUVVjc1RVRkJUU3hoUVVGaExFTkJRVU03UVVGRE9VSXNUMEZCVHl4TFFVRkxMRXRCUVVzc1RVRkJUU3hQUVVGUExFTkJRVU03UVVGREwwSXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGRGJrTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGTmFrTXNUMEZCVHl4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTERKRFFVRnpRenRCUVVWd1JUczdSMEZGUnp0QlFVTklMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUldoRE96dEhRVVZITzBGQlEwZ3NUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eEZRVUZGTEVOQlFVTTdRVUZGTjBJN08wZEJSVWM3UVVGRFNDeE5RVUZOTEdWQlFXVXNSMEZCUnl4UFFVRlBMRU5CUVVNN1FVRkZhRU03T3pzN096dEhRVTFITzBGQlEwZ3NUVUZCVFN4dFFrRkJiVUlzUjBGQmQwSXNTVUZCU1N4SFFVRkhMRU5CUVVNN1NVRkRka1FzVTBGQlV6dEpRVU5VTEZOQlFWTTdTVUZEVkN4UlFVRlJPMGxCUTFJc1UwRkJVenRKUVVOVUxGRkJRVkU3U1VGRFVpeFpRVUZaTzBsQlExb3NWVUZCVlR0SlFVTldMRTFCUVUwN1NVRkRUaXhQUVVGUE8wbEJRMUFzWjBKQlFXZENPMGxCUTJoQ0xGZEJRVmM3U1VGRFdDeFJRVUZSTzBsQlExSXNUVUZCVFR0SlFVTk9MRXRCUVVzN1NVRkRUQ3haUVVGWk8wTkJRMklzUTBGQlF5eERRVUZETzBGQlJVZzdPenM3T3pzN096czdSMEZWUnp0QlFVTklMRk5CUVZNc2JVSkJRVzFDTEVOQlF6RkNMRWxCUVZrc1JVRkRXaXhSUVVGeFF6dEpRVVZ5UXl4SlFVRkpMRkZCUVZFc1MwRkJTeXhaUVVGWk8xRkJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdTVUZGTTBNc1RVRkJUU3hOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRVZCUVVVN1VVRkRkRU1zWlVGQlpTeEZRVUZGTzFsQlEyWXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRUdFpRVU01UWl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTzFsQlF6RkNMRTFCUVUwc1JVRkJSU3hKUVVGSk8xbEJRMW9zWVVGQllTeEZRVUZGTEVsQlFVazdXVUZEYmtJc1lVRkJZU3hGUVVGRkxFdEJRVXM3VTBGRGNrSTdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkZTQ3gxUlVGQmRVVTdTVUZEZGtVc2VVVkJRWGxGTzBsQlEzcEZMREpEUVVFeVF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlF6VkVMRU5CUVVNN1FVRkZSRHM3T3pzN096czdPenM3TzBkQldVYzdRVUZEU0N4VFFVRlRMR2RDUVVGblFpeERRVUZETEVsQlFWazdTVUZEY0VNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEdWQlFXVXNSVUZCUlN4RFFVRkRPMUZCUTJ4RExFMUJRVTBzU1VGQlNTeHRRa0ZCYlVJc1EwRkRNMElzYzBOQlFYTkRMR1ZCUVdVc1lVRkJZU3hGUVVOc1JTeHJRMEZCYTBNc1JVRkRiRU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVONFFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRWxCUVVrc1IwRkJhMElzUTBGQlF6dEpRVU4yUWl4SlFVRkpMRU5CUVVNN1VVRkRTQ3h2UlVGQmIwVTdVVUZEY0VVc2RVVkJRWFZGTzFGQlEzWkZMR2RGUVVGblJUdFJRVU5vUlN4dFEwRkJiVU03VVVGRGJrTXNSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYTBOQlFXdERMRWxCUVVrc1MwRkJTeXhGUVVGRk8xbEJRemRFTEZkQlFWY3NSVUZCUlN4UlFVRlJPMWxCUTNKQ0xGVkJRVlVzUlVGQlJTeFJRVUZSTzFOQlEzSkNMRU5CUVd0Q0xFTkJRVU03U1VGRGRFSXNRMEZCUXp0SlFVRkRMRTFCUVUwc1EwRkJRenRSUVVOUUxHbEZRVUZwUlR0UlFVTnFSU3gxUlVGQmRVVTdVVUZEZGtVc2IwVkJRVzlGTzFGQlEzQkZMREJFUVVFd1JEdFJRVU14UkN4SlFVRkpMRU5CUVVNN1dVRkRTQ3hIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVN1owSkJRM1JDTEZkQlFWY3NSVUZCUlN4UlFVRlJPMmRDUVVOeVFpeFZRVUZWTEVWQlFVVXNVVUZCVVR0aFFVTnlRaXhEUVVGclFpeERRVUZETzFGQlEzUkNMRU5CUVVNN1VVRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEySXNUVUZCVFN4SlFVRkpMRzFDUVVGdFFpeERRVU16UWl4NVFrRkJNRUlzUjBGQllTeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVTnFSQ3huUTBGQlowTXNSVUZEYUVNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZITEVkQlFXRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkRlRU1zUTBGQlF6dFJRVU5LTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZaTEVWQlFVVXNRMEZCUXl4SlFVRnRRaXhGUVVGRkxFVkJRVVU3VVVGRE9VTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJNRU1zUTBGQlF6dFJRVVZ5UkN4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eHRRa0ZCYlVJc1JVRkJSU3hEUVVGRE8xbEJRM1JETEUxQlFVMHNTVUZCU1N4dFFrRkJiVUlzUTBGRE0wSXNkME5CUVhkRExFVkJRM2hETEc5RFFVRnZReXhGUVVOd1F5eEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVVc1EwRkRjRUlzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVTkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eDNRa0ZCZDBJN1dVRkRkRU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMREJDUVVFd1FpeEZRVU40UXl4RFFVRkRPMWxCUTBRc1RVRkJUU3hKUVVGSkxHMUNRVUZ0UWl4RFFVTXpRaXgzUTBGQmQwTXNSVUZEZUVNc2IwTkJRVzlETEVWQlEzQkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGQlJTeERRVU53UWl4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFbEJRMFVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRmxCUVZrN1dVRkRNVUlzVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1VVRkJVVHRaUVVNM1FpeHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUTJ4RExFTkJRVU03V1VGRFJDeE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFTkJRek5DTEdWQlFXVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhwUTBGQmFVTXNSVUZEZWtRc2IwTkJRVzlETEVWQlEzQkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVTnlRaXhEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVVZFTEVsQlEwVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExHVkJRV1U3V1VGRE5VSXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJOa0lzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc1JVRkRha1VzUTBGQlF6dFpRVU5FTEUxQlFVMHNTVUZCU1N4dFFrRkJiVUlzUTBGRE0wSXNPRU5CUVRoRExFVkJRemxETEc5RFFVRnZReXhGUVVOd1F5eEZRVUZGTEV0QlFVc3NSVUZCUlN4VlFVRlZMRVZCUVVVc1EwRkRkRUlzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVTkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eG5Ra0ZCWjBJN1dVRkROMElzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCTmtJc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEUxQlFVMHNSVUZETjBRc1EwRkJRenRaUVVORUxFMUJRVTBzU1VGQlNTeHRRa0ZCYlVJc1EwRkRNMElzYzBOQlFYTkRMRVZCUTNSRExHOURRVUZ2UXl4RlFVTndReXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZEYkVJc1EwRkJRenRSUVVOS0xFTkJRVU03U1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNN1FVRkZSRHM3T3pzN08wZEJUVWM3UVVGRFNDeFRRVUZUTEd0Q1FVRnJRaXhEUVVGRExFbEJRVms3U1VGRGRFTXNUMEZCVHl4cFFrRkJhVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRkRU1zUTBGQlF6dEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEZwUTBjN1FVRkRTQ3hOUVVGTkxFOUJRVThzT0VKQlFUaENPMGxCU1hwRE96czdUMEZIUnp0SlFVTklMRmxCUTBVc2JVSkJRVEpDTEd0Q1FVRnJRaXhGUVVNM1F5eHJRa0ZCTUVJc2FVSkJRV2xDTzFGQlJUTkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSMEZCUnl4blFrRkJaMElzUTBGQlF6dFJRVU42UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExHVkJRV1VzUTBGQlF6dEpRVU42UXl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUYxUWp0UlFVTndReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTNSQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGJFVXNUVUZCVFN4SlFVRkpMRzFDUVVGdFFpeERRVU16UWl4clEwRkJhME1zUlVGRGJFTXNLMEpCUVN0Q0xFTkJRMmhETEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eERRVUZETEZGQlFWRXNTVUZCU1N4WlFVRlpMRU5CUVVNN1VVRkRPVU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUlc1RUxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJSWHBDTEUxQlFVMHNZMEZCWXl4SFFVRkhMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia1FzVFVGQlRTeFhRVUZYTEVkQlFVY3NZMEZCWXp0WlFVTm9ReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJReTlDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkZXQ3hOUVVGTkxGZEJRVmNzUjBGQk5FSTdXVUZETTBNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eExRVUZMTEVsQlFVa3NSVUZCUlR0WlFVTjJRaXhMUVVGTExFVkJRVVVzUjBGQlJ5eERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTNKQ0xFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNTVUZCU1R0WlFVTm1MRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUzBGQlN6dFpRVU5xUWl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTzFsQlEzUkNMRTlCUVU4c1JVRkJSU3hUUVVGVE8xTkJRMjVDTEVOQlFVTTdVVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUXpWRExHdEVRVUZyUkR0UlFVVnNSQ3gzUlVGQmQwVTdVVUZEZUVVc01rVkJRVEpGTzFGQlF6TkZMSE5GUVVGelJUdFJRVU4wUlN4M1JVRkJkMFU3VVVGRGVFVXNLMFJCUVN0RU8xRkJReTlFTEUxQlFVMHNVVUZCVVN4SFFVRkhMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eFhRVUZYTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRE8xRkJRek5GTEUxQlFVMHNUMEZCVHl4SFFVRkhMR2RFUVVGblJDeFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxGRkJRVkVzZFVKQlFYVkNMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEN0RVFVRXJSQ3hEUVVGRE8xRkJSV3BPTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU4yUlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eGhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVVTVReXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJSVFZDTEhORlFVRnpSVHRaUVVOMFJTeG5SVUZCWjBVN1dVRkRhRVVzYlVWQlFXMUZPMWxCUTI1RkxIbENRVUY1UWp0WlFVTjZRaXhKUVVGSkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0blFrRkRaaXhOUVVGTkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEZEVRc1EwRkJRenRaUVVWRUxFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRM2hFTEUxQlFVMHNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkRXaXhKUVVGSkxFVkJRMG9zU1VGQlNTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1MwRkJTeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlEzQkZMRU5CUVVNN1dVRkRTaXhEUVVGRE8xbEJSVVFzU1VGQlNTeE5RVUZyUWl4RFFVRkRPMWxCUTNaQ0xFbEJRVWtzUTBGQlF6dG5Ra0ZEU0N4TlFVRk5MRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEU5QlFVOHNSVUZCUlR0dlFrRkROVU1zVVVGQlVTeEZRVUZGTEc5Q1FVRnZRanRwUWtGREwwSXNRMEZCUXl4RFFVRkRPMWxCUTB3c1EwRkJRenRaUVVGRExFOUJRVThzUjBGQlJ5eEZRVUZGTEVOQlFVTTdaMEpCUTJJc1NVRkJTU3hqUVVGakxFVkJRVVVzUTBGQlF6dHZRa0ZEYmtJc1RVRkJUU3haUVVGWkxFZEJRVWNzVjBGQlZ5eERRVUZETzI5Q1FVTnFReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eG5SRUZCWjBRc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4WlFVRlpMSFZDUVVGMVFpeFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXdyUkVGQkswUXNRMEZCUXp0dlFrRkROMDRzU1VGQlNTeERRVUZETzNkQ1FVTklMRTFCUVUwc1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNaVUZCWlN4RlFVRkZPelJDUVVOd1JDeFJRVUZSTEVWQlFVVXNiMEpCUVc5Q08zbENRVU12UWl4RFFVRkRMRU5CUVVNN2IwSkJRMHdzUTBGQlF6dHZRa0ZCUXl4UFFVRlBMRmRCUVZjc1JVRkJSU3hEUVVGRE8zZENRVU55UWl4TlFVRk5MRWxCUVVrc2JVSkJRVzFDTEVOQlF6TkNMREpDUVVFMFFpeFhRVUZ4UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVNelJDeHJRMEZCYTBNc1JVRkRiRU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSeXhYUVVGeFFpeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVTjRSQ3hEUVVGRE8yOUNRVU5LTEVOQlFVTTdaMEpCUTBnc1EwRkJRenR4UWtGQlRTeERRVUZETzI5Q1FVTk9MRTFCUVUwc1NVRkJTU3h0UWtGQmJVSXNRMEZETTBJc01rSkJRVFJDTEVkQlFXRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkRia1FzYTBOQlFXdERMRVZCUTJ4RExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVjc1IwRkJZU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVU5vUkN4RFFVRkRPMmRDUVVOS0xFTkJRVU03V1VGRFNDeERRVUZETzFsQlJVUXNTVUZCU1N4VFFVRnJRaXhEUVVGRE8xbEJRM1pDTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hUUVVGVExFZEJRVWNzVFVGQlRTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1JVRkJSVHR2UWtGRGNFTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhuUWtGQlowSTdiMEpCUXpsQ0xFOUJRVThzUlVGQlJTeEpRVUZKTzJsQ1FVTmtMRU5CUVVNc1EwRkJRenRaUVVOTUxFTkJRVU03V1VGQlF5eFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOaUxFMUJRVTBzUjBGQlJ5eEhRVUZKTEVkQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNN1owSkJRMjVETEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU03YjBKQlEzcEVMRTFCUVUwc1NVRkJTU3h0UWtGQmJVSXNRMEZETTBJc2EwTkJRV3RETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUzBGQlN5eEZRVU0xUkN3MFFrRkJORUlzUlVGRE5VSXNSVUZCUlN4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUTNKRExFTkJRVU03WjBKQlEwb3NRMEZCUXp0blFrRkRSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVOdVJDeE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFTkJRek5DTEhGRFFVRnhReXhKUVVGSkxFTkJRVU1zWlVGQlpTeExRVUZMTEVWQlF6bEVMR2xEUVVGcFF5eEZRVU5xUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlEyNURMRU5CUVVNN1owSkJRMG9zUTBGQlF6dG5Ra0ZEUkN4TlFVRk5MRWxCUVVrc2JVSkJRVzFDTEVOQlF6TkNMREJDUVVFd1FpeEhRVUZITEVWQlFVVXNSVUZETDBJc2EwTkJRV3RETEVWQlEyeERMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUXpkQ0xFTkJRVU03V1VGRFNpeERRVUZETzFsQlJVUXNjVVZCUVhGRk8xbEJRM0pGTEVsQlFVa3NUMEZCVHl4VFFVRlRMRXRCUVVzc1VVRkJVU3hGUVVGRkxFTkJRVU03WjBKQlEyeERMRTFCUVUwc1NVRkJTU3h0UWtGQmJVSXNRMEZETTBJc2RVUkJRWFZFTEVWQlEzWkVMSE5EUVVGelF5eEZRVU4wUXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGRGRFSXNRMEZCUXp0WlFVTktMRU5CUVVNN1dVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMnBETEVOQlFVTTdaMEpCUVZNc1EwRkJRenRaUVVOVUxFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTnNRaXhQUVVGUExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdVVUZEY0VJc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3p0UFFXZENSenRKUVVOTExFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlEzcENMRWxCUVRKQ0xFVkJRek5DTEUxQlFYRkNMRVZCUTNKQ0xFOUJRVzlDTzFGQlJYQkNMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4VlFVRlZMRXRCUVdFc1JVRkJSU3hSUVVGblFqdFpRVU14UlN4SlFVRkpMRTFCUVdsQ0xFTkJRVU03V1VGRGRFSXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJZeXhEUVVGRE8xbEJRemRETEVOQlFVTTdXVUZCUXl4TlFVRk5MRU5CUVVNN1owSkJRMUFzVFVGQlRTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1dVRkRkRUlzUTBGQlF6dFpRVU5FTEUxQlFVMHNSMEZCUnl4SFFVRkhMRTFCUVUwN2FVSkJRMllzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YVVKQlF6TkVMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5pTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTjBSQ3hSUVVGUkxFdEJRVXNzUlVGQlJTeERRVUZETzJkQ1FVTmtMRXRCUVVzc1MwRkJTeXhEUVVGRE8yZENRVU5ZTEV0QlFVc3NUVUZCVFR0dlFrRkRWQ3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenR2UWtGRGRrSXNUVUZCVFR0blFrRkRVaXhMUVVGTExFMUJRVTA3YjBKQlExUXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdiMEpCUTNaQ0xFMUJRVTA3WjBKQlExSXNTMEZCU3l4UFFVRlBPMjlDUVVOV0xFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yOUNRVU40UWl4TlFVRk5PMmRDUVVOU0xFdEJRVXNzVDBGQlR6dHZRa0ZEVml4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0dlFrRkRlRUlzVFVGQlRUdG5Ra0ZEVWl4TFFVRkxMRTlCUVU4N2IwSkJRMVlzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEzaENMRTFCUVUwN1owSkJRMUlzUzBGQlN5eExRVUZMTEVOQlFVTTdaMEpCUTFnc1MwRkJTeXhSUVVGUkxFTkJRVU03WjBKQlEyUXNTMEZCU3l4UFFVRlBPMjlDUVVOV0xFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yOUNRVU40UWl4TlFVRk5PMmRDUVVOU0xFdEJRVXNzVDBGQlR5eERRVUZETzJkQ1FVTmlMRXRCUVVzc1owSkJRV2RDTzI5Q1FVTnVRaXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSMEZCUnl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEzSkRMRTFCUVUwN1owSkJRMUlzUzBGQlN5eFZRVUZWTzI5Q1FVTmlMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMjlDUVVOMFF5eE5RVUZOTzJkQ1FVTlNMRXRCUVVzc1RVRkJUU3hEUVVGRE8yZENRVU5hTEV0QlFVc3NVMEZCVXl4RFFVRkRPMmRDUVVObUxFdEJRVXNzVTBGQlV6dHZRa0ZEV2l4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5eExRVUZMTEVkQlFVY3NSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yOUNRVU40UXl4TlFVRk5PMmRDUVVOU0xFdEJRVXNzVVVGQlVUdHZRa0ZEV0N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4SFFVRkhMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dHZRa0ZETDBRc1RVRkJUVHRuUWtGRFVpeExRVUZMTEU5QlFVOHNRMEZCUXp0blFrRkRZaXhMUVVGTExGbEJRVms3YjBKQlEyWXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzUzBGQlN5eEhRVUZITEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenR2UWtGRGVFTXNUVUZCVFR0blFrRkRVaXhMUVVGTExFOUJRVTg3YjBKQlExWXNUVUZCVFR0blFrRkRVanR2UWtGRFJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU16UWl4RFFVRkRPMUZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeE5RVUZOTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzFGQlJYWkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU03T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRMUVc5RGFFSXNRMEZCUXl4RFFVRkRPMUZCUlVnc1VVRkJVU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBsQlEzSkNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUcxdlpIVnNaU0JwYm5SbFozSmhkR2x2Ym5NdlozSmhjR2d2WlhobFkzVjBhVzl1TDBsemIyeGhkR1ZrVm0xRGIyUmxVMkZ1WkdKdmVFVjJZV3gxWVhSdmNseHVJQ29nUUhOMWJXMWhjbmtnZTBCc2FXNXJJRU52WkdWVFlXNWtZbTk0UlhaaGJIVmhkRzl5ZlNCaVlXTnJaV1FnWW5rZ1lHbHpiMnhoZEdWa0xYWnRZQ0FvUVV4R1VrVkVMVFVnd3FjM0tTNWNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlFjbTkyYVdSbGN5QmhJR1oxYkd4NUlHbHpiMnhoZEdWa0lGWTRJSE5oYm1SaWIzZ2dabTl5SUhSb1pTQkRiMlJsSUU1dlpHVmNiaUFxSUNoRVJVTkJSaTB6TWlEQ3B6SXlMalFwSUdGdVpDQmpiMlJsTFdKaGMyVmtJR052Ym1ScGRHbHZibk11SUZWelpYTWdZR2x6YjJ4aGRHVmtMWFp0WUNCbWIzSWdkSEoxWlZ4dUlDb2dhR1ZoY0NCcGMyOXNZWFJwYjI0Z0tIVnViR2xyWlNCT2IyUmxKM01nWUhadFlDQnRiMlIxYkdVZ2QyaHBZMmdnYzJoaGNtVnpJSFJvWlNCb2IzTjBJR2hsWVhBcExGeHVJQ29nWUdGamIzSnVZQ0FySUdCaFkyOXliaTEzWVd4cllDQm1iM0lnUVZOVUxXSmhjMlZrSUhOMFlYUnBZeUIyWVd4cFpHRjBhVzl1TENCaGJtUWdZSFI1Y0dWelkzSnBjSFJnWEc0Z0tpQm1iM0lnVkZNZ2RISmhibk53YVd4aGRHbHZiaTVjYmlBcVhHNGdLaUJTWlhOMGNtbGpkR2x2Ym5NZ1pXNW1iM0pqWldRZ0tFRk1SbEpGUkMwMUlNS25OeTR4TU9LQWt6Y3VNVElzSUVSRlEwRkdMVE0wSU1Lbk55NDFLVHBjYmlBcVhHNGdLaUF0SUNvcVRtOGdhVzF3YjNKMGN5b3FJT0tBbENCZ2FXMXdiM0owWUNCa1pXTnNZWEpoZEdsdmJuTWdZWEpsSUhKbGFtVmpkR1ZrSUdKNUlFRlRWQ0IyWVd4cFpHRjBhVzl1TGx4dUlDb2dMU0FxS2s1dklISmxjWFZwY21Wektpb2c0b0NVSUdCeVpYRjFhWEpsWUNCcGN5QnBiaUIwYUdVZ1lteHZZMnRsWkMxcFpHVnVkR2xtYVdWeUlITmxkQ0JoYm1RZ2FYTWdibTkwWEc0Z0tpQWdJR1Y0Y0c5elpXUWdhVzRnZEdobElITmhibVJpYjNnZ1kyOXVkR1Y0ZEM1Y2JpQXFJQzBnS2lwT2J5QmxlSEJ2Y25Sektpb2c0b0NVSUdCbGVIQnZjblJnSUdSbFkyeGhjbUYwYVc5dWN5QmhjbVVnY21WcVpXTjBaV1FnWW5rZ1FWTlVJSFpoYkdsa1lYUnBiMjR1WEc0Z0tpQXRJQ29xVUhWeVpTQm1kVzVqZEdsdmJuTWdiMjVzZVNvcUlPS0FsQ0J1YnlCemVYTjBaVzBnUVZCSklHRmpZMlZ6Y3k0Z1FteHZZMnRsWkNCcFpHVnVkR2xtYVdWeWMxeHVJQ29nSUNCcGJtTnNkV1JsSUdCd2NtOWpaWE56WUN3Z1lHZHNiMkpoYkdBc0lHQm5iRzlpWVd4VWFHbHpZQ3dnWUVaMWJtTjBhVzl1WUN3Z1lHVjJZV3hnTENCZ1ptVjBZMmhnTEZ4dUlDb2dJQ0JnV0UxTVNIUjBjRkpsY1hWbGMzUmdMQ0JnVjJWaVUyOWphMlYwWUN3Z1lGZHZjbXRsY21Bc0lHQkVaVzV2WUN3Z1lFSjFibUFzSUdCdGIyUjFiR1ZnTEZ4dUlDb2dJQ0JnWlhod2IzSjBjMkF1SUZSb1pTQnpZVzVrWW05NElHTnZiblJsZUhRZ1pYaHdiM05sY3lCdmJteDVJSFJvWlNCa1lYUmhJSFpoY21saFlteGxjMXh1SUNvZ0lDQW9ZQ1JwYm5CMWRHQXNJR0FrZG1GeWMyQXNJR0FrYVhSbGJXQXNJR0FrYVc1a1pYaGdMQ0JnSkc1dlpHVmdMQ0JnSkc5MWRIQjFkR0FwTGx4dUlDb2dMU0FxS2s1dklHQmxkbUZzS0NsZ0lDOGdZRzVsZHlCR2RXNWpkR2x2YmlncFlDb3FJT0tBbENCeVpXcGxZM1JsWkNCaWVTQkJVMVFnZG1Gc2FXUmhkR2x2Ymk1Y2JpQXFYRzRnS2lCVWFHVWdkWE5sY2lCamIyUmxJR2x6SUhSeVlXNXpjR2xzWldRZ0tGUlRJT0tHa2lCS1V5a2dhV1lnYm1WbFpHVmtMQ0J6ZEdGMGFXTmhiR3g1SUhaaGJHbGtZWFJsWkN4Y2JpQXFJSGR5WVhCd1pXUWdhVzRnWVNCemRISnBZM1F0Ylc5a1pTQmhjM2x1WXlCbWRXNWpkR2x2YmlCMGFHRjBJSEpsWTJWcGRtVnpJSFJvWlNCa1lYUmhJSFpoY21saFlteGxjeUJoYzF4dUlDb2djR0Z5WVcxbGRHVnljeXdnWTI5dGNHbHNaV1FnYVc0Z1lXNGdhWE52YkdGMFpXUWdWamdnYVc1emRHRnVZMlVzSUdGdVpDQmxlR1ZqZFhSbFpDQjNhWFJvSUdGY2JpQXFJSFJwYldWdmRYUWdZVzVrSUcxbGJXOXllU0JzYVcxcGRDNGdWR2hsSUhKbGMzVnNkQ0JwY3lCamIzQnBaV1FnWW1GamF5QjBieUIwYUdVZ2FHOXpkQ0JvWldGd0xseHVJQ3BjYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUJnWUdCMGMxeHVJQ29nWTI5dWMzUWdaWFpoYkhWaGRHOXlJRDBnYm1WM0lFbHpiMnhoZEdWa1ZtMURiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjaWdwTzF4dUlDb2dZMjl1YzNRZ2NtVnpkV3gwSUQwZ1lYZGhhWFFnWlhaaGJIVmhkRzl5TG1WMllXeDFZWFJsS0h0Y2JpQXFJQ0FnWTI5a1pUb2dYQ0p5WlhSMWNtNGdKR2x1Y0hWMExtRWdLeUFrYVc1d2RYUXVZanRjSWl4Y2JpQXFJQ0FnYVc1d2RYUTZJSHNnWVRvZ01pd2dZam9nTXlCOUxGeHVJQ29nZlNrN1hHNGdLaUF2THlCeVpYTjFiSFFnUFQwOUlEVmNiaUFxSUdCZ1lGeHVJQ292WEc1cGJYQnZjblFnYVhadElHWnliMjBnWENKcGMyOXNZWFJsWkMxMmJWd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ1lXTnZjbTRnWm5KdmJTQmNJbUZqYjNKdVhDSTdYRzVwYlhCdmNuUWdLaUJoY3lCM1lXeHJJR1p5YjIwZ1hDSmhZMjl5YmkxM1lXeHJYQ0k3WEc1cGJYQnZjblFnS2lCaGN5QjBjeUJtY205dElGd2lkSGx3WlhOamNtbHdkRndpTzF4dWFXMXdiM0owSUhSNWNHVWdlMXh1SUNCRGIyUmxVMkZ1WkdKdmVFVjJZV3gxWVhSdmNpeGNiaUFnUTI5a1pWTmhibVJpYjNoRGIyNTBaWGgwTEZ4dUlDQlRZVzVrWW05NFRHOW5aMlZ5TEZ4dWZTQm1jbTl0SUZ3aUxpOURiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjbHdpTzF4dWFXMXdiM0owSUhzZ1IzSmhjR2hGZUdWamRYUnBiMjVGY25KdmNpQjlJR1p5YjIwZ1hDSXVMaTlsY25KdmNuTXZSM0poY0doRmVHVmpkWFJwYjI1RmNuSnZjbHdpTzF4dVhHNHZLaXBjYmlBcUlFUmxabUYxYkhRZ2MyRnVaR0p2ZUNCbGVHVmpkWFJwYjI0Z2RHbHRaVzkxZENCcGJpQnRhV3hzYVhObFkyOXVaSE11WEc0Z0tpOWNibU52Ym5OMElFUkZSa0ZWVEZSZlZFbE5SVTlWVkY5TlV5QTlJREV3TURBN1hHNWNiaThxS2x4dUlDb2dSR1ZtWVhWc2RDQnRaVzF2Y25rZ2JHbHRhWFFnWm05eUlIUm9aU0JwYzI5c1lYUmxaQ0JXT0NCb1pXRndJR2x1SUUxQ0xseHVJQ292WEc1amIyNXpkQ0JFUlVaQlZVeFVYMDFGVFU5U1dWOU5RaUE5SURNeU8xeHVYRzR2S2lwY2JpQXFJRTFoZUdsdGRXMGdZMjlrWlNCc1pXNW5kR2dnS0dOb1lYSmhZM1JsY25NcElHRmpZMlZ3ZEdWa0lHSjVJSFJvWlNCbGRtRnNkV0YwYjNJdVhHNGdLaTljYm1OdmJuTjBJRTFCV0Y5RFQwUkZYMHhGVGtkVVNDQTlJREV3TUY4d01EQTdYRzVjYmk4cUtseHVJQ29nU1dSbGJuUnBabWxsY25NZ2RHaGhkQ0JoY21VZ1ptOXlZbWxrWkdWdUlHbHVJSE5oYm1SaWIzaGxaQ0JqYjJSbElDaEJURVpTUlVRdE5TRENwemN1TVRBcExseHVJQ3BjYmlBcUlFRnVlU0JCVTFRZ2JtOWtaU0J2WmlCMGVYQmxJR0JKWkdWdWRHbG1hV1Z5WUNCM2FHOXpaU0JnYm1GdFpXQWdhWE1nYVc0Z2RHaHBjeUJ6WlhRZ1kyRjFjMlZ6SUhSb1pWeHVJQ29nZG1Gc2FXUmhkRzl5SUhSdklISmxhbVZqZENCMGFHVWdZMjlrWlM0Z1ZHaHBjeUJqYjNabGNuTWdZbTkwYUNCbWNtVmxMWE4wWVc1a2FXNW5JSEpsWm1WeVpXNWpaWE5jYmlBcUlDaGdjSEp2WTJWemN5NWxiblpnS1NCaGJtUWdZMkZzYkNCMFlYSm5aWFJ6SUNoZ2NtVnhkV2x5WlNndUxpNHBZQ2t1WEc0Z0tpOWNibU52Ym5OMElFSk1UME5MUlVSZlNVUkZUbFJKUmtsRlVsTTZJRkpsWVdSdmJteDVVMlYwUEhOMGNtbHVaejRnUFNCdVpYY2dVMlYwS0Z0Y2JpQWdYQ0p3Y205alpYTnpYQ0lzWEc0Z0lGd2ljbVZ4ZFdseVpWd2lMRnh1SUNCY0ltMXZaSFZzWlZ3aUxGeHVJQ0JjSW1WNGNHOXlkSE5jSWl4Y2JpQWdYQ0puYkc5aVlXeGNJaXhjYmlBZ1hDSm5iRzlpWVd4VWFHbHpYQ0lzWEc0Z0lGd2lSblZ1WTNScGIyNWNJaXhjYmlBZ1hDSmxkbUZzWENJc1hHNGdJRndpWm1WMFkyaGNJaXhjYmlBZ1hDSllUVXhJZEhSd1VtVnhkV1Z6ZEZ3aUxGeHVJQ0JjSWxkbFlsTnZZMnRsZEZ3aUxGeHVJQ0JjSWxkdmNtdGxjbHdpTEZ4dUlDQmNJa1JsYm05Y0lpeGNiaUFnWENKQ2RXNWNJaXhjYmlBZ1hDSmZYMlJwYzNCaGRHTm9YQ0lzWEc1ZEtUdGNibHh1THlvcVhHNGdLaUJVY21GdWMzQnBiR1Z6SUZSNWNHVlRZM0pwY0hRZ1kyOWtaU0IwYnlCS1lYWmhVMk55YVhCMElDaEJURVpTUlVRdE5TRENwemN1TkNrdVhHNGdLbHh1SUNvZ1YyaGxiaUIwYUdVZ2JHRnVaM1ZoWjJVZ2FYTWdZQ2RxWVhaaGMyTnlhWEIwSjJBZ2RHaGxJR052WkdVZ2FYTWdjbVYwZFhKdVpXUWdkVzVqYUdGdVoyVmtMaUJHYjNKY2JpQXFJR0FuZEhsd1pYTmpjbWx3ZENkZ0lIUm9aU0JqYjJSbElHbHpJSFJ5WVc1emNHbHNaV1FnZFhOcGJtY2dkR2hsSUZSNWNHVlRZM0pwY0hRZ1kyOXRjR2xzWlhJZ2QybDBhRnh1SUNvZ2JXOWtkV3hsSUd0cGJtUWdZRTV2Ym1WZ0lDaHVieUJwYlhCdmNuUXZaWGh3YjNKMElHVnRhWFIwWldRcElHRnVaQ0IwWVhKblpYUWdZRVZUTWpBeU1tQXVYRzRnS2x4dUlDb2dRSEJoY21GdElHTnZaR1VnTFNCVWFHVWdkWE5sY2kxaGRYUm9iM0psWkNCamIyUmxMbHh1SUNvZ1FIQmhjbUZ0SUd4aGJtZDFZV2RsSUMwZ1ZHaGxJR052WkdVZ2JHRnVaM1ZoWjJVZ0tHQW5hbUYyWVhOamNtbHdkQ2RnSUc5eUlHQW5kSGx3WlhOamNtbHdkQ2RnS1M1Y2JpQXFJRUJ5WlhSMWNtNXpJRlJ5WVc1emNHbHNaV1FnU21GMllWTmpjbWx3ZENCamIyUmxMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQjBjbUZ1YzNCcGJHVlVlWEJsVTJOeWFYQjBLRnh1SUNCamIyUmxPaUJ6ZEhKcGJtY3NYRzRnSUd4aGJtZDFZV2RsT2lCY0ltcGhkbUZ6WTNKcGNIUmNJaUI4SUZ3aWRIbHdaWE5qY21sd2RGd2lYRzRwT2lCemRISnBibWNnZTF4dUlDQnBaaUFvYkdGdVozVmhaMlVnUFQwOUlGd2lhbUYyWVhOamNtbHdkRndpS1NCeVpYUjFjbTRnWTI5a1pUdGNibHh1SUNCamIyNXpkQ0J5WlhOMWJIUWdQU0IwY3k1MGNtRnVjM0JwYkdWTmIyUjFiR1VvWTI5a1pTd2dlMXh1SUNBZ0lHTnZiWEJwYkdWeVQzQjBhVzl1Y3pvZ2UxeHVJQ0FnSUNBZ2RHRnlaMlYwT2lCMGN5NVRZM0pwY0hSVVlYSm5aWFF1UlZNeU1ESXlMRnh1SUNBZ0lDQWdiVzlrZFd4bE9pQjBjeTVOYjJSMWJHVkxhVzVrTGs1dmJtVXNYRzRnSUNBZ0lDQnpkSEpwWTNRNklIUnlkV1VzWEc0Z0lDQWdJQ0J1YjBWdGFYUklaV3h3WlhKek9pQjBjblZsTEZ4dUlDQWdJQ0FnYVcxd2IzSjBTR1ZzY0dWeWN6b2dabUZzYzJVc1hHNGdJQ0FnZlN4Y2JpQWdmU2s3WEc1Y2JpQWdMeThnVTNSeWFYQWdkR2hsSUZ3aWRYTmxJSE4wY21samRGd2lPeUJrYVhKbFkzUnBkbVVnZEdoaGRDQjBjeTUwY21GdWMzQnBiR1ZOYjJSMWJHVWdZV1JrY3lEaWdKUWdkR2hsWEc0Z0lDOHZJSE5oYm1SaWIzZ2dkM0poY0hCbGNpQmhiSEpsWVdSNUlHVnVabTl5WTJWeklITjBjbWxqZENCdGIyUmxMQ0JoYm1RZ2RHaGxJR1JwY21WamRHbDJaU0JpY21WaGEzTmNiaUFnTHk4Z1pYaHdjbVZ6YzJsdmJpMXRiMlJsSUhkeVlYQndhVzVuSUNoeVpYUjFjbTRnS0M0dUxpa3BMbHh1SUNCeVpYUjFjbTRnY21WemRXeDBMbTkxZEhCMWRGUmxlSFF1Y21Wd2JHRmpaU2d2WGx3aWRYTmxJSE4wY21samRGd2lPMXhjY3lvdkxDQmNJbHdpS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJUZEdGMGFXTmhiR3g1SUhaaGJHbGtZWFJsY3lCMWMyVnlJR052WkdVZ2RYTnBibWNnWVc0Z1FWTlVJSGRoYkdzZ0tFRk1SbEpGUkMwMUlNS25OeTR4TVNrdVhHNGdLbHh1SUNvZ1VtVnFaV04wY3pwY2JpQXFJQzBnWUVsdGNHOXlkRVJsWTJ4aGNtRjBhVzl1WUNEaWdKUWdibThnYVcxd2IzSjBjeUJoYkd4dmQyVmtMbHh1SUNvZ0xTQmdSWGh3YjNKMFRtRnRaV1JFWldOc1lYSmhkR2x2Ym1BZ0x5QmdSWGh3YjNKMFJHVm1ZWFZzZEVSbFkyeGhjbUYwYVc5dVlDRGlnSlFnYm04Z1pYaHdiM0owY3k1Y2JpQXFJQzBnWUVsa1pXNTBhV1pwWlhKZ0lIZG9iM05sSUc1aGJXVWdhWE1nYVc0Z2UwQnNhVzVySUVKTVQwTkxSVVJmU1VSRlRsUkpSa2xGVWxOOUxseHVJQ29nTFNCZ1RtVjNSWGh3Y21WemMybHZibUFnZDJsMGFDQmpZV3hzWldVZ1lFWjFibU4wYVc5dVlDRGlnSlFnYm04Z1lHNWxkeUJHZFc1amRHbHZiaWdwWUM1Y2JpQXFJQzBnWUVOaGJHeEZlSEJ5WlhOemFXOXVZQ0IzYVhSb0lHTmhiR3hsWlNCZ1pYWmhiR0FnNG9DVUlHNXZJR0JsZG1Gc0tDbGdMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQmpiMlJsSUMwZ1NtRjJZVk5qY21sd2RDQmpiMlJsSUhSdklIWmhiR2xrWVhSbElDaGhablJsY2lCVVV5QjBjbUZ1YzNCcGJHRjBhVzl1S1M1Y2JpQXFJRUIwYUhKdmQzTWdlMGR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0o5SUhkb1pXNGdZU0JtYjNKaWFXUmtaVzRnWTI5dWMzUnlkV04wSUdseklHWnZkVzVrTGx4dUlDb3ZYRzVtZFc1amRHbHZiaUIyWVd4cFpHRjBaVk5oWm1WRGIyUmxLR052WkdVNklITjBjbWx1WnlrNklIWnZhV1FnZTF4dUlDQnBaaUFvWTI5a1pTNXNaVzVuZEdnZ1BpQk5RVmhmUTA5RVJWOU1SVTVIVkVncElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1IzSmhjR2hGZUdWamRYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lHQkRiMlJsSUdWNFkyVmxaSE1nZEdobElHMWhlR2x0ZFcwZ2JHVnVaM1JvSUc5bUlDUjdUVUZZWDBOUFJFVmZURVZPUjFSSWZTQmphR0Z5WVdOMFpYSnpZQ3hjYmlBZ0lDQWdJRndpUjFKQlVFaGZRMDlFUlY5VFFVNUVRazlZWDBOUFJFVmZWRTlQWDB4UFRrZGNJaXhjYmlBZ0lDQWdJSHNnYkdWdVozUm9PaUJqYjJSbExteGxibWQwYUNCOVhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHeGxkQ0JoYzNRNklHRmpiM0p1TGtGdWVVNXZaR1U3WEc0Z0lIUnllU0I3WEc0Z0lDQWdMeThnUm1seWMzUXNJSFJ5ZVNCd1lYSnphVzVuSUhSb1pTQmpiMlJsSUhkeVlYQndaV1FnYVc0Z1lTQm1kVzVqZEdsdmJpQjNhWFJvSUhOdmRYSmpaVlI1Y0dWY2JpQWdJQ0F2THlCY0luTmpjbWx3ZEZ3aUxpQlVhR2x6SUdoaGJtUnNaWE1nWUhKbGRIVnlibUFnYzNSaGRHVnRaVzUwY3lBb2QyaHBZMmdnWVhKbElIWmhiR2xrSUdsdWMybGtaU0JoWEc0Z0lDQWdMeThnWm5WdVkzUnBiMjRwSUdGdVpDQnNaWFJ6SUhWeklHUmxkR1ZqZENCaWJHOWphMlZrSUdsa1pXNTBhV1pwWlhKekxDQmxkbUZzS0Nrc0lHRnVaRnh1SUNBZ0lDOHZJRzVsZHlCR2RXNWpkR2x2YmlncElIWnBZU0IwYUdVZ1FWTlVJSGRoYkdzdVhHNGdJQ0FnWVhOMElEMGdZV052Y200dWNHRnljMlVvWUdGemVXNWpJR1oxYm1OMGFXOXVJRjlmZG1Gc2FXUmhkR1VvS1NCN1hGeHVKSHRqYjJSbGZWeGNibjFnTENCN1hHNGdJQ0FnSUNCbFkyMWhWbVZ5YzJsdmJqb2dYQ0pzWVhSbGMzUmNJaXhjYmlBZ0lDQWdJSE52ZFhKalpWUjVjR1U2SUZ3aWMyTnlhWEIwWENJc1hHNGdJQ0FnZlNrZ1lYTWdZV052Y200dVFXNTVUbTlrWlR0Y2JpQWdmU0JqWVhSamFDQjdYRzRnSUNBZ0x5OGdTV1lnZEdobElHWjFibU4wYVc5dUxYZHlZWEJ3WldRZ2NHRnljMlVnWm1GcGJITWdLR1V1Wnk0Z1ltVmpZWFZ6WlNCMGFHVWdZMjlrWlNCb1lYTmNiaUFnSUNBdkx5QjBiM0F0YkdWMlpXd2dZR2x0Y0c5eWRHQWdiM0lnWUdWNGNHOXlkR0FnWkdWamJHRnlZWFJwYjI1eklIZG9hV05vSUdGeVpTQnBiblpoYkdsa0lHbHVjMmxrWlZ4dUlDQWdJQzh2SUdFZ1puVnVZM1JwYjI0cExDQjBjbmtnY0dGeWMybHVaeUIwYUdVZ2NtRjNJR052WkdVZ2QybDBhQ0J6YjNWeVkyVlVlWEJsSUZ3aWJXOWtkV3hsWENJZ2MyOWNiaUFnSUNBdkx5QnBiWEJ2Y25RdlpYaHdiM0owSUdSbFkyeGhjbUYwYVc5dWN5QmhjbVVnY21WamIyZHVhWE5sWkNCaGN5QkJVMVFnYm05a1pYTXVYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR0Z6ZENBOUlHRmpiM0p1TG5CaGNuTmxLR052WkdVc0lIdGNiaUFnSUNBZ0lDQWdaV050WVZabGNuTnBiMjQ2SUZ3aWJHRjBaWE4wWENJc1hHNGdJQ0FnSUNBZ0lITnZkWEpqWlZSNWNHVTZJRndpYlc5a2RXeGxYQ0lzWEc0Z0lDQWdJQ0I5S1NCaGN5QmhZMjl5Ymk1QmJubE9iMlJsTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFZHlZWEJvUlhobFkzVjBhVzl1UlhKeWIzSW9YRzRnSUNBZ0lDQWdJR0JEYjJSbElHWmhhV3hsWkNCMGJ5QndZWEp6WlRvZ0pIc29aWEp5SUdGeklFVnljbTl5S1M1dFpYTnpZV2RsZldBc1hHNGdJQ0FnSUNBZ0lGd2lSMUpCVUVoZlEwOUVSVjlUUVU1RVFrOVlYMUJCVWxORlgwVlNVazlTWENJc1hHNGdJQ0FnSUNBZ0lIc2dZMjlrWlN3Z1pYSnliM0k2SUNobGNuSWdZWE1nUlhKeWIzSXBMbTFsYzNOaFoyVWdmVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0IzWVd4ckxtWjFiR3dvWVhOMElHRnpJRzVsZG1WeUxDQW9ibTlrWlRvZ1lXTnZjbTR1UVc1NVRtOWtaU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRzRnUFNCdWIyUmxJR0Z6SUhWdWEyNXZkMjRnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQ3WEc1Y2JpQWdJQ0JwWmlBb2JsdGNJblI1Y0dWY0lsMGdQVDA5SUZ3aVNXMXdiM0owUkdWamJHRnlZWFJwYjI1Y0lpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVNXMXdiM0owY3lCaGNtVWdibTkwSUdGc2JHOTNaV1FnYVc0Z1EyOWtaU0J1YjJSbGN5NWNJaXhjYmlBZ0lDQWdJQ0FnWENKSFVrRlFTRjlEVDBSRlgxTkJUa1JDVDFoZlJrOVNRa2xFUkVWT1gxUlBTMFZPWENJc1hHNGdJQ0FnSUNBZ0lIc2dkRzlyWlc0NklGd2lhVzF3YjNKMFhDSWdmVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0J1VzF3aWRIbHdaVndpWFNBOVBUMGdYQ0pGZUhCdmNuUk9ZVzFsWkVSbFkyeGhjbUYwYVc5dVhDSWdmSHhjYmlBZ0lDQWdJRzViWENKMGVYQmxYQ0pkSUQwOVBTQmNJa1Y0Y0c5eWRFUmxabUYxYkhSRVpXTnNZWEpoZEdsdmJsd2lYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSM0poY0doRmVHVmpkWFJwYjI1RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKRmVIQnZjblJ6SUdGeVpTQnViM1FnWVd4c2IzZGxaQ0JwYmlCRGIyUmxJRzV2WkdWekxsd2lMRnh1SUNBZ0lDQWdJQ0JjSWtkU1FWQklYME5QUkVWZlUwRk9SRUpQV0Y5R1QxSkNTVVJFUlU1ZlZFOUxSVTVjSWl4Y2JpQWdJQ0FnSUNBZ2V5QjBiMnRsYmpvZ1hDSmxlSEJ2Y25SY0lpQjlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJRzViWENKMGVYQmxYQ0pkSUQwOVBTQmNJa2xrWlc1MGFXWnBaWEpjSWlBbUpseHVJQ0FnSUNBZ2RIbHdaVzltSUc1YlhDSnVZVzFsWENKZElEMDlQU0JjSW5OMGNtbHVaMXdpSUNZbVhHNGdJQ0FnSUNCQ1RFOURTMFZFWDBsRVJVNVVTVVpKUlZKVExtaGhjeWh1VzF3aWJtRnRaVndpWFNsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSGNtRndhRVY0WldOMWRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ0lDQmdTV1JsYm5ScFptbGxjaUJjSWlSN2JsdGNJbTVoYldWY0lsMTlYQ0lnYVhNZ2JtOTBJR0ZzYkc5M1pXUWdhVzRnUTI5a1pTQnViMlJsY3k1Z0xGeHVJQ0FnSUNBZ0lDQmNJa2RTUVZCSVgwTlBSRVZmVTBGT1JFSlBXRjlHVDFKQ1NVUkVSVTVmVkU5TFJVNWNJaXhjYmlBZ0lDQWdJQ0FnZXlCMGIydGxiam9nYmx0Y0ltNWhiV1ZjSWwwZ2ZWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQnVXMXdpZEhsd1pWd2lYU0E5UFQwZ1hDSk9aWGRGZUhCeVpYTnphVzl1WENJZ0ppWmNiaUFnSUNBZ0lDaHVXMXdpWTJGc2JHVmxYQ0pkSUdGeklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrS1Q4dVcxd2libUZ0WlZ3aVhTQTlQVDBnWENKR2RXNWpkR2x2Ymx3aVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1IzSmhjR2hGZUdWamRYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lDQWdYQ0p1WlhjZ1JuVnVZM1JwYjI0b0tTQnBjeUJ1YjNRZ1lXeHNiM2RsWkNCcGJpQkRiMlJsSUc1dlpHVnpMbHdpTEZ4dUlDQWdJQ0FnSUNCY0lrZFNRVkJJWDBOUFJFVmZVMEZPUkVKUFdGOUdUMUpDU1VSRVJVNWZWRTlMUlU1Y0lpeGNiaUFnSUNBZ0lDQWdleUIwYjJ0bGJqb2dYQ0pHZFc1amRHbHZibHdpSUgxY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2JsdGNJblI1Y0dWY0lsMGdQVDA5SUZ3aVEyRnNiRVY0Y0hKbGMzTnBiMjVjSWlBbUpseHVJQ0FnSUNBZ0tHNWJYQ0pqWVd4c1pXVmNJbDBnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRwUHk1YlhDSnVZVzFsWENKZElEMDlQU0JjSW1WMllXeGNJbHh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVpYWmhiQ2dwSUdseklHNXZkQ0JoYkd4dmQyVmtJR2x1SUVOdlpHVWdibTlrWlhNdVhDSXNYRzRnSUNBZ0lDQWdJRndpUjFKQlVFaGZRMDlFUlY5VFFVNUVRazlZWDBaUFVrSkpSRVJGVGw5VVQwdEZUbHdpTEZ4dUlDQWdJQ0FnSUNCN0lIUnZhMlZ1T2lCY0ltVjJZV3hjSWlCOVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdmU2s3WEc1OVhHNWNiaThxS2x4dUlDb2dSR1YwWlhKdGFXNWxjeUIzYUdWMGFHVnlJSFJvWlNCbmFYWmxiaUJqYjJSbElHTnZiblJoYVc1eklHRWdkRzl3TFd4bGRtVnNJR0J5WlhSMWNtNWdJSE4wWVhSbGJXVnVkQzVjYmlBcVhHNGdLaUJYYUdWdUlIUm9aU0JqYjJSbElHaGhjeUJ1YnlCZ2NtVjBkWEp1WUN3Z2FYUWdhWE1nZEhKbFlYUmxaQ0JoY3lCaElITnBibWRzWlNCbGVIQnlaWE56YVc5dUlHRnVaRnh1SUNvZ2QzSmhjSEJsWkNCcGJpQmdjbVYwZFhKdUlDZ3VMaTRwWUNCemJ5QjBhR1VnZFhObGNpQmpZVzRnZDNKcGRHVWdZQ2drYVc1d2RYUXVZU0FySUNScGJuQjFkQzVpS1dCY2JpQXFJR2x1YzNSbFlXUWdiMllnWUhKbGRIVnliaUFrYVc1d2RYUXVZU0FySUNScGJuQjFkQzVpWUM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYUdGelVtVjBkWEp1VTNSaGRHVnRaVzUwS0dOdlpHVTZJSE4wY21sdVp5azZJR0p2YjJ4bFlXNGdlMXh1SUNCeVpYUjFjbTRnTDF4Y1luSmxkSFZ5Ymx4Y1lsdGNYSE03WFM4dWRHVnpkQ2hqYjJSbEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCZ2FYTnZiR0YwWldRdGRtMWdMV0poWTJ0bFpDQjdRR3hwYm1zZ1EyOWtaVk5oYm1SaWIzaEZkbUZzZFdGMGIzSjlJQ2hCVEVaU1JVUXROU0RDcHpjdU1UZ3BMbHh1SUNwY2JpQXFJRlJvYVhNZ1pYWmhiSFZoZEc5eUlIQnliM1pwWkdWeklHRWdkSEoxYkhrZ2FYTnZiR0YwWldRZ1ZqZ2djMkZ1WkdKdmVDRGlnSlFnZEdobElHTnZaR1VnY25WdWN5QnBiaUJoWEc0Z0tpQnpaWEJoY21GMFpTQnBjMjlzWVhSbElIZHBkR2dnYVhSeklHOTNiaUJvWldGd0xDQnpaWEJoY21GMFpTQm1jbTl0SUhSb1pTQm9iM04wSUhCeWIyTmxjM011SUZSb1pWeHVJQ29nYzJGdVpHSnZlQ0JqYjI1MFpYaDBJR1Y0Y0c5elpYTWdiMjVzZVNCMGFHVWdaR0YwWVNCMllYSnBZV0pzWlhNZ0tHQWthVzV3ZFhSZ0xDQmdKSFpoY25OZ0xDQmdKR2wwWlcxZ0xGeHVJQ29nWUNScGJtUmxlR0FzSUdBa2JtOWtaV0FzSUdBa2IzVjBjSFYwWUNrN0lHNXZJR2h2YzNRZ1oyeHZZbUZzY3lCaGNtVWdZWFpoYVd4aFlteGxMbHh1SUNwY2JpQXFJRVY0WldOMWRHbHZiaUJ3YVhCbGJHbHVaVHBjYmlBcUlERXVJQ29xVkhKaGJuTndhV3hsS2lvZzRvQ1VJRlI1Y0dWVFkzSnBjSFFnWTI5a1pTQnBjeUIwY21GdWMzQnBiR1ZrSUhSdklFcGhkbUZUWTNKcGNIUWdkbWxoWEc0Z0tpQWdJQ0JnZEhsd1pYTmpjbWx3ZEM1MGNtRnVjM0JwYkdWTmIyUjFiR1ZnSUNoQlRFWlNSVVF0TlNEQ3B6Y3VOQ2t1WEc0Z0tpQXlMaUFxS2xaaGJHbGtZWFJsS2lvZzRvQ1VJSFJvWlNCS1lYWmhVMk55YVhCMElHTnZaR1VnYVhNZ2NHRnljMlZrSUhkcGRHZ2dZR0ZqYjNKdVlDQmhibVFnZDJGc2EyVmtJSGRwZEdoY2JpQXFJQ0FnSUdCaFkyOXliaTEzWVd4cllDQjBieUJ5WldwbFkzUWdhVzF3YjNKMGN5d2daWGh3YjNKMGN5d2dZbXh2WTJ0bFpDQnBaR1Z1ZEdsbWFXVnljeXdnWUdWMllXd29LV0FzWEc0Z0tpQWdJQ0JoYm1RZ1lHNWxkeUJHZFc1amRHbHZiaWdwWUNBb1FVeEdVa1ZFTFRVZ3dxYzNMakV4S1M1Y2JpQXFJRE11SUNvcVNYTnZiR0YwWlNvcUlPS0FsQ0JoSUc1bGR5QmdhWE52YkdGMFpXUXRkbTFnSUdCSmMyOXNZWFJsWUNCcGN5QmpjbVZoZEdWa0lIZHBkR2dnWVNCdFpXMXZjbmxjYmlBcUlDQWdJR3hwYldsMExpQkJJR052Ym5SbGVIUWdhWE1nWTNKbFlYUmxaQ0JoYm1RZ2RHaGxJR1JoZEdFZ2RtRnlhV0ZpYkdWeklHRnlaU0JqYjNCcFpXUWdhVzUwYnlCMGFHVmNiaUFxSUNBZ0lHbHpiMnhoZEdVbmN5Qm9aV0Z3SUhacFlTQmdSWGgwWlhKdVlXeERiM0I1WUM1Y2JpQXFJRFF1SUNvcVEyOXRjR2xzWlNBbUlISjFiaW9xSU9LQWxDQjBhR1VnZDNKaGNIQmxaQ0JqYjJSbElHbHpJR052YlhCcGJHVmtJR0Z1WkNCbGVHVmpkWFJsWkNCM2FYUm9JR0ZjYmlBcUlDQWdJSFJwYldWdmRYUXVJRlJvWlNCeVpYTjFiSFFnYVhNZ1kyOXdhV1ZrSUdKaFkyc2dkRzhnZEdobElHaHZjM1FnYUdWaGNDNWNiaUFxSURVdUlDb3FSR2x6Y0c5elpTb3FJT0tBbENCMGFHVWdhWE52YkdGMFpTQnBjeUJoYkhkaGVYTWdaR2x6Y0c5elpXUWdhVzRnWVNCZ1ptbHVZV3hzZVdBZ1lteHZZMnN1WEc0Z0tseHVJQ29nVkdobElIVnpaWElnWTI5a1pTQnBjeUIzY21Gd2NHVmtJR2x1SUdFZ2MzUnlhV04wTFcxdlpHVWdZWE41Ym1NZ1puVnVZM1JwYjI0NlhHNGdLbHh1SUNvZ1lHQmdhbk5jYmlBcUlGd2lkWE5sSUhOMGNtbGpkRndpTzF4dUlDb2dZWE41Ym1NZ1puVnVZM1JwYjI0Z1gxOTFjMlZ5Um5WdVkzUnBiMjRvSkdsdWNIVjBMQ0FrZG1GeWN5d2dKR2wwWlcwc0lDUnBibVJsZUN3Z0pHNXZaR1VzSUNSdmRYUndkWFFwSUh0Y2JpQXFJQ0FnUEhWelpYSWdZMjlrWlQ1Y2JpQXFJSDFjYmlBcUlGOWZkWE5sY2taMWJtTjBhVzl1S0NScGJuQjFkQ3dnSkhaaGNuTXNJQ1JwZEdWdExDQWthVzVrWlhnc0lDUnViMlJsTENBa2IzVjBjSFYwS1R0Y2JpQXFJR0JnWUZ4dUlDcGNiaUFxSUZkb1pXNGdkR2hsSUdOdlpHVWdhR0Z6SUc1dklHQnlaWFIxY201Z0lITjBZWFJsYldWdWRDQnBkQ0JwY3lCMGNtVmhkR1ZrSUdGeklHRWdjMmx1WjJ4bElHVjRjSEpsYzNOcGIyNWNiaUFxSUdGdVpDQjNjbUZ3Y0dWa0lHbHVJR0J5WlhSMWNtNGdLQzR1TGlsZ0xseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdTWE52YkdGMFpXUldiVU52WkdWVFlXNWtZbTk0UlhaaGJIVmhkRzl5SUdsdGNHeGxiV1Z1ZEhNZ1EyOWtaVk5oYm1SaWIzaEZkbUZzZFdGMGIzSWdlMXh1SUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUdSbFptRjFiSFJVYVcxbGIzVjBUWE02SUc1MWJXSmxjanRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCa1pXWmhkV3gwVFdWdGIzSjVUV0k2SUc1MWJXSmxjanRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRSEJoY21GdElHUmxabUYxYkhSVWFXMWxiM1YwVFhNZ0xTQkVaV1poZFd4MElHVjRaV04xZEdsdmJpQjBhVzFsYjNWMElHbHVJRzFwYkd4cGMyVmpiMjVrY3k1Y2JpQWdJQ29nUUhCaGNtRnRJR1JsWm1GMWJIUk5aVzF2Y25sTllpQXRJRVJsWm1GMWJIUWdhWE52YkdGMFpTQnRaVzF2Y25rZ2JHbHRhWFFnYVc0Z1RVSXVYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2loY2JpQWdJQ0JrWldaaGRXeDBWR2x0Wlc5MWRFMXpPaUJ1ZFcxaVpYSWdQU0JFUlVaQlZVeFVYMVJKVFVWUFZWUmZUVk1zWEc0Z0lDQWdaR1ZtWVhWc2RFMWxiVzl5ZVUxaU9pQnVkVzFpWlhJZ1BTQkVSVVpCVlV4VVgwMUZUVTlTV1Y5TlFseHVJQ0FwSUh0Y2JpQWdJQ0IwYUdsekxtUmxabUYxYkhSVWFXMWxiM1YwVFhNZ1BTQmtaV1poZFd4MFZHbHRaVzkxZEUxek8xeHVJQ0FnSUhSb2FYTXVaR1ZtWVhWc2RFMWxiVzl5ZVUxaUlEMGdaR1ZtWVhWc2RFMWxiVzl5ZVUxaU8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ1pYWmhiSFZoZEdVb1kzUjRPaUJEYjJSbFUyRnVaR0p2ZUVOdmJuUmxlSFFwT2lCUWNtOXRhWE5sUEhWdWEyNXZkMjQrSUh0Y2JpQWdJQ0JqYjI1emRDQmpiMlJsSUQwZ1kzUjRMbU52WkdVN1hHNGdJQ0FnYVdZZ0tDRmpiMlJsSUh4OElIUjVjR1Z2WmlCamIyUmxJQ0U5UFNCY0luTjBjbWx1WjF3aUlIeDhJR052WkdVdWRISnBiU2dwTG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVEyOWtaU0J6WVc1a1ltOTRJSEpsWTJWcGRtVmtJR1Z0Y0hSNUlHTnZaR1ZjSWl4Y2JpQWdJQ0FnSUNBZ1hDSkhVa0ZRU0Y5RFQwUkZYMU5CVGtSQ1QxaGZSVTFRVkZsZlEwOUVSVndpWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHeGhibWQxWVdkbElEMGdZM1I0TG14aGJtZDFZV2RsSUQ4L0lGd2lhbUYyWVhOamNtbHdkRndpTzF4dUlDQWdJR052Ym5OMElHcHpRMjlrWlNBOUlIUnlZVzV6Y0dsc1pWUjVjR1ZUWTNKcGNIUW9ZMjlrWlN3Z2JHRnVaM1ZoWjJVcE8xeHVYRzRnSUNBZ2RtRnNhV1JoZEdWVFlXWmxRMjlrWlNocWMwTnZaR1VwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaWGh3Y21WemMybHZiazF2WkdVZ1BTQWhhR0Z6VW1WMGRYSnVVM1JoZEdWdFpXNTBLR3B6UTI5a1pTazdYRzRnSUNBZ1kyOXVjM1FnWTI5a1pVWnZjazF2WkdVZ1BTQmxlSEJ5WlhOemFXOXVUVzlrWlZ4dUlDQWdJQ0FnUHlCcWMwTnZaR1V1Y21Wd2JHRmpaU2d2VzF4Y2N6dGRLeVF2TENCY0lsd2lLVnh1SUNBZ0lDQWdPaUJxYzBOdlpHVTdYRzVjYmlBZ0lDQmpiMjV6ZENCellXNWtZbTk0Vm1GeWN6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0Z1BTQjdYRzRnSUNBZ0lDQWthVzV3ZFhRNklHTjBlQzVwYm5CMWRDQS9QeUI3ZlN4Y2JpQWdJQ0FnSUNSMllYSnpPaUJqZEhndWRtRnljeUEvUHlCN2ZTeGNiaUFnSUNBZ0lDUnBkR1Z0T2lCamRIZ3VhWFJsYlN4Y2JpQWdJQ0FnSUNScGJtUmxlRG9nWTNSNExtbHVaR1Y0TEZ4dUlDQWdJQ0FnSkc1dlpHVTZJR04wZUM1dWIyUmxjeUEvUHlCN2ZTeGNiaUFnSUNBZ0lDUnZkWFJ3ZFhRNklIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnY0dGeVlXMU9ZVzFsY3lBOUlFOWlhbVZqZEM1clpYbHpLSE5oYm1SaWIzaFdZWEp6S1R0Y2JpQWdJQ0F2THlCamIyNXpkQ0J3WVhKaGJWWmhiSFZsY3lBOUlFOWlhbVZqZEM1MllXeDFaWE1vYzJGdVpHSnZlRlpoY25NcE8xeHVYRzRnSUNBZ0x5OGdRblZwYkdRZ2RHaGxJSGR5WVhCd1pXUWdjMk55YVhCMExpQlVhR1VnZFhObGNpQmpiMlJsSUhKMWJuTWdhVzV6YVdSbElHRnVJR0Z6ZVc1aklHWjFibU4wYVc5dVhHNGdJQ0FnTHk4Z2QybDBhQ0J1WVcxbFpDQndZWEpoYldWMFpYSnpMaUJVYUdVZ2NtVnpkV3gwSUdseklFcFRUMDR0YzNSeWFXNW5hV1pwWldRZ2FXNXphV1JsSUhSb1pTQnBjMjlzWVhSbFhHNGdJQ0FnTHk4Z2MyOGdhWFFnWTJGdUlHSmxJSFJ5WVc1elptVnljbVZrSUdKaFkyc2dZWE1nWVNCd2JHRnBiaUJ6ZEhKcGJtY2dLR2x6YjJ4aGRHVmtMWFp0SUdOaGJtNXZkRnh1SUNBZ0lDOHZJR1JsWlhBdFkyOXdlU0JoY21KcGRISmhjbmtnYjJKcVpXTjBjeUIyYVdFZ1lITmpjbWx3ZEM1eWRXNG9LV0FnZDJsMGFDQmdjSEp2YldselpUb2dkSEoxWldBcExseHVJQ0FnSUM4dklGUm9aU0J6Y0dWaklISmxjWFZwY21WeklFcFRUMDR0YzJWeWFXRnNhWHBoWW14bElHOTFkSEIxZEN3Z2MyOGdkR2hwY3lCcGN5QnpZV1psTGx4dUlDQWdJR052Ym5OMElIVnpaWEpDYjJSNUlEMGdaWGh3Y21WemMybHZiazF2WkdVZ1B5QmdjbVYwZFhKdUlDZ2tlMk52WkdWR2IzSk5iMlJsZlNrN1lDQTZJR052WkdWR2IzSk5iMlJsTzF4dUlDQWdJR052Ym5OMElIZHlZWEJ3WldRZ1BTQmdYQ0oxYzJVZ2MzUnlhV04wWENJN1hGeHVZWE41Ym1NZ1puVnVZM1JwYjI0Z1gxOTFjMlZ5Um5WdVkzUnBiMjRvSkh0d1lYSmhiVTVoYldWekxtcHZhVzRvWENJc0lGd2lLWDBwSUh0Y1hHNGtlM1Z6WlhKQ2IyUjVmVnhjYm4xY1hHNWZYM1Z6WlhKR2RXNWpkR2x2Ymlna2UzQmhjbUZ0VG1GdFpYTXVhbTlwYmloY0lpd2dYQ0lwZlNrdWRHaGxiaWhtZFc1amRHbHZiaWhmWDNJcElIc2djbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0hzZ2Rqb2dYMTl5SUgwcE95QjlLVHRnTzF4dVhHNGdJQ0FnWTI5dWMzUWdhWE52YkdGMFpTQTlJRzVsZHlCcGRtMHVTWE52YkdGMFpTaDdJRzFsYlc5eWVVeHBiV2wwT2lCMGFHbHpMbVJsWm1GMWJIUk5aVzF2Y25sTllpQjlLVHRjYmlBZ0lDQmpiMjV6ZENCamIyNTBaWGgwSUQwZ1lYZGhhWFFnYVhOdmJHRjBaUzVqY21WaGRHVkRiMjUwWlhoMEtDazdYRzVjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhbUZwYkNBOUlHTnZiblJsZUhRdVoyeHZZbUZzTzF4dVhHNGdJQ0FnSUNBdkx5QkpibXBsWTNRZ1lTQmdZMjl1YzI5c1pXQWdiMkpxWldOMElHbHVkRzhnZEdobElHbHpiMnhoZEdVZ2QyaHZjMlVnYldWMGFHOWtjeUJtYjNKM1lYSmtJSFJ2WEc0Z0lDQWdJQ0F2THlCMGFHVWdRMjl1ZEdWNGRDQnNiMmRuWlhJZ0tHSnZkVzVrSUhSdklISjFia2xrS1M0Z1ZHaGxJR3h2WjJkbGNpQnBjeUJqWVd4c1pXUWdkbWxoWEc0Z0lDQWdJQ0F2THlCZ2FYWnRMbEpsWm1WeVpXNWpaV0FnYzI4Z2RHaGxJR2x6YjJ4aGRHVWdZMkZ1SUdsdWRtOXJaU0JvYjNOMElHWjFibU4wYVc5dWN5QjNhWFJvYjNWMFhHNGdJQ0FnSUNBdkx5QnNaV0ZyYVc1bklIUm9aU0JvYjNOMElHaGxZWEF1WEc0Z0lDQWdJQ0JwWmlBb1kzUjRMbXh2WjJkbGNpa2dlMXh1SUNBZ0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1sdWFtVmpkRU52Ym5OdmJHVW9hbUZwYkN3Z1kzUjRMbXh2WjJkbGNpd2dZMjl1ZEdWNGRDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnVzI1aGJXVXNJSFpoYkhWbFhTQnZaaUJQWW1wbFkzUXVaVzUwY21sbGN5aHpZVzVrWW05NFZtRnljeWtwSUh0Y2JpQWdJQ0FnSUNBZ1lYZGhhWFFnYW1GcGJDNXpaWFFvWEc0Z0lDQWdJQ0FnSUNBZ2JtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNCdVpYY2dhWFp0TGtWNGRHVnlibUZzUTI5d2VTaDJZV3gxWlNBOVBUMGdkVzVrWldacGJtVmtJRDhnYm5Wc2JDQTZJSFpoYkhWbEtTNWpiM0I1U1c1MGJ5Z3BYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUd4bGRDQnpZM0pwY0hRNklHbDJiUzVUWTNKcGNIUTdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCelkzSnBjSFFnUFNCaGQyRnBkQ0JwYzI5c1lYUmxMbU52YlhCcGJHVlRZM0pwY0hRb2QzSmhjSEJsWkN3Z2UxeHVJQ0FnSUNBZ0lDQWdJR1pwYkdWdVlXMWxPaUJjSW1keVlYQm9MV052WkdVdGJtOWtaUzVxYzF3aUxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWlhod2NtVnpjMmx2YmsxdlpHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JtWVd4c1ltRmphMEp2WkhrZ1BTQmpiMlJsUm05eVRXOWtaVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JtWVd4c1ltRmphMWR5WVhCd1pXUWdQU0JnWENKMWMyVWdjM1J5YVdOMFhDSTdYRnh1WVhONWJtTWdablZ1WTNScGIyNGdYMTkxYzJWeVJuVnVZM1JwYjI0b0pIdHdZWEpoYlU1aGJXVnpMbXB2YVc0b1hDSXNJRndpS1gwcElIdGNYRzRrZTJaaGJHeGlZV05yUW05a2VYMWNYRzU5WEZ4dVgxOTFjMlZ5Um5WdVkzUnBiMjRvSkh0d1lYSmhiVTVoYldWekxtcHZhVzRvWENJc0lGd2lLWDBwTG5Sb1pXNG9ablZ1WTNScGIyNG9YMTl5S1NCN0lISmxkSFZ5YmlCS1UwOU9Mbk4wY21sdVoybG1lU2g3SUhZNklGOWZjaUI5S1RzZ2ZTazdZRHRjYmlBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyTnlhWEIwSUQwZ1lYZGhhWFFnYVhOdmJHRjBaUzVqYjIxd2FXeGxVMk55YVhCMEtHWmhiR3hpWVdOclYzSmhjSEJsWkN3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWFXeGxibUZ0WlRvZ1hDSm5jbUZ3YUMxamIyUmxMVzV2WkdVdWFuTmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0daaGJHeGlZV05yUlhKeUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1IzSmhjR2hGZUdWamRYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lFTnZaR1VnWm1GcGJHVmtJSFJ2SUdOdmJYQnBiR1U2SUNSN0tHWmhiR3hpWVdOclJYSnlJR0Z6SUVWeWNtOXlLUzV0WlhOellXZGxmV0FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRndpUjFKQlVFaGZRMDlFUlY5VFFVNUVRazlZWDBOUFRWQkpURVZmUlZKU1QxSmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdleUJqYjJSbE9pQnFjME52WkdVc0lHVnljbTl5T2lBb1ptRnNiR0poWTJ0RmNuSWdZWE1nUlhKeWIzSXBMbTFsYzNOaFoyVWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFZHlZWEJvUlhobFkzVjBhVzl1UlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnSUNCZ1EyOWtaU0JtWVdsc1pXUWdkRzhnWTI5dGNHbHNaVG9nSkhzb1pYSnlJR0Z6SUVWeWNtOXlLUzV0WlhOellXZGxmV0FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmNJa2RTUVZCSVgwTlBSRVZmVTBGT1JFSlBXRjlEVDAxUVNVeEZYMFZTVWs5U1hDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCN0lHTnZaR1U2SUdwelEyOWtaU3dnWlhKeWIzSTZJQ2hsY25JZ1lYTWdSWEp5YjNJcExtMWxjM05oWjJVZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2JHVjBJSEpoZDFKbGMzVnNkRG9nZFc1cmJtOTNianRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lISmhkMUpsYzNWc2RDQTlJR0YzWVdsMElITmpjbWx3ZEM1eWRXNG9ZMjl1ZEdWNGRDd2dlMXh1SUNBZ0lDQWdJQ0FnSUhScGJXVnZkWFE2SUhSb2FYTXVaR1ZtWVhWc2RGUnBiV1Z2ZFhSTmN5eGNiaUFnSUNBZ0lDQWdJQ0J3Y205dGFYTmxPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdGMyY2dQU0FvWlhKeUlHRnpJRVZ5Y205eUtTNXRaWE56WVdkbE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYlhObkxtbHVZMngxWkdWektGd2lkR2x0WldRZ2IzVjBYQ0lwSUh4OElHMXpaeTVwYm1Oc2RXUmxjeWhjSW5ScGJXVnZkWFJjSWlrcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUjNKaGNHaEZlR1ZqZFhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQWdJR0JEYjJSbElHVjRaV04xZEdsdmJpQjBhVzFsWkNCdmRYUWdZV1owWlhJZ0pIdDBhR2x6TG1SbFptRjFiSFJVYVcxbGIzVjBUWE45SUcxellDeGNiaUFnSUNBZ0lDQWdJQ0FnSUZ3aVIxSkJVRWhmUTA5RVJWOVRRVTVFUWs5WVgxUkpUVVZQVlZSY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhzZ2RHbHRaVzkxZEUxek9pQjBhR2x6TG1SbFptRjFiSFJVYVcxbGIzVjBUWE1nZlZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhjSW0xbGJXOXllVndpS1NCOGZDQnRjMmN1YVc1amJIVmtaWE1vWENKb1pXRndYQ0lwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmdRMjlrWlNCbGVHTmxaV1JsWkNCMGFHVWdiV1Z0YjNKNUlHeHBiV2wwSUc5bUlDUjdkR2hwY3k1a1pXWmhkV3gwVFdWdGIzSjVUV0o5SUUxQ1lDeGNiaUFnSUNBZ0lDQWdJQ0FnSUZ3aVIxSkJVRWhmUTA5RVJWOVRRVTVFUWs5WVgwMUZUVTlTV1Y5TVNVMUpWRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdleUJ0WlcxdmNubE5Zam9nZEdocGN5NWtaV1poZFd4MFRXVnRiM0o1VFdJZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFZHlZWEJvUlhobFkzVjBhVzl1UlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnWUVOdlpHVWdaWGhsWTNWMGFXOXVJR1poYVd4bFpEb2dKSHR0YzJkOVlDeGNiaUFnSUNBZ0lDQWdJQ0JjSWtkU1FWQklYME5QUkVWZlUwRk9SRUpQV0Y5U1ZVNVVTVTFGWDBWU1VrOVNYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2V5QmpiMlJsT2lCcWMwTnZaR1VzSUdWeWNtOXlPaUJ0YzJjZ2ZWeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0F2THlCVWFHVWdjMk55YVhCMElISmxkSFZ5Ym5NZ1lTQktVMDlPSUhOMGNtbHVaeUJnZTF3aWRsd2lPaUE4Y21WemRXeDBQbjFnTGlCUVlYSnpaU0JwZENCaVlXTnJMbHh1SUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJ5WVhkU1pYTjFiSFFnSVQwOUlGd2ljM1J5YVc1blhDSXBJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVkeVlYQm9SWGhsWTNWMGFXOXVSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdYQ0pEYjJSbElITmhibVJpYjNnZ2NtVjBkWEp1WldRZ1lXNGdkVzVsZUhCbFkzUmxaQ0J1YjI0dGMzUnlhVzVuSUhKbGMzVnNkRndpTEZ4dUlDQWdJQ0FnSUNBZ0lGd2lSMUpCVUVoZlEwOUVSVjlUUVU1RVFrOVlYMVZPUlZoUVJVTlVSVVJmVWtWVFZVeFVYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2V5QnlaWE4xYkhRNklISmhkMUpsYzNWc2RDQjlYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdTbE5QVGk1d1lYSnpaU2h5WVhkU1pYTjFiSFFwTG5ZN1hHNGdJQ0FnZlNCbWFXNWhiR3g1SUh0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1Y21Wc1pXRnpaU2dwTzF4dUlDQWdJQ0FnYVhOdmJHRjBaUzVrYVhOd2IzTmxLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVsdWFtVmpkSE1nWVNCZ1kyOXVjMjlzWldBZ2IySnFaV04wSUdsdWRHOGdkR2hsSUdsemIyeGhkR1VnZDJodmMyVWdiV1YwYUc5a2N5Qm1iM0ozWVhKa0lIUnZJSFJvWlZ4dUlDQWdLaUJEYjI1MFpYaDBJR3h2WjJkbGNpQW9ZbTkxYm1RZ2RHOGdZSEoxYmtsa1lDa3VYRzRnSUNBcVhHNGdJQ0FxSUVWMlpYSjVJSE4wWVc1a1lYSmtJR0JqYjI1emIyeGxMaXBnSUcxbGRHaHZaQ0JwY3lCemRYQndiM0owWldRNlhHNGdJQ0FxSUdCc2IyZGdMQ0JnYVc1bWIyQXNJR0IzWVhKdVlDd2dZR1Z5Y205eVlDd2dZR1JsWW5WbllDd2dZSFJ5WVdObFlDd2dZR1JwY21Bc0lHQmthWEo0Yld4Z0xGeHVJQ0FnS2lCZ2RHRmliR1ZnTENCZ1ozSnZkWEJnTENCZ1ozSnZkWEJEYjJ4c1lYQnpaV1JnTENCZ1ozSnZkWEJGYm1SZ0xDQmdkR2x0WldBc0lHQjBhVzFsUlc1a1lDeGNiaUFnSUNvZ1lIUnBiV1ZNYjJkZ0xDQmdZWE56WlhKMFlDd2dZR052ZFc1MFlDd2dZR052ZFc1MFVtVnpaWFJnTENCZ1kyeGxZWEpnTGx4dUlDQWdLbHh1SUNBZ0tpQkJjbWQxYldWdWRITWdZWEpsSUhObGNtbGhiR2x6WldRZ2FXNXphV1JsSUhSb1pTQnBjMjlzWVhSbElDaDJhV0VnWUVwVFQwNHVjM1J5YVc1bmFXWjVZQ0IzYVhSb0lHRmNiaUFnSUNvZ2MyRm1aU0JtWVd4c1ltRmpheWtnWW1WbWIzSmxJR0psYVc1bklIQmhjM05sWkNCaFkzSnZjM01nZEdobElHbHpiMnhoZEdVZ1ltOTFibVJoY25rc0lHSmxZMkYxYzJWY2JpQWdJQ29nWUdsemIyeGhkR1ZrTFhadFlDQmpZVzV1YjNRZ1kyOXdlU0JoY21KcGRISmhjbmtnYUc5emRDQnZZbXBsWTNSekxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdhbUZwYkNBdElGUm9aU0JwYzI5c1lYUmxKM01nWjJ4dlltRnNJRzlpYW1WamRDNWNiaUFnSUNvZ1FIQmhjbUZ0SUd4dloyZGxjaUF0SUZSb1pTQkRiMjUwWlhoMElHeHZaMmRsY2lCMGFHRjBJSEpsWTJWcGRtVnpJSFJvWlNCbWIzSjNZWEprWldRZ1kyRnNiSE11WEc0Z0lDQXFJRUJ3WVhKaGJTQmpiMjUwWlhoMElDMGdWR2hsSUdsemIyeGhkR1VnWTI5dWRHVjRkQ0FvWm05eUlISjFibTVwYm1jZ2RHaGxJR2x1YVhRZ2MyTnlhWEIwS1M1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nYVc1cVpXTjBRMjl1YzI5c1pTaGNiaUFnSUNCcVlXbHNPaUJwZG0wdVEyOXVkR1Y0ZEZ0Y0ltZHNiMkpoYkZ3aVhTeGNiaUFnSUNCc2IyZG5aWEk2SUZOaGJtUmliM2hNYjJkblpYSXNYRzRnSUNBZ1kyOXVkR1Y0ZERvZ2FYWnRMa052Ym5SbGVIUmNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ1pHbHpjR0YwWTJnZ1BTQnVaWGNnYVhadExsSmxabVZ5Wlc1alpTaG1kVzVqZEdsdmJpQW9iR1YyWld3NklITjBjbWx1Wnl3Z1lYSm5jMHB6YjI0NklITjBjbWx1WnlrZ2UxeHVJQ0FnSUNBZ2JHVjBJSEJoY25ObFpEb2dkVzVyYm05M2JsdGRPMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2NHRnljMlZrSUQwZ1NsTlBUaTV3WVhKelpTaGhjbWR6U25OdmJpa2dZWE1nZFc1cmJtOTNibHRkTzF4dUlDQWdJQ0FnZlNCallYUmphQ0I3WEc0Z0lDQWdJQ0FnSUhCaGNuTmxaQ0E5SUZ0aGNtZHpTbk52YmwwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCamIyNXpkQ0J0YzJjZ1BTQndZWEp6WldSY2JpQWdJQ0FnSUNBZ0xtMWhjQ2dvWVNrZ1BUNGdLSFI1Y0dWdlppQmhJRDA5UFNCY0luTjBjbWx1WjF3aUlEOGdZU0E2SUVwVFQwNHVjM1J5YVc1bmFXWjVLR0VwS1NsY2JpQWdJQ0FnSUNBZ0xtcHZhVzRvWENJZ1hDSXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2JXVjBZU0E5SUhCaGNuTmxaQzVzWlc1bmRHZ2dQVDA5SURFZ1B5QndZWEp6WldSYk1GMGdPaUJ3WVhKelpXUTdYRzRnSUNBZ0lDQnpkMmwwWTJnZ0tHeGxkbVZzS1NCN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKc2IyZGNJanBjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbWx1Wm05Y0lqcGNiaUFnSUNBZ0lDQWdJQ0JzYjJkblpYSXVhVzVtYnlodGMyY3NJRzFsZEdFcE8xeHVJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWQyRnlibHdpT2x4dUlDQWdJQ0FnSUNBZ0lHeHZaMmRsY2k1M1lYSnVLRzF6Wnl3Z2JXVjBZU2s3WEc0Z0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0psY25KdmNsd2lPbHh1SUNBZ0lDQWdJQ0FnSUd4dloyZGxjaTVsY25KdmNpaHRjMmNzSUcxbGRHRXBPMXh1SUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0JqWVhObElGd2laR1ZpZFdkY0lqcGNiaUFnSUNBZ0lDQWdJQ0JzYjJkblpYSXVaR1ZpZFdjb2JYTm5MQ0J0WlhSaEtUdGNiaUFnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0luUnlZV05sWENJNlhHNGdJQ0FnSUNBZ0lDQWdiRzluWjJWeUxuUnlZV05sS0cxelp5d2diV1YwWVNrN1hHNGdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKa2FYSmNJanBjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbVJwY25odGJGd2lPbHh1SUNBZ0lDQWdJQ0JqWVhObElGd2lkR0ZpYkdWY0lqcGNiaUFnSUNBZ0lDQWdJQ0JzYjJkblpYSXVaR1ZpZFdjb2JYTm5MQ0J0WlhSaEtUdGNiaUFnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0ltZHliM1Z3WENJNlhHNGdJQ0FnSUNBZ0lHTmhjMlVnWENKbmNtOTFjRU52Ykd4aGNITmxaRndpT2x4dUlDQWdJQ0FnSUNBZ0lHeHZaMmRsY2k1a1pXSjFaeWhnVzJkeWIzVndYU0FrZTIxelozMWdMQ0J0WlhSaEtUdGNiaUFnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0ltZHliM1Z3Ulc1a1hDSTZYRzRnSUNBZ0lDQWdJQ0FnYkc5bloyVnlMbVJsWW5WbktGd2lXMmR5YjNWd1JXNWtYVndpTENCMWJtUmxabWx1WldRcE8xeHVJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWRHbHRaVndpT2x4dUlDQWdJQ0FnSUNCallYTmxJRndpZEdsdFpVVnVaRndpT2x4dUlDQWdJQ0FnSUNCallYTmxJRndpZEdsdFpVeHZaMXdpT2x4dUlDQWdJQ0FnSUNBZ0lHeHZaMmRsY2k1a1pXSjFaeWhnV3lSN2JHVjJaV3g5WFNBa2UyMXpaMzFnTENCdFpYUmhLVHRjYmlBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbUZ6YzJWeWRGd2lPbHh1SUNBZ0lDQWdJQ0FnSUdsbUlDZ2hjR0Z5YzJWa1d6QmRLU0JzYjJkblpYSXVaWEp5YjNJb1lFRnpjMlZ5ZEdsdmJpQm1ZV2xzWldRNklDUjdiWE5uZldBc0lHMWxkR0VwTzF4dUlDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNCallYTmxJRndpWTI5MWJuUmNJanBjYmlBZ0lDQWdJQ0FnWTJGelpTQmNJbU52ZFc1MFVtVnpaWFJjSWpwY2JpQWdJQ0FnSUNBZ0lDQnNiMmRuWlhJdVpHVmlkV2NvWUZza2UyeGxkbVZzZlYwZ0pIdHRjMmQ5WUN3Z2JXVjBZU2s3WEc0Z0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdYQ0pqYkdWaGNsd2lPbHh1SUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUd4dloyZGxjaTVwYm1adktHMXpaeXdnYldWMFlTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmhkMkZwZENCcVlXbHNMbk5sZENoY0lsOWZaR2x6Y0dGMFkyaGNJaXdnWkdsemNHRjBZMmdwTzF4dVhHNGdJQ0FnWTI5dWRHVjRkQzVsZG1Gc1UzbHVZeWhnWEc0Z0lDQWdJQ0JtZFc1amRHbHZiaUJmWDNObGNpZ3BJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHOTFkQ0E5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnBJRDBnTURzZ2FTQThJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCaElEMGdZWEpuZFcxbGJuUnpXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lIUnllU0I3SUc5MWRDNXdkWE5vS0hSNWNHVnZaaUJoSUQwOVBTQW5iMkpxWldOMEp5QS9JRXBUVDA0dWNHRnljMlVvU2xOUFRpNXpkSEpwYm1kcFpua29ZU2twSURvZ1lTazdJSDFjYmlBZ0lDQWdJQ0FnSUNCallYUmphQ0FvWlNrZ2V5QnZkWFF1Y0hWemFDaFRkSEpwYm1jb1lTa3BPeUI5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjM1J5YVc1bmFXWjVLRzkxZENrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCbWRXNWpkR2x2YmlCZlgyTmhiR3dvYkdWMlpXd3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lGOWZaR2x6Y0dGMFkyZ3VZWEJ3YkhsVGVXNWpLSFZ1WkdWbWFXNWxaQ3dnVzJ4bGRtVnNMQ0JmWDNObGNpNWhjSEJzZVNodWRXeHNMQ0JoY21kMWJXVnVkSE1wWFNrN1hHNGdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQm5iRzlpWVd4VWFHbHpMbU52Ym5OdmJHVWdQU0I3WEc0Z0lDQWdJQ0FnSUd4dlp6b2dYMTlqWVd4c0tDZHNiMmNuS1N4Y2JpQWdJQ0FnSUNBZ2FXNW1iem9nWDE5allXeHNLQ2RwYm1adkp5a3NYRzRnSUNBZ0lDQWdJSGRoY200NklGOWZZMkZzYkNnbmQyRnliaWNwTEZ4dUlDQWdJQ0FnSUNCbGNuSnZjam9nWDE5allXeHNLQ2RsY25KdmNpY3BMRnh1SUNBZ0lDQWdJQ0JrWldKMVp6b2dYMTlqWVd4c0tDZGtaV0oxWnljcExGeHVJQ0FnSUNBZ0lDQjBjbUZqWlRvZ1gxOWpZV3hzS0NkMGNtRmpaU2NwTEZ4dUlDQWdJQ0FnSUNCa2FYSTZJRjlmWTJGc2JDZ25aR2x5Snlrc1hHNGdJQ0FnSUNBZ0lHUnBjbmh0YkRvZ1gxOWpZV3hzS0Nka2FYSjRiV3duS1N4Y2JpQWdJQ0FnSUNBZ2RHRmliR1U2SUY5ZlkyRnNiQ2duZEdGaWJHVW5LU3hjYmlBZ0lDQWdJQ0FnWjNKdmRYQTZJRjlmWTJGc2JDZ25aM0p2ZFhBbktTeGNiaUFnSUNBZ0lDQWdaM0p2ZFhCRGIyeHNZWEJ6WldRNklGOWZZMkZzYkNnblozSnZkWEJEYjJ4c1lYQnpaV1FuS1N4Y2JpQWdJQ0FnSUNBZ1ozSnZkWEJGYm1RNklGOWZZMkZzYkNnblozSnZkWEJGYm1RbktTeGNiaUFnSUNBZ0lDQWdkR2x0WlRvZ1gxOWpZV3hzS0NkMGFXMWxKeWtzWEc0Z0lDQWdJQ0FnSUhScGJXVkZibVE2SUY5ZlkyRnNiQ2duZEdsdFpVVnVaQ2NwTEZ4dUlDQWdJQ0FnSUNCMGFXMWxURzluT2lCZlgyTmhiR3dvSjNScGJXVk1iMmNuS1N4Y2JpQWdJQ0FnSUNBZ1lYTnpaWEowT2lCZlgyTmhiR3dvSjJGemMyVnlkQ2NwTEZ4dUlDQWdJQ0FnSUNCamIzVnVkRG9nWDE5allXeHNLQ2RqYjNWdWRDY3BMRnh1SUNBZ0lDQWdJQ0JqYjNWdWRGSmxjMlYwT2lCZlgyTmhiR3dvSjJOdmRXNTBVbVZ6WlhRbktTeGNiaUFnSUNBZ0lDQWdZMnhsWVhJNklGOWZZMkZzYkNnblkyeGxZWEluS1Z4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0JnS1R0Y2JseHVJQ0FnSUdScGMzQmhkR05vTG5KbGJHVmhjMlVvS1R0Y2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
|
|
480
|
+
//# sourceMappingURL=IsolatedVmCodeSandboxEvaluator.js.map
|
|
481
|
+
//# sourceMappingURL=IsolatedVmCodeSandboxEvaluator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs","sourceRoot":"","sources":["graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,5 @@ class LogGraphNodeExecutor {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.LogGraphNodeExecutor = LogGraphNodeExecutor;
|
|
18
|
-
//# sourceMappingURL=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=LogGraphNodeExecutor.js.map
|
|
19
|
+
//# sourceMappingURL=LogGraphNodeExecutor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph/engine/execution/LogGraphNodeExecutor.cjs","sourceRoot":"","sources":["graph/engine/execution/LogGraphNodeExecutor.js"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,oBAAoB;IAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACJ;AAND,oDAMC;AACD,gDAAgD"}
|
|
@@ -116,5 +116,5 @@ class SwitchGraphNodeExecutor {
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
exports.SwitchGraphNodeExecutor = SwitchGraphNodeExecutor;
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZW5naW5lL2V4ZWN1dGlvbi9Td2l0Y2hHcmFwaE5vZGVFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDJDQUFzQztBQUNwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsbURBQThDO0FBR3JGOzs7Ozs7R0FNRztBQUNILFNBQVMsa0JBQWtCLENBQ3pCLE9BQThCO0lBRTlCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBRXBCLENBQUM7SUFDZCxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQW1DLENBQUM7SUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUNELE9BQU87UUFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7UUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksU0FBUztRQUNoRCxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsS0FBSyxJQUFJO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxJQUF5QjtJQUNoRCxPQUFPLENBQ0wsT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixJQUFJLEtBQUss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QUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRTtZQUM3QyxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxZQUFZO1NBQzdDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUErQyxDQUFDO1FBRW5FLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUN0QyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1lBQzVCLEtBQUs7WUFDTCxJQUFJLEVBQUcsRUFBRSxFQUFFLElBQTRDLElBQUksU0FBUztZQUNwRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQTJCO1lBQ3RDLEtBQUssRUFDRixFQUFFLEVBQUUsS0FBNkQ7Z0JBQ2xFLFNBQVM7WUFDWCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BRUg7U0FDZCxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9leGVjdXRpb24vU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3JcbiAqIEBzdW1tYXJ5IEV4ZWN1dG9yIGZvciB0aGUgU3dpdGNoIGZsb3ctY29udHJvbCBub2RlIChERUNBRi0zMiDCpzIyLjIuMikuXG4gKiBAZGVzY3JpcHRpb24gRXZhbHVhdGVzIGVhY2ggY2FzZSdzIGNvbmRpdGlvbiBhZ2FpbnN0IHRoZSBub2RlJ3MgaW5wdXQgYW5kXG4gKiByb3V0ZXMgdGhlIGlucHV0IHRvIHRoZSBmaXJzdCBtYXRjaGluZyBjYXNlJ3Mgb3V0cHV0IHBvcnQuIEZhbGxzIGJhY2sgdG9cbiAqIHRoZSBgZGVmYXVsdGAgb3V0cHV0IHdoZW4gbm8gY2FzZSBtYXRjaGVzLiBTdXBwb3J0cyBib3RoXG4gKiB7QGxpbmsgQ29uZGl0aW9uRXhwcmVzc2lvbn0gKGdyYXBoaWNhbCBtb2RlKSBhbmQge0BsaW5rIENvZGVDb25kaXRpb259XG4gKiAoY29kZSBtb2RlIHZpYSB0aGUgcGx1Z2dhYmxlIHtAbGluayBDb2RlU2FuZGJveEV2YWx1YXRvcn0pLlxuICovXG5pbXBvcnQgdHlwZSB7IEdyYXBoTm9kZUV4ZWN1dG9yIH0gZnJvbSBcIi4vR3JhcGhOb2RlRXhlY3V0b3JcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uVmFsdWVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFN3aXRjaENhc2VDb25kaXRpb24sXG4gIFN3aXRjaE5vZGVNZXRhZGF0YSxcbiAgQ29uZGl0aW9uRXhwcmVzc2lvbixcbiAgQ29kZUNvbmRpdGlvbixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgR3JhcGhFeGVjdXRpb25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMvR3JhcGhFeGVjdXRpb25FcnJvclwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvciB9IGZyb20gXCIuLi9sb29wcy9Db25kaXRpb25FeHByZXNzaW9uRXZhbHVhdG9yXCI7XG5pbXBvcnQgdHlwZSB7IENvZGVTYW5kYm94RXZhbHVhdG9yIH0gZnJvbSBcIi4vQ29kZVNhbmRib3hFdmFsdWF0b3JcIjtcblxuLyoqXG4gKiBSZWFkcyB0aGUgU3dpdGNoIG1ldGFkYXRhIGZyb20gdGhlIG5vZGUgZGVmaW5pdGlvbidzIGdyYXBoIG1ldGFkYXRhLlxuICpcbiAqIFRoZSBtZXRhZGF0YSBpcyBzdG9yZWQgdW5kZXIgYGdyYXBoLm1ldGFkYXRhLnN3aXRjaGAgKHRoZSBsb2NhdGlvbiB1c2VkIGJ5XG4gKiBzdGF0aWNhbGx5LWRlY2xhcmVkIGBAbm9kZWAgd29ya2Zsb3dzKS4gV2hlbiBhYnNlbnQsIGZhbGxzIGJhY2sgdG8gYW4gZW1wdHlcbiAqIGRlZmF1bHQgd2l0aCB0aGUgYGRlZmF1bHRgIHBvcnQgZW5hYmxlZC5cbiAqL1xuZnVuY3Rpb24gcmVhZFN3aXRjaE1ldGFkYXRhKFxuICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbik6IFN3aXRjaE5vZGVNZXRhZGF0YSB7XG4gIGNvbnN0IG1ldGEgPSBjb250ZXh0Lm5vZGUuZ3JhcGg/Lm1ldGFkYXRhIGFzXG4gICAgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgIHwgdW5kZWZpbmVkO1xuICBpZiAoIW1ldGEpIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiLCBoYXNEZWZhdWx0OiBmYWxzZSB9O1xuICBjb25zdCBzd2l0Y2hNZXRhID0gbWV0YVtcInN3aXRjaFwiXSBhcyBTd2l0Y2hOb2RlTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIGlmICghc3dpdGNoTWV0YSB8fCAhQXJyYXkuaXNBcnJheShzd2l0Y2hNZXRhLmNhc2VzKSkge1xuICAgIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiLCBoYXNEZWZhdWx0OiBmYWxzZSB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgY2FzZXM6IHN3aXRjaE1ldGEuY2FzZXMsXG4gICAgZGVmYXVsdFBvcnQ6IHN3aXRjaE1ldGEuZGVmYXVsdFBvcnQgPz8gXCJkZWZhdWx0XCIsXG4gICAgaGFzRGVmYXVsdDogc3dpdGNoTWV0YS5oYXNEZWZhdWx0ID09PSB0cnVlLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVjdHMgd2hldGhlciBhIGNvbmRpdGlvbiBpcyBhIGBDb2RlQ29uZGl0aW9uYCAoaGFzIGB0eXBlOiBcImNvZGVcImApLlxuICovXG5mdW5jdGlvbiBpc0NvZGVDb25kaXRpb24oY29uZDogU3dpdGNoQ2FzZUNvbmRpdGlvbik6IGNvbmQgaXMgQ29kZUNvbmRpdGlvbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGNvbmQgPT09IFwib2JqZWN0XCIgJiZcbiAgICBjb25kICE9PSBudWxsICYmXG4gICAgXCJ0eXBlXCIgaW4gY29uZCAmJlxuICAgIGNvbmQudHlwZSA9PT0gXCJjb2RlXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgYSBgQ29uZGl0aW9uRXhwcmVzc2lvbmAgKGhhcyBgb3BgIGZpZWxkKS5cbiAqL1xuZnVuY3Rpb24gaXNDb25kaXRpb25FeHByZXNzaW9uKFxuICBjb25kOiBTd2l0Y2hDYXNlQ29uZGl0aW9uXG4pOiBjb25kIGlzIENvbmRpdGlvbkV4cHJlc3Npb24ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBjb25kID09PSBcIm9iamVjdFwiICYmXG4gICAgY29uZCAhPT0gbnVsbCAmJlxuICAgIFwib3BcIiBpbiBjb25kICYmXG4gICAgdHlwZW9mIGNvbmQub3AgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRvciBmb3IgYGNvcmUuZmxvdy5zd2l0Y2hgIG5vZGVzLlxuICpcbiAqIEV2YWx1YXRlcyBlYWNoIGNhc2UncyBjb25kaXRpb24gaW4gb3JkZXIgYW5kIHJvdXRlcyB0aGUgaW5wdXQgdG8gdGhlXG4gKiBmaXJzdCBtYXRjaGluZyBjYXNlJ3Mgb3V0cHV0IHBvcnQuIFdoZW4gbm8gY2FzZSBtYXRjaGVzOlxuICogLSBJZiBgaGFzRGVmYXVsdGAgaXMgYHRydWVgLCByb3V0ZXMgdG8gdGhlIGBkZWZhdWx0YCBvdXRwdXQgcG9ydC5cbiAqIC0gSWYgYGhhc0RlZmF1bHRgIGlzIGBmYWxzZWAgKHRoZSBkZWZhdWx0KSwgdGhyb3dzIGBHUkFQSF9TV0lUQ0hfTk9fTUFUQ0hgLlxuICpcbiAqIENvbmRpdGlvbiBldmFsdWF0aW9uOlxuICogLSBgQ29uZGl0aW9uRXhwcmVzc2lvbmAg4oCUIGV2YWx1YXRlZCB2aWEge0BsaW5rIENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3J9LlxuICogLSBgQ29kZUNvbmRpdGlvbmAg4oCUIGV2YWx1YXRlZCB2aWEgdGhlIHBsdWdnYWJsZSB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9XG4gKiAgIGZyb20gdGhlIGVuZ2luZSdzIGNvbmZpZy4gVGhyb3dzIGBHUkFQSF9DT0RFX1NBTkRCT1hfTk9UX0NPTkZJR1VSRURgXG4gKiAgIHdoZW4gbm8gZXZhbHVhdG9yIGlzIHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTd2l0Y2hHcmFwaE5vZGVFeGVjdXRvciBpbXBsZW1lbnRzIEdyYXBoTm9kZUV4ZWN1dG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHByZXNzaW9uRXZhbHVhdG9yID0gbmV3IENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuZ2luZT86IHsgY29kZVNhbmRib3hFdmFsdWF0b3I/OiBDb2RlU2FuZGJveEV2YWx1YXRvciB9XG4gICkge31cblxuICBhc3luYyBleGVjdXRlKFxuICAgIGlucHV0OiBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbiAgKTogUHJvbWlzZTxHcmFwaEV4ZWN1dGlvblZhbHVlcz4ge1xuICAgIGNvbnN0IG1ldGEgPSByZWFkU3dpdGNoTWV0YWRhdGEoY29udGV4dCk7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0W1widmFsdWVcIl0gPz8gaW5wdXQ7XG5cbiAgICBmb3IgKGNvbnN0IHN3aXRjaENhc2Ugb2YgbWV0YS5jYXNlcykge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGF3YWl0IHRoaXMuZXZhbHVhdGVDb25kaXRpb24oXG4gICAgICAgIHN3aXRjaENhc2UuY29uZGl0aW9uLFxuICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgY29udGV4dFxuICAgICAgKTtcbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB7IFtzd2l0Y2hDYXNlLm91dHB1dFBvcnRdOiBpbnB1dFZhbHVlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gY2FzZSBtYXRjaGVkIOKAlCByb3V0ZSB0byB0aGUgZGVmYXVsdCBwb3J0IHdoZW4gaXQgaXMgZW5hYmxlZC5cbiAgICBpZiAobWV0YS5oYXNEZWZhdWx0ICE9PSB0cnVlKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgXCJObyBzd2l0Y2ggY2FzZSBtYXRjaGVkIGFuZCBkZWZhdWx0IHBvcnQgaXMgbm90IGVuYWJsZWRcIixcbiAgICAgICAgXCJHUkFQSF9TV0lUQ0hfTk9fTUFUQ0hcIixcbiAgICAgICAgeyBjYXNlczogbWV0YS5jYXNlcy5tYXAoKGMpID0+IGMuaWQpIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRQb3J0ID0gbWV0YS5kZWZhdWx0UG9ydCA/PyBcImRlZmF1bHRcIjtcbiAgICByZXR1cm4geyBbZGVmYXVsdFBvcnRdOiBpbnB1dFZhbHVlIH07XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIGEgc2luZ2xlIHN3aXRjaCBjYXNlIGNvbmRpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBTd2l0Y2hDYXNlQ29uZGl0aW9uLFxuICAgIGlucHV0VmFsdWU6IHVua25vd24sXG4gICAgZnVsbElucHV0OiBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKGlzQ29kZUNvbmRpdGlvbihjb25kaXRpb24pKSB7XG4gICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZUNvZGVDb25kaXRpb24oY29uZGl0aW9uLCBmdWxsSW5wdXQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChpc0NvbmRpdGlvbkV4cHJlc3Npb24oY29uZGl0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShjb25kaXRpb24sIGlucHV0VmFsdWUpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFxuICAgICAgXCJVbmtub3duIHN3aXRjaCBjYXNlIGNvbmRpdGlvbiB0eXBlIOKAlCBtdXN0IGJlIENvbmRpdGlvbkV4cHJlc3Npb24gKG9wKSBvciBDb2RlQ29uZGl0aW9uICh0eXBlOiAnY29kZScpXCIsXG4gICAgICBcIkdSQVBIX1VOS05PV05fU1dJVENIX0NPTkRJVElPTlwiLFxuICAgICAgeyBjb25kaXRpb24gfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIGEgY29kZSBjb25kaXRpb24gdmlhIHRoZSBwbHVnZ2FibGUgc2FuZGJveCBldmFsdWF0b3IuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlQ29kZUNvbmRpdGlvbihcbiAgICBjb25kaXRpb246IENvZGVDb25kaXRpb24sXG4gICAgaW5wdXQ6IEdyYXBoRXhlY3V0aW9uVmFsdWVzLFxuICAgIGNvbnRleHQ6IEdyYXBoRXhlY3V0aW9uQ29udGV4dFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBldmFsdWF0b3IgPSB0aGlzLmVuZ2luZT8uY29kZVNhbmRib3hFdmFsdWF0b3I7XG4gICAgaWYgKCFldmFsdWF0b3IpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFxuICAgICAgICBcIkNvZGUgY29uZGl0aW9ucyByZXF1aXJlIGEgQ29kZVNhbmRib3hFdmFsdWF0b3IgdG8gYmUgcmVnaXN0ZXJlZCBpbiBHcmFwaEV4ZWN1dGlvbkVuZ2luZUNvbmZpZy5jb2RlU2FuZGJveEV2YWx1YXRvclwiLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9OT1RfQ09ORklHVVJFRFwiLFxuICAgICAgICB7IGNvZGU6IGNvbmRpdGlvbi5jb2RlIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgY29udGV4dC5sb2coYEV2YWx1YXRpbmcgY29kZSBjb25kaXRpb25gLCB7XG4gICAgICBsYW5ndWFnZTogY29uZGl0aW9uLmxhbmd1YWdlID8/IFwiamF2YXNjcmlwdFwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWQgPSBjb250ZXh0Lm1ldGFkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdG9yLmV2YWx1YXRlKHtcbiAgICAgIGNvZGU6IGNvbmRpdGlvbi5jb2RlLFxuICAgICAgbGFuZ3VhZ2U6IGNvbmRpdGlvbi5sYW5ndWFnZSxcbiAgICAgIGlucHV0LFxuICAgICAgdmFyczogKG1kPy52YXJzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkKSA/PyB1bmRlZmluZWQsXG4gICAgICBpdGVtOiBtZD8uaXRlbSxcbiAgICAgIGluZGV4OiBtZD8uaW5kZXggYXMgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgICAgbm9kZXM6XG4gICAgICAgIChtZD8ubm9kZXMgYXMgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHwgdW5kZWZpbmVkKSA/P1xuICAgICAgICB1bmRlZmluZWQsXG4gICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyIGFzIHVua25vd24gYXNcbiAgICAgICAgfCBpbXBvcnQoXCIuL0NvZGVTYW5kYm94RXZhbHVhdG9yXCIpLlNhbmRib3hMb2dnZXJcbiAgICAgICAgfCB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gISFyZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTd2l0Y2hHcmFwaE5vZGVFeGVjdXRvci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrRUFBeUU7QUFDekUsZ0dBQTBGO0FBQzFGOzs7Ozs7R0FNRztBQUNILFNBQVMsa0JBQWtCLENBQUMsT0FBTztJQUMvQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDMUMsSUFBSSxDQUFDLElBQUk7UUFDTCxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNwRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUNELE9BQU87UUFDSCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7UUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksU0FBUztRQUNoRCxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsS0FBSyxJQUFJO0tBQzdDLENBQUM7QUFDTixDQUFDO0FBQ0Q7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxJQUFJO0lBQ3pCLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRO1FBQzVCLElBQUksS0FBSyxJQUFJO1FBQ2IsTUFBTSxJQUFJLElBQUk7UUFDZCxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFDRDs7R0FFRztB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QUMsQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ3BDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsS0FBSztZQUNMLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxJQUFJLFNBQVM7WUFDM0IsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSztnQkFDWixTQUFTO1lBQ2IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQ3pCLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUExREQsMERBMERDO0FBQ0QsMHlaQUEweVoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkVycm9yIH0gZnJvbSBcIi4vLi4vZXJyb3JzL0dyYXBoRXhlY3V0aW9uRXJyb3IuanNcIjtcbmltcG9ydCB7IENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IgfSBmcm9tIFwiLi8uLi9sb29wcy9Db25kaXRpb25FeHByZXNzaW9uRXZhbHVhdG9yLmpzXCI7XG4vKipcbiAqIFJlYWRzIHRoZSBTd2l0Y2ggbWV0YWRhdGEgZnJvbSB0aGUgbm9kZSBkZWZpbml0aW9uJ3MgZ3JhcGggbWV0YWRhdGEuXG4gKlxuICogVGhlIG1ldGFkYXRhIGlzIHN0b3JlZCB1bmRlciBgZ3JhcGgubWV0YWRhdGEuc3dpdGNoYCAodGhlIGxvY2F0aW9uIHVzZWQgYnlcbiAqIHN0YXRpY2FsbHktZGVjbGFyZWQgYEBub2RlYCB3b3JrZmxvd3MpLiBXaGVuIGFic2VudCwgZmFsbHMgYmFjayB0byBhbiBlbXB0eVxuICogZGVmYXVsdCB3aXRoIHRoZSBgZGVmYXVsdGAgcG9ydCBlbmFibGVkLlxuICovXG5mdW5jdGlvbiByZWFkU3dpdGNoTWV0YWRhdGEoY29udGV4dCkge1xuICAgIGNvbnN0IG1ldGEgPSBjb250ZXh0Lm5vZGUuZ3JhcGg/Lm1ldGFkYXRhO1xuICAgIGlmICghbWV0YSlcbiAgICAgICAgcmV0dXJuIHsgY2FzZXM6IFtdLCBkZWZhdWx0UG9ydDogXCJkZWZhdWx0XCIsIGhhc0RlZmF1bHQ6IGZhbHNlIH07XG4gICAgY29uc3Qgc3dpdGNoTWV0YSA9IG1ldGFbXCJzd2l0Y2hcIl07XG4gICAgaWYgKCFzd2l0Y2hNZXRhIHx8ICFBcnJheS5pc0FycmF5KHN3aXRjaE1ldGEuY2FzZXMpKSB7XG4gICAgICAgIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiLCBoYXNEZWZhdWx0OiBmYWxzZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBjYXNlczogc3dpdGNoTWV0YS5jYXNlcyxcbiAgICAgICAgZGVmYXVsdFBvcnQ6IHN3aXRjaE1ldGEuZGVmYXVsdFBvcnQgPz8gXCJkZWZhdWx0XCIsXG4gICAgICAgIGhhc0RlZmF1bHQ6IHN3aXRjaE1ldGEuaGFzRGVmYXVsdCA9PT0gdHJ1ZSxcbiAgICB9O1xufVxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgYSBgQ29kZUNvbmRpdGlvbmAgKGhhcyBgdHlwZTogXCJjb2RlXCJgKS5cbiAqL1xuZnVuY3Rpb24gaXNDb2RlQ29uZGl0aW9uKGNvbmQpIHtcbiAgICByZXR1cm4gKHR5cGVvZiBjb25kID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIGNvbmQgIT09IG51bGwgJiZcbiAgICAgICAgXCJ0eXBlXCIgaW4gY29uZCAmJlxuICAgICAgICBjb25kLnR5cGUgPT09IFwiY29kZVwiKTtcbn1cbi8qKlxuICogRGV0ZWN0cyB3aGV0aGVyIGEgY29uZGl0aW9uIGlzIGEgYENvbmRpdGlvbkV4cHJlc3Npb25gIChoYXMgYG9wYCBmaWVsZCkuXG4gKi9cbmZ1bmN0aW9uIGlzQ29uZGl0aW9uRXhwcmVzc2lvbihjb25kKSB7XG4gICAgcmV0dXJuICh0eXBlb2YgY29uZCA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICBjb25kICE9PSBudWxsICYmXG4gICAgICAgIFwib3BcIiBpbiBjb25kICYmXG4gICAgICAgIHR5cGVvZiBjb25kLm9wID09PSBcInN0cmluZ1wiKTtcbn1cbi8qKlxuICogRXhlY3V0b3IgZm9yIGBjb3JlLmZsb3cuc3dpdGNoYCBub2Rlcy5cbiAqXG4gKiBFdmFsdWF0ZXMgZWFjaCBjYXNlJ3MgY29uZGl0aW9uIGluIG9yZGVyIGFuZCByb3V0ZXMgdGhlIGlucHV0IHRvIHRoZVxuICogZmlyc3QgbWF0Y2hpbmcgY2FzZSdzIG91dHB1dCBwb3J0LiBXaGVuIG5vIGNhc2UgbWF0Y2hlczpcbiAqIC0gSWYgYGhhc0RlZmF1bHRgIGlzIGB0cnVlYCwgcm91dGVzIHRvIHRoZSBgZGVmYXVsdGAgb3V0cHV0IHBvcnQuXG4gKiAtIElmIGBoYXNEZWZhdWx0YCBpcyBgZmFsc2VgICh0aGUgZGVmYXVsdCksIHRocm93cyBgR1JBUEhfU1dJVENIX05PX01BVENIYC5cbiAqXG4gKiBDb25kaXRpb24gZXZhbHVhdGlvbjpcbiAqIC0gYENvbmRpdGlvbkV4cHJlc3Npb25gIOKAlCBldmFsdWF0ZWQgdmlhIHtAbGluayBDb25kaXRpb25FeHByZXNzaW9uRXZhbHVhdG9yfS5cbiAqIC0gYENvZGVDb25kaXRpb25gIOKAlCBldmFsdWF0ZWQgdmlhIHRoZSBwbHVnZ2FibGUge0BsaW5rIENvZGVTYW5kYm94RXZhbHVhdG9yfVxuICogICBmcm9tIHRoZSBlbmdpbmUncyBjb25maWcuIFRocm93cyBgR1JBUEhfQ09ERV9TQU5EQk9YX05PVF9DT05GSUdVUkVEYFxuICogICB3aGVuIG5vIGV2YWx1YXRvciBpcyByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgY2xhc3MgU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3Ige1xuICAgIGNvbnN0cnVjdG9yKGVuZ2luZSkge1xuICAgICAgICB0aGlzLmVuZ2luZSA9IGVuZ2luZTtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yID0gbmV3IENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IoKTtcbiAgICB9XG4gICAgYXN5bmMgZXhlY3V0ZShpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCBtZXRhID0gcmVhZFN3aXRjaE1ldGFkYXRhKGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gaW5wdXRbXCJ2YWx1ZVwiXSA/PyBpbnB1dDtcbiAgICAgICAgZm9yIChjb25zdCBzd2l0Y2hDYXNlIG9mIG1ldGEuY2FzZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKHN3aXRjaENhc2UuY29uZGl0aW9uLCBpbnB1dFZhbHVlLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IFtzd2l0Y2hDYXNlLm91dHB1dFBvcnRdOiBpbnB1dFZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm8gY2FzZSBtYXRjaGVkIOKAlCByb3V0ZSB0byB0aGUgZGVmYXVsdCBwb3J0IHdoZW4gaXQgaXMgZW5hYmxlZC5cbiAgICAgICAgaWYgKG1ldGEuaGFzRGVmYXVsdCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXCJObyBzd2l0Y2ggY2FzZSBtYXRjaGVkIGFuZCBkZWZhdWx0IHBvcnQgaXMgbm90IGVuYWJsZWRcIiwgXCJHUkFQSF9TV0lUQ0hfTk9fTUFUQ0hcIiwgeyBjYXNlczogbWV0YS5jYXNlcy5tYXAoKGMpID0+IGMuaWQpIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQb3J0ID0gbWV0YS5kZWZhdWx0UG9ydCA/PyBcImRlZmF1bHRcIjtcbiAgICAgICAgcmV0dXJuIHsgW2RlZmF1bHRQb3J0XTogaW5wdXRWYWx1ZSB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFdmFsdWF0ZXMgYSBzaW5nbGUgc3dpdGNoIGNhc2UgY29uZGl0aW9uLlxuICAgICAqL1xuICAgIGFzeW5jIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbiwgaW5wdXRWYWx1ZSwgZnVsbElucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGlmIChpc0NvZGVDb25kaXRpb24oY29uZGl0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVDb2RlQ29uZGl0aW9uKGNvbmRpdGlvbiwgZnVsbElucHV0LCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNDb25kaXRpb25FeHByZXNzaW9uKGNvbmRpdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoY29uZGl0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcIlVua25vd24gc3dpdGNoIGNhc2UgY29uZGl0aW9uIHR5cGUg4oCUIG11c3QgYmUgQ29uZGl0aW9uRXhwcmVzc2lvbiAob3ApIG9yIENvZGVDb25kaXRpb24gKHR5cGU6ICdjb2RlJylcIiwgXCJHUkFQSF9VTktOT1dOX1NXSVRDSF9DT05ESVRJT05cIiwgeyBjb25kaXRpb24gfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2YWx1YXRlcyBhIGNvZGUgY29uZGl0aW9uIHZpYSB0aGUgcGx1Z2dhYmxlIHNhbmRib3ggZXZhbHVhdG9yLlxuICAgICAqL1xuICAgIGFzeW5jIGV2YWx1YXRlQ29kZUNvbmRpdGlvbihjb25kaXRpb24sIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRvciA9IHRoaXMuZW5naW5lPy5jb2RlU2FuZGJveEV2YWx1YXRvcjtcbiAgICAgICAgaWYgKCFldmFsdWF0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFwiQ29kZSBjb25kaXRpb25zIHJlcXVpcmUgYSBDb2RlU2FuZGJveEV2YWx1YXRvciB0byBiZSByZWdpc3RlcmVkIGluIEdyYXBoRXhlY3V0aW9uRW5naW5lQ29uZmlnLmNvZGVTYW5kYm94RXZhbHVhdG9yXCIsIFwiR1JBUEhfQ09ERV9TQU5EQk9YX05PVF9DT05GSUdVUkVEXCIsIHsgY29kZTogY29uZGl0aW9uLmNvZGUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY29udGV4dC5sb2coYEV2YWx1YXRpbmcgY29kZSBjb25kaXRpb25gLCB7XG4gICAgICAgICAgICBsYW5ndWFnZTogY29uZGl0aW9uLmxhbmd1YWdlID8/IFwiamF2YXNjcmlwdFwiLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbWQgPSBjb250ZXh0Lm1ldGFkYXRhO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBldmFsdWF0b3IuZXZhbHVhdGUoe1xuICAgICAgICAgICAgY29kZTogY29uZGl0aW9uLmNvZGUsXG4gICAgICAgICAgICBsYW5ndWFnZTogY29uZGl0aW9uLmxhbmd1YWdlLFxuICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICB2YXJzOiBtZD8udmFycyA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBpdGVtOiBtZD8uaXRlbSxcbiAgICAgICAgICAgIGluZGV4OiBtZD8uaW5kZXgsXG4gICAgICAgICAgICBub2RlczogbWQ/Lm5vZGVzID8/XG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIXJlc3VsdDtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lVM2RwZEdOb1IzSmhjR2hPYjJSbFJYaGxZM1YwYjNJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk4dUxpOXpjbU12WjNKaGNHZ3ZaVzVuYVc1bEwyVjRaV04xZEdsdmJpOVRkMmwwWTJoSGNtRndhRTV2WkdWRmVHVmpkWFJ2Y2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRnJRa0VzVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxESkRRVUZ6UXp0QlFVTndSU3hQUVVGUExFVkJRVVVzTkVKQlFUUkNMRVZCUVVVc2JVUkJRVGhETzBGQlIzSkdPenM3T3pzN1IwRk5SenRCUVVOSUxGTkJRVk1zYTBKQlFXdENMRU5CUTNwQ0xFOUJRVGhDTzBsQlJUbENMRTFCUVUwc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRkZCUlhCQ0xFTkJRVU03U1VGRFpDeEpRVUZKTEVOQlFVTXNTVUZCU1R0UlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeEZRVUZGTEZkQlFWY3NSVUZCUlN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETzBsQlF6TkZMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFXMURMRU5CUVVNN1NVRkRjRVVzU1VGQlNTeERRVUZETEZWQlFWVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRjRVFzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRVZCUVVVc1YwRkJWeXhGUVVGRkxGTkJRVk1zUlVGQlJTeFZRVUZWTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNN1NVRkRiRVVzUTBGQlF6dEpRVU5FTEU5QlFVODdVVUZEVEN4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFdEJRVXM3VVVGRGRrSXNWMEZCVnl4RlFVRkZMRlZCUVZVc1EwRkJReXhYUVVGWExFbEJRVWtzVTBGQlV6dFJRVU5vUkN4VlFVRlZMRVZCUVVVc1ZVRkJWU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzB0QlF6TkRMRU5CUVVNN1FVRkRTaXhEUVVGRE8wRkJSVVE3TzBkQlJVYzdRVUZEU0N4VFFVRlRMR1ZCUVdVc1EwRkJReXhKUVVGNVFqdEpRVU5vUkN4UFFVRlBMRU5CUTB3c1QwRkJUeXhKUVVGSkxFdEJRVXNzVVVGQlVUdFJRVU40UWl4SlFVRkpMRXRCUVVzc1NVRkJTVHRSUVVOaUxFMUJRVTBzU1VGQlNTeEpRVUZKTzFGQlEyUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTkxFTkJRM0pDTEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRN08wZEJSVWM3UVVGRFNDeFRRVUZUTEhGQ1FVRnhRaXhEUVVNMVFpeEpRVUY1UWp0SlFVVjZRaXhQUVVGUExFTkJRMHdzVDBGQlR5eEpRVUZKTEV0QlFVc3NVVUZCVVR0UlFVTjRRaXhKUVVGSkxFdEJRVXNzU1VGQlNUdFJRVU5pTEVsQlFVa3NTVUZCU1N4SlFVRkpPMUZCUTFvc1QwRkJUeXhKUVVGSkxFTkJRVU1zUlVGQlJTeExRVUZMTEZGQlFWRXNRMEZETlVJc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRlJEczdPenM3T3pzN096czdPenRIUVdGSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEhWQ1FVRjFRanRKUVVkc1F5eFpRVU50UWl4TlFVRjNSRHRSUVVGNFJDeFhRVUZOTEVkQlFVNHNUVUZCVFN4RFFVRnJSRHRSUVVneFJDeDNRa0ZCYlVJc1IwRkJSeXhKUVVGSkxEUkNRVUUwUWl4RlFVRkZMRU5CUVVNN1NVRkpka1VzUTBGQlF6dEpRVVZLTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTFnc1MwRkJNa0lzUlVGRE0wSXNUMEZCT0VJN1VVRkZPVUlzVFVGQlRTeEpRVUZKTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZWtNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJRenRSUVVVelF5eExRVUZMTEUxQlFVMHNWVUZCVlN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU53UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRNVU1zVlVGQlZTeERRVUZETEZOQlFWTXNSVUZEY0VJc1ZVRkJWU3hGUVVOV0xFdEJRVXNzUlVGRFRDeFBRVUZQTEVOQlExSXNRMEZCUXp0WlFVTkdMRWxCUVVrc1QwRkJUeXhGUVVGRkxFTkJRVU03WjBKQlExb3NUMEZCVHl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTJwRUxFTkJRVU03VVVGRFNDeERRVUZETzFGQlJVUXNhMFZCUVd0Rk8xRkJRMnhGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1MwRkJTeXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU0zUWl4TlFVRk5MRWxCUVVrc2JVSkJRVzFDTEVOQlF6TkNMSGRFUVVGM1JDeEZRVU40UkN4MVFrRkJkVUlzUlVGRGRrSXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVTjJReXhEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVU5FTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFbEJRVWtzVTBGQlV5eERRVUZETzFGQlEyeEVMRTlCUVU4c1JVRkJSU3hEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRPMGxCUTNaRExFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTkxMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZETjBJc1UwRkJPRUlzUlVGRE9VSXNWVUZCYlVJc1JVRkRia0lzVTBGQkswSXNSVUZETDBJc1QwRkJPRUk3VVVGRk9VSXNTVUZCU1N4bFFVRmxMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU12UWl4UFFVRlBMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyNUZMRU5CUVVNN1VVRkZSQ3hKUVVGSkxIRkNRVUZ4UWl4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGNrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU5zUlN4RFFVRkRPMUZCUlVRc1RVRkJUU3hKUVVGSkxHMUNRVUZ0UWl4RFFVTXpRaXgxUjBGQmRVY3NSVUZEZGtjc1owTkJRV2RETEVWQlEyaERMRVZCUVVVc1UwRkJVeXhGUVVGRkxFTkJRMlFzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOTExFdEJRVXNzUTBGQlF5eHhRa0ZCY1VJc1EwRkRha01zVTBGQmQwSXNSVUZEZUVJc1MwRkJNa0lzUlVGRE0wSXNUMEZCT0VJN1VVRkZPVUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3h2UWtGQmIwSXNRMEZCUXp0UlFVTndSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRWxCUVVrc2JVSkJRVzFDTEVOQlF6TkNMRzlJUVVGdlNDeEZRVU53U0N4dFEwRkJiVU1zUlVGRGJrTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVU42UWl4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl3eVFrRkJNa0lzUlVGQlJUdFpRVU0zUXl4UlFVRlJMRVZCUVVVc1UwRkJVeXhEUVVGRExGRkJRVkVzU1VGQlNTeFpRVUZaTzFOQlF6ZERMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4UlFVRXJReXhEUVVGRE8xRkJSVzVGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF6dFpRVU4wUXl4SlFVRkpMRVZCUVVVc1UwRkJVeXhEUVVGRExFbEJRVWs3V1VGRGNFSXNVVUZCVVN4RlFVRkZMRk5CUVZNc1EwRkJReXhSUVVGUk8xbEJRelZDTEV0QlFVczdXVUZEVEN4SlFVRkpMRVZCUVVjc1JVRkJSU3hGUVVGRkxFbEJRVFJETEVsQlFVa3NVMEZCVXp0WlFVTndSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVsQlFVazdXVUZEWkN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFdEJRVEpDTzFsQlEzUkRMRXRCUVVzc1JVRkRSaXhGUVVGRkxFVkJRVVVzUzBGQk5rUTdaMEpCUTJ4RkxGTkJRVk03V1VGRFdDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTFCUlVnN1UwRkRaQ3hEUVVGRExFTkJRVU03VVVGRlNDeFBRVUZQTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRiRUlzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5b3FYRzRnS2lCQWJXOWtkV3hsSUdsdWRHVm5jbUYwYVc5dWN5OW5jbUZ3YUM5bGVHVmpkWFJwYjI0dlUzZHBkR05vUjNKaGNHaE9iMlJsUlhobFkzVjBiM0pjYmlBcUlFQnpkVzF0WVhKNUlFVjRaV04xZEc5eUlHWnZjaUIwYUdVZ1UzZHBkR05vSUdac2IzY3RZMjl1ZEhKdmJDQnViMlJsSUNoRVJVTkJSaTB6TWlEQ3B6SXlMakl1TWlrdVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JYWmhiSFZoZEdWeklHVmhZMmdnWTJGelpTZHpJR052Ym1ScGRHbHZiaUJoWjJGcGJuTjBJSFJvWlNCdWIyUmxKM01nYVc1d2RYUWdZVzVrWEc0Z0tpQnliM1YwWlhNZ2RHaGxJR2x1Y0hWMElIUnZJSFJvWlNCbWFYSnpkQ0J0WVhSamFHbHVaeUJqWVhObEozTWdiM1YwY0hWMElIQnZjblF1SUVaaGJHeHpJR0poWTJzZ2RHOWNiaUFxSUhSb1pTQmdaR1ZtWVhWc2RHQWdiM1YwY0hWMElIZG9aVzRnYm04Z1kyRnpaU0J0WVhSamFHVnpMaUJUZFhCd2IzSjBjeUJpYjNSb1hHNGdLaUI3UUd4cGJtc2dRMjl1WkdsMGFXOXVSWGh3Y21WemMybHZibjBnS0dkeVlYQm9hV05oYkNCdGIyUmxLU0JoYm1RZ2UwQnNhVzVySUVOdlpHVkRiMjVrYVhScGIyNTlYRzRnS2lBb1kyOWtaU0J0YjJSbElIWnBZU0IwYUdVZ2NHeDFaMmRoWW14bElIdEFiR2x1YXlCRGIyUmxVMkZ1WkdKdmVFVjJZV3gxWVhSdmNuMHBMbHh1SUNvdlhHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVkeVlYQm9UbTlrWlVWNFpXTjFkRzl5SUgwZ1puSnZiU0JjSWk0dlIzSmhjR2hPYjJSbFJYaGxZM1YwYjNKY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1IzSmhjR2hGZUdWamRYUnBiMjVEYjI1MFpYaDBJSDBnWm5KdmJTQmNJaTR2UjNKaGNHaEZlR1ZqZFhScGIyNURiMjUwWlhoMFhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN0lFZHlZWEJvUlhobFkzVjBhVzl1Vm1Gc2RXVnpJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdYRzRnSUZOM2FYUmphRU5oYzJWRGIyNWthWFJwYjI0c1hHNGdJRk4zYVhSamFFNXZaR1ZOWlhSaFpHRjBZU3hjYmlBZ1EyOXVaR2wwYVc5dVJYaHdjbVZ6YzJsdmJpeGNiaUFnUTI5a1pVTnZibVJwZEdsdmJpeGNibjBnWm5KdmJTQmNJaTR1THk0dUwzTm9ZWEpsWkM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1IzSmhjR2hGZUdWamRYUnBiMjVGY25KdmNpQjlJR1p5YjIwZ1hDSXVMaTlsY25KdmNuTXZSM0poY0doRmVHVmpkWFJwYjI1RmNuSnZjbHdpTzF4dWFXMXdiM0owSUhzZ1EyOXVaR2wwYVc5dVJYaHdjbVZ6YzJsdmJrVjJZV3gxWVhSdmNpQjlJR1p5YjIwZ1hDSXVMaTlzYjI5d2N5OURiMjVrYVhScGIyNUZlSEJ5WlhOemFXOXVSWFpoYkhWaGRHOXlYQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdJRU52WkdWVFlXNWtZbTk0UlhaaGJIVmhkRzl5SUgwZ1puSnZiU0JjSWk0dlEyOWtaVk5oYm1SaWIzaEZkbUZzZFdGMGIzSmNJanRjYmx4dUx5b3FYRzRnS2lCU1pXRmtjeUIwYUdVZ1UzZHBkR05vSUcxbGRHRmtZWFJoSUdaeWIyMGdkR2hsSUc1dlpHVWdaR1ZtYVc1cGRHbHZiaWR6SUdkeVlYQm9JRzFsZEdGa1lYUmhMbHh1SUNwY2JpQXFJRlJvWlNCdFpYUmhaR0YwWVNCcGN5QnpkRzl5WldRZ2RXNWtaWElnWUdkeVlYQm9MbTFsZEdGa1lYUmhMbk4zYVhSamFHQWdLSFJvWlNCc2IyTmhkR2x2YmlCMWMyVmtJR0o1WEc0Z0tpQnpkR0YwYVdOaGJHeDVMV1JsWTJ4aGNtVmtJR0JBYm05a1pXQWdkMjl5YTJac2IzZHpLUzRnVjJobGJpQmhZbk5sYm5Rc0lHWmhiR3h6SUdKaFkyc2dkRzhnWVc0Z1pXMXdkSGxjYmlBcUlHUmxabUYxYkhRZ2QybDBhQ0IwYUdVZ1lHUmxabUYxYkhSZ0lIQnZjblFnWlc1aFlteGxaQzVjYmlBcUwxeHVablZ1WTNScGIyNGdjbVZoWkZOM2FYUmphRTFsZEdGa1lYUmhLRnh1SUNCamIyNTBaWGgwT2lCSGNtRndhRVY0WldOMWRHbHZia052Ym5SbGVIUmNiaWs2SUZOM2FYUmphRTV2WkdWTlpYUmhaR0YwWVNCN1hHNGdJR052Ym5OMElHMWxkR0VnUFNCamIyNTBaWGgwTG01dlpHVXVaM0poY0dnL0xtMWxkR0ZrWVhSaElHRnpYRzRnSUNBZ2ZDQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGx4dUlDQWdJSHdnZFc1a1pXWnBibVZrTzF4dUlDQnBaaUFvSVcxbGRHRXBJSEpsZEhWeWJpQjdJR05oYzJWek9pQmJYU3dnWkdWbVlYVnNkRkJ2Y25RNklGd2laR1ZtWVhWc2RGd2lMQ0JvWVhORVpXWmhkV3gwT2lCbVlXeHpaU0I5TzF4dUlDQmpiMjV6ZENCemQybDBZMmhOWlhSaElEMGdiV1YwWVZ0Y0luTjNhWFJqYUZ3aVhTQmhjeUJUZDJsMFkyaE9iMlJsVFdWMFlXUmhkR0VnZkNCMWJtUmxabWx1WldRN1hHNGdJR2xtSUNnaGMzZHBkR05vVFdWMFlTQjhmQ0FoUVhKeVlYa3VhWE5CY25KaGVTaHpkMmwwWTJoTlpYUmhMbU5oYzJWektTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCN0lHTmhjMlZ6T2lCYlhTd2daR1ZtWVhWc2RGQnZjblE2SUZ3aVpHVm1ZWFZzZEZ3aUxDQm9ZWE5FWldaaGRXeDBPaUJtWVd4elpTQjlPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ1kyRnpaWE02SUhOM2FYUmphRTFsZEdFdVkyRnpaWE1zWEc0Z0lDQWdaR1ZtWVhWc2RGQnZjblE2SUhOM2FYUmphRTFsZEdFdVpHVm1ZWFZzZEZCdmNuUWdQejhnWENKa1pXWmhkV3gwWENJc1hHNGdJQ0FnYUdGelJHVm1ZWFZzZERvZ2MzZHBkR05vVFdWMFlTNW9ZWE5FWldaaGRXeDBJRDA5UFNCMGNuVmxMRnh1SUNCOU8xeHVmVnh1WEc0dktpcGNiaUFxSUVSbGRHVmpkSE1nZDJobGRHaGxjaUJoSUdOdmJtUnBkR2x2YmlCcGN5QmhJR0JEYjJSbFEyOXVaR2wwYVc5dVlDQW9hR0Z6SUdCMGVYQmxPaUJjSW1OdlpHVmNJbUFwTGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJwYzBOdlpHVkRiMjVrYVhScGIyNG9ZMjl1WkRvZ1UzZHBkR05vUTJGelpVTnZibVJwZEdsdmJpazZJR052Ym1RZ2FYTWdRMjlrWlVOdmJtUnBkR2x2YmlCN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ2RIbHdaVzltSUdOdmJtUWdQVDA5SUZ3aWIySnFaV04wWENJZ0ppWmNiaUFnSUNCamIyNWtJQ0U5UFNCdWRXeHNJQ1ltWEc0Z0lDQWdYQ0owZVhCbFhDSWdhVzRnWTI5dVpDQW1KbHh1SUNBZ0lHTnZibVF1ZEhsd1pTQTlQVDBnWENKamIyUmxYQ0pjYmlBZ0tUdGNibjFjYmx4dUx5b3FYRzRnS2lCRVpYUmxZM1J6SUhkb1pYUm9aWElnWVNCamIyNWthWFJwYjI0Z2FYTWdZU0JnUTI5dVpHbDBhVzl1Ulhod2NtVnpjMmx2Ym1BZ0tHaGhjeUJnYjNCZ0lHWnBaV3hrS1M1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYVhORGIyNWthWFJwYjI1RmVIQnlaWE56YVc5dUtGeHVJQ0JqYjI1a09pQlRkMmwwWTJoRFlYTmxRMjl1WkdsMGFXOXVYRzRwT2lCamIyNWtJR2x6SUVOdmJtUnBkR2x2YmtWNGNISmxjM05wYjI0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lIUjVjR1Z2WmlCamIyNWtJRDA5UFNCY0ltOWlhbVZqZEZ3aUlDWW1YRzRnSUNBZ1kyOXVaQ0FoUFQwZ2JuVnNiQ0FtSmx4dUlDQWdJRndpYjNCY0lpQnBiaUJqYjI1a0lDWW1YRzRnSUNBZ2RIbHdaVzltSUdOdmJtUXViM0FnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJGZUdWamRYUnZjaUJtYjNJZ1lHTnZjbVV1Wm14dmR5NXpkMmwwWTJoZ0lHNXZaR1Z6TGx4dUlDcGNiaUFxSUVWMllXeDFZWFJsY3lCbFlXTm9JR05oYzJVbmN5QmpiMjVrYVhScGIyNGdhVzRnYjNKa1pYSWdZVzVrSUhKdmRYUmxjeUIwYUdVZ2FXNXdkWFFnZEc4Z2RHaGxYRzRnS2lCbWFYSnpkQ0J0WVhSamFHbHVaeUJqWVhObEozTWdiM1YwY0hWMElIQnZjblF1SUZkb1pXNGdibThnWTJGelpTQnRZWFJqYUdWek9seHVJQ29nTFNCSlppQmdhR0Z6UkdWbVlYVnNkR0FnYVhNZ1lIUnlkV1ZnTENCeWIzVjBaWE1nZEc4Z2RHaGxJR0JrWldaaGRXeDBZQ0J2ZFhSd2RYUWdjRzl5ZEM1Y2JpQXFJQzBnU1dZZ1lHaGhjMFJsWm1GMWJIUmdJR2x6SUdCbVlXeHpaV0FnS0hSb1pTQmtaV1poZFd4MEtTd2dkR2h5YjNkeklHQkhVa0ZRU0Y5VFYwbFVRMGhmVGs5ZlRVRlVRMGhnTGx4dUlDcGNiaUFxSUVOdmJtUnBkR2x2YmlCbGRtRnNkV0YwYVc5dU9seHVJQ29nTFNCZ1EyOXVaR2wwYVc5dVJYaHdjbVZ6YzJsdmJtQWc0b0NVSUdWMllXeDFZWFJsWkNCMmFXRWdlMEJzYVc1cklFTnZibVJwZEdsdmJrVjRjSEpsYzNOcGIyNUZkbUZzZFdGMGIzSjlMbHh1SUNvZ0xTQmdRMjlrWlVOdmJtUnBkR2x2Ym1BZzRvQ1VJR1YyWVd4MVlYUmxaQ0IyYVdFZ2RHaGxJSEJzZFdkbllXSnNaU0I3UUd4cGJtc2dRMjlrWlZOaGJtUmliM2hGZG1Gc2RXRjBiM0o5WEc0Z0tpQWdJR1p5YjIwZ2RHaGxJR1Z1WjJsdVpTZHpJR052Ym1acFp5NGdWR2h5YjNkeklHQkhVa0ZRU0Y5RFQwUkZYMU5CVGtSQ1QxaGZUazlVWDBOUFRrWkpSMVZTUlVSZ1hHNGdLaUFnSUhkb1pXNGdibThnWlhaaGJIVmhkRzl5SUdseklISmxaMmx6ZEdWeVpXUXVYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJUZDJsMFkyaEhjbUZ3YUU1dlpHVkZlR1ZqZFhSdmNpQnBiWEJzWlcxbGJuUnpJRWR5WVhCb1RtOWtaVVY0WldOMWRHOXlJSHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCbGVIQnlaWE56YVc5dVJYWmhiSFZoZEc5eUlEMGdibVYzSUVOdmJtUnBkR2x2YmtWNGNISmxjM05wYjI1RmRtRnNkV0YwYjNJb0tUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpaGNiaUFnSUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUdWdVoybHVaVDg2SUhzZ1kyOWtaVk5oYm1SaWIzaEZkbUZzZFdGMGIzSS9PaUJEYjJSbFUyRnVaR0p2ZUVWMllXeDFZWFJ2Y2lCOVhHNGdJQ2tnZTMxY2JseHVJQ0JoYzNsdVl5QmxlR1ZqZFhSbEtGeHVJQ0FnSUdsdWNIVjBPaUJIY21Gd2FFVjRaV04xZEdsdmJsWmhiSFZsY3l4Y2JpQWdJQ0JqYjI1MFpYaDBPaUJIY21Gd2FFVjRaV04xZEdsdmJrTnZiblJsZUhSY2JpQWdLVG9nVUhKdmJXbHpaVHhIY21Gd2FFVjRaV04xZEdsdmJsWmhiSFZsY3o0Z2UxeHVJQ0FnSUdOdmJuTjBJRzFsZEdFZ1BTQnlaV0ZrVTNkcGRHTm9UV1YwWVdSaGRHRW9ZMjl1ZEdWNGRDazdYRzRnSUNBZ1kyOXVjM1FnYVc1d2RYUldZV3gxWlNBOUlHbHVjSFYwVzF3aWRtRnNkV1ZjSWwwZ1B6OGdhVzV3ZFhRN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElITjNhWFJqYUVOaGMyVWdiMllnYldWMFlTNWpZWE5sY3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYldGMFkyaGxjeUE5SUdGM1lXbDBJSFJvYVhNdVpYWmhiSFZoZEdWRGIyNWthWFJwYjI0b1hHNGdJQ0FnSUNBZ0lITjNhWFJqYUVOaGMyVXVZMjl1WkdsMGFXOXVMRnh1SUNBZ0lDQWdJQ0JwYm5CMWRGWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCcGJuQjFkQ3hjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR2xtSUNodFlYUmphR1Z6S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lGdHpkMmwwWTJoRFlYTmxMbTkxZEhCMWRGQnZjblJkT2lCcGJuQjFkRlpoYkhWbElIMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdUbThnWTJGelpTQnRZWFJqYUdWa0lPS0FsQ0J5YjNWMFpTQjBieUIwYUdVZ1pHVm1ZWFZzZENCd2IzSjBJSGRvWlc0Z2FYUWdhWE1nWlc1aFlteGxaQzVjYmlBZ0lDQnBaaUFvYldWMFlTNW9ZWE5FWldaaGRXeDBJQ0U5UFNCMGNuVmxLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUjNKaGNHaEZlR1ZqZFhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1hDSk9ieUJ6ZDJsMFkyZ2dZMkZ6WlNCdFlYUmphR1ZrSUdGdVpDQmtaV1poZFd4MElIQnZjblFnYVhNZ2JtOTBJR1Z1WVdKc1pXUmNJaXhjYmlBZ0lDQWdJQ0FnWENKSFVrRlFTRjlUVjBsVVEwaGZUazlmVFVGVVEwaGNJaXhjYmlBZ0lDQWdJQ0FnZXlCallYTmxjem9nYldWMFlTNWpZWE5sY3k1dFlYQW9LR01wSUQwK0lHTXVhV1FwSUgxY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHUmxabUYxYkhSUWIzSjBJRDBnYldWMFlTNWtaV1poZFd4MFVHOXlkQ0EvUHlCY0ltUmxabUYxYkhSY0lqdGNiaUFnSUNCeVpYUjFjbTRnZXlCYlpHVm1ZWFZzZEZCdmNuUmRPaUJwYm5CMWRGWmhiSFZsSUgwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSWFpoYkhWaGRHVnpJR0VnYzJsdVoyeGxJSE4zYVhSamFDQmpZWE5sSUdOdmJtUnBkR2x2Ymk1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWlhaaGJIVmhkR1ZEYjI1a2FYUnBiMjRvWEc0Z0lDQWdZMjl1WkdsMGFXOXVPaUJUZDJsMFkyaERZWE5sUTI5dVpHbDBhVzl1TEZ4dUlDQWdJR2x1Y0hWMFZtRnNkV1U2SUhWdWEyNXZkMjRzWEc0Z0lDQWdablZzYkVsdWNIVjBPaUJIY21Gd2FFVjRaV04xZEdsdmJsWmhiSFZsY3l4Y2JpQWdJQ0JqYjI1MFpYaDBPaUJIY21Gd2FFVjRaV04xZEdsdmJrTnZiblJsZUhSY2JpQWdLVG9nVUhKdmJXbHpaVHhpYjI5c1pXRnVQaUI3WEc0Z0lDQWdhV1lnS0dselEyOWtaVU52Ym1ScGRHbHZiaWhqYjI1a2FYUnBiMjRwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWxkbUZzZFdGMFpVTnZaR1ZEYjI1a2FYUnBiMjRvWTI5dVpHbDBhVzl1TENCbWRXeHNTVzV3ZFhRc0lHTnZiblJsZUhRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHBjME52Ym1ScGRHbHZia1Y0Y0hKbGMzTnBiMjRvWTI5dVpHbDBhVzl1S1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaWGh3Y21WemMybHZia1YyWVd4MVlYUnZjaTVsZG1Gc2RXRjBaU2hqYjI1a2FYUnBiMjRzSUdsdWNIVjBWbUZzZFdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhSb2NtOTNJRzVsZHlCSGNtRndhRVY0WldOMWRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ1hDSlZibXR1YjNkdUlITjNhWFJqYUNCallYTmxJR052Ym1ScGRHbHZiaUIwZVhCbElPS0FsQ0J0ZFhOMElHSmxJRU52Ym1ScGRHbHZia1Y0Y0hKbGMzTnBiMjRnS0c5d0tTQnZjaUJEYjJSbFEyOXVaR2wwYVc5dUlDaDBlWEJsT2lBblkyOWtaU2NwWENJc1hHNGdJQ0FnSUNCY0lrZFNRVkJJWDFWT1MwNVBWMDVmVTFkSlZFTklYME5QVGtSSlZFbFBUbHdpTEZ4dUlDQWdJQ0FnZXlCamIyNWthWFJwYjI0Z2ZWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSWFpoYkhWaGRHVnpJR0VnWTI5a1pTQmpiMjVrYVhScGIyNGdkbWxoSUhSb1pTQndiSFZuWjJGaWJHVWdjMkZ1WkdKdmVDQmxkbUZzZFdGMGIzSXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHVjJZV3gxWVhSbFEyOWtaVU52Ym1ScGRHbHZiaWhjYmlBZ0lDQmpiMjVrYVhScGIyNDZJRU52WkdWRGIyNWthWFJwYjI0c1hHNGdJQ0FnYVc1d2RYUTZJRWR5WVhCb1JYaGxZM1YwYVc5dVZtRnNkV1Z6TEZ4dUlDQWdJR052Ym5SbGVIUTZJRWR5WVhCb1JYaGxZM1YwYVc5dVEyOXVkR1Y0ZEZ4dUlDQXBPaUJRY205dGFYTmxQR0p2YjJ4bFlXNCtJSHRjYmlBZ0lDQmpiMjV6ZENCbGRtRnNkV0YwYjNJZ1BTQjBhR2x6TG1WdVoybHVaVDh1WTI5a1pWTmhibVJpYjNoRmRtRnNkV0YwYjNJN1hHNGdJQ0FnYVdZZ0tDRmxkbUZzZFdGMGIzSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJIY21Gd2FFVjRaV04xZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnSUNCY0lrTnZaR1VnWTI5dVpHbDBhVzl1Y3lCeVpYRjFhWEpsSUdFZ1EyOWtaVk5oYm1SaWIzaEZkbUZzZFdGMGIzSWdkRzhnWW1VZ2NtVm5hWE4wWlhKbFpDQnBiaUJIY21Gd2FFVjRaV04xZEdsdmJrVnVaMmx1WlVOdmJtWnBaeTVqYjJSbFUyRnVaR0p2ZUVWMllXeDFZWFJ2Y2x3aUxGeHVJQ0FnSUNBZ0lDQmNJa2RTUVZCSVgwTlBSRVZmVTBGT1JFSlBXRjlPVDFSZlEwOU9Sa2xIVlZKRlJGd2lMRnh1SUNBZ0lDQWdJQ0I3SUdOdlpHVTZJR052Ym1ScGRHbHZiaTVqYjJSbElIMWNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1lYZGhhWFFnWTI5dWRHVjRkQzVzYjJjb1lFVjJZV3gxWVhScGJtY2dZMjlrWlNCamIyNWthWFJwYjI1Z0xDQjdYRzRnSUNBZ0lDQnNZVzVuZFdGblpUb2dZMjl1WkdsMGFXOXVMbXhoYm1kMVlXZGxJRDgvSUZ3aWFtRjJZWE5qY21sd2RGd2lMRnh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXUWdQU0JqYjI1MFpYaDBMbTFsZEdGa1lYUmhJR0Z6SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtJSHdnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdZWGRoYVhRZ1pYWmhiSFZoZEc5eUxtVjJZV3gxWVhSbEtIdGNiaUFnSUNBZ0lHTnZaR1U2SUdOdmJtUnBkR2x2Ymk1amIyUmxMRnh1SUNBZ0lDQWdiR0Z1WjNWaFoyVTZJR052Ym1ScGRHbHZiaTVzWVc1bmRXRm5aU3hjYmlBZ0lDQWdJR2x1Y0hWMExGeHVJQ0FnSUNBZ2RtRnljem9nS0cxa1B5NTJZWEp6SUdGeklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrSUh3Z2RXNWtaV1pwYm1Wa0tTQS9QeUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0JwZEdWdE9pQnRaRDh1YVhSbGJTeGNiaUFnSUNBZ0lHbHVaR1Y0T2lCdFpEOHVhVzVrWlhnZ1lYTWdiblZ0WW1WeUlId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdibTlrWlhNNlhHNGdJQ0FnSUNBZ0lDaHRaRDh1Ym05a1pYTWdZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0K0lId2dkVzVrWldacGJtVmtLU0EvUDF4dUlDQWdJQ0FnSUNCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCc2IyZG5aWEk2SUdOdmJuUmxlSFF1Ykc5bloyVnlJR0Z6SUhWdWEyNXZkMjRnWVhOY2JpQWdJQ0FnSUNBZ2ZDQnBiWEJ2Y25Rb1hDSXVMME52WkdWVFlXNWtZbTk0UlhaaGJIVmhkRzl5WENJcExsTmhibVJpYjNoTWIyZG5aWEpjYmlBZ0lDQWdJQ0FnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnSVNGeVpYTjFiSFE3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|
|
119
|
+
//# sourceMappingURL=SwitchGraphNodeExecutor.js.map
|
|
120
|
+
//# sourceMappingURL=SwitchGraphNodeExecutor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph/engine/execution/SwitchGraphNodeExecutor.cjs","sourceRoot":"","sources":["graph/engine/execution/SwitchGraphNodeExecutor.js"],"names":[],"mappings":"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"}
|
|
@@ -30,5 +30,5 @@ __exportStar(require("./CodeGraphNodeExecutor.cjs"), exports);
|
|
|
30
30
|
__exportStar(require("./LogGraphNodeExecutor.cjs"), exports);
|
|
31
31
|
__exportStar(require("./BreakGraphNodeExecutor.cjs"), exports);
|
|
32
32
|
__exportStar(require("./IsolatedVmCodeSandboxEvaluator.cjs"), exports);
|
|
33
|
-
//# sourceMappingURL=
|
|
34
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
34
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph/engine/execution/index.cjs","sourceRoot":"","sources":["graph/engine/execution/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,6DAA2C;AAC3C,yDAAuC;AACvC,4DAA0C;AAC1C,2DAAyC;AACzC,4DAA0C;AAC1C,4DAA0C;AAC1C,+DAA6C;AAC7C,6DAA2C;AAC3C,4DAA0C;AAC1C,8DAA4C;AAC5C,sEAAoD;AACpD,iCAAiC"}
|
|
@@ -85,5 +85,5 @@ __exportStar(require("./pinning/GraphPinningDependencyResolver.cjs"), exports);
|
|
|
85
85
|
__exportStar(require("./pinning/GraphPinningService.cjs"), exports);
|
|
86
86
|
// Snapshots (TASK-219)
|
|
87
87
|
__exportStar(require("./snapshots/GraphExecutionSnapshotMapper.cjs"), exports);
|
|
88
|
-
//# sourceMappingURL=
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7OztHQVNHO0FBQ0gsOEVBQThFO0FBQzlFLHVEQUFxQztBQUNyQyxpREFBK0I7QUFDL0IsNkNBQTJCO0FBQzNCLGtEQUFnQztBQUNoQyxrRUFBZ0Q7QUFDaEQsOERBQTRDO0FBQzVDLDhEQUE0QztBQUM1QyxrRUFBZ0Q7QUFDaEQsZ0VBQThDO0FBQzlDLDZEQUEyQztBQUMzQyw4REFBNEM7QUFDNUMsaUVBQStDO0FBQy9DLCtEQUE2QztBQUM3QyxrRUFBZ0Q7QUFDaEQscUVBQW1EO0FBQ25ELHlFQUF1RDtBQUN2RCx5RUFBdUQ7QUFDdkQsdUVBQXFEO0FBQ3JELG1FQUFpRDtBQUNqRCxxRUFBbUQ7QUFDbkQsc0VBQW9EO0FBQ3BELHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQseUVBQXVEO0FBQ3ZELHVFQUFxRDtBQUNyRCxzRUFBb0Q7QUFDcEQsd0VBQXNEO0FBQ3RELGdGQUE4RDtBQUM5RCwwRUFBd0Q7QUFDeEQsMEVBQXdEO0FBQ3hELDJEQUF5QztBQUN6Qyw4REFBNEM7QUFDNUMsb0VBQWtEO0FBQ2xELDRFQUEwRDtBQUMxRCw2REFBMkM7QUFDM0MsdUVBQXFEO0FBQ3JELHVFQUFxRDtBQUNyRCx3RUFBc0Q7QUFDdEQsbUVBQWlEO0FBQ2pELHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQsOERBQTRDO0FBQzVDLHdCQUF3QjtBQUN4QiwyRUFBeUQ7QUFDekQsMEVBQXdEO0FBQ3hELHNFQUFvRDtBQUNwRCxtQkFBbUI7QUFDbkIscUVBQW1EO0FBQ25ELDBFQUF3RDtBQUN4RCx1RUFBcUQ7QUFDckQsc0VBQW9EO0FBQ3BELG9FQUFrRDtBQUNsRCxvRUFBa0Q7QUFDbEQseUJBQXlCO0FBQ3pCLG9FQUFrRDtBQUNsRCxrRUFBZ0Q7QUFDaEQsOEVBQTREO0FBQzVELG1FQUFpRDtBQUNqRCx1QkFBdUI7QUFDdkIsOEVBQTREO0FBQzVELDAxTEFBMDFMIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9lbmdpbmVcbiAqIEBzdW1tYXJ5IEdyYXBoIGV4ZWN1dGlvbiBlbmdpbmUgKGJhY2tlbmQtb25seSkuXG4gKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNlIGludGVycHJldGVyIGZvciBEZWNhZiBncmFwaCB3b3JrZmxvd3MuIEV4ZWN1dGVzXG4gKiB3b3JrZmxvd3MgZGVjbGFyZWQgd2l0aCBgQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMvZ3JhcGhgLCBlbWl0cyBldmVudHNcbiAqIHRocm91Z2ggRGVjYWYncyBPYnNlcnZhYmxlIHBpcGVsaW5lLCBzdXBwb3J0cyBzdHJ1Y3R1cmVkIGxvb3BzLCBjb25maWd1cmFibGVcbiAqIHZhbHVlIHN0b3JlcywgYW5kIHBpbm5hYmxlL2NhY2hlYWJsZSBub2Rlcy5cbiAqXG4gKiBSZS1leHBvcnRzIGAuLi9zaGFyZWRgIHNvIGJhY2tlbmQgY29uc3VtZXJzIGhhdmUgYSBzaW5nbGUgaW1wb3J0IHN1cmZhY2UuXG4gKi9cbi8vIFJlLWV4cG9ydCBmcm9udGVuZC1zYWZlIGRlY2xhcmF0aW9ucyBzbyBiYWNrZW5kIGNvbnN1bWVycyBoYXZlIG9uZSBzdXJmYWNlLlxuZXhwb3J0ICogZnJvbSBcIi4vLi4vc2hhcmVkL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMvR3JhcGhFeGVjdXRpb25FcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzL0dyYXBoQ3ljbGVFcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzL0dyYXBoSW5wdXRFcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzL0dyYXBoTG9vcExpbWl0RXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9ycy9HcmFwaFBpbm5pbmdFcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzL0dyYXBoUG9ydEVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMvR3JhcGhTdG9yZUVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMvR3JhcGhUb3BvbG9neUVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMvR3JhcGhCcmVha1NpZ25hbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRzL0dyYXBoRXhlY3V0aW9uRXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50cy9HcmFwaEV4ZWN1dGlvbk9ic2VydmVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudHMvR3JhcGhFeGVjdXRpb25FdmVudEVtaXR0ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50cy9HcmFwaEV4ZWN1dGlvbkV2ZW50RmFjdG9yeS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhlY3V0aW9uL0dyYXBoRXhlY3V0aW9uQ29udGV4dC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhlY3V0aW9uL0dyYXBoTm9kZUV4ZWN1dG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGVjdXRpb24vR3JhcGhFeGVjdXRpb25GcmFtZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhlY3V0aW9uL0dyYXBoRXhlY3V0aW9uUmVzdWx0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGVjdXRpb24vR3JhcGhFeGVjdXRpb25FbmdpbmUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4ZWN1dGlvbi9Db2RlU2FuZGJveEV2YWx1YXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhlY3V0aW9uL1N3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGVjdXRpb24vQ29kZUdyYXBoTm9kZUV4ZWN1dG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGVjdXRpb24vTG9nR3JhcGhOb2RlRXhlY3V0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4ZWN1dGlvbi9CcmVha0dyYXBoTm9kZUV4ZWN1dG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGVjdXRpb24vSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeS9HcmFwaE5vZGVFeGVjdXRvclJlZ2lzdHJ5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeS9HcmFwaE5vZGVFeGVjdXRvclJlc29sdmVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9HcmFwaFZhbHVlS2V5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9HcmFwaENhY2hlZFZhbHVlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9HcmFwaFZhbHVlU3RvcmVBZGFwdGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9Jbk1lbW9yeUdyYXBoVmFsdWVTdG9yZUFkYXB0ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlL0dyYXBoVmFsdWVTdG9yZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhbm5pbmcvR3JhcGhFeGVjdXRpb25QbGFuTm9kZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhbm5pbmcvR3JhcGhFeGVjdXRpb25QbGFuRWRnZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhbm5pbmcvR3JhcGhFeGVjdXRpb25QbGFuTGF5ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYW5uaW5nL0dyYXBoRXhlY3V0aW9uUGxhbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhbm5pbmcvR3JhcGhSZWxhdGlvblJlc29sdmVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFubmluZy9HcmFwaEV4ZWN1dGlvblBsYW5uZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYW5uaW5nL0dyYXBoVG9wb2xvZ3kuanNcIjtcbi8vIFZhbGlkYXRpb24gKFRBU0stMjE1KVxuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdGlvbi9HcmFwaERlZmluaXRpb25WYWxpZGF0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb24vR3JhcGhQb3J0U2NoZW1hUmVzb2x2ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb24vR3JhcGhWYWx1ZVZhbGlkYXRvci5qc1wiO1xuLy8gTG9vcHMgKFRBU0stMjE2KVxuZXhwb3J0ICogZnJvbSBcIi4vbG9vcHMvR3JhcGhDb25kaXRpb25FdmFsdWF0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvb3BzL0NvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvb3BzL0dyYXBoTG9vcEV4ZWN1dGlvbkNvbnRleHQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvb3BzL0ZvcmVhY2hHcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbG9vcHMvV2hpbGVHcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbG9vcHMvVW50aWxHcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuLy8gUGlubmluZyAoVEFTSy0yMTcvMjE4KVxuZXhwb3J0ICogZnJvbSBcIi4vcGlubmluZy9HcmFwaFBpbm5pbmdNZXRhZGF0YS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGlubmluZy9HcmFwaFBpbm5pbmdQb2xpY3kuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Bpbm5pbmcvR3JhcGhQaW5uaW5nRGVwZW5kZW5jeVJlc29sdmVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9waW5uaW5nL0dyYXBoUGlubmluZ1NlcnZpY2UuanNcIjtcbi8vIFNuYXBzaG90cyAoVEFTSy0yMTkpXG5leHBvcnQgKiBmcm9tIFwiLi9zbmFwc2hvdHMvR3JhcGhFeGVjdXRpb25TbmFwc2hvdE1hcHBlci5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WjNKaGNHZ3ZaVzVuYVc1bEwybHVaR1Y0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJPenM3T3pzN096czdSMEZUUnp0QlFVVklMRGhGUVVFNFJUdEJRVU01UlN4eFEwRkJNRUk3UVVGRk1VSXNLMEpCUVRSQ08wRkJRelZDTERKQ1FVRjNRanRCUVVONFFpeG5RMEZCTmtJN1FVRkZOMElzWjBSQlFUWkRPMEZCUXpkRExEUkRRVUY1UXp0QlFVTjZReXcwUTBGQmVVTTdRVUZEZWtNc1owUkJRVFpETzBGQlF6ZERMRGhEUVVFeVF6dEJRVU16UXl3eVEwRkJkME03UVVGRGVFTXNORU5CUVhsRE8wRkJRM3BETEN0RFFVRTBRenRCUVVNMVF5dzJRMEZCTUVNN1FVRkZNVU1zWjBSQlFUWkRPMEZCUXpkRExHMUVRVUZuUkR0QlFVTm9SQ3gxUkVGQmIwUTdRVUZEY0VRc2RVUkJRVzlFTzBGQlJYQkVMSEZFUVVGclJEdEJRVU5zUkN4cFJFRkJPRU03UVVGRE9VTXNiVVJCUVdkRU8wRkJRMmhFTEc5RVFVRnBSRHRCUVVOcVJDeHZSRUZCYVVRN1FVRkRha1FzYjBSQlFXbEVPMEZCUTJwRUxIVkVRVUZ2UkR0QlFVTndSQ3h4UkVGQmEwUTdRVUZEYkVRc2IwUkJRV2xFTzBGQlEycEVMSE5FUVVGdFJEdEJRVU51UkN3NFJFRkJNa1E3UVVGRk0wUXNkMFJCUVhGRU8wRkJRM0pFTEhkRVFVRnhSRHRCUVVWeVJDeDVRMEZCYzBNN1FVRkRkRU1zTkVOQlFYbERPMEZCUTNwRExHdEVRVUVyUXp0QlFVTXZReXd3UkVGQmRVUTdRVUZEZGtRc01rTkJRWGRETzBGQlJYaERMSEZFUVVGclJEdEJRVU5zUkN4eFJFRkJhMFE3UVVGRGJFUXNjMFJCUVcxRU8wRkJRMjVFTEdsRVFVRTRRenRCUVVNNVF5eHZSRUZCYVVRN1FVRkRha1FzYjBSQlFXbEVPMEZCUTJwRUxEUkRRVUY1UXp0QlFVVjZReXgzUWtGQmQwSTdRVUZEZUVJc2VVUkJRWE5FTzBGQlEzUkVMSGRFUVVGeFJEdEJRVU55UkN4dlJFRkJhVVE3UVVGRmFrUXNiVUpCUVcxQ08wRkJRMjVDTEcxRVFVRm5SRHRCUVVOb1JDeDNSRUZCY1VRN1FVRkRja1FzY1VSQlFXdEVPMEZCUTJ4RUxHOUVRVUZwUkR0QlFVTnFSQ3hyUkVGQkswTTdRVUZETDBNc2EwUkJRU3RETzBGQlJTOURMSGxDUVVGNVFqdEJRVU42UWl4clJFRkJLME03UVVGREwwTXNaMFJCUVRaRE8wRkJRemRETERSRVFVRjVSRHRCUVVONlJDeHBSRUZCT0VNN1FVRkZPVU1zZFVKQlFYVkNPMEZCUTNaQ0xEUkVRVUY1UkNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZaM0poY0dndlpXNW5hVzVsWEc0Z0tpQkFjM1Z0YldGeWVTQkhjbUZ3YUNCbGVHVmpkWFJwYjI0Z1pXNW5hVzVsSUNoaVlXTnJaVzVrTFc5dWJIa3BMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsWm1WeVpXNWpaU0JwYm5SbGNuQnlaWFJsY2lCbWIzSWdSR1ZqWVdZZ1ozSmhjR2dnZDI5eWEyWnNiM2R6TGlCRmVHVmpkWFJsYzF4dUlDb2dkMjl5YTJac2IzZHpJR1JsWTJ4aGNtVmtJSGRwZEdnZ1lFQmtaV05oWmkxMGN5OTFhUzFrWldOdmNtRjBiM0p6TDJkeVlYQm9ZQ3dnWlcxcGRITWdaWFpsYm5SelhHNGdLaUIwYUhKdmRXZG9JRVJsWTJGbUozTWdUMkp6WlhKMllXSnNaU0J3YVhCbGJHbHVaU3dnYzNWd2NHOXlkSE1nYzNSeWRXTjBkWEpsWkNCc2IyOXdjeXdnWTI5dVptbG5kWEpoWW14bFhHNGdLaUIyWVd4MVpTQnpkRzl5WlhNc0lHRnVaQ0J3YVc1dVlXSnNaUzlqWVdOb1pXRmliR1VnYm05a1pYTXVYRzRnS2x4dUlDb2dVbVV0Wlhod2IzSjBjeUJnTGk0dmMyaGhjbVZrWUNCemJ5QmlZV05yWlc1a0lHTnZibk4xYldWeWN5Qm9ZWFpsSUdFZ2MybHVaMnhsSUdsdGNHOXlkQ0J6ZFhKbVlXTmxMbHh1SUNvdlhHNWNiaTh2SUZKbExXVjRjRzl5ZENCbWNtOXVkR1Z1WkMxellXWmxJR1JsWTJ4aGNtRjBhVzl1Y3lCemJ5QmlZV05yWlc1a0lHTnZibk4xYldWeWN5Qm9ZWFpsSUc5dVpTQnpkWEptWVdObExseHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHVMM05vWVhKbFpGd2lPMXh1WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5amIyNXpkR0Z1ZEhOY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMM1I1Y0dWelhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlrWldOdmNtRjBiM0p6WENJN1hHNWNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMlZ5Y205eWN5OUhjbUZ3YUVWNFpXTjFkR2x2YmtWeWNtOXlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5bGNuSnZjbk12UjNKaGNHaERlV05zWlVWeWNtOXlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5bGNuSnZjbk12UjNKaGNHaEpibkIxZEVWeWNtOXlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5bGNuSnZjbk12UjNKaGNHaE1iMjl3VEdsdGFYUkZjbkp2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZaWEp5YjNKekwwZHlZWEJvVUdsdWJtbHVaMFZ5Y205eVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlsY25KdmNuTXZSM0poY0doUWIzSjBSWEp5YjNKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMlZ5Y205eWN5OUhjbUZ3YUZOMGIzSmxSWEp5YjNKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMlZ5Y205eWN5OUhjbUZ3YUZSdmNHOXNiMmQ1UlhKeWIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDJWeWNtOXljeTlIY21Gd2FFSnlaV0ZyVTJsbmJtRnNYQ0k3WEc1Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyVjJaVzUwY3k5SGNtRndhRVY0WldOMWRHbHZia1YyWlc1MFhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlsZG1WdWRITXZSM0poY0doRmVHVmpkWFJwYjI1UFluTmxjblpsY2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZaWFpsYm5SekwwZHlZWEJvUlhobFkzVjBhVzl1UlhabGJuUkZiV2wwZEdWeVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlsZG1WdWRITXZSM0poY0doRmVHVmpkWFJwYjI1RmRtVnVkRVpoWTNSdmNubGNJanRjYmx4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlpYaGxZM1YwYVc5dUwwZHlZWEJvUlhobFkzVjBhVzl1UTI5dWRHVjRkRndpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlpYaGxZM1YwYVc5dUwwZHlZWEJvVG05a1pVVjRaV04xZEc5eVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlsZUdWamRYUnBiMjR2UjNKaGNHaEZlR1ZqZFhScGIyNUdjbUZ0WlZ3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZaWGhsWTNWMGFXOXVMMGR5WVhCb1JYaGxZM1YwYVc5dVVtVnpkV3gwWENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOWxlR1ZqZFhScGIyNHZSM0poY0doRmVHVmpkWFJwYjI1RmJtZHBibVZjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyVjRaV04xZEdsdmJpOURiMlJsVTJGdVpHSnZlRVYyWVd4MVlYUnZjbHdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlpYaGxZM1YwYVc5dUwxTjNhWFJqYUVkeVlYQm9UbTlrWlVWNFpXTjFkRzl5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOWxlR1ZqZFhScGIyNHZRMjlrWlVkeVlYQm9UbTlrWlVWNFpXTjFkRzl5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOWxlR1ZqZFhScGIyNHZURzluUjNKaGNHaE9iMlJsUlhobFkzVjBiM0pjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyVjRaV04xZEdsdmJpOUNjbVZoYTBkeVlYQm9UbTlrWlVWNFpXTjFkRzl5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOWxlR1ZqZFhScGIyNHZTWE52YkdGMFpXUldiVU52WkdWVFlXNWtZbTk0UlhaaGJIVmhkRzl5WENJN1hHNWNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMM0psWjJsemRISjVMMGR5WVhCb1RtOWtaVVY0WldOMWRHOXlVbVZuYVhOMGNubGNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDNKbFoybHpkSEo1TDBkeVlYQm9UbTlrWlVWNFpXTjFkRzl5VW1WemIyeDJaWEpjSWp0Y2JseHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZjM1J2Y21VdlIzSmhjR2hXWVd4MVpVdGxlVndpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dmMzUnZjbVV2UjNKaGNHaERZV05vWldSV1lXeDFaVndpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dmMzUnZjbVV2UjNKaGNHaFdZV3gxWlZOMGIzSmxRV1JoY0hSbGNsd2lPMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2YzNSdmNtVXZTVzVOWlcxdmNubEhjbUZ3YUZaaGJIVmxVM1J2Y21WQlpHRndkR1Z5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOXpkRzl5WlM5SGNtRndhRlpoYkhWbFUzUnZjbVZjSWp0Y2JseHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZjR3hoYm01cGJtY3ZSM0poY0doRmVHVmpkWFJwYjI1UWJHRnVUbTlrWlZ3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZjR3hoYm01cGJtY3ZSM0poY0doRmVHVmpkWFJwYjI1UWJHRnVSV1JuWlZ3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZjR3hoYm01cGJtY3ZSM0poY0doRmVHVmpkWFJwYjI1UWJHRnVUR0Y1WlhKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMM0JzWVc1dWFXNW5MMGR5WVhCb1JYaGxZM1YwYVc5dVVHeGhibHdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dmNHeGhibTVwYm1jdlIzSmhjR2hTWld4aGRHbHZibEpsYzI5c2RtVnlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5d2JHRnVibWx1Wnk5SGNtRndhRVY0WldOMWRHbHZibEJzWVc1dVpYSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDNCc1lXNXVhVzVuTDBkeVlYQm9WRzl3YjJ4dlozbGNJanRjYmx4dUx5OGdWbUZzYVdSaGRHbHZiaUFvVkVGVFN5MHlNVFVwWEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5MllXeHBaR0YwYVc5dUwwZHlZWEJvUkdWbWFXNXBkR2x2YmxaaGJHbGtZWFJ2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZkbUZzYVdSaGRHbHZiaTlIY21Gd2FGQnZjblJUWTJobGJXRlNaWE52YkhabGNsd2lPMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2ZG1Gc2FXUmhkR2x2Ymk5SGNtRndhRlpoYkhWbFZtRnNhV1JoZEc5eVhDSTdYRzVjYmk4dklFeHZiM0J6SUNoVVFWTkxMVEl4TmlsY2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyeHZiM0J6TDBkeVlYQm9RMjl1WkdsMGFXOXVSWFpoYkhWaGRHOXlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5c2IyOXdjeTlEYjI1a2FYUnBiMjVGZUhCeVpYTnphVzl1UlhaaGJIVmhkRzl5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOXNiMjl3Y3k5SGNtRndhRXh2YjNCRmVHVmpkWFJwYjI1RGIyNTBaWGgwWENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOXNiMjl3Y3k5R2IzSmxZV05vUjNKaGNHaE9iMlJsUlhobFkzVjBiM0pjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyeHZiM0J6TDFkb2FXeGxSM0poY0doT2IyUmxSWGhsWTNWMGIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDJ4dmIzQnpMMVZ1ZEdsc1IzSmhjR2hPYjJSbFJYaGxZM1YwYjNKY0lqdGNibHh1THk4Z1VHbHVibWx1WnlBb1ZFRlRTeTB5TVRjdk1qRTRLVnh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2Y0dsdWJtbHVaeTlIY21Gd2FGQnBibTVwYm1kTlpYUmhaR0YwWVZ3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZjR2x1Ym1sdVp5OUhjbUZ3YUZCcGJtNXBibWRRYjJ4cFkzbGNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDNCcGJtNXBibWN2UjNKaGNHaFFhVzV1YVc1blJHVndaVzVrWlc1amVWSmxjMjlzZG1WeVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTl3YVc1dWFXNW5MMGR5WVhCb1VHbHVibWx1WjFObGNuWnBZMlZjSWp0Y2JseHVMeThnVTI1aGNITm9iM1J6SUNoVVFWTkxMVEl4T1NsY2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwzTnVZWEJ6YUc5MGN5OUhjbUZ3YUVWNFpXTjFkR2x2YmxOdVlYQnphRzkwVFdGd2NHVnlYQ0k3WEc0aVhYMD0iXX0=
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
89
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph/engine/index.cjs","sourceRoot":"","sources":["graph/engine/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,8EAA8E;AAC9E,uDAAqC;AACrC,iDAA+B;AAC/B,6CAA2B;AAC3B,kDAAgC;AAChC,kEAAgD;AAChD,8DAA4C;AAC5C,8DAA4C;AAC5C,kEAAgD;AAChD,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,kEAAgD;AAChD,qEAAmD;AACnD,yEAAuD;AACvD,yEAAuD;AACvD,uEAAqD;AACrD,mEAAiD;AACjD,qEAAmD;AACnD,sEAAoD;AACpD,sEAAoD;AACpD,sEAAoD;AACpD,yEAAuD;AACvD,uEAAqD;AACrD,sEAAoD;AACpD,wEAAsD;AACtD,gFAA8D;AAC9D,0EAAwD;AACxD,0EAAwD;AACxD,2DAAyC;AACzC,8DAA4C;AAC5C,oEAAkD;AAClD,4EAA0D;AAC1D,6DAA2C;AAC3C,uEAAqD;AACrD,uEAAqD;AACrD,wEAAsD;AACtD,mEAAiD;AACjD,sEAAoD;AACpD,sEAAoD;AACpD,8DAA4C;AAC5C,wBAAwB;AACxB,2EAAyD;AACzD,0EAAwD;AACxD,sEAAoD;AACpD,mBAAmB;AACnB,qEAAmD;AACnD,0EAAwD;AACxD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,oEAAkD;AAClD,yBAAyB;AACzB,oEAAkD;AAClD,kEAAgD;AAChD,8EAA4D;AAC5D,mEAAiD;AACjD,uBAAuB;AACvB,8EAA4D;AAC5D,iCAAiC"}
|