@effect-aws/client-kms 1.2.0 → 1.9.3
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/Errors/package.json +6 -0
- package/KMSClientInstance/package.json +6 -0
- package/KMSService/package.json +6 -0
- package/KMSServiceConfig/package.json +6 -0
- package/{lib → dist/cjs}/Errors.d.ts +7 -12
- package/dist/cjs/Errors.d.ts.map +1 -0
- package/dist/cjs/Errors.js +56 -0
- package/dist/cjs/Errors.js.map +1 -0
- package/dist/cjs/KMSClientInstance.d.ts +24 -0
- package/dist/cjs/KMSClientInstance.d.ts.map +1 -0
- package/dist/cjs/KMSClientInstance.js +50 -0
- package/dist/cjs/KMSClientInstance.js.map +1 -0
- package/dist/cjs/KMSService.d.ts +253 -0
- package/dist/cjs/KMSService.d.ts.map +1 -0
- package/dist/cjs/KMSService.js +112 -0
- package/dist/cjs/KMSService.js.map +1 -0
- package/dist/cjs/KMSServiceConfig.d.ts +25 -0
- package/dist/cjs/KMSServiceConfig.d.ts.map +1 -0
- package/dist/cjs/KMSServiceConfig.js +35 -0
- package/dist/cjs/KMSServiceConfig.js.map +1 -0
- package/dist/cjs/index.d.ts +39 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +56 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/dts/Errors.d.ts +55 -0
- package/dist/dts/Errors.d.ts.map +1 -0
- package/dist/dts/KMSClientInstance.d.ts +24 -0
- package/dist/dts/KMSClientInstance.d.ts.map +1 -0
- package/dist/dts/KMSService.d.ts +253 -0
- package/dist/dts/KMSService.d.ts.map +1 -0
- package/dist/dts/KMSServiceConfig.d.ts +25 -0
- package/dist/dts/KMSServiceConfig.d.ts.map +1 -0
- package/dist/dts/index.d.ts +39 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/esm/Errors.js +53 -0
- package/dist/esm/Errors.js.map +1 -0
- package/dist/esm/KMSClientInstance.js +23 -0
- package/dist/esm/KMSClientInstance.js.map +1 -0
- package/dist/esm/KMSService.js +85 -0
- package/dist/esm/KMSService.js.map +1 -0
- package/dist/esm/KMSServiceConfig.js +31 -0
- package/dist/esm/KMSServiceConfig.js.map +1 -0
- package/dist/esm/index.js +27 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +60 -43
- package/src/Errors.ts +159 -0
- package/src/KMSClientInstance.ts +33 -0
- package/src/KMSService.ts +1231 -0
- package/src/KMSServiceConfig.ts +51 -0
- package/src/index.ts +44 -0
- package/CHANGELOG.md +0 -35
- package/docgen.json +0 -8
- package/lib/Errors.js +0 -56
- package/lib/KMSClientInstance.d.ts +0 -31
- package/lib/KMSClientInstance.js +0 -57
- package/lib/KMSClientInstanceConfig.d.ts +0 -23
- package/lib/KMSClientInstanceConfig.js +0 -44
- package/lib/KMSService.d.ts +0 -330
- package/lib/KMSService.js +0 -141
- package/lib/esm/Errors.js +0 -53
- package/lib/esm/KMSClientInstance.js +0 -30
- package/lib/esm/KMSClientInstanceConfig.js +0 -40
- package/lib/esm/KMSService.js +0 -137
- package/lib/esm/index.js +0 -5
- package/lib/index.d.ts +0 -4
- package/lib/index.js +0 -21
- package/project.json +0 -77
- package/vitest.config.ts +0 -3
package/lib/KMSService.d.ts
DELETED
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import { type KMSClient, type KMSClientConfig, type CancelKeyDeletionCommandInput, type CancelKeyDeletionCommandOutput, type ConnectCustomKeyStoreCommandInput, type ConnectCustomKeyStoreCommandOutput, type CreateAliasCommandInput, type CreateAliasCommandOutput, type CreateCustomKeyStoreCommandInput, type CreateCustomKeyStoreCommandOutput, type CreateGrantCommandInput, type CreateGrantCommandOutput, type CreateKeyCommandInput, type CreateKeyCommandOutput, type DecryptCommandInput, type DecryptCommandOutput, type DeleteAliasCommandInput, type DeleteAliasCommandOutput, type DeleteCustomKeyStoreCommandInput, type DeleteCustomKeyStoreCommandOutput, type DeleteImportedKeyMaterialCommandInput, type DeleteImportedKeyMaterialCommandOutput, type DeriveSharedSecretCommandInput, type DeriveSharedSecretCommandOutput, type DescribeCustomKeyStoresCommandInput, type DescribeCustomKeyStoresCommandOutput, type DescribeKeyCommandInput, type DescribeKeyCommandOutput, type DisableKeyCommandInput, type DisableKeyCommandOutput, type DisableKeyRotationCommandInput, type DisableKeyRotationCommandOutput, type DisconnectCustomKeyStoreCommandInput, type DisconnectCustomKeyStoreCommandOutput, type EnableKeyCommandInput, type EnableKeyCommandOutput, type EnableKeyRotationCommandInput, type EnableKeyRotationCommandOutput, type EncryptCommandInput, type EncryptCommandOutput, type GenerateDataKeyCommandInput, type GenerateDataKeyCommandOutput, type GenerateDataKeyPairCommandInput, type GenerateDataKeyPairCommandOutput, type GenerateDataKeyPairWithoutPlaintextCommandInput, type GenerateDataKeyPairWithoutPlaintextCommandOutput, type GenerateDataKeyWithoutPlaintextCommandInput, type GenerateDataKeyWithoutPlaintextCommandOutput, type GenerateMacCommandInput, type GenerateMacCommandOutput, type GenerateRandomCommandInput, type GenerateRandomCommandOutput, type GetKeyPolicyCommandInput, type GetKeyPolicyCommandOutput, type GetKeyRotationStatusCommandInput, type GetKeyRotationStatusCommandOutput, type GetParametersForImportCommandInput, type GetParametersForImportCommandOutput, type GetPublicKeyCommandInput, type GetPublicKeyCommandOutput, type ImportKeyMaterialCommandInput, type ImportKeyMaterialCommandOutput, type ListAliasesCommandInput, type ListAliasesCommandOutput, type ListGrantsCommandInput, type ListGrantsCommandOutput, type ListKeyPoliciesCommandInput, type ListKeyPoliciesCommandOutput, type ListKeyRotationsCommandInput, type ListKeyRotationsCommandOutput, type ListKeysCommandInput, type ListKeysCommandOutput, type ListResourceTagsCommandInput, type ListResourceTagsCommandOutput, type ListRetirableGrantsCommandInput, type ListRetirableGrantsCommandOutput, type PutKeyPolicyCommandInput, type PutKeyPolicyCommandOutput, type ReEncryptCommandInput, type ReEncryptCommandOutput, type ReplicateKeyCommandInput, type ReplicateKeyCommandOutput, type RetireGrantCommandInput, type RetireGrantCommandOutput, type RevokeGrantCommandInput, type RevokeGrantCommandOutput, type RotateKeyOnDemandCommandInput, type RotateKeyOnDemandCommandOutput, type ScheduleKeyDeletionCommandInput, type ScheduleKeyDeletionCommandOutput, type SignCommandInput, type SignCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAliasCommandInput, type UpdateAliasCommandOutput, type UpdateCustomKeyStoreCommandInput, type UpdateCustomKeyStoreCommandOutput, type UpdateKeyDescriptionCommandInput, type UpdateKeyDescriptionCommandOutput, type UpdatePrimaryRegionCommandInput, type UpdatePrimaryRegionCommandOutput, type VerifyCommandInput, type VerifyCommandOutput, type VerifyMacCommandInput, type VerifyMacCommandOutput } from "@aws-sdk/client-kms";
|
|
5
|
-
import { Effect, Layer } from "effect";
|
|
6
|
-
import { AlreadyExistsError, CloudHsmClusterInUseError, CloudHsmClusterInvalidConfigurationError, CloudHsmClusterNotActiveError, CloudHsmClusterNotFoundError, CloudHsmClusterNotRelatedError, ConflictError, CustomKeyStoreHasCMKsError, CustomKeyStoreInvalidStateError, CustomKeyStoreNameInUseError, CustomKeyStoreNotFoundError, DependencyTimeoutError, DisabledError, DryRunOperationError, ExpiredImportTokenError, IncorrectKeyError, IncorrectKeyMaterialError, IncorrectTrustAnchorError, InvalidAliasNameError, InvalidArnError, InvalidCiphertextError, InvalidGrantIdError, InvalidGrantTokenError, InvalidImportTokenError, InvalidKeyUsageError, InvalidMarkerError, KMSInternalError, KMSInvalidMacError, KMSInvalidSignatureError, KMSInvalidStateError, KeyUnavailableError, LimitExceededError, MalformedPolicyDocumentError, NotFoundError, TagError, UnsupportedOperationError, XksKeyAlreadyInUseError, XksKeyInvalidConfigurationError, XksKeyNotFoundError, XksProxyIncorrectAuthenticationCredentialError, XksProxyInvalidConfigurationError, XksProxyInvalidResponseError, XksProxyUriEndpointInUseError, XksProxyUriInUseError, XksProxyUriUnreachableError, XksProxyVpcEndpointServiceInUseError, XksProxyVpcEndpointServiceInvalidConfigurationError, XksProxyVpcEndpointServiceNotFoundError, SdkError } from "./Errors";
|
|
7
|
-
import { KMSClientInstance } from "./KMSClientInstance";
|
|
8
|
-
import { KMSClientInstanceConfig } from "./KMSClientInstanceConfig";
|
|
9
|
-
/**
|
|
10
|
-
* @since 1.0.0
|
|
11
|
-
*/
|
|
12
|
-
export interface HttpHandlerOptions {
|
|
13
|
-
/**
|
|
14
|
-
* The maximum time in milliseconds that the connection phase of a request
|
|
15
|
-
* may take before the connection attempt is abandoned.
|
|
16
|
-
*/
|
|
17
|
-
requestTimeout?: number;
|
|
18
|
-
}
|
|
19
|
-
interface KMSService$ {
|
|
20
|
-
readonly _: unique symbol;
|
|
21
|
-
/**
|
|
22
|
-
* @see {@link CancelKeyDeletionCommand}
|
|
23
|
-
*/
|
|
24
|
-
cancelKeyDeletion(args: CancelKeyDeletionCommandInput, options?: HttpHandlerOptions): Effect.Effect<CancelKeyDeletionCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
25
|
-
/**
|
|
26
|
-
* @see {@link ConnectCustomKeyStoreCommand}
|
|
27
|
-
*/
|
|
28
|
-
connectCustomKeyStore(args: ConnectCustomKeyStoreCommandInput, options?: HttpHandlerOptions): Effect.Effect<ConnectCustomKeyStoreCommandOutput, SdkError | CloudHsmClusterInvalidConfigurationError | CloudHsmClusterNotActiveError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | KMSInternalError>;
|
|
29
|
-
/**
|
|
30
|
-
* @see {@link CreateAliasCommand}
|
|
31
|
-
*/
|
|
32
|
-
createAlias(args: CreateAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateAliasCommandOutput, SdkError | AlreadyExistsError | DependencyTimeoutError | InvalidAliasNameError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError>;
|
|
33
|
-
/**
|
|
34
|
-
* @see {@link CreateCustomKeyStoreCommand}
|
|
35
|
-
*/
|
|
36
|
-
createCustomKeyStore(args: CreateCustomKeyStoreCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateCustomKeyStoreCommandOutput, SdkError | CloudHsmClusterInUseError | CloudHsmClusterInvalidConfigurationError | CloudHsmClusterNotActiveError | CloudHsmClusterNotFoundError | CustomKeyStoreNameInUseError | IncorrectTrustAnchorError | KMSInternalError | LimitExceededError | XksProxyIncorrectAuthenticationCredentialError | XksProxyInvalidConfigurationError | XksProxyInvalidResponseError | XksProxyUriEndpointInUseError | XksProxyUriInUseError | XksProxyUriUnreachableError | XksProxyVpcEndpointServiceInUseError | XksProxyVpcEndpointServiceInvalidConfigurationError | XksProxyVpcEndpointServiceNotFoundError>;
|
|
37
|
-
/**
|
|
38
|
-
* @see {@link CreateGrantCommand}
|
|
39
|
-
*/
|
|
40
|
-
createGrant(args: CreateGrantCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateGrantCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidArnError | InvalidGrantTokenError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError>;
|
|
41
|
-
/**
|
|
42
|
-
* @see {@link CreateKeyCommand}
|
|
43
|
-
*/
|
|
44
|
-
createKey(args: CreateKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateKeyCommandOutput, SdkError | CloudHsmClusterInvalidConfigurationError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | DependencyTimeoutError | InvalidArnError | KMSInternalError | LimitExceededError | MalformedPolicyDocumentError | TagError | UnsupportedOperationError | XksKeyAlreadyInUseError | XksKeyInvalidConfigurationError | XksKeyNotFoundError>;
|
|
45
|
-
/**
|
|
46
|
-
* @see {@link DecryptCommand}
|
|
47
|
-
*/
|
|
48
|
-
decrypt(args: DecryptCommandInput, options?: HttpHandlerOptions): Effect.Effect<DecryptCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | IncorrectKeyError | InvalidCiphertextError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
49
|
-
/**
|
|
50
|
-
* @see {@link DeleteAliasCommand}
|
|
51
|
-
*/
|
|
52
|
-
deleteAlias(args: DeleteAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteAliasCommandOutput, SdkError | DependencyTimeoutError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
53
|
-
/**
|
|
54
|
-
* @see {@link DeleteCustomKeyStoreCommand}
|
|
55
|
-
*/
|
|
56
|
-
deleteCustomKeyStore(args: DeleteCustomKeyStoreCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteCustomKeyStoreCommandOutput, SdkError | CustomKeyStoreHasCMKsError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | KMSInternalError>;
|
|
57
|
-
/**
|
|
58
|
-
* @see {@link DeleteImportedKeyMaterialCommand}
|
|
59
|
-
*/
|
|
60
|
-
deleteImportedKeyMaterial(args: DeleteImportedKeyMaterialCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteImportedKeyMaterialCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
61
|
-
/**
|
|
62
|
-
* @see {@link DeriveSharedSecretCommand}
|
|
63
|
-
*/
|
|
64
|
-
deriveSharedSecret(args: DeriveSharedSecretCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeriveSharedSecretCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
65
|
-
/**
|
|
66
|
-
* @see {@link DescribeCustomKeyStoresCommand}
|
|
67
|
-
*/
|
|
68
|
-
describeCustomKeyStores(args: DescribeCustomKeyStoresCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeCustomKeyStoresCommandOutput, SdkError | CustomKeyStoreNotFoundError | InvalidMarkerError | KMSInternalError>;
|
|
69
|
-
/**
|
|
70
|
-
* @see {@link DescribeKeyCommand}
|
|
71
|
-
*/
|
|
72
|
-
describeKey(args: DescribeKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeKeyCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | NotFoundError>;
|
|
73
|
-
/**
|
|
74
|
-
* @see {@link DisableKeyCommand}
|
|
75
|
-
*/
|
|
76
|
-
disableKey(args: DisableKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<DisableKeyCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
77
|
-
/**
|
|
78
|
-
* @see {@link DisableKeyRotationCommand}
|
|
79
|
-
*/
|
|
80
|
-
disableKeyRotation(args: DisableKeyRotationCommandInput, options?: HttpHandlerOptions): Effect.Effect<DisableKeyRotationCommandOutput, SdkError | DependencyTimeoutError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
81
|
-
/**
|
|
82
|
-
* @see {@link DisconnectCustomKeyStoreCommand}
|
|
83
|
-
*/
|
|
84
|
-
disconnectCustomKeyStore(args: DisconnectCustomKeyStoreCommandInput, options?: HttpHandlerOptions): Effect.Effect<DisconnectCustomKeyStoreCommandOutput, SdkError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | KMSInternalError>;
|
|
85
|
-
/**
|
|
86
|
-
* @see {@link EnableKeyCommand}
|
|
87
|
-
*/
|
|
88
|
-
enableKey(args: EnableKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<EnableKeyCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError>;
|
|
89
|
-
/**
|
|
90
|
-
* @see {@link EnableKeyRotationCommand}
|
|
91
|
-
*/
|
|
92
|
-
enableKeyRotation(args: EnableKeyRotationCommandInput, options?: HttpHandlerOptions): Effect.Effect<EnableKeyRotationCommandOutput, SdkError | DependencyTimeoutError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
93
|
-
/**
|
|
94
|
-
* @see {@link EncryptCommand}
|
|
95
|
-
*/
|
|
96
|
-
encrypt(args: EncryptCommandInput, options?: HttpHandlerOptions): Effect.Effect<EncryptCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
97
|
-
/**
|
|
98
|
-
* @see {@link GenerateDataKeyCommand}
|
|
99
|
-
*/
|
|
100
|
-
generateDataKey(args: GenerateDataKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<GenerateDataKeyCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
101
|
-
/**
|
|
102
|
-
* @see {@link GenerateDataKeyPairCommand}
|
|
103
|
-
*/
|
|
104
|
-
generateDataKeyPair(args: GenerateDataKeyPairCommandInput, options?: HttpHandlerOptions): Effect.Effect<GenerateDataKeyPairCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
105
|
-
/**
|
|
106
|
-
* @see {@link GenerateDataKeyPairWithoutPlaintextCommand}
|
|
107
|
-
*/
|
|
108
|
-
generateDataKeyPairWithoutPlaintext(args: GenerateDataKeyPairWithoutPlaintextCommandInput, options?: HttpHandlerOptions): Effect.Effect<GenerateDataKeyPairWithoutPlaintextCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
109
|
-
/**
|
|
110
|
-
* @see {@link GenerateDataKeyWithoutPlaintextCommand}
|
|
111
|
-
*/
|
|
112
|
-
generateDataKeyWithoutPlaintext(args: GenerateDataKeyWithoutPlaintextCommandInput, options?: HttpHandlerOptions): Effect.Effect<GenerateDataKeyWithoutPlaintextCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
113
|
-
/**
|
|
114
|
-
* @see {@link GenerateMacCommand}
|
|
115
|
-
*/
|
|
116
|
-
generateMac(args: GenerateMacCommandInput, options?: HttpHandlerOptions): Effect.Effect<GenerateMacCommandOutput, SdkError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
117
|
-
/**
|
|
118
|
-
* @see {@link GenerateRandomCommand}
|
|
119
|
-
*/
|
|
120
|
-
generateRandom(args: GenerateRandomCommandInput, options?: HttpHandlerOptions): Effect.Effect<GenerateRandomCommandOutput, SdkError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | DependencyTimeoutError | KMSInternalError | UnsupportedOperationError>;
|
|
121
|
-
/**
|
|
122
|
-
* @see {@link GetKeyPolicyCommand}
|
|
123
|
-
*/
|
|
124
|
-
getKeyPolicy(args: GetKeyPolicyCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetKeyPolicyCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
125
|
-
/**
|
|
126
|
-
* @see {@link GetKeyRotationStatusCommand}
|
|
127
|
-
*/
|
|
128
|
-
getKeyRotationStatus(args: GetKeyRotationStatusCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetKeyRotationStatusCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
129
|
-
/**
|
|
130
|
-
* @see {@link GetParametersForImportCommand}
|
|
131
|
-
*/
|
|
132
|
-
getParametersForImport(args: GetParametersForImportCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetParametersForImportCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
133
|
-
/**
|
|
134
|
-
* @see {@link GetPublicKeyCommand}
|
|
135
|
-
*/
|
|
136
|
-
getPublicKey(args: GetPublicKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetPublicKeyCommandOutput, SdkError | DependencyTimeoutError | DisabledError | InvalidArnError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
137
|
-
/**
|
|
138
|
-
* @see {@link ImportKeyMaterialCommand}
|
|
139
|
-
*/
|
|
140
|
-
importKeyMaterial(args: ImportKeyMaterialCommandInput, options?: HttpHandlerOptions): Effect.Effect<ImportKeyMaterialCommandOutput, SdkError | DependencyTimeoutError | ExpiredImportTokenError | IncorrectKeyMaterialError | InvalidArnError | InvalidCiphertextError | InvalidImportTokenError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
141
|
-
/**
|
|
142
|
-
* @see {@link ListAliasesCommand}
|
|
143
|
-
*/
|
|
144
|
-
listAliases(args: ListAliasesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListAliasesCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | InvalidMarkerError | KMSInternalError | NotFoundError>;
|
|
145
|
-
/**
|
|
146
|
-
* @see {@link ListGrantsCommand}
|
|
147
|
-
*/
|
|
148
|
-
listGrants(args: ListGrantsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListGrantsCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | InvalidGrantIdError | InvalidMarkerError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
149
|
-
/**
|
|
150
|
-
* @see {@link ListKeyPoliciesCommand}
|
|
151
|
-
*/
|
|
152
|
-
listKeyPolicies(args: ListKeyPoliciesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListKeyPoliciesCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
153
|
-
/**
|
|
154
|
-
* @see {@link ListKeyRotationsCommand}
|
|
155
|
-
*/
|
|
156
|
-
listKeyRotations(args: ListKeyRotationsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListKeyRotationsCommandOutput, SdkError | InvalidArnError | InvalidMarkerError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
157
|
-
/**
|
|
158
|
-
* @see {@link ListKeysCommand}
|
|
159
|
-
*/
|
|
160
|
-
listKeys(args: ListKeysCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListKeysCommandOutput, SdkError | DependencyTimeoutError | InvalidMarkerError | KMSInternalError>;
|
|
161
|
-
/**
|
|
162
|
-
* @see {@link ListResourceTagsCommand}
|
|
163
|
-
*/
|
|
164
|
-
listResourceTags(args: ListResourceTagsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListResourceTagsCommandOutput, SdkError | InvalidArnError | InvalidMarkerError | KMSInternalError | NotFoundError>;
|
|
165
|
-
/**
|
|
166
|
-
* @see {@link ListRetirableGrantsCommand}
|
|
167
|
-
*/
|
|
168
|
-
listRetirableGrants(args: ListRetirableGrantsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListRetirableGrantsCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | InvalidMarkerError | KMSInternalError | NotFoundError>;
|
|
169
|
-
/**
|
|
170
|
-
* @see {@link PutKeyPolicyCommand}
|
|
171
|
-
*/
|
|
172
|
-
putKeyPolicy(args: PutKeyPolicyCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutKeyPolicyCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | MalformedPolicyDocumentError | NotFoundError | UnsupportedOperationError>;
|
|
173
|
-
/**
|
|
174
|
-
* @see {@link ReEncryptCommand}
|
|
175
|
-
*/
|
|
176
|
-
reEncrypt(args: ReEncryptCommandInput, options?: HttpHandlerOptions): Effect.Effect<ReEncryptCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | IncorrectKeyError | InvalidCiphertextError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
177
|
-
/**
|
|
178
|
-
* @see {@link ReplicateKeyCommand}
|
|
179
|
-
*/
|
|
180
|
-
replicateKey(args: ReplicateKeyCommandInput, options?: HttpHandlerOptions): Effect.Effect<ReplicateKeyCommandOutput, SdkError | AlreadyExistsError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | MalformedPolicyDocumentError | NotFoundError | TagError | UnsupportedOperationError>;
|
|
181
|
-
/**
|
|
182
|
-
* @see {@link RetireGrantCommand}
|
|
183
|
-
*/
|
|
184
|
-
retireGrant(args: RetireGrantCommandInput, options?: HttpHandlerOptions): Effect.Effect<RetireGrantCommandOutput, SdkError | DependencyTimeoutError | DryRunOperationError | InvalidArnError | InvalidGrantIdError | InvalidGrantTokenError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
185
|
-
/**
|
|
186
|
-
* @see {@link RevokeGrantCommand}
|
|
187
|
-
*/
|
|
188
|
-
revokeGrant(args: RevokeGrantCommandInput, options?: HttpHandlerOptions): Effect.Effect<RevokeGrantCommandOutput, SdkError | DependencyTimeoutError | DryRunOperationError | InvalidArnError | InvalidGrantIdError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
189
|
-
/**
|
|
190
|
-
* @see {@link RotateKeyOnDemandCommand}
|
|
191
|
-
*/
|
|
192
|
-
rotateKeyOnDemand(args: RotateKeyOnDemandCommandInput, options?: HttpHandlerOptions): Effect.Effect<RotateKeyOnDemandCommandOutput, SdkError | ConflictError | DependencyTimeoutError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | UnsupportedOperationError>;
|
|
193
|
-
/**
|
|
194
|
-
* @see {@link ScheduleKeyDeletionCommand}
|
|
195
|
-
*/
|
|
196
|
-
scheduleKeyDeletion(args: ScheduleKeyDeletionCommandInput, options?: HttpHandlerOptions): Effect.Effect<ScheduleKeyDeletionCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
197
|
-
/**
|
|
198
|
-
* @see {@link SignCommand}
|
|
199
|
-
*/
|
|
200
|
-
sign(args: SignCommandInput, options?: HttpHandlerOptions): Effect.Effect<SignCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
201
|
-
/**
|
|
202
|
-
* @see {@link TagResourceCommand}
|
|
203
|
-
*/
|
|
204
|
-
tagResource(args: TagResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<TagResourceCommandOutput, SdkError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | TagError>;
|
|
205
|
-
/**
|
|
206
|
-
* @see {@link UntagResourceCommand}
|
|
207
|
-
*/
|
|
208
|
-
untagResource(args: UntagResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<UntagResourceCommandOutput, SdkError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | TagError>;
|
|
209
|
-
/**
|
|
210
|
-
* @see {@link UpdateAliasCommand}
|
|
211
|
-
*/
|
|
212
|
-
updateAlias(args: UpdateAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateAliasCommandOutput, SdkError | DependencyTimeoutError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError>;
|
|
213
|
-
/**
|
|
214
|
-
* @see {@link UpdateCustomKeyStoreCommand}
|
|
215
|
-
*/
|
|
216
|
-
updateCustomKeyStore(args: UpdateCustomKeyStoreCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateCustomKeyStoreCommandOutput, SdkError | CloudHsmClusterInvalidConfigurationError | CloudHsmClusterNotActiveError | CloudHsmClusterNotFoundError | CloudHsmClusterNotRelatedError | CustomKeyStoreInvalidStateError | CustomKeyStoreNameInUseError | CustomKeyStoreNotFoundError | KMSInternalError | XksProxyIncorrectAuthenticationCredentialError | XksProxyInvalidConfigurationError | XksProxyInvalidResponseError | XksProxyUriEndpointInUseError | XksProxyUriInUseError | XksProxyUriUnreachableError | XksProxyVpcEndpointServiceInUseError | XksProxyVpcEndpointServiceInvalidConfigurationError | XksProxyVpcEndpointServiceNotFoundError>;
|
|
217
|
-
/**
|
|
218
|
-
* @see {@link UpdateKeyDescriptionCommand}
|
|
219
|
-
*/
|
|
220
|
-
updateKeyDescription(args: UpdateKeyDescriptionCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateKeyDescriptionCommandOutput, SdkError | DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError>;
|
|
221
|
-
/**
|
|
222
|
-
* @see {@link UpdatePrimaryRegionCommand}
|
|
223
|
-
*/
|
|
224
|
-
updatePrimaryRegion(args: UpdatePrimaryRegionCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdatePrimaryRegionCommandOutput, SdkError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError>;
|
|
225
|
-
/**
|
|
226
|
-
* @see {@link VerifyCommand}
|
|
227
|
-
*/
|
|
228
|
-
verify(args: VerifyCommandInput, options?: HttpHandlerOptions): Effect.Effect<VerifyCommandOutput, SdkError | DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidSignatureError | KMSInvalidStateError | NotFoundError>;
|
|
229
|
-
/**
|
|
230
|
-
* @see {@link VerifyMacCommand}
|
|
231
|
-
*/
|
|
232
|
-
verifyMac(args: VerifyMacCommandInput, options?: HttpHandlerOptions): Effect.Effect<VerifyMacCommandOutput, SdkError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KeyUnavailableError | KMSInternalError | KMSInvalidMacError | KMSInvalidStateError | NotFoundError>;
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* @since 1.0.0
|
|
236
|
-
* @category constructors
|
|
237
|
-
*/
|
|
238
|
-
export declare const makeKMSService: Effect.Effect<KMSService$, never, KMSClientInstance>;
|
|
239
|
-
declare const KMSService_base: import("effect/Context").TagClass<KMSService, "@effect-aws/client-kms/KMSService", KMSService$> & {
|
|
240
|
-
readonly _: Effect.Effect<KMSService$["_"], never, KMSService>;
|
|
241
|
-
cancelKeyDeletion: (args: CancelKeyDeletionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CancelKeyDeletionCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
242
|
-
connectCustomKeyStore: (args: ConnectCustomKeyStoreCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ConnectCustomKeyStoreCommandOutput, CloudHsmClusterInvalidConfigurationError | CloudHsmClusterNotActiveError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | KMSInternalError | SdkError, KMSService>;
|
|
243
|
-
createAlias: (args: CreateAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateAliasCommandOutput, AlreadyExistsError | DependencyTimeoutError | InvalidAliasNameError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | SdkError, KMSService>;
|
|
244
|
-
createCustomKeyStore: (args: CreateCustomKeyStoreCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateCustomKeyStoreCommandOutput, CloudHsmClusterInUseError | CloudHsmClusterInvalidConfigurationError | CloudHsmClusterNotActiveError | CloudHsmClusterNotFoundError | CustomKeyStoreNameInUseError | IncorrectTrustAnchorError | KMSInternalError | LimitExceededError | XksProxyIncorrectAuthenticationCredentialError | XksProxyInvalidConfigurationError | XksProxyInvalidResponseError | XksProxyUriEndpointInUseError | XksProxyUriInUseError | XksProxyUriUnreachableError | XksProxyVpcEndpointServiceInUseError | XksProxyVpcEndpointServiceInvalidConfigurationError | XksProxyVpcEndpointServiceNotFoundError | SdkError, KMSService>;
|
|
245
|
-
createGrant: (args: CreateGrantCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateGrantCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidArnError | InvalidGrantTokenError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | SdkError, KMSService>;
|
|
246
|
-
createKey: (args: CreateKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateKeyCommandOutput, CloudHsmClusterInvalidConfigurationError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | DependencyTimeoutError | InvalidArnError | KMSInternalError | LimitExceededError | MalformedPolicyDocumentError | TagError | UnsupportedOperationError | XksKeyAlreadyInUseError | XksKeyInvalidConfigurationError | XksKeyNotFoundError | SdkError, KMSService>;
|
|
247
|
-
decrypt: (args: DecryptCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DecryptCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | IncorrectKeyError | InvalidCiphertextError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
248
|
-
deleteAlias: (args: DeleteAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteAliasCommandOutput, DependencyTimeoutError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
249
|
-
deleteCustomKeyStore: (args: DeleteCustomKeyStoreCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteCustomKeyStoreCommandOutput, CustomKeyStoreHasCMKsError | CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | KMSInternalError | SdkError, KMSService>;
|
|
250
|
-
deleteImportedKeyMaterial: (args: DeleteImportedKeyMaterialCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteImportedKeyMaterialCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
251
|
-
deriveSharedSecret: (args: DeriveSharedSecretCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeriveSharedSecretCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
252
|
-
describeCustomKeyStores: (args: DescribeCustomKeyStoresCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeCustomKeyStoresCommandOutput, CustomKeyStoreNotFoundError | InvalidMarkerError | KMSInternalError | SdkError, KMSService>;
|
|
253
|
-
describeKey: (args: DescribeKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeKeyCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | NotFoundError | SdkError, KMSService>;
|
|
254
|
-
disableKey: (args: DisableKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DisableKeyCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
255
|
-
disableKeyRotation: (args: DisableKeyRotationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DisableKeyRotationCommandOutput, DependencyTimeoutError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
256
|
-
disconnectCustomKeyStore: (args: DisconnectCustomKeyStoreCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DisconnectCustomKeyStoreCommandOutput, CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | KMSInternalError | SdkError, KMSService>;
|
|
257
|
-
enableKey: (args: EnableKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EnableKeyCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | SdkError, KMSService>;
|
|
258
|
-
enableKeyRotation: (args: EnableKeyRotationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EnableKeyRotationCommandOutput, DependencyTimeoutError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
259
|
-
encrypt: (args: EncryptCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EncryptCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
260
|
-
generateDataKey: (args: GenerateDataKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GenerateDataKeyCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
261
|
-
generateDataKeyPair: (args: GenerateDataKeyPairCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GenerateDataKeyPairCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
262
|
-
generateDataKeyPairWithoutPlaintext: (args: GenerateDataKeyPairWithoutPlaintextCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GenerateDataKeyPairWithoutPlaintextCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
263
|
-
generateDataKeyWithoutPlaintext: (args: GenerateDataKeyWithoutPlaintextCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GenerateDataKeyWithoutPlaintextCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
264
|
-
generateMac: (args: GenerateMacCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GenerateMacCommandOutput, DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
265
|
-
generateRandom: (args: GenerateRandomCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GenerateRandomCommandOutput, CustomKeyStoreInvalidStateError | CustomKeyStoreNotFoundError | DependencyTimeoutError | KMSInternalError | UnsupportedOperationError | SdkError, KMSService>;
|
|
266
|
-
getKeyPolicy: (args: GetKeyPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetKeyPolicyCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
267
|
-
getKeyRotationStatus: (args: GetKeyRotationStatusCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetKeyRotationStatusCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
268
|
-
getParametersForImport: (args: GetParametersForImportCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetParametersForImportCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
269
|
-
getPublicKey: (args: GetPublicKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetPublicKeyCommandOutput, DependencyTimeoutError | DisabledError | InvalidArnError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
270
|
-
importKeyMaterial: (args: ImportKeyMaterialCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ImportKeyMaterialCommandOutput, DependencyTimeoutError | ExpiredImportTokenError | IncorrectKeyMaterialError | InvalidArnError | InvalidCiphertextError | InvalidImportTokenError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
271
|
-
listAliases: (args: ListAliasesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListAliasesCommandOutput, DependencyTimeoutError | InvalidArnError | InvalidMarkerError | KMSInternalError | NotFoundError | SdkError, KMSService>;
|
|
272
|
-
listGrants: (args: ListGrantsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListGrantsCommandOutput, DependencyTimeoutError | InvalidArnError | InvalidGrantIdError | InvalidMarkerError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
273
|
-
listKeyPolicies: (args: ListKeyPoliciesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListKeyPoliciesCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
274
|
-
listKeyRotations: (args: ListKeyRotationsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListKeyRotationsCommandOutput, InvalidArnError | InvalidMarkerError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
275
|
-
listKeys: (args: ListKeysCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListKeysCommandOutput, DependencyTimeoutError | InvalidMarkerError | KMSInternalError | SdkError, KMSService>;
|
|
276
|
-
listResourceTags: (args: ListResourceTagsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListResourceTagsCommandOutput, InvalidArnError | InvalidMarkerError | KMSInternalError | NotFoundError | SdkError, KMSService>;
|
|
277
|
-
listRetirableGrants: (args: ListRetirableGrantsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListRetirableGrantsCommandOutput, DependencyTimeoutError | InvalidArnError | InvalidMarkerError | KMSInternalError | NotFoundError | SdkError, KMSService>;
|
|
278
|
-
putKeyPolicy: (args: PutKeyPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutKeyPolicyCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | MalformedPolicyDocumentError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
279
|
-
reEncrypt: (args: ReEncryptCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ReEncryptCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | IncorrectKeyError | InvalidCiphertextError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
280
|
-
replicateKey: (args: ReplicateKeyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ReplicateKeyCommandOutput, AlreadyExistsError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | MalformedPolicyDocumentError | NotFoundError | TagError | UnsupportedOperationError | SdkError, KMSService>;
|
|
281
|
-
retireGrant: (args: RetireGrantCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<RetireGrantCommandOutput, DependencyTimeoutError | DryRunOperationError | InvalidArnError | InvalidGrantIdError | InvalidGrantTokenError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
282
|
-
revokeGrant: (args: RevokeGrantCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<RevokeGrantCommandOutput, DependencyTimeoutError | DryRunOperationError | InvalidArnError | InvalidGrantIdError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
283
|
-
rotateKeyOnDemand: (args: RotateKeyOnDemandCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<RotateKeyOnDemandCommandOutput, ConflictError | DependencyTimeoutError | DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
284
|
-
scheduleKeyDeletion: (args: ScheduleKeyDeletionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ScheduleKeyDeletionCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
285
|
-
sign: (args: SignCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SignCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
286
|
-
tagResource: (args: TagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TagResourceCommandOutput, InvalidArnError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | TagError | SdkError, KMSService>;
|
|
287
|
-
untagResource: (args: UntagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UntagResourceCommandOutput, InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | TagError | SdkError, KMSService>;
|
|
288
|
-
updateAlias: (args: UpdateAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateAliasCommandOutput, DependencyTimeoutError | KMSInternalError | KMSInvalidStateError | LimitExceededError | NotFoundError | SdkError, KMSService>;
|
|
289
|
-
updateCustomKeyStore: (args: UpdateCustomKeyStoreCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateCustomKeyStoreCommandOutput, CloudHsmClusterInvalidConfigurationError | CloudHsmClusterNotActiveError | CloudHsmClusterNotFoundError | CloudHsmClusterNotRelatedError | CustomKeyStoreInvalidStateError | CustomKeyStoreNameInUseError | CustomKeyStoreNotFoundError | KMSInternalError | XksProxyIncorrectAuthenticationCredentialError | XksProxyInvalidConfigurationError | XksProxyInvalidResponseError | XksProxyUriEndpointInUseError | XksProxyUriInUseError | XksProxyUriUnreachableError | XksProxyVpcEndpointServiceInUseError | XksProxyVpcEndpointServiceInvalidConfigurationError | XksProxyVpcEndpointServiceNotFoundError | SdkError, KMSService>;
|
|
290
|
-
updateKeyDescription: (args: UpdateKeyDescriptionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateKeyDescriptionCommandOutput, DependencyTimeoutError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | SdkError, KMSService>;
|
|
291
|
-
updatePrimaryRegion: (args: UpdatePrimaryRegionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdatePrimaryRegionCommandOutput, DisabledError | InvalidArnError | KMSInternalError | KMSInvalidStateError | NotFoundError | UnsupportedOperationError | SdkError, KMSService>;
|
|
292
|
-
verify: (args: VerifyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<VerifyCommandOutput, DependencyTimeoutError | DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidSignatureError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
293
|
-
verifyMac: (args: VerifyMacCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<VerifyMacCommandOutput, DisabledError | DryRunOperationError | InvalidGrantTokenError | InvalidKeyUsageError | KMSInternalError | KMSInvalidMacError | KMSInvalidStateError | KeyUnavailableError | NotFoundError | SdkError, KMSService>;
|
|
294
|
-
} & {
|
|
295
|
-
use: <X>(body: (_: KMSService$) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | KMSService> : Effect.Effect<X, never, KMSService>;
|
|
296
|
-
};
|
|
297
|
-
/**
|
|
298
|
-
* @since 1.0.0
|
|
299
|
-
* @category models
|
|
300
|
-
*/
|
|
301
|
-
export declare class KMSService extends KMSService_base {
|
|
302
|
-
static readonly defaultLayer: Layer.Layer<KMSService, never, never>;
|
|
303
|
-
static readonly layer: (config: KMSClientConfig) => Layer.Layer<KMSService, never, never>;
|
|
304
|
-
static readonly baseLayer: (evaluate: (defaultConfig: KMSClientConfig) => KMSClient) => Layer.Layer<KMSService, never, never>;
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* @since 1.0.0
|
|
308
|
-
* @category models
|
|
309
|
-
* @alias KMSService
|
|
310
|
-
*/
|
|
311
|
-
export declare const KMS: typeof KMSService;
|
|
312
|
-
/**
|
|
313
|
-
* @since 1.0.0
|
|
314
|
-
* @category layers
|
|
315
|
-
* @deprecated use KMS.baseLayer instead
|
|
316
|
-
*/
|
|
317
|
-
export declare const BaseKMSServiceLayer: Layer.Layer<KMSService, never, KMSClientInstance>;
|
|
318
|
-
/**
|
|
319
|
-
* @since 1.0.0
|
|
320
|
-
* @category layers
|
|
321
|
-
* @deprecated use KMS.layer instead
|
|
322
|
-
*/
|
|
323
|
-
export declare const KMSServiceLayer: Layer.Layer<KMSService, never, KMSClientInstanceConfig>;
|
|
324
|
-
/**
|
|
325
|
-
* @since 1.0.0
|
|
326
|
-
* @category layers
|
|
327
|
-
* @deprecated use KMS.defaultLayer instead
|
|
328
|
-
*/
|
|
329
|
-
export declare const DefaultKMSServiceLayer: Layer.Layer<KMSService, never, never>;
|
|
330
|
-
export {};
|
package/lib/KMSService.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.DefaultKMSServiceLayer = exports.KMSServiceLayer = exports.BaseKMSServiceLayer = exports.KMS = exports.KMSService = exports.makeKMSService = void 0;
|
|
5
|
-
/**
|
|
6
|
-
* @since 1.0.0
|
|
7
|
-
*/
|
|
8
|
-
const client_kms_1 = require("@aws-sdk/client-kms");
|
|
9
|
-
const effect_1 = require("effect");
|
|
10
|
-
const Errors_1 = require("./Errors");
|
|
11
|
-
const KMSClientInstance_1 = require("./KMSClientInstance");
|
|
12
|
-
const KMSClientInstanceConfig_1 = require("./KMSClientInstanceConfig");
|
|
13
|
-
const commands = {
|
|
14
|
-
CancelKeyDeletionCommand: client_kms_1.CancelKeyDeletionCommand,
|
|
15
|
-
ConnectCustomKeyStoreCommand: client_kms_1.ConnectCustomKeyStoreCommand,
|
|
16
|
-
CreateAliasCommand: client_kms_1.CreateAliasCommand,
|
|
17
|
-
CreateCustomKeyStoreCommand: client_kms_1.CreateCustomKeyStoreCommand,
|
|
18
|
-
CreateGrantCommand: client_kms_1.CreateGrantCommand,
|
|
19
|
-
CreateKeyCommand: client_kms_1.CreateKeyCommand,
|
|
20
|
-
DecryptCommand: client_kms_1.DecryptCommand,
|
|
21
|
-
DeleteAliasCommand: client_kms_1.DeleteAliasCommand,
|
|
22
|
-
DeleteCustomKeyStoreCommand: client_kms_1.DeleteCustomKeyStoreCommand,
|
|
23
|
-
DeleteImportedKeyMaterialCommand: client_kms_1.DeleteImportedKeyMaterialCommand,
|
|
24
|
-
DeriveSharedSecretCommand: client_kms_1.DeriveSharedSecretCommand,
|
|
25
|
-
DescribeCustomKeyStoresCommand: client_kms_1.DescribeCustomKeyStoresCommand,
|
|
26
|
-
DescribeKeyCommand: client_kms_1.DescribeKeyCommand,
|
|
27
|
-
DisableKeyCommand: client_kms_1.DisableKeyCommand,
|
|
28
|
-
DisableKeyRotationCommand: client_kms_1.DisableKeyRotationCommand,
|
|
29
|
-
DisconnectCustomKeyStoreCommand: client_kms_1.DisconnectCustomKeyStoreCommand,
|
|
30
|
-
EnableKeyCommand: client_kms_1.EnableKeyCommand,
|
|
31
|
-
EnableKeyRotationCommand: client_kms_1.EnableKeyRotationCommand,
|
|
32
|
-
EncryptCommand: client_kms_1.EncryptCommand,
|
|
33
|
-
GenerateDataKeyCommand: client_kms_1.GenerateDataKeyCommand,
|
|
34
|
-
GenerateDataKeyPairCommand: client_kms_1.GenerateDataKeyPairCommand,
|
|
35
|
-
GenerateDataKeyPairWithoutPlaintextCommand: client_kms_1.GenerateDataKeyPairWithoutPlaintextCommand,
|
|
36
|
-
GenerateDataKeyWithoutPlaintextCommand: client_kms_1.GenerateDataKeyWithoutPlaintextCommand,
|
|
37
|
-
GenerateMacCommand: client_kms_1.GenerateMacCommand,
|
|
38
|
-
GenerateRandomCommand: client_kms_1.GenerateRandomCommand,
|
|
39
|
-
GetKeyPolicyCommand: client_kms_1.GetKeyPolicyCommand,
|
|
40
|
-
GetKeyRotationStatusCommand: client_kms_1.GetKeyRotationStatusCommand,
|
|
41
|
-
GetParametersForImportCommand: client_kms_1.GetParametersForImportCommand,
|
|
42
|
-
GetPublicKeyCommand: client_kms_1.GetPublicKeyCommand,
|
|
43
|
-
ImportKeyMaterialCommand: client_kms_1.ImportKeyMaterialCommand,
|
|
44
|
-
ListAliasesCommand: client_kms_1.ListAliasesCommand,
|
|
45
|
-
ListGrantsCommand: client_kms_1.ListGrantsCommand,
|
|
46
|
-
ListKeyPoliciesCommand: client_kms_1.ListKeyPoliciesCommand,
|
|
47
|
-
ListKeyRotationsCommand: client_kms_1.ListKeyRotationsCommand,
|
|
48
|
-
ListKeysCommand: client_kms_1.ListKeysCommand,
|
|
49
|
-
ListResourceTagsCommand: client_kms_1.ListResourceTagsCommand,
|
|
50
|
-
ListRetirableGrantsCommand: client_kms_1.ListRetirableGrantsCommand,
|
|
51
|
-
PutKeyPolicyCommand: client_kms_1.PutKeyPolicyCommand,
|
|
52
|
-
ReEncryptCommand: client_kms_1.ReEncryptCommand,
|
|
53
|
-
ReplicateKeyCommand: client_kms_1.ReplicateKeyCommand,
|
|
54
|
-
RetireGrantCommand: client_kms_1.RetireGrantCommand,
|
|
55
|
-
RevokeGrantCommand: client_kms_1.RevokeGrantCommand,
|
|
56
|
-
RotateKeyOnDemandCommand: client_kms_1.RotateKeyOnDemandCommand,
|
|
57
|
-
ScheduleKeyDeletionCommand: client_kms_1.ScheduleKeyDeletionCommand,
|
|
58
|
-
SignCommand: client_kms_1.SignCommand,
|
|
59
|
-
TagResourceCommand: client_kms_1.TagResourceCommand,
|
|
60
|
-
UntagResourceCommand: client_kms_1.UntagResourceCommand,
|
|
61
|
-
UpdateAliasCommand: client_kms_1.UpdateAliasCommand,
|
|
62
|
-
UpdateCustomKeyStoreCommand: client_kms_1.UpdateCustomKeyStoreCommand,
|
|
63
|
-
UpdateKeyDescriptionCommand: client_kms_1.UpdateKeyDescriptionCommand,
|
|
64
|
-
UpdatePrimaryRegionCommand: client_kms_1.UpdatePrimaryRegionCommand,
|
|
65
|
-
VerifyCommand: client_kms_1.VerifyCommand,
|
|
66
|
-
VerifyMacCommand: client_kms_1.VerifyMacCommand,
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* @since 1.0.0
|
|
70
|
-
* @category constructors
|
|
71
|
-
*/
|
|
72
|
-
exports.makeKMSService = effect_1.Effect.gen(function* (_) {
|
|
73
|
-
const client = yield* _(KMSClientInstance_1.KMSClientInstance);
|
|
74
|
-
return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
|
|
75
|
-
const CommandCtor = commands[command];
|
|
76
|
-
const methodImpl = (args, options) => effect_1.Effect.tryPromise({
|
|
77
|
-
try: (abortSignal) => client.send(new CommandCtor(args), {
|
|
78
|
-
...(options !== null && options !== void 0 ? options : {}),
|
|
79
|
-
abortSignal,
|
|
80
|
-
}),
|
|
81
|
-
catch: (e) => {
|
|
82
|
-
if (e instanceof client_kms_1.KMSServiceException &&
|
|
83
|
-
Errors_1.AllServiceErrors.includes(e.name)) {
|
|
84
|
-
const ServiceException = effect_1.Data.tagged(e.name);
|
|
85
|
-
return ServiceException({
|
|
86
|
-
...e,
|
|
87
|
-
message: e.message,
|
|
88
|
-
stack: e.stack,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
if (e instanceof Error) {
|
|
92
|
-
return (0, Errors_1.SdkError)({
|
|
93
|
-
...e,
|
|
94
|
-
name: "SdkError",
|
|
95
|
-
message: e.message,
|
|
96
|
-
stack: e.stack,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
throw e;
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
|
|
103
|
-
return { ...acc, [methodName]: methodImpl };
|
|
104
|
-
}, {});
|
|
105
|
-
});
|
|
106
|
-
/**
|
|
107
|
-
* @since 1.0.0
|
|
108
|
-
* @category models
|
|
109
|
-
*/
|
|
110
|
-
class KMSService extends effect_1.Effect.Tag("@effect-aws/client-kms/KMSService")() {
|
|
111
|
-
}
|
|
112
|
-
exports.KMSService = KMSService;
|
|
113
|
-
_a = KMSService;
|
|
114
|
-
KMSService.defaultLayer = effect_1.Layer.effect(_a, exports.makeKMSService).pipe(effect_1.Layer.provide(KMSClientInstance_1.KMSClientInstanceLayer), effect_1.Layer.provide(KMSClientInstanceConfig_1.DefaultKMSClientConfigLayer));
|
|
115
|
-
KMSService.layer = (config) => effect_1.Layer.effect(_a, exports.makeKMSService).pipe(effect_1.Layer.provide(KMSClientInstance_1.KMSClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(KMSClientInstanceConfig_1.KMSClientInstanceConfig, KMSClientInstanceConfig_1.makeDefaultKMSClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
|
|
116
|
-
KMSService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeKMSService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(KMSClientInstance_1.KMSClientInstance, effect_1.Effect.map(KMSClientInstanceConfig_1.makeDefaultKMSClientInstanceConfig, evaluate))));
|
|
117
|
-
/**
|
|
118
|
-
* @since 1.0.0
|
|
119
|
-
* @category models
|
|
120
|
-
* @alias KMSService
|
|
121
|
-
*/
|
|
122
|
-
exports.KMS = KMSService;
|
|
123
|
-
/**
|
|
124
|
-
* @since 1.0.0
|
|
125
|
-
* @category layers
|
|
126
|
-
* @deprecated use KMS.baseLayer instead
|
|
127
|
-
*/
|
|
128
|
-
exports.BaseKMSServiceLayer = effect_1.Layer.effect(KMSService, exports.makeKMSService);
|
|
129
|
-
/**
|
|
130
|
-
* @since 1.0.0
|
|
131
|
-
* @category layers
|
|
132
|
-
* @deprecated use KMS.layer instead
|
|
133
|
-
*/
|
|
134
|
-
exports.KMSServiceLayer = exports.BaseKMSServiceLayer.pipe(effect_1.Layer.provide(KMSClientInstance_1.KMSClientInstanceLayer));
|
|
135
|
-
/**
|
|
136
|
-
* @since 1.0.0
|
|
137
|
-
* @category layers
|
|
138
|
-
* @deprecated use KMS.defaultLayer instead
|
|
139
|
-
*/
|
|
140
|
-
exports.DefaultKMSServiceLayer = KMSService.defaultLayer;
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS01TU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9LTVNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7R0FFRztBQUNILG9EQW1LNkI7QUFDN0IsbUNBQXFEO0FBQ3JELHFDQW9Ea0I7QUFDbEIsMkRBQWdGO0FBQ2hGLHVFQUltQztBQWFuQyxNQUFNLFFBQVEsR0FBRztJQUNmLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsNEJBQTRCLEVBQTVCLHlDQUE0QjtJQUM1QixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0Isa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLGNBQWMsRUFBZCwyQkFBYztJQUNkLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsMkJBQTJCLEVBQTNCLHdDQUEyQjtJQUMzQixnQ0FBZ0MsRUFBaEMsNkNBQWdDO0lBQ2hDLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5QixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLGlCQUFpQixFQUFqQiw4QkFBaUI7SUFDakIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6QiwrQkFBK0IsRUFBL0IsNENBQStCO0lBQy9CLGdCQUFnQixFQUFoQiw2QkFBZ0I7SUFDaEIsd0JBQXdCLEVBQXhCLHFDQUF3QjtJQUN4QixjQUFjLEVBQWQsMkJBQWM7SUFDZCxzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsMENBQTBDLEVBQTFDLHVEQUEwQztJQUMxQyxzQ0FBc0MsRUFBdEMsbURBQXNDO0lBQ3RDLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0IsNkJBQTZCLEVBQTdCLDBDQUE2QjtJQUM3QixtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixpQkFBaUIsRUFBakIsOEJBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2QixlQUFlLEVBQWYsNEJBQWU7SUFDZix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQixnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLG1CQUFtQixFQUFuQixnQ0FBbUI7SUFDbkIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixXQUFXLEVBQVgsd0JBQVc7SUFDWCxrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixhQUFhLEVBQWIsMEJBQWE7SUFDYixnQkFBZ0IsRUFBaEIsNkJBQWdCO0NBQ2pCLENBQUM7QUE2OEJGOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQWlCLENBQUMsQ0FBQztJQUUzQyxPQUFPLGVBQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFRLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBNEIsRUFBRSxFQUFFLENBQzdELGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsR0FBRyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztnQkFDbEIsV0FBVzthQUNaLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUNFLENBQUMsWUFBWSxnQ0FBbUI7b0JBQ2hDLHlCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2pDLENBQUM7b0JBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWdCLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxlQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLEVBRzVFOztBQUhILGdDQStCQzs7QUEzQmlCLHVCQUFZLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsc0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FDcEUsY0FBSyxDQUFDLE9BQU8sQ0FBQywwQ0FBc0IsQ0FBQyxFQUNyQyxjQUFLLENBQUMsT0FBTyxDQUFDLHFEQUEyQixDQUFDLENBQzNDLEFBSDJCLENBRzFCO0FBQ2MsZ0JBQUssR0FBRyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUNsRCxjQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSxzQkFBYyxDQUFDLENBQUMsSUFBSSxDQUNyQyxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLEVBQ3JDLGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDVixpREFBdUIsRUFDdkIsNERBQWtDLENBQUMsSUFBSSxDQUNyQyxlQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksb0JBQVMsR0FBRyxDQUMxQixRQUF1RCxFQUN2RCxFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsc0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FDckMsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLHFDQUFpQixFQUNqQixlQUFNLENBQUMsR0FBRyxDQUFDLDREQUFrQyxFQUFFLFFBQVEsQ0FBQyxDQUN6RCxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxHQUFHLEdBQUcsVUFBVSxDQUFDO0FBRTlCOzs7O0dBSUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLHNCQUFjLENBQUMsQ0FBQztBQUU1RTs7OztHQUlHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsMkJBQW1CLENBQUMsSUFBSSxDQUNyRCxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLENBQ3RDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgS01TU2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBLTVNDbGllbnQsXG4gIHR5cGUgS01TQ2xpZW50Q29uZmlnLFxuICBDYW5jZWxLZXlEZWxldGlvbkNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsS2V5RGVsZXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsS2V5RGVsZXRpb25Db21tYW5kT3V0cHV0LFxuICBDb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kLFxuICB0eXBlIENvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHcmFudENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3JhbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3JhbnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVLZXlDb21tYW5kLFxuICB0eXBlIENyZWF0ZUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVLZXlDb21tYW5kT3V0cHV0LFxuICBEZWNyeXB0Q29tbWFuZCxcbiAgdHlwZSBEZWNyeXB0Q29tbWFuZElucHV0LFxuICB0eXBlIERlY3J5cHRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUltcG9ydGVkS2V5TWF0ZXJpYWxDb21tYW5kT3V0cHV0LFxuICBEZXJpdmVTaGFyZWRTZWNyZXRDb21tYW5kLFxuICB0eXBlIERlcml2ZVNoYXJlZFNlY3JldENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJpdmVTaGFyZWRTZWNyZXRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUN1c3RvbUtleVN0b3Jlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDdXN0b21LZXlTdG9yZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDdXN0b21LZXlTdG9yZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUtleUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlS2V5Q29tbWFuZCxcbiAgdHlwZSBEaXNhYmxlS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVLZXlDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kLFxuICB0eXBlIERpc2FibGVLZXlSb3RhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kLFxuICB0eXBlIERpc2Nvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBFbmFibGVLZXlDb21tYW5kLFxuICB0eXBlIEVuYWJsZUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVLZXlDb21tYW5kT3V0cHV0LFxuICBFbmFibGVLZXlSb3RhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRW5hYmxlS2V5Um90YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICBFbmNyeXB0Q29tbWFuZCxcbiAgdHlwZSBFbmNyeXB0Q29tbWFuZElucHV0LFxuICB0eXBlIEVuY3J5cHRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlRGF0YUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZW5lcmF0ZURhdGFLZXlDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlQYWlyQ29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZURhdGFLZXlQYWlyQ29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlRGF0YUtleVBhaXJDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVEYXRhS2V5UGFpcldpdGhvdXRQbGFpbnRleHRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVEYXRhS2V5UGFpcldpdGhvdXRQbGFpbnRleHRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0Q29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZU1hY0NvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVNYWNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVNYWNDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZVJhbmRvbUNvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVSYW5kb21Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVSYW5kb21Db21tYW5kT3V0cHV0LFxuICBHZXRLZXlQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldEtleVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRLZXlQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRLZXlSb3RhdGlvblN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0S2V5Um90YXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0S2V5Um90YXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZCxcbiAgdHlwZSBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBhcmFtZXRlcnNGb3JJbXBvcnRDb21tYW5kT3V0cHV0LFxuICBHZXRQdWJsaWNLZXlDb21tYW5kLFxuICB0eXBlIEdldFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICBJbXBvcnRLZXlNYXRlcmlhbENvbW1hbmQsXG4gIHR5cGUgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kT3V0cHV0LFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0R3JhbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JhbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcmFudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0S2V5UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RLZXlQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0S2V5UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0S2V5Um90YXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0S2V5Um90YXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RLZXlSb3RhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0S2V5c0NvbW1hbmQsXG4gIHR5cGUgTGlzdEtleXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEtleXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSZXNvdXJjZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0UmV0aXJhYmxlR3JhbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UmV0aXJhYmxlR3JhbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSZXRpcmFibGVHcmFudHNDb21tYW5kT3V0cHV0LFxuICBQdXRLZXlQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEtleVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRLZXlQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZUVuY3J5cHRDb21tYW5kLFxuICB0eXBlIFJlRW5jcnlwdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZUVuY3J5cHRDb21tYW5kT3V0cHV0LFxuICBSZXBsaWNhdGVLZXlDb21tYW5kLFxuICB0eXBlIFJlcGxpY2F0ZUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXBsaWNhdGVLZXlDb21tYW5kT3V0cHV0LFxuICBSZXRpcmVHcmFudENvbW1hbmQsXG4gIHR5cGUgUmV0aXJlR3JhbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV0aXJlR3JhbnRDb21tYW5kT3V0cHV0LFxuICBSZXZva2VHcmFudENvbW1hbmQsXG4gIHR5cGUgUmV2b2tlR3JhbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlR3JhbnRDb21tYW5kT3V0cHV0LFxuICBSb3RhdGVLZXlPbkRlbWFuZENvbW1hbmQsXG4gIHR5cGUgUm90YXRlS2V5T25EZW1hbmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUm90YXRlS2V5T25EZW1hbmRDb21tYW5kT3V0cHV0LFxuICBTY2hlZHVsZUtleURlbGV0aW9uQ29tbWFuZCxcbiAgdHlwZSBTY2hlZHVsZUtleURlbGV0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kT3V0cHV0LFxuICBTaWduQ29tbWFuZCxcbiAgdHlwZSBTaWduQ29tbWFuZElucHV0LFxuICB0eXBlIFNpZ25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVLZXlEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlS2V5RGVzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlS2V5RGVzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVQcmltYXJ5UmVnaW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQcmltYXJ5UmVnaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVByaW1hcnlSZWdpb25Db21tYW5kT3V0cHV0LFxuICBWZXJpZnlDb21tYW5kLFxuICB0eXBlIFZlcmlmeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBWZXJpZnlDb21tYW5kT3V0cHV0LFxuICBWZXJpZnlNYWNDb21tYW5kLFxuICB0eXBlIFZlcmlmeU1hY0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBWZXJpZnlNYWNDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWttc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBDbG91ZEhzbUNsdXN0ZXJJblVzZUVycm9yLFxuICBDbG91ZEhzbUNsdXN0ZXJJbnZhbGlkQ29uZmlndXJhdGlvbkVycm9yLFxuICBDbG91ZEhzbUNsdXN0ZXJOb3RBY3RpdmVFcnJvcixcbiAgQ2xvdWRIc21DbHVzdGVyTm90Rm91bmRFcnJvcixcbiAgQ2xvdWRIc21DbHVzdGVyTm90UmVsYXRlZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBDdXN0b21LZXlTdG9yZUhhc0NNS3NFcnJvcixcbiAgQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFcnJvcixcbiAgQ3VzdG9tS2V5U3RvcmVOYW1lSW5Vc2VFcnJvcixcbiAgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEVycm9yLFxuICBEZXBlbmRlbmN5VGltZW91dEVycm9yLFxuICBEaXNhYmxlZEVycm9yLFxuICBEcnlSdW5PcGVyYXRpb25FcnJvcixcbiAgRXhwaXJlZEltcG9ydFRva2VuRXJyb3IsXG4gIEluY29ycmVjdEtleUVycm9yLFxuICBJbmNvcnJlY3RLZXlNYXRlcmlhbEVycm9yLFxuICBJbmNvcnJlY3RUcnVzdEFuY2hvckVycm9yLFxuICBJbnZhbGlkQWxpYXNOYW1lRXJyb3IsXG4gIEludmFsaWRBcm5FcnJvcixcbiAgSW52YWxpZENpcGhlcnRleHRFcnJvcixcbiAgSW52YWxpZEdyYW50SWRFcnJvcixcbiAgSW52YWxpZEdyYW50VG9rZW5FcnJvcixcbiAgSW52YWxpZEltcG9ydFRva2VuRXJyb3IsXG4gIEludmFsaWRLZXlVc2FnZUVycm9yLFxuICBJbnZhbGlkTWFya2VyRXJyb3IsXG4gIEtNU0ludGVybmFsRXJyb3IsXG4gIEtNU0ludmFsaWRNYWNFcnJvcixcbiAgS01TSW52YWxpZFNpZ25hdHVyZUVycm9yLFxuICBLTVNJbnZhbGlkU3RhdGVFcnJvcixcbiAgS2V5VW5hdmFpbGFibGVFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBUYWdFcnJvcixcbiAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcixcbiAgWGtzS2V5QWxyZWFkeUluVXNlRXJyb3IsXG4gIFhrc0tleUludmFsaWRDb25maWd1cmF0aW9uRXJyb3IsXG4gIFhrc0tleU5vdEZvdW5kRXJyb3IsXG4gIFhrc1Byb3h5SW5jb3JyZWN0QXV0aGVudGljYXRpb25DcmVkZW50aWFsRXJyb3IsXG4gIFhrc1Byb3h5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvcixcbiAgWGtzUHJveHlJbnZhbGlkUmVzcG9uc2VFcnJvcixcbiAgWGtzUHJveHlVcmlFbmRwb2ludEluVXNlRXJyb3IsXG4gIFhrc1Byb3h5VXJpSW5Vc2VFcnJvcixcbiAgWGtzUHJveHlVcmlVbnJlYWNoYWJsZUVycm9yLFxuICBYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUluVXNlRXJyb3IsXG4gIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW52YWxpZENvbmZpZ3VyYXRpb25FcnJvcixcbiAgWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VOb3RGb3VuZEVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7IEtNU0NsaWVudEluc3RhbmNlLCBLTVNDbGllbnRJbnN0YW5jZUxheWVyIH0gZnJvbSBcIi4vS01TQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRLTVNDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRLTVNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgS01TQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0tNU0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQ2FuY2VsS2V5RGVsZXRpb25Db21tYW5kLFxuICBDb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kLFxuICBDcmVhdGVBbGlhc0NvbW1hbmQsXG4gIENyZWF0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZCxcbiAgQ3JlYXRlR3JhbnRDb21tYW5kLFxuICBDcmVhdGVLZXlDb21tYW5kLFxuICBEZWNyeXB0Q29tbWFuZCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kLFxuICBEZWxldGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIERlbGV0ZUltcG9ydGVkS2V5TWF0ZXJpYWxDb21tYW5kLFxuICBEZXJpdmVTaGFyZWRTZWNyZXRDb21tYW5kLFxuICBEZXNjcmliZUN1c3RvbUtleVN0b3Jlc0NvbW1hbmQsXG4gIERlc2NyaWJlS2V5Q29tbWFuZCxcbiAgRGlzYWJsZUtleUNvbW1hbmQsXG4gIERpc2FibGVLZXlSb3RhdGlvbkNvbW1hbmQsXG4gIERpc2Nvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIEVuYWJsZUtleUNvbW1hbmQsXG4gIEVuYWJsZUtleVJvdGF0aW9uQ29tbWFuZCxcbiAgRW5jcnlwdENvbW1hbmQsXG4gIEdlbmVyYXRlRGF0YUtleUNvbW1hbmQsXG4gIEdlbmVyYXRlRGF0YUtleVBhaXJDb21tYW5kLFxuICBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmQsXG4gIEdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRDb21tYW5kLFxuICBHZW5lcmF0ZU1hY0NvbW1hbmQsXG4gIEdlbmVyYXRlUmFuZG9tQ29tbWFuZCxcbiAgR2V0S2V5UG9saWN5Q29tbWFuZCxcbiAgR2V0S2V5Um90YXRpb25TdGF0dXNDb21tYW5kLFxuICBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZCxcbiAgR2V0UHVibGljS2V5Q29tbWFuZCxcbiAgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kLFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RHcmFudHNDb21tYW5kLFxuICBMaXN0S2V5UG9saWNpZXNDb21tYW5kLFxuICBMaXN0S2V5Um90YXRpb25zQ29tbWFuZCxcbiAgTGlzdEtleXNDb21tYW5kLFxuICBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZCxcbiAgTGlzdFJldGlyYWJsZUdyYW50c0NvbW1hbmQsXG4gIFB1dEtleVBvbGljeUNvbW1hbmQsXG4gIFJlRW5jcnlwdENvbW1hbmQsXG4gIFJlcGxpY2F0ZUtleUNvbW1hbmQsXG4gIFJldGlyZUdyYW50Q29tbWFuZCxcbiAgUmV2b2tlR3JhbnRDb21tYW5kLFxuICBSb3RhdGVLZXlPbkRlbWFuZENvbW1hbmQsXG4gIFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kLFxuICBTaWduQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICBVcGRhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIFVwZGF0ZUtleURlc2NyaXB0aW9uQ29tbWFuZCxcbiAgVXBkYXRlUHJpbWFyeVJlZ2lvbkNvbW1hbmQsXG4gIFZlcmlmeUNvbW1hbmQsXG4gIFZlcmlmeU1hY0NvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgS01TU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxLZXlEZWxldGlvbkNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxLZXlEZWxldGlvbihcbiAgICBhcmdzOiBDYW5jZWxLZXlEZWxldGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEtleURlbGV0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmR9XG4gICAqL1xuICBjb25uZWN0Q3VzdG9tS2V5U3RvcmUoXG4gICAgYXJnczogQ29ubmVjdEN1c3RvbUtleVN0b3JlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29ubmVjdEN1c3RvbUtleVN0b3JlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbG91ZEhzbUNsdXN0ZXJJbnZhbGlkQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBDbG91ZEhzbUNsdXN0ZXJOb3RBY3RpdmVFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFsaWFzTmFtZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUN1c3RvbUtleVN0b3JlKFxuICAgIGFyZ3M6IENyZWF0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3RlckluVXNlRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3RlckludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3Rlck5vdEFjdGl2ZUVycm9yXG4gICAgfCBDbG91ZEhzbUNsdXN0ZXJOb3RGb3VuZEVycm9yXG4gICAgfCBDdXN0b21LZXlTdG9yZU5hbWVJblVzZUVycm9yXG4gICAgfCBJbmNvcnJlY3RUcnVzdEFuY2hvckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFhrc1Byb3h5SW5jb3JyZWN0QXV0aGVudGljYXRpb25DcmVkZW50aWFsRXJyb3JcbiAgICB8IFhrc1Byb3h5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgWGtzUHJveHlJbnZhbGlkUmVzcG9uc2VFcnJvclxuICAgIHwgWGtzUHJveHlVcmlFbmRwb2ludEluVXNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VXJpSW5Vc2VFcnJvclxuICAgIHwgWGtzUHJveHlVcmlVbnJlYWNoYWJsZUVycm9yXG4gICAgfCBYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUluVXNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdyYW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUdyYW50KFxuICAgIGFyZ3M6IENyZWF0ZUdyYW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR3JhbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlS2V5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUtleShcbiAgICBhcmdzOiBDcmVhdGVLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3RlckludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFRhZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBYa3NLZXlBbHJlYWR5SW5Vc2VFcnJvclxuICAgIHwgWGtzS2V5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgWGtzS2V5Tm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyeXB0Q29tbWFuZH1cbiAgICovXG4gIGRlY3J5cHQoXG4gICAgYXJnczogRGVjcnlwdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3J5cHRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbmNvcnJlY3RLZXlFcnJvclxuICAgIHwgSW52YWxpZENpcGhlcnRleHRFcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUN1c3RvbUtleVN0b3JlKFxuICAgIGFyZ3M6IERlbGV0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSGFzQ01Lc0Vycm9yXG4gICAgfCBDdXN0b21LZXlTdG9yZUludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBDdXN0b21LZXlTdG9yZU5vdEZvdW5kRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW1wb3J0ZWRLZXlNYXRlcmlhbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsKFxuICAgIGFyZ3M6IERlbGV0ZUltcG9ydGVkS2V5TWF0ZXJpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlcml2ZVNoYXJlZFNlY3JldENvbW1hbmR9XG4gICAqL1xuICBkZXJpdmVTaGFyZWRTZWNyZXQoXG4gICAgYXJnczogRGVyaXZlU2hhcmVkU2VjcmV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVyaXZlU2hhcmVkU2VjcmV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ3VzdG9tS2V5U3RvcmVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ3VzdG9tS2V5U3RvcmVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ3VzdG9tS2V5U3RvcmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDdXN0b21LZXlTdG9yZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZE1hcmtlckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlS2V5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlS2V5KFxuICAgIGFyZ3M6IERlc2NyaWJlS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlS2V5Q29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVLZXkoXG4gICAgYXJnczogRGlzYWJsZUtleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYWJsZUtleVJvdGF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVLZXlSb3RhdGlvbihcbiAgICBhcmdzOiBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzY29ubmVjdEN1c3RvbUtleVN0b3JlQ29tbWFuZH1cbiAgICovXG4gIGRpc2Nvbm5lY3RDdXN0b21LZXlTdG9yZShcbiAgICBhcmdzOiBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVLZXlDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlS2V5KFxuICAgIGFyZ3M6IEVuYWJsZUtleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUtleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZUtleVJvdGF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGVuYWJsZUtleVJvdGF0aW9uKFxuICAgIGFyZ3M6IEVuYWJsZUtleVJvdGF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5jcnlwdENvbW1hbmR9XG4gICAqL1xuICBlbmNyeXB0KFxuICAgIGFyZ3M6IEVuY3J5cHRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmNyeXB0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlRGF0YUtleUNvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZURhdGFLZXkoXG4gICAgYXJnczogR2VuZXJhdGVEYXRhS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVEYXRhS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlRGF0YUtleVBhaXJDb21tYW5kfVxuICAgKi9cbiAgZ2VuZXJhdGVEYXRhS2V5UGFpcihcbiAgICBhcmdzOiBHZW5lcmF0ZURhdGFLZXlQYWlyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVEYXRhS2V5UGFpckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRLZXlVc2FnZUVycm9yXG4gICAgfCBLZXlVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dChcbiAgICBhcmdzOiBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdlbmVyYXRlRGF0YUtleVBhaXJXaXRob3V0UGxhaW50ZXh0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRDb21tYW5kfVxuICAgKi9cbiAgZ2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dChcbiAgICBhcmdzOiBHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRLZXlVc2FnZUVycm9yXG4gICAgfCBLZXlVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZU1hY0NvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZU1hYyhcbiAgICBhcmdzOiBHZW5lcmF0ZU1hY0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdlbmVyYXRlTWFjQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlUmFuZG9tQ29tbWFuZH1cbiAgICovXG4gIGdlbmVyYXRlUmFuZG9tKFxuICAgIGFyZ3M6IEdlbmVyYXRlUmFuZG9tQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVSYW5kb21Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRLZXlQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0S2V5UG9saWN5KFxuICAgIGFyZ3M6IEdldEtleVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEtleVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRLZXlSb3RhdGlvblN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXRLZXlSb3RhdGlvblN0YXR1cyhcbiAgICBhcmdzOiBHZXRLZXlSb3RhdGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEtleVJvdGF0aW9uU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBhcmFtZXRlcnNGb3JJbXBvcnRDb21tYW5kfVxuICAgKi9cbiAgZ2V0UGFyYW1ldGVyc0ZvckltcG9ydChcbiAgICBhcmdzOiBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UGFyYW1ldGVyc0ZvckltcG9ydENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgZ2V0UHVibGljS2V5KFxuICAgIGFyZ3M6IEdldFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkR3JhbnRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkS2V5VXNhZ2VFcnJvclxuICAgIHwgS2V5VW5hdmFpbGFibGVFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kfVxuICAgKi9cbiAgaW1wb3J0S2V5TWF0ZXJpYWwoXG4gICAgYXJnczogSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbXBvcnRLZXlNYXRlcmlhbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRXhwaXJlZEltcG9ydFRva2VuRXJyb3JcbiAgICB8IEluY29ycmVjdEtleU1hdGVyaWFsRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZENpcGhlcnRleHRFcnJvclxuICAgIHwgSW52YWxpZEltcG9ydFRva2VuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBbGlhc2VzKFxuICAgIGFyZ3M6IExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE1hcmtlckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcmFudHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEdyYW50cyhcbiAgICBhcmdzOiBMaXN0R3JhbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEdyYW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkR3JhbnRJZEVycm9yXG4gICAgfCBJbnZhbGlkTWFya2VyRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RLZXlQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0S2V5UG9saWNpZXMoXG4gICAgYXJnczogTGlzdEtleVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEtleVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RLZXlSb3RhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEtleVJvdGF0aW9ucyhcbiAgICBhcmdzOiBMaXN0S2V5Um90YXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEtleVJvdGF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkTWFya2VyRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RLZXlzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RLZXlzKFxuICAgIGFyZ3M6IExpc3RLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEtleXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvciB8IEludmFsaWRNYXJrZXJFcnJvciB8IEtNU0ludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJlc291cmNlVGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UmVzb3VyY2VUYWdzKFxuICAgIGFyZ3M6IExpc3RSZXNvdXJjZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRNYXJrZXJFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UmV0aXJhYmxlR3JhbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RSZXRpcmFibGVHcmFudHMoXG4gICAgYXJnczogTGlzdFJldGlyYWJsZUdyYW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RSZXRpcmFibGVHcmFudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE1hcmtlckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEtleVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRLZXlQb2xpY3koXG4gICAgYXJnczogUHV0S2V5UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0S2V5UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVFbmNyeXB0Q29tbWFuZH1cbiAgICovXG4gIHJlRW5jcnlwdChcbiAgICBhcmdzOiBSZUVuY3J5cHRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZUVuY3J5cHRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbmNvcnJlY3RLZXlFcnJvclxuICAgIHwgSW52YWxpZENpcGhlcnRleHRFcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlcGxpY2F0ZUtleUNvbW1hbmR9XG4gICAqL1xuICByZXBsaWNhdGVLZXkoXG4gICAgYXJnczogUmVwbGljYXRlS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVwbGljYXRlS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVGFnRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV0aXJlR3JhbnRDb21tYW5kfVxuICAgKi9cbiAgcmV0aXJlR3JhbnQoXG4gICAgYXJnczogUmV0aXJlR3JhbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXRpcmVHcmFudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEdyYW50SWRFcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlR3JhbnRDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlR3JhbnQoXG4gICAgYXJnczogUmV2b2tlR3JhbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXZva2VHcmFudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEdyYW50SWRFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUm90YXRlS2V5T25EZW1hbmRDb21tYW5kfVxuICAgKi9cbiAgcm90YXRlS2V5T25EZW1hbmQoXG4gICAgYXJnczogUm90YXRlS2V5T25EZW1hbmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSb3RhdGVLZXlPbkRlbWFuZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kfVxuICAgKi9cbiAgc2NoZWR1bGVLZXlEZWxldGlvbihcbiAgICBhcmdzOiBTY2hlZHVsZUtleURlbGV0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2NoZWR1bGVLZXlEZWxldGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTaWduQ29tbWFuZH1cbiAgICovXG4gIHNpZ24oXG4gICAgYXJnczogU2lnbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNpZ25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkR3JhbnRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkS2V5VXNhZ2VFcnJvclxuICAgIHwgS2V5VW5hdmFpbGFibGVFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBUYWdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFRhZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFsaWFzKFxuICAgIGFyZ3M6IFVwZGF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQ3VzdG9tS2V5U3RvcmUoXG4gICAgYXJnczogVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2xvdWRIc21DbHVzdGVySW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgQ2xvdWRIc21DbHVzdGVyTm90QWN0aXZlRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3Rlck5vdEZvdW5kRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3Rlck5vdFJlbGF0ZWRFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVOYW1lSW5Vc2VFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBYa3NQcm94eUluY29ycmVjdEF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbEVycm9yXG4gICAgfCBYa3NQcm94eUludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IFhrc1Byb3h5SW52YWxpZFJlc3BvbnNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VXJpRW5kcG9pbnRJblVzZUVycm9yXG4gICAgfCBYa3NQcm94eVVyaUluVXNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VXJpVW5yZWFjaGFibGVFcnJvclxuICAgIHwgWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VJblVzZUVycm9yXG4gICAgfCBYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVLZXlEZXNjcmlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVLZXlEZXNjcmlwdGlvbihcbiAgICBhcmdzOiBVcGRhdGVLZXlEZXNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUtleURlc2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVByaW1hcnlSZWdpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUHJpbWFyeVJlZ2lvbihcbiAgICBhcmdzOiBVcGRhdGVQcmltYXJ5UmVnaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUHJpbWFyeVJlZ2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBWZXJpZnlDb21tYW5kfVxuICAgKi9cbiAgdmVyaWZ5KFxuICAgIGFyZ3M6IFZlcmlmeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFZlcmlmeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRLZXlVc2FnZUVycm9yXG4gICAgfCBLZXlVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU2lnbmF0dXJlRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFZlcmlmeU1hY0NvbW1hbmR9XG4gICAqL1xuICB2ZXJpZnlNYWMoXG4gICAgYXJnczogVmVyaWZ5TWFjQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVmVyaWZ5TWFjQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRNYWNFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VLTVNTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oS01TQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBLTVNTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEtNU1NlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIEtNU1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBLTVNTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcIkBlZmZlY3QtYXdzL2NsaWVudC1rbXMvS01TU2VydmljZVwiKTxcbiAgS01TU2VydmljZSxcbiAgS01TU2VydmljZSRcbj4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QodGhpcywgbWFrZUtNU1NlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShLTVNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRLTVNDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IEtNU0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUtNU1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKEtNU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIEtNU0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0S01TQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKGRlZmF1bHRDb25maWc6IEtNU0NsaWVudENvbmZpZykgPT4gS01TQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VLTVNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIEtNU0NsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRLTVNDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIEtNU1NlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEtNUyA9IEtNU1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgS01TLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlS01TU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KEtNU1NlcnZpY2UsIG1ha2VLTVNTZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBLTVMubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgS01TU2VydmljZUxheWVyID0gQmFzZUtNU1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEtNU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBLTVMuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRLTVNTZXJ2aWNlTGF5ZXIgPSBLTVNTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
|