@effect-aws/client-kms 1.2.0 → 1.9.3

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