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